diff options
author | Anita Zhang <the.anitazha@gmail.com> | 2021-01-27 23:43:13 -0800 |
---|---|---|
committer | Anita Zhang <the.anitazha@gmail.com> | 2021-02-09 01:29:57 -0800 |
commit | 1f76411bd616290a7ed811530672209c8aa29f54 (patch) | |
tree | 1b895a1ece961c169c6fd3591ed5944d79e07eca /src/oom/test-oomd-util.c | |
parent | df7f3eab52178331104650db0bc5fb95564e1394 (diff) | |
download | systemd-1f76411bd616290a7ed811530672209c8aa29f54.tar.gz |
oom: sort by pgscan and memory usage
If 2 candidates have the same pgscan, prioritize the one with the larger
memory usage.
Diffstat (limited to 'src/oom/test-oomd-util.c')
-rw-r--r-- | src/oom/test-oomd-util.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/oom/test-oomd-util.c b/src/oom/test-oomd-util.c index 3dec4f0ff0..a1fe78806a 100644 --- a/src/oom/test-oomd-util.c +++ b/src/oom/test-oomd-util.c @@ -292,16 +292,20 @@ static void test_oomd_sort_cgroups(void) { OomdCGroupContext ctx[4] = { { .path = paths[0], .swap_usage = 20, - .pgscan = 60 }, + .pgscan = 60, + .current_memory_usage = 10 }, { .path = paths[1], .swap_usage = 60, - .pgscan = 40 }, + .pgscan = 40, + .current_memory_usage = 20 }, { .path = paths[2], .swap_usage = 40, - .pgscan = 20 }, + .pgscan = 40, + .current_memory_usage = 40 }, { .path = paths[3], .swap_usage = 10, - .pgscan = 80 }, + .pgscan = 80, + .current_memory_usage = 10 }, }; assert_se(h = hashmap_new(&string_hash_ops)); @@ -318,16 +322,16 @@ static void test_oomd_sort_cgroups(void) { assert_se(sorted_cgroups[3] == &ctx[3]); sorted_cgroups = mfree(sorted_cgroups); - assert_se(oomd_sort_cgroup_contexts(h, compare_pgscan, NULL, &sorted_cgroups) == 4); + assert_se(oomd_sort_cgroup_contexts(h, compare_pgscan_and_memory_usage, NULL, &sorted_cgroups) == 4); assert_se(sorted_cgroups[0] == &ctx[3]); assert_se(sorted_cgroups[1] == &ctx[0]); - assert_se(sorted_cgroups[2] == &ctx[1]); - assert_se(sorted_cgroups[3] == &ctx[2]); + assert_se(sorted_cgroups[2] == &ctx[2]); + assert_se(sorted_cgroups[3] == &ctx[1]); sorted_cgroups = mfree(sorted_cgroups); - assert_se(oomd_sort_cgroup_contexts(h, compare_pgscan, "/herp.slice/derp.scope", &sorted_cgroups) == 2); - assert_se(sorted_cgroups[0] == &ctx[1]); - assert_se(sorted_cgroups[1] == &ctx[2]); + assert_se(oomd_sort_cgroup_contexts(h, compare_pgscan_and_memory_usage, "/herp.slice/derp.scope", &sorted_cgroups) == 2); + assert_se(sorted_cgroups[0] == &ctx[2]); + assert_se(sorted_cgroups[1] == &ctx[1]); assert_se(sorted_cgroups[2] == 0); assert_se(sorted_cgroups[3] == 0); sorted_cgroups = mfree(sorted_cgroups); |