From patchwork Thu Apr 3 05:27:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: xu.xin16@zte.com.cn X-Patchwork-Id: 14036749 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id ADD99C3600C for ; Thu, 3 Apr 2025 05:27:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E8C2E280004; Thu, 3 Apr 2025 01:27:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E1303280001; Thu, 3 Apr 2025 01:27:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CB489280004; Thu, 3 Apr 2025 01:27:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id AA5BB280001 for ; Thu, 3 Apr 2025 01:27:37 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 5622EB4BB3 for ; Thu, 3 Apr 2025 05:27:38 +0000 (UTC) X-FDA: 83291600196.01.8D4DB19 Received: from mxct.zte.com.cn (mxct.zte.com.cn [183.62.165.209]) by imf25.hostedemail.com (Postfix) with ESMTP id A60E4A000C for ; Thu, 3 Apr 2025 05:27:35 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=none; spf=pass (imf25.hostedemail.com: domain of xu.xin16@zte.com.cn designates 183.62.165.209 as permitted sender) smtp.mailfrom=xu.xin16@zte.com.cn; dmarc=pass (policy=none) header.from=zte.com.cn ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743658056; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=3+WceQOmcGVWMsaX6hZuUBYuJ/OS7mViGUdoKJjzgO0=; b=b0mWVpi1nDXpoknBDMtnv2JHc7mqvjSoJIPc93wy7rDFielbd4OSeHHezRxTX1t+efvJFj aQDbEtMdqmshC3aXgq5Yebrb8RfpsHYhUgUzJeQYXTYMXmP9vcoOnz6yLj7VlcANzGIWLz ZxfSOAYomVHPKKb8pTfASdadSWEXv9U= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=none; spf=pass (imf25.hostedemail.com: domain of xu.xin16@zte.com.cn designates 183.62.165.209 as permitted sender) smtp.mailfrom=xu.xin16@zte.com.cn; dmarc=pass (policy=none) header.from=zte.com.cn ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743658056; a=rsa-sha256; cv=none; b=4EBo7CQ5wbemysdHV+SMovipykQqKXEBDWYIz64hcezSPe56HYwig9PCYZMlDI/poo46U+ jHq+TFcOrWD9Bh4GDmKQcL4krcTEFIC49ssqDl+u3pdp+Wf2QtB2WtwUqwMNAb/rcFawhL 51l+kym7gApbZvb582gSx90BCYmtRI4= Received: from mse-fl1.zte.com.cn (unknown [10.5.228.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mxct.zte.com.cn (FangMail) with ESMTPS id 4ZSqxX6HLHz51SYK; Thu, 3 Apr 2025 13:27:28 +0800 (CST) Received: from xaxapp04.zte.com.cn ([10.99.98.157]) by mse-fl1.zte.com.cn with SMTP id 5335RNj9042170; Thu, 3 Apr 2025 13:27:23 +0800 (+08) (envelope-from xu.xin16@zte.com.cn) Received: from mapi (xaxapp04[null]) by mapi (Zmail) with MAPI id mid32; Thu, 3 Apr 2025 13:27:25 +0800 (CST) Date: Thu, 3 Apr 2025 13:27:25 +0800 (CST) X-Zmail-TransId: 2afb67ee1c3d005-634bb X-Mailer: Zmail v1.0 Message-ID: <202504031327254709KjF9LmE5S0XFQdI6rxlu@zte.com.cn> In-Reply-To: <20250403132534636XLwK7CWiCj1J4-FENz0vk@zte.com.cn> References: 20250403132534636XLwK7CWiCj1J4-FENz0vk@zte.com.cn Mime-Version: 1.0 From: To: Cc: , , , , , , , , , , , Subject: =?utf-8?b?W1BBVENIIGxpbnV4LW5leHQgMS82XSBtZW1jb250cm9sOiByZW5hbWUg?= =?utf-8?b?bWVtX2Nncm91cF9zY2FuX3Rhc2tzKCnCoMKg?= X-MAIL: mse-fl1.zte.com.cn 5335RNj9042170 X-Fangmail-Anti-Spam-Filtered: true X-Fangmail-MID-QID: 67EE1C40.009/4ZSqxX6HLHz51SYK X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: A60E4A000C X-Stat-Signature: h1kkncsu3zgzwbaw1ccm8o58813co7c8 X-Rspam-User: X-HE-Tag: 1743658055-839398 X-HE-Meta: U2FsdGVkX19UuLcy3lDS96PeXnosKWOayp2NhXA8geqoYFWd17DHbrgoGad0fueHmD9D7Wy8KJifWfVDx5KfIKrOz/yAqt1Fgc+/WHu2vqtnu3Le/ZIdybNFeKxQghLOy04tETW4a2r/jxzyBIe8MZwlI02eJlLh/2NqoFcucZItBrFa8uUuITzxRxK0H57gPtR9x8bPW/eVwiLHW+nqtmkUyhOq9p5vM0TMoKhII9BGAEy3RudAHrovEh3qLWqG7ahX1P3nBlTtDmWxVOCVUecsmacfCBMsnNQmF+ziEuj/jIIMEVvU0+8InGFwYCU1hmIPx6dBLA0UolvDjk2SowhrrxSTUxb/a1JJN48qDS/Q1rfWDAYSU4Vz8jgV43Qixl/L2DvFMiMpWUe9H/9RFjLyDpjuzECjoROQSZsJy7AoVAH75CtPLSuGxKj1NsWJ93UkP/uaKfJRoukG0tQG2FjU58NDfxRefbwBHGOvwc+uVhzJQvCnCBkchG9Gmne80M7XyBbwqvSgR26W0vEvmwiIINnymNa4FxqIYDEzNHLb5r4rm+VBFh0hKS8YqCw/56NqkbkoBlBgNDuj9hxz/sIpjQxU4n8NTsKXbSwphO19PlER7cVnQU/caMViW2JB8IekqmV2uk1AQ9UQrEvX/EuwpESbWw2Dn4wHr9+9QUfvVpCEAWGI3uMs5h1DP7zWwDC/AHR5bTGgp9UkL1yJkN6sXw8ZmRxxehcDcTQl2fyucRK7c3TtbLmK8nxRANpd/dSVqplc7vrOGWtU90JUda7PLyB+ZnjeHrpb+nua5/Y8gpN0w8t1SYX8E2t3oe05g06EIfHPP590i99Z4VaKsnOQy1yz4mQAliREGVc+OBy0h2cUwSmlzBColIHAjdbrSh/SflUyOJ1V0ixAbMKa408YuvtPYp8iBgeGnDxdkU/GXK8iEEPvi7yZh8HbpFsWKtPfJbFy1TkdTw7Asze 83jQQsJA FPQg6f46eddvZF3B0J9Axsr9mMyvEGI0ELWsPSG/jbA8nkGCURjRe8w+3VERCYiAvXZbsv4ZGBM9SXX1L9pW2xm7MIUEkjk0/IQ3dkNbUT5WMsh5f4TXZxjN+Kk9Fx4ol1W3pA1LYeInJ/22luLzskI3r7NWfqdVDk5PcRaM6nHX8x9A2QmYNkcocvYeWrHsQ01qfcFck769sQ0o/JXon0CY2xrTuXDmwmooD X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: xu xin Current Issue: ============== The function mem_cgroup_scan_tasks in memcontrol.c has a naming ambiguity. While its name suggests it only iterates through processes belonging to the current memcgroup, it actually scans all descendant cgroups under the subtree rooted at this memcgroup. This discrepancy can cause confusion for developers relying on the semantic meaning of the function name. Resolution: ========= Renaming: We have renamed the original function to **mem_cgroup_tree_scan_tasks** to explicitly reflect its subtree-traversal behavior. A subsequent patch will introduce a new mem_cgroup_scan_tasks function that strictly iterates processes only within the current memcgroup, aligning its behavior with its name. Signed-off-by: xu xin --- include/linux/memcontrol.h | 4 ++-- mm/memcontrol.c | 4 ++-- mm/oom_kill.c | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 53364526d877..232cea80e71f 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -795,7 +795,7 @@ struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *, struct mem_cgroup *, struct mem_cgroup_reclaim_cookie *); void mem_cgroup_iter_break(struct mem_cgroup *, struct mem_cgroup *); -void mem_cgroup_scan_tasks(struct mem_cgroup *memcg, +void mem_cgroup_tree_scan_tasks(struct mem_cgroup *memcg, int (*)(struct task_struct *, void *), void *arg); static inline unsigned short mem_cgroup_id(struct mem_cgroup *memcg) @@ -1289,7 +1289,7 @@ static inline void mem_cgroup_iter_break(struct mem_cgroup *root, { } -static inline void mem_cgroup_scan_tasks(struct mem_cgroup *memcg, +static inline void mem_cgroup_tree_scan_tasks(struct mem_cgroup *memcg, int (*fn)(struct task_struct *, void *), void *arg) { } diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 421740f1bcdc..9af30fbfe819 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1151,7 +1151,7 @@ static void invalidate_reclaim_iterators(struct mem_cgroup *dead_memcg) } /** - * mem_cgroup_scan_tasks - iterate over tasks of a memory cgroup hierarchy + * mem_cgroup_tree_scan_tasks - iterate over tasks of a memory cgroup hierarchy * @memcg: hierarchy root * @fn: function to call for each task * @arg: argument passed to @fn @@ -1163,7 +1163,7 @@ static void invalidate_reclaim_iterators(struct mem_cgroup *dead_memcg) * * This function must not be called for the root memory cgroup. */ -void mem_cgroup_scan_tasks(struct mem_cgroup *memcg, +void mem_cgroup_tree_scan_tasks(struct mem_cgroup *memcg, int (*fn)(struct task_struct *, void *), void *arg) { struct mem_cgroup *iter; diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 25923cfec9c6..af3b8407fb08 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -367,7 +367,7 @@ static void select_bad_process(struct oom_control *oc) oc->chosen_points = LONG_MIN; if (is_memcg_oom(oc)) - mem_cgroup_scan_tasks(oc->memcg, oom_evaluate_task, oc); + mem_cgroup_tree_scan_tasks(oc->memcg, oom_evaluate_task, oc); else { struct task_struct *p; @@ -428,7 +428,7 @@ static void dump_tasks(struct oom_control *oc) pr_info("[ pid ] uid tgid total_vm rss rss_anon rss_file rss_shmem pgtables_bytes swapents oom_score_adj name\n"); if (is_memcg_oom(oc)) - mem_cgroup_scan_tasks(oc->memcg, dump_task, oc); + mem_cgroup_tree_scan_tasks(oc->memcg, dump_task, oc); else { struct task_struct *p; int i = 0; @@ -1056,7 +1056,7 @@ static void oom_kill_process(struct oom_control *oc, const char *message) if (oom_group) { memcg_memory_event(oom_group, MEMCG_OOM_GROUP_KILL); mem_cgroup_print_oom_group(oom_group); - mem_cgroup_scan_tasks(oom_group, oom_kill_memcg_member, + mem_cgroup_tree_scan_tasks(oom_group, oom_kill_memcg_member, (void *)message); mem_cgroup_put(oom_group); }