The patch titled Subject: cgroup: account for memory_localevents in test_memcg_oom_group_leaf_events() has been added to the -mm tree. Its filename is cgroup-account-for-memory_localevents-in-test_memcg_oom_group_leaf_events.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/cgroup-account-for-memory_localevents-in-test_memcg_oom_group_leaf_events.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/cgroup-account-for-memory_localevents-in-test_memcg_oom_group_leaf_events.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: David Vernet <void@xxxxxxxxxxxxx> Subject: cgroup: account for memory_localevents in test_memcg_oom_group_leaf_events() The test_memcg_oom_group_leaf_events() testcase in the cgroup memcg tests validates that processes in a group that perform allocations exceeding memory.oom.group are killed. It also validates that the memory.events.oom_kill events are properly propagated in this case. Commit 06e11c907ea4 ("kselftests: memcg: update the oom group leaf events test") fixed test_memcg_oom_group_leaf_events() to account for the fact that the memory.events.oom_kill events in a child cgroup is propagated up to its parent. This behavior can actually be configured by the memory_localevents mount option, so this patch updates the testcase to properly account for the possible presence of this mount option. Link: https://lkml.kernel.org/r/20220422155728.3055914-4-void@xxxxxxxxxxxxx Signed-off-by: David Vernet <void@xxxxxxxxxxxxx> Cc: Johannes Weiner <hannes@xxxxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxxxx> Cc: Roman Gushchin <roman.gushchin@xxxxxxxxx> Cc: Shakeel Butt <shakeelb@xxxxxxxxxx> Cc: Tejun Heo <tj@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- tools/testing/selftests/cgroup/test_memcontrol.c | 17 ++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) --- a/tools/testing/selftests/cgroup/test_memcontrol.c~cgroup-account-for-memory_localevents-in-test_memcg_oom_group_leaf_events +++ a/tools/testing/selftests/cgroup/test_memcontrol.c @@ -21,6 +21,7 @@ #include "../kselftest.h" #include "cgroup_util.h" +static bool has_localevents; static bool has_recursiveprot; /* @@ -1091,6 +1092,7 @@ static int test_memcg_oom_group_leaf_eve { int ret = KSFT_FAIL; char *parent, *child; + long parent_oom_events; parent = cg_name(root, "memcg_test_0"); child = cg_name(root, "memcg_test_0/memcg_test_1"); @@ -1128,7 +1130,15 @@ static int test_memcg_oom_group_leaf_eve if (cg_read_key_long(child, "memory.events", "oom_kill ") <= 0) goto cleanup; - if (cg_read_key_long(parent, "memory.events", "oom_kill ") <= 0) + parent_oom_events = cg_read_key_long( + parent, "memory.events", "oom_kill "); + // If memory_localevents is not enabled (the default), the parent should + // count OOM events in its children groups. Otherwise, it should not + // have observed any events. + if (has_localevents) { + if (parent_oom_events != 0) + goto cleanup; + } else if (parent_oom_events <= 0) goto cleanup; ret = KSFT_PASS; @@ -1298,6 +1308,11 @@ int main(int argc, char **argv) ksft_exit_skip("Failed to query cgroup mount option\n"); has_recursiveprot = proc_status; + proc_status = proc_mount_contains("memory_localevents"); + if (proc_status < 0) + ksft_exit_skip("Failed to query cgroup mount option\n"); + has_localevents = proc_status; + for (i = 0; i < ARRAY_SIZE(tests); i++) { switch (tests[i].fn(root)) { case KSFT_PASS: _ Patches currently in -mm which might be from void@xxxxxxxxxxxxx are cgroups-refactor-children-cgroups-in-memcg-tests.patch cgroup-account-for-memory_recursiveprot-in-test_memcg_low.patch cgroup-account-for-memory_localevents-in-test_memcg_oom_group_leaf_events.patch cgroup-removing-racy-check-in-test_memcg_sock.patch cgroup-fix-racy-check-in-alloc_pagecache_max_30m-helper-function.patch