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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6900AC369C2 for ; Tue, 22 Apr 2025 11:20:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0501D6B0008; Tue, 22 Apr 2025 07:20:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 026E96B000A; Tue, 22 Apr 2025 07:20:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E09E36B000C; Tue, 22 Apr 2025 07:20:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id C0DB06B0008 for ; Tue, 22 Apr 2025 07:20:40 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 60656BEE98 for ; Tue, 22 Apr 2025 11:20:42 +0000 (UTC) X-FDA: 83361437124.23.C98B5A4 Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) by imf10.hostedemail.com (Postfix) with ESMTP id 98EDCC0005 for ; Tue, 22 Apr 2025 11:20:40 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=HbSyNFeP; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf10.hostedemail.com: domain of xu.xin.sc@gmail.com designates 209.85.210.193 as permitted sender) smtp.mailfrom=xu.xin.sc@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745320840; a=rsa-sha256; cv=none; b=D7HJIR0jlCug7IvvAtVroN1ktfY/uqcQnH10EQQlgUEtTd3fiCtmTBNWTvMDSSsJ1d0w1A 3PGYlQZQsHdEjCAb/XCMPcmm8mzzwYRVwksgvjl+lxdyDJeCXjEBpaDxsEhIXe7XVi7XQb 4Pi7tdp8X5njUE9mqASlMp03XBY1yv4= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=HbSyNFeP; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf10.hostedemail.com: domain of xu.xin.sc@gmail.com designates 209.85.210.193 as permitted sender) smtp.mailfrom=xu.xin.sc@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745320840; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=+51UIMj/tAmyUWH2Kok4OXqnacHZS1pAn+uExxikWCA=; b=a72CY08RBIa78dILbvnJSLmVZGNq+y9XCpp0u1sGjlHKi1EpyEokBc3MF5Spj8E5PcUZuD O2y3S/kPaEE3TO8qs/aeS7Tai7LOB5WnW511gLW+WR8lM2YCCjHfPZWzb2fnbRRAKbMGje tjdY9d5vSyiEVGBTKoRPkc4BTUpiBCQ= Received: by mail-pf1-f193.google.com with SMTP id d2e1a72fcca58-739525d4e12so4021078b3a.3 for ; Tue, 22 Apr 2025 04:20:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745320839; x=1745925639; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+51UIMj/tAmyUWH2Kok4OXqnacHZS1pAn+uExxikWCA=; b=HbSyNFePMf+NeA0m+zYDQDAdmrhldtxBouPhZbzNI2c5n/l11HBzvkSyl1qYqrpRnu B8tZ3AJXHMbEwsXZZ3ROH6m4YbQM+WqQ+Zk4REver8E557KKa9QeikYo4mmut3Fb7IXj MbBYc0V7iJmE48y+c9aOHhcs3xERCwKb8Boqxwx8yinrBSJq+Kq7mYWnm7qa+EA2nL+a xtn24i+iQC8x+uF6I1ayet7fgsmSC3x4+L79y7hVC89TUlYs49z/wdRPKokEFjinkBhN SlETMEefM2yU1cC4T3qlcVxPt61TBkK0RGSBdgtIthDhWhLO235QlljGiO2yojMV0Tya d5hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745320839; x=1745925639; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+51UIMj/tAmyUWH2Kok4OXqnacHZS1pAn+uExxikWCA=; b=TRLZ1Xkdo1ffT/LUYKDoZ7oJ/+iOe8BytZtg8kd1dU4kwIt5w7Ebv1uMJWdNSBKz0L P2IfMSVaqBt0CCzx64KXWrE7IXk64JQsiAVlOm5DTHUvqBo4flZcH9J31NFg4zwHlbos 8nvjVuyAKoPhkyMDXdEdoDfShxaR2NMlyepqVZg4hygjtqFhiNy7Y2M2x0tYzP/gc0Fn d4TD6ZALqEBvf90d5feEJVilm5ZTfR7frsadMuLfsKkz51n1ZobLIGsFt9U2hnLoEBoM T6GgKkJBj51x91t4nxo6ZxsuZKbKvlsUK/VnZDsqK1eH+V4m8gdehuuUaQsYq+CAjzpI SWDg== X-Forwarded-Encrypted: i=1; AJvYcCUKbXw/yJraD6iTnE63uhk4yf0pZRbLPFe+m6DbPMamhztB6pHOhH7XPBiQJiPIdkCaC3pAaL4Zdg==@kvack.org X-Gm-Message-State: AOJu0YzZBlBwOi2xZsW3ZWP3+c6w1NQAGWYboUyBJbOm9wmRz5cBtfWW DuV4Emb7RHnOdC1wp/QwcbAwLOPmFT9QJ+1p6KVGxp34At1y3mhB X-Gm-Gg: ASbGncv06i7V3WuFwSBUcexa0atpzbfLbgdo0EmRgiWBjV7ig3OdK8oTfPxYAN8Gfkd LCPB9frvscB8fbRVUepuhiZpRc1G2j+y5cxz4PMfrI9wlnXFp5xLraRB5sO7QYouAYj3q/J5XhO cp0xEwt7epzSFkZ3XJE8S/atscpbMFm/SNzDfVrm5BjuPBEytGIOQ7dDkG0iqqBYuG1TidwJVdv l+GC1tP68gPMIOu2s0iNaNK/Dpg5RpOk0gLH4Z2ntkQwpLQIKA9sAnthVk3wn0JusX+s4gf7KPe znpLYLy6WG272FO9vCIBx/W2EnGyTQ8ZdrjdatmBcqe0QaDmKk+frw== X-Google-Smtp-Source: AGHT+IHeBJWaKOspaVUlGPQwNmJ508mM1B9cKn79/KVY6fMHxm5j0xrib3BJO9F3wvdIJACOnil1mg== X-Received: by 2002:a05:6a00:91d1:b0:73e:595:eb69 with SMTP id d2e1a72fcca58-73e0595f5f1mr1856372b3a.10.1745320839439; Tue, 22 Apr 2025 04:20:39 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73e07a36e85sm771034b3a.61.2025.04.22.04.20.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 04:20:39 -0700 (PDT) From: xu xin X-Google-Original-From: xu xin To: xu.xin16@zte.com.cn Cc: akpm@linux-foundation.org, david@redhat.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, wang.yaxin@zte.com.cn, yang.yang29@zte.com.cn Subject: [PATCH RESEND 2/6] memcontrol: introduce the new mem_cgroup_scan_tasks() Date: Tue, 22 Apr 2025 11:20:34 +0000 Message-Id: <20250422112034.3231352-1-xu.xin16@zte.com.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250422191407770210-193JBD0Fgeu5zqE2K@zte.com.cn> References: <20250422191407770210-193JBD0Fgeu5zqE2K@zte.com.cn> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: 98EDCC0005 X-Rspamd-Server: rspam04 X-Stat-Signature: gbn8a6t4qhgr1nnhxk697z8c4krgidtd X-HE-Tag: 1745320840-392621 X-HE-Meta: U2FsdGVkX19I1qjPTs3HGRQMThVgFNjAncJAlZgNGG4SY4LzA4whXx87PuAO3GU4XoSQquIQjdnMGFIuZkURJxmBdVpSCr3A8/82FYiy4UQVlpbkC4FqKst1Gqs24YBJXaONjY7rcbclOFr9wEL1OWMj7KPDnhFvkLGbMpQXm+RfkK2iZmOKsBjS6vtIOmANkXkFJ6VFS7nNbT9wg5NPU/GS+RlVN0nyQdT7MGzlBuOMflNTtGKapPkopVE6LkxCmZ3QBtRvRuM+9wRWGotdjxmg/2thLq/8/IPk7NxqNTu2iT8sgLuCpADDLpLBesDqx7LYhAitOrkSzMVxeObfQRWTvlePKdcd9X4MYAprwckLsqveAtmxLmOQd5BXxZOeeV//XtxxDM5we9zVG3LTJdEbr8IGHNwkqmejrJ0Fy9kl4+L4SbFWR9maxWwK8FBVnfRofMGUcZvIe416gpUynfoxPU+mgouWyesthuZ0OmPkXHYM2Su1YRTNHV5Aw0kLZ+x7GCQwsXbtveeMfQri+fOy3PUyRoCpmRO3zCahic1oNMVHRAScSydgdPRevEaGJA2F7PZPt+mDAm1NN+FvU6wozF4RkHgW0Lzlp5jmzK+XCG0X977rt515JPexR1Y1WCtEy/4Pyy5oyFgl/JBnjVM63ITvxcI14de2hVs9OueiD2WBibm+9ksu2HNvyc00VXge5I7y99AXdmp6OsqRu23U3+DngcElvJ+V7xQjSMW3M8/4s9NcR+DBKdr39OpUAulCKIzrg4MJ39BPpiqkKV5ASwm+ugU+5yKB9e9ZWiJD6lrlrPEzrp7bSTRit/rVFcsqO8H94hYVElEBjsrJ+Ai/td3cNnjMveT3n3daPdDF/3NTPtY7ga4L0QRjrBOzSA3Bd6xM5EoDWj+8pIfkWIAqSE22XtmY8/MJ6ZWpJfssR8XpRVUTWPfTdqPXJHfr41F3BSa8udyfcuGvYh2 j3OPTY2k FdHN1nA0vsdYUJUKbG6zMZdPd4q7f9l23du58NDvexx8K+VP+iTPLijrUSb8XbY+Il40cxGdwY+MHY/LWtJ3giWlCopnQZLNbACk92emBuNjZhUlUqFz0mAlfSb1VfMI/YhkrfSuDj2TPU0Dx2xmkbCXlh6Lvq+mi8oSjHZMOkjIyAQN63ExRK+Tnty1W8/Cisog8XT2GcA899q9TLNOGi5/m9Q== 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: 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 | 7 +++++++ mm/memcontrol.c | 24 ++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 1c1ce25fae4c..f9d663a7ccde 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -795,6 +795,8 @@ 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, + int (*)(struct task_struct *, void *), void *arg); void mem_cgroup_tree_scan_tasks(struct mem_cgroup *memcg, int (*)(struct task_struct *, void *), void *arg); @@ -1289,6 +1291,11 @@ static inline void mem_cgroup_iter_break(struct mem_cgroup *root, { } +static inline void mem_cgroup_scan_tasks(struct mem_cgroup *memcg, + int (*fn)(struct task_struct *, void *), void *arg) +{ +} + 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 3baf0a4e0674..629e2ce2d830 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1163,6 +1163,30 @@ static void invalidate_reclaim_iterators(struct mem_cgroup *dead_memcg) dead_memcg); } +/* * + * mem_cgroup_scan_tasks - iterate over tasks of only this memory cgroup. + * @memcg: the specified memory cgroup. + * @fn: function to call for each task + * @arg: argument passed to @fn + * + * Unlike mem_cgroup_tree_scan_tasks(), this function only iterate over + * these tasks attached to @memcg, not including any of its descendants + * memcg. And this could be called for the root memory cgroup. + */ +void mem_cgroup_scan_tasks(struct mem_cgroup *memcg, + int (*fn)(struct task_struct *, void *), void *arg) +{ + int ret = 0; + struct css_task_iter it; + struct task_struct *task; + + css_task_iter_start(&memcg->css, CSS_TASK_ITER_PROCS, &it); + while (!ret && (task = css_task_iter_next(&it))) + ret = fn(task, arg); + + css_task_iter_end(&it); +} + /** * mem_cgroup_tree_scan_tasks - iterate over tasks of a memory cgroup hierarchy * @memcg: hierarchy root -- 2.39.3