From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CD709C433FE for ; Fri, 22 Apr 2022 22:03:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231322AbiDVWGd (ORCPT ); Fri, 22 Apr 2022 18:06:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34840 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231396AbiDVWF7 (ORCPT ); Fri, 22 Apr 2022 18:05:59 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EF3EF1F512F for ; Fri, 22 Apr 2022 13:49:39 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 13D5EB82D82 for ; Fri, 22 Apr 2022 20:20:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BEA2AC385A0; Fri, 22 Apr 2022 20:20:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1650658845; bh=w/lhaUnHDgHta0Bh9ITY/xSOi3r2MdZbHWmARJtH+5M=; h=Date:To:From:Subject:From; b=kg/pNC/zrpc/QUcQxaPV5ouvB905fnNaKzXSQbjBVQetOpj6VnqWDoWSqVT7f8CZX CFOmsrs6Rx7N1yWx1w6j7OPflxWeYyIIDTBbzOmngn85K5OxGVTUGuvHkSM2NfyFtZ 9+or47vrO53vR//VPNWrRKDgsskccyi6sFt41VzY= Date: Fri, 22 Apr 2022 13:20:45 -0700 To: mm-commits@vger.kernel.org, tj@kernel.org, shakeelb@google.com, roman.gushchin@linux.dev, mhocko@kernel.org, hannes@cmpxchg.org, void@manifault.com, akpm@linux-foundation.org From: Andrew Morton Subject: + cgroup-account-for-memory_localevents-in-test_memcg_oom_group_leaf_events.patch added to -mm tree Message-Id: <20220422202045.BEA2AC385A0@smtp.kernel.org> Precedence: bulk Reply-To: linux-kernel@vger.kernel.org List-ID: X-Mailing-List: mm-commits@vger.kernel.org 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 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@manifault.com Signed-off-by: David Vernet Cc: Johannes Weiner Cc: Michal Hocko Cc: Roman Gushchin Cc: Shakeel Butt Cc: Tejun Heo Signed-off-by: Andrew Morton --- 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@manifault.com 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