From nobody Mon Feb 9 10:16:39 2026 Received: from mail-pl1-f195.google.com (mail-pl1-f195.google.com [209.85.214.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 321A7277007; Tue, 22 Apr 2025 11:19:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745320767; cv=none; b=F79QHqexhjxz6lwcLNmzbE6z9n9mQpEQtDOMewdW/9ghOgoCJy2zA6WDVPAcxwJBMEQE5+1Zne9Lu1psbKUZtbeTYcfzZTO2/nYMjd963zxB1jz7zyCx0IHbwML/BbrgPZ0ATJ9j3J8PeRnVlDDqciPYAaK1SGNz7FxDB3rybhM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745320767; c=relaxed/simple; bh=eilNR/y9lrTc9DrNowV7wlNdAr9mkqdRmdKvxRStVOk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=gDbh6IN3/CxfAjD2RuRYkCCsTJGs+qmVm9PHFlazavHq3vgyAZDG9J+fuqvhYT8/J3rTAngihZNCwPvfjVtKNsXUmijE9wdRdgC5uZ11g/5I79516xGJz9rok52olSli4T1Og3YP9Hf3o2mXhBNt5pT2XRcWP2EJ+SRMiN1oTOQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UN2KMJpl; arc=none smtp.client-ip=209.85.214.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UN2KMJpl" Received: by mail-pl1-f195.google.com with SMTP id d9443c01a7336-225df540edcso60109825ad.0; Tue, 22 Apr 2025 04:19:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745320765; x=1745925565; darn=vger.kernel.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=jxUCa1tC3GczEFCo3nXTDpb0Z/3vB+vw0bBDCtEpjQM=; b=UN2KMJplDqw8h+EyC5imCrTTlrv715odNUVYh6DMiw+V6rGKsejK7ANbTExslOjA1F MIbrg/3dz42aIT5OLcrPlGVplCeOrQ/R8jVRRzGMF5M2n8MVPpd9FBebQqxQSyCwITjm iqbJAUr71VHqIoipVsiERZImELjsFIMFoBxWEcNYeOAHv+0OZ9etoJRHdVPXm2YVbz6y HnVTdHhkyioVtWF9QBCHc2vlRvIVZ5d7UQE9BbFGE5qBHLejqb1HLQOKy8/pWTzzxkr6 TgUntIrIXm4IhpWR9anuumhC6fnTOfHlTJeB4PXBile/wRt8BmvfOCdFbqjXEjSsDKdL iZ0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745320765; x=1745925565; 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=jxUCa1tC3GczEFCo3nXTDpb0Z/3vB+vw0bBDCtEpjQM=; b=TPHH7NGVvVn3uen/sXMhUw/ddHw8bljE5aRxoYCcvV9q30oQ1mjPowTEd4ONN6ldDA hWeklaBZim3LgDeH4R0hyYY5q5lESeQqMhob5nFGWEgQe5nUbtDh8TY3KljnFsZ0R7N9 Iu8LCyx8OkBmbsb8kRb1xeRA0tmYcnMktYxsjdILjmwbTekverMX6/VGTl/sKg6ICynO as/uM9KMiOIyPIHoNnba8/emLTQ3MOA10cG4AQCmjzHFANwCvTrkr3pWg2drj8idEjV+ qnhs992TFzUQYD34PxZuP6nxNIOecbLEVFl6drH0mOovs3ke8gNDhSYyfBuJUOMymWUu t9cA== X-Forwarded-Encrypted: i=1; AJvYcCWIFjwM2+8SBjclcul0kjIUFfG1QimSbkq9IBuyHzz92CdgNUHQ5MBH410pO3kaXsQbB0zxsVGv8exVNbRr@vger.kernel.org, AJvYcCXuJFYwt/j+uxA8eXoxjFZy4O9DtN5Mf+LHlYtT8+1gkOOUdaG2UFY3rQkNkroIlKxGtz9+cwClNewQC2+y@vger.kernel.org X-Gm-Message-State: AOJu0Yw+gon4owh7haW7yxv5Tw4p+5L9QG08m65RRMxRnm/YDCQ1O4Sa 2D8fDv2ovr66TJyTIkUax5Z9vsFZJMJ3l8roC47wxl/CcW/owrdGk4vKWeTQ X-Gm-Gg: ASbGnctkRZdT5/6eWfI4SP2kUFyIi3Xk5fxToL/bWLfFxebLNrt83YfMvI5hNt/knA3 swVb09XNpyyIOfFdDi8TAsd7OAy84JKSyGpMQ/L+PzbMolcDqGjo2DoFi3tsHXAGRIlxIRKtMg/ 8z2Xe6xmmFwa8K0+D/1tyLVSNcycYxff4dmOT0roy/Naslm0ku3WTjtJrYgpzcCfJeYbXBlb3zO X7dny9KLKCZDaUneIKxL1ObqgC08GvKIM3ihovu1oA9pFF4CEdHswbipQwkxD2/5pZpkRYZvr/h hWiWrFvEMTVzpKdRkb0WDjX3pwjV997LYcUP2bABbLKxsoeoEInfmA== X-Google-Smtp-Source: AGHT+IHl1Dm3PG8oo/J4jpP7XiUCoLP+Rq0pPIzwl8C08h2/xJKdhjsO/+UsC0SmoqaIjbtDz3Bzew== X-Received: by 2002:a17:903:1aa4:b0:221:1497:7b08 with SMTP id d9443c01a7336-22c50d643e8mr246918155ad.23.1745320765287; Tue, 22 Apr 2025 04:19:25 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50ed247esm82519535ad.208.2025.04.22.04.19.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 04:19:24 -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 1/6] memcontrol: rename mem_cgroup_scan_tasks() Date: Tue, 22 Apr 2025 11:19:19 +0000 Message-Id: <20250422111919.3231273-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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Current Issue: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D 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: =3D=3D=3D=3D=3D=3D=3D=3D=3D 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 5264d148bdd9..1c1ce25fae4c 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); =20 static inline unsigned short mem_cgroup_id(struct mem_cgroup *memcg) @@ -1289,7 +1289,7 @@ static inline void mem_cgroup_iter_break(struct mem_c= group *root, { } =20 -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 6bc6dade60d8..3baf0a4e0674 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1164,7 +1164,7 @@ static void invalidate_reclaim_iterators(struct mem_c= group *dead_memcg) } =20 /** - * mem_cgroup_scan_tasks - iterate over tasks of a memory cgroup hierarchy + * mem_cgroup_tree_scan_tasks - iterate over tasks of a memory cgroup hier= archy * @memcg: hierarchy root * @fn: function to call for each task * @arg: argument passed to @fn @@ -1176,7 +1176,7 @@ static void invalidate_reclaim_iterators(struct mem_c= group *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 =3D LONG_MIN; =20 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; =20 @@ -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_sh= mem pgtables_bytes swapents oom_score_adj name\n"); =20 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 =3D 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); } --=20 2.39.3 From nobody Mon Feb 9 10:16:39 2026 Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5DCBC277007; Tue, 22 Apr 2025 11:20:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.193 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745320841; cv=none; b=urXbRWGoBw5aiRJvx4xMzXOnpq7Y/uN5UkVbJ850funXrZ0+bUOSHwj3alF6Cef5J6DrSwWGm3PpGCmJITXeP24WjsIOV9nkq6CRkJiqjyOfGn8WtmOgisuFzQQ25cdzWIu00SxeTyvVvjmIAZBnjCZedJ7t3rg6zfNSNAQGGYI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745320841; c=relaxed/simple; bh=v79tuUzJsknYOjVLB6BsZ+WcPRCljmPtyO+yNb7By9U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=VtmR6P64mkLOW5xySGSOKU3nlRzPVAzlbcktuGa2nCHuMQBe8ms+z5/1F/X7X5XQNfvHwzi+rvWTVR4QW4jbtk/LvbbtIkOcxJK+JarVykdmGeFvJtGyS1WiIt97qjoFcF7f2O7Uair314YeZEKImlrW8l4bWSRh4dglLgsiQIQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=aCW4Nfk+; arc=none smtp.client-ip=209.85.210.193 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aCW4Nfk+" Received: by mail-pf1-f193.google.com with SMTP id d2e1a72fcca58-736b0c68092so4141027b3a.0; 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=vger.kernel.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=aCW4Nfk+buzmGu8NgFMBPnkuYcBkqPd3hW+Ripkt44l7qFTbPcwTQiX6KBL+eiydPL TNkqlFA1gQtNhEtAClWxVYj72mKVBG7laRjEnrem8cJUSohZPU3IRfL39mUa8jdN+gi0 fG4IsFcVOoxLkOTbr87ERRYFYz2gL1Lj8Fq/qMNCrrP1/F4qEzUEHwLnh7VRy3ozZTis OrEBfyiLC/jQJSi4x0IAdHYXGI1lWkmXqdiWKhb/a8jXeG8hMZPCsvQ0r3uT1NuiFkkl pyxG0EDxzWs7zkc/hPFbNFlECS4EhUIA2wacE+CWaIoyXO8DFLDLVxdWxM01zFFADPno zKAA== 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=rLNnEKrdzOPbVXLkdKhVzt81X8a0LyPAnnJDV0G+tocIbrcqy9dXoZdefOAeit/sMg 7Uca8ekK3GhgmnHt79bp7parCB7bisdO38a0zq2Mpp2x2WT8Jf+p1vJJWapEgu4jrqb/ pQ604kxkm2JH6Wq1URt4Ze+82LRoIjkARPliM/yFEMuIPXt+u1J/Jk5to7xCz751D4+k mRkBzj3JjMKN+i0EQ01TQoMmFPugZbfmhtd+0Kfou/g7kV5cpIJjGBqEfRhyRmhvccLP XOYV9nbzO+ed5UWEzJ2tYyGiLQnuhEVrOt4sgtF8XnoUztsGjX6NUqlCcMLivb3z+jrY o+/w== X-Forwarded-Encrypted: i=1; AJvYcCUozUSYxEPNblYADTLK2w4IX5WNdEvLilcCHxUnHzABfKKHzWTFQal0ERbFvh1wVhvGYOquChgq9jPMswhw@vger.kernel.org, AJvYcCV0ONdEnPxORfcD23luQbKH8nW1pXj6oBDwJPtI0jUV17QOyxc81vkvOEyegMOHisSUGGaC6P3Ra8djdR8T@vger.kernel.org X-Gm-Message-State: AOJu0YxbOvtw7PVT0p9dm9dcpMaLsGsrI6VOqRMJE/Vwl0DoxWi8I9M9 Ron9NwnB0szkY4Eo26XPrWZlCTtPJ9oRFavUk0EVV1szv9RhgCx2bUAIKito X-Gm-Gg: ASbGncvyfiAzMKa7Qiut0FToiOYxhcFSGhrG59agvankFjNMEYCHirk5VXrHJRCsjyP HS9R+L138YqvjFwLR6iFVqzMWiKQLqZ3W4CrPU6MJ0PoclHzntuFs61PVmcuduQy6rOAdZpb71Y A1uqR2PsvnnNlaKnrl2SRAES7cIjXEmkcyHnZ03/ARJnBQ9/0gkduRUa8avbNZpHyK8gz8nhGJn scS9Mnyfou8SWmFdmeQSXap4HzjZABW0S7ycM2c4WkY9NeCOTkez1NJ7ykFQgbaZcbYymcHJtxB 0iYngEuJS2kmrwy6eLaR6uFuv63DHCLMg9dqcUQ/sKY8fhztkMD03w== 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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); =20 @@ -1289,6 +1291,11 @@ static inline void mem_cgroup_iter_break(struct mem_= cgroup *root, { } =20 +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); } =20 +/* * + * 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 =3D 0; + struct css_task_iter it; + struct task_struct *task; + + css_task_iter_start(&memcg->css, CSS_TASK_ITER_PROCS, &it); + while (!ret && (task =3D css_task_iter_next(&it))) + ret =3D fn(task, arg); + + css_task_iter_end(&it); +} + /** * mem_cgroup_tree_scan_tasks - iterate over tasks of a memory cgroup hier= archy * @memcg: hierarchy root --=20 2.39.3 From nobody Mon Feb 9 10:16:39 2026 Received: from mail-pg1-f196.google.com (mail-pg1-f196.google.com [209.85.215.196]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E607254764; Tue, 22 Apr 2025 11:21:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.196 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745320867; cv=none; b=CBtQogChUDuwOb3EPugMOcG93YoY8txKY3KgEE+jEcwCX7iUXDXdSfxqQkImX/XjzCzwBCXNSIwWWvuVPsnTtvobwX6umJUFlNZnSaHTzJCwziERwxvHL5DaLeGpPCMIe9/VvZ78VPn1I3qF+zr9CMTl+TP4HANB6xZhVpjzeas= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745320867; c=relaxed/simple; bh=IPqThohrNrb14qg7kK50tnIgh5tqBtPfuWv5BV6ZmqU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=fNfTU9G+RhfT3ImNyFerhImKZ+W9sGyem7MrAjkVJRGQ5i4KGwuz9bXEXZ4H0A/hTiq2K+Z5qqHtvZUMMjfzsJ//3FSk91UlHvGEfzGkR7gHSu0vEANC0KOU0jp0vNWfyWFa/48drIgpwKLvMG4CURmH6xyvkR8GZuNaxEuUIYc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=mr4o2fv+; arc=none smtp.client-ip=209.85.215.196 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mr4o2fv+" Received: by mail-pg1-f196.google.com with SMTP id 41be03b00d2f7-af52a624283so4196552a12.0; Tue, 22 Apr 2025 04:21:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745320865; x=1745925665; darn=vger.kernel.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=wzVjEqH9gmBT7W+O25sQBmGvPMeq7/0Zax5Q2ZZ3sF0=; b=mr4o2fv+bvukap8ejUIOif4ssW/pT86jeEmNb5IitHfbic2qydNR5DZM3eUNXx93yi ZASw3kvhOjmamc8zoNjyiI57S1d7yvcvBq5L9T7jaUFpqYA9/YvNqMecifzrW5sROz3r GL2vQtGHVLcZ1Ch9cL9i3v6ZV7sNJm4QVrQ/VWG+EgryxIVZahWykFMiq7niIhkhKCnl F2W5nb5tnBqGoVYJtyD/CimUtSwmtYc1xh45KWU2+vAbwP9V3qXiTj7iSv5vKcPkSdt7 chof5NBrqkfVdzJgfejVAY8iRmSz5VoigJewlN288XLZxbZ3NKUFDk6Z/Rqq2bJhFQdE 96sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745320865; x=1745925665; 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=wzVjEqH9gmBT7W+O25sQBmGvPMeq7/0Zax5Q2ZZ3sF0=; b=NXQHvmmLiu8K99mwKgcmLwT4A4n6DeFOqduE+nZvyNPwVwXggxa+ZcmeYDUDydbeRb umNNYhKjvj8HY3Z5TVjL7TmcEVM0LT9lyWQHqg83tDInB9u3wROKEh+vrQO6iN4FRhxg bHocprqK/NX8UKztJxntiJ9ua1vF+/1vthchsWsldCUUk34a0zUgFvBgLsf+S8TP1XAM 9wR0v03417wAgNz7SmHuXHcYE+KWJziGnVpJfdwp9xRzEB64IoRPk7C+0s2tEYLkCfcU BNNToD1Ew1zrUCUrAs9pLXMxzgipi1ZmvhzOzFe5QX59R/ofgqtOHQU8HAHK45n+T2Ga 3e0g== X-Forwarded-Encrypted: i=1; AJvYcCWwjZ/zi0P4G7kijUpfM39RcUQcFQmpgIVHakY0JYV0CGwUW+bDa5rrGmZ2r22MxZafA2PwHQLwENjXcjFV@vger.kernel.org, AJvYcCXtsCO7Lu9DbiF4cbp+wZ2KMI2XMdxrXAdWGIs9ArZ2AbcZj9sM3jit7J9bIsdwxJxu9twV78mm/+vM0NuM@vger.kernel.org X-Gm-Message-State: AOJu0Yzo5gmmrT/jGxYNghdu7rD2Hcmcd1ZN3xkMkOo/YOuJexvLXXH2 6BXZHMgDwqRjqKxX4OaKkDxyNfno+m2MmEUEdrFvnZ5KkEdmLtwJkx4Hx7vi X-Gm-Gg: ASbGncsembfseCngOiHroz06ei9FGYSVeg4qGUi+L62iwwXw267qaqSFZay2MPmem5H NCRZGHRQ69VFenogj+QDnrJlKbQA/cY5kwdnidcBa9hR2pFTW+zTQ+3nr6vivAtFFdwzK0aS0cr XYf+R7i0HqAw2n2/XsYLyCdkLqh89O8fRkqMN56tk3T6YqkLmG29tvIwgqwVBMvqbCV0zhQl9x5 ICI30FyfyJOIcHDXfgUmlLj44AF6Jz4oqGKv2h9v6cD5oCMm/6dTkhAA6QRsRW1zRillXO+ruV4 FEceLCE5IVOFLkL/44Ryk4Rh6zB6UYjWaQBzEPWpOGMrOwZg41w/9w== X-Google-Smtp-Source: AGHT+IFcLvIZAAA93Q8p9CitaCdEdVo3WX3OoJg88nczIzlRYdY9yiCqeoEyVu9YUpb/6Y/8xaEHLg== X-Received: by 2002:a17:90b:1f89:b0:2fc:aaf:74d3 with SMTP id 98e67ed59e1d1-30879ab03f7mr22438054a91.4.1745320864970; Tue, 22 Apr 2025 04:21:04 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50eb4edesm81987245ad.123.2025.04.22.04.21.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 04:21:04 -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, Haonan Chen Subject: [PATCH RESEND 3/6] memcontrol-v1: introduce ksm_stat at cgroup level Date: Tue, 22 Apr 2025 11:21:00 +0000 Message-Id: <20250422112100.3231419-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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" With the enablement of container-level KSM (e.g., via prctl), there is a growing demand for container-level observability of KSM behavior. However, current cgroup implementations lack support for exposing KSM-related metrics. This patch introduces a new interface named ksm_stat at the cgroup hierarchy level, enabling users to monitor KSM merging statistics specifically for containers where this feature has been activated, eliminating the need to manually inspect KSM information for each individual process within the cgroup. Users can obtain the KSM information of a cgroup just by: `cat /sys/fs/cgroup/memory.ksm_stat` Current implementation supports cgroup v1 temporarily; cgroup v2 compatibility is planned for future versions. Co-developed-by: Haonan Chen Signed-off-by: Haonan Chen Signed-off-by: xu xin --- mm/memcontrol-v1.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c index 4a9cf27a70af..fa57a5deb28c 100644 --- a/mm/memcontrol-v1.c +++ b/mm/memcontrol-v1.c @@ -1821,6 +1821,40 @@ static int memcg_numa_stat_show(struct seq_file *m, = void *v) } #endif /* CONFIG_NUMA */ =20 +#ifdef CONFIG_KSM +struct memcg_ksm_stat { + unsigned long ksm_rmap_items; +}; + +static int evaluate_memcg_ksm_stat(struct task_struct *task, void *arg) +{ + struct mm_struct *mm; + struct memcg_ksm_stat *ksm_stat =3D arg; + + mm =3D get_task_mm(task); + if (mm) { + ksm_stat->ksm_rmap_items +=3D mm->ksm_rmap_items; + mmput(mm); + } + + return 0; +} + +static int memcg_ksm_stat_show(struct seq_file *m, void *v) +{ + struct memcg_ksm_stat ksm_stat; + struct mem_cgroup *memcg =3D mem_cgroup_from_seq(m); + + /* Initialization */ + ksm_stat.ksm_rmap_items =3D 0; + /* summing all processes'ksm statistic items of this cgroup hierarchy */ + mem_cgroup_scan_tasks(memcg, evaluate_memcg_ksm_stat, &ksm_stat); + seq_printf(m, "ksm_rmap_items %lu\n", ksm_stat.ksm_rmap_items); + + return 0; +} +#endif + static const unsigned int memcg1_stats[] =3D { NR_FILE_PAGES, NR_ANON_MAPPED, @@ -2079,6 +2113,12 @@ struct cftype mem_cgroup_legacy_files[] =3D { .name =3D "numa_stat", .seq_show =3D memcg_numa_stat_show, }, +#endif +#ifdef CONFIG_KSM + { + .name =3D "ksm_stat", + .seq_show =3D memcg_ksm_stat_show, + }, #endif { .name =3D "kmem.limit_in_bytes", --=20 2.39.3 From nobody Mon Feb 9 10:16:39 2026 Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ACAD4278155; Tue, 22 Apr 2025 11:21:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.193 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745320917; cv=none; b=OsuptOec+JdqrvYO1zFa+rOiEnKTVAlGS6c3W5X4MWhC5dTsiRl/02ZPnxVlhF84TWeoITv0Kx/GJkDhFGNMtstfLVRt3WiQ/G038K8aHC99IAP1mgJuw1crut+HgEHLuFlfgUAj16cWuYA9jT6FnwdvSqaB2RcziYaM24o+BMk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745320917; c=relaxed/simple; bh=TNRSUrc5TE9XXI3xP8fPvpIyV+t/AfWY9OXp4kzcbJM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=UtegIhsn2QjoYQH8E8ChW06m8sP3u5q1JcnziRyJFH0La3rGQ0xEigQiY/hKB/7qAZ0E8Wh23l0vbLWnplQE/TQnzgcTxUh9uvgdlLjqpAVF2WIi+Ec7FP79tpg1kbzm3lkMx5Q9TNug0NNjVokSmrbl4oncsiiiqb5CQlEjWpc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Y3s4GwlH; arc=none smtp.client-ip=209.85.210.193 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Y3s4GwlH" Received: by mail-pf1-f193.google.com with SMTP id d2e1a72fcca58-7399838db7fso4735947b3a.0; Tue, 22 Apr 2025 04:21:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745320915; x=1745925715; darn=vger.kernel.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=ay6j05mfURnqC8saoeMr6ogRVsWqq76E2aDXfyh7ZmE=; b=Y3s4GwlH4S3rl4+Vet1dT0ofu3r46W0/rhdxISXj1Myut9LxV0cdrKqmy3XtQZLH+m un4NBVyvGkz4ffPdK0IkdHP1UozODMz1pmry5ziMesFHrKSlI6Kn3WyBKRaPskQFw3ti w/AqdpRiuI1AVniI6ijkLZMclHz7gY6GnvxZrq8xjXTSThQ7iBXxcTASC5UXnn3fkW// EHhEzXYPXu8GeHG8LSgUwL2YPVTKvL4FTlvEn7Th4Zgue5B/DlnYschcT3TRGxSjwJjS 0b3Qqxq3HlOHuhSVu7dixFzq8DVWm4TrKU5UinVv2pevqc3BbBv22wKIpZQ1cK53vSdH oZvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745320915; x=1745925715; 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=ay6j05mfURnqC8saoeMr6ogRVsWqq76E2aDXfyh7ZmE=; b=OEE8eDdBMVc32/RASuRG0ErL7B4q4N+4i95tB8YNA0hRbA0pANBgcKZgFWG7+mzuUi 9H+xGZHvPWw6V6t6nryWHZ63vsIkq3qdQrNfkaShabblR2gVUPDQHSJdm+JBq4gMqrQ8 FTelQpu5rO5c26MdCDfe5fqpaIAawCJDPHUSfta5Mo0yw0UEQvcdftsSpxbdwQoi0V95 lTTqEr9obkzsrv1ODlnEzzbR2h8zn6DlYiR8oisSCZw+w3OTAchN1VUsRVrA9cwYiWMQ 0zwkVDxPaOL3MnvwaEG+x6xNnQS4l8Sac+hQ/2yvnA5L/ktDMrQLTrOVkw3Y2qt3qXFT NeiQ== X-Forwarded-Encrypted: i=1; AJvYcCVV/oGORL56HULADHySaBmGlwanTky5QnK7t5UvHrDQ964vwKfcvoa+PxoMJLbBGiEweBvgJ4DVEWLo63jE@vger.kernel.org, AJvYcCWazQmigkX4Y9iQSY2O5c7X3zAfBW3YQwf8tu3uIx/a474v/KXPVWRL9wHsRjO+LD9F1Vv9tKARWnb8Skhc@vger.kernel.org X-Gm-Message-State: AOJu0YwJukqRR53UZ9BeMNXb7V8hrf2iWUe6miMd9QtVZyMQIkmi0Hzl mKYIvU8kSy2SYPpQhk+SuNO1jl3XfvdF/wMxiCvpPwmmEG3yIcof X-Gm-Gg: ASbGncurn+zon+LGcOq1p5a5I5XS9wrUdkWReTm5hvVgZwEYaKZt5IAFRcftlhWdbWL 3D3y21+Bcrj60iejJNL/hxeVBK5y1bsVvwmyuYDaIqrcZVXb3s9ypnMWpKaubjkEs42Y8/1IdoK a/SmlqAHrGiSr40xDej5eIdcFuHMtXxygvVvDTxxyYhQ2fJqOQvQurd8E9r+AFtEqwtC3W7xHcw m3QR6TqlNA64/hsahq0M9+TXg5tgR2K8MjK4wC7yeboCNPCYh9zhC44CMXJTwtm9rAmDPUveqPJ trsEDWXhuaj3P/zS7if7saKHdxBQAqvXxXu3lKo7BsPoIDo9arSF9A== X-Google-Smtp-Source: AGHT+IElSNYl0pqZodwt89usz0QznAvphdRaPmB4R7NXi4Ccq2spidwCw2TN/zF+md2MEsHlG+yqBA== X-Received: by 2002:a05:6a00:6c92:b0:732:56a7:a935 with SMTP id d2e1a72fcca58-73dbe638b2bmr25405958b3a.12.1745320914872; Tue, 22 Apr 2025 04:21:54 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b0db145a6e5sm7117508a12.57.2025.04.22.04.21.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 04:21:54 -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 4/6] memcontrol-v1: add ksm_zero_pages in cgroup/memory.ksm_stat Date: Tue, 22 Apr 2025 11:21:49 +0000 Message-Id: <20250422112149.3231488-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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Users can obtain ksm_zero_pages of a cgroup just by: / # cat /sys/fs/cgroup/memory.ksm_stat ksm_rmap_items 76800 ksm_zero_pages 0 Current implementation supports cgroup v1 temporarily; cgroup v2 compatibility is planned for future versions. Signed-off-by: xu xin --- mm/memcontrol-v1.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c index fa57a5deb28c..9680749f4eef 100644 --- a/mm/memcontrol-v1.c +++ b/mm/memcontrol-v1.c @@ -11,6 +11,7 @@ #include #include #include +#include =20 #include "internal.h" #include "swap.h" @@ -1824,6 +1825,7 @@ static int memcg_numa_stat_show(struct seq_file *m, v= oid *v) #ifdef CONFIG_KSM struct memcg_ksm_stat { unsigned long ksm_rmap_items; + long ksm_zero_pages; }; =20 static int evaluate_memcg_ksm_stat(struct task_struct *task, void *arg) @@ -1834,6 +1836,7 @@ static int evaluate_memcg_ksm_stat(struct task_struct= *task, void *arg) mm =3D get_task_mm(task); if (mm) { ksm_stat->ksm_rmap_items +=3D mm->ksm_rmap_items; + ksm_stat->ksm_zero_pages +=3D mm_ksm_zero_pages(mm); mmput(mm); } =20 @@ -1847,9 +1850,13 @@ static int memcg_ksm_stat_show(struct seq_file *m, v= oid *v) =20 /* Initialization */ ksm_stat.ksm_rmap_items =3D 0; + ksm_stat.ksm_zero_pages =3D 0; + /* summing all processes'ksm statistic items of this cgroup hierarchy */ mem_cgroup_scan_tasks(memcg, evaluate_memcg_ksm_stat, &ksm_stat); + seq_printf(m, "ksm_rmap_items %lu\n", ksm_stat.ksm_rmap_items); + seq_printf(m, "ksm_zero_pages %ld\n", ksm_stat.ksm_zero_pages); =20 return 0; } --=20 2.39.3 From nobody Mon Feb 9 10:16:39 2026 Received: from mail-pl1-f194.google.com (mail-pl1-f194.google.com [209.85.214.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0AFF4205AB9; Tue, 22 Apr 2025 11:22:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.194 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745320939; cv=none; b=ZoA0A28mWaSthwle/u0Lk/lMau4zOL+JWKRVaKmxX3xe9/fkJqBf3C59iwX3Jq35+9GVbOwqdpIvixpV6e0TwusGbAPmSN3t8XPqL1o5HJilEM35jAdNUQLpdKUedMyXtJ6Ncq6Jq2sG0rvGUOuCznqswehpFxM4kDGdgehmqPg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745320939; c=relaxed/simple; bh=SndDk9lFilyFEwknU6l1kVt5eBocGlhdR/QDHNaeOc0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=de4cHqOJfhtpyJG0I0wr3q51eTNOwL+OHFZznWwut8xq2PkHrawae3VEIc3hq1GWjxTOyeYr2nbmRdiDuF6N2bhwTTa2UHJtBKoMmKC5j/w2sTw/ecqNJ+kDDg0NT27TS477YG+E1bmKQwhvBb5ExqGDDZ0+QUA8jlfQYBJeIMc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Ax4LKyBU; arc=none smtp.client-ip=209.85.214.194 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ax4LKyBU" Received: by mail-pl1-f194.google.com with SMTP id d9443c01a7336-225df540edcso60129715ad.0; Tue, 22 Apr 2025 04:22:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745320937; x=1745925737; darn=vger.kernel.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=2tsGpJe+O9OqTQTb4juPo3OSnKvTqZ5uffJhyh+PLhk=; b=Ax4LKyBUPSizR2xSLB5AGeRviAf0RAEfWon9w3KYMlqcMEo6u7XCiCD6c4B1wwdll5 B0lsii7kvpmQm9cjIdtF+BbIzuSaDD06HYd2V0QL8C/r+q6bzU597+vZTx0HK4T15KjS 5BqeL4MKDEi7ViZ67xKpgH7dhVxIAunHVKtfvGRYpaLvDC1nFJJ2uO4FrFoP8w0yfqjX w4zbijMFTWGIDZ5euUMiR8PTgqQBkIfzlCJooGNyH16T6xR+MHVzSnCUnVinLtyth6Zm X3zRK5Pv/xd3rMnUlS9suPu+r8nXT9hP7WcRBD6ztdtaSp/C/Yao4W3myRO2jRjsF6rc EjRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745320937; x=1745925737; 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=2tsGpJe+O9OqTQTb4juPo3OSnKvTqZ5uffJhyh+PLhk=; b=xGMeAwg9APrIG2YpZQR3a5E7JCKzZsHe5ZmC+iZeTqKnsBTYwmPy48j582ZWRrHUKk z8/n17Gy9HAlBGVYZmyPpuPYm9XUdBZS0F657mO/tEzvOH5n1XcP6DMq2qzprpYsQlEI ovEpO2T2bpByAH1bCLIt9A9oxnsTz9/V/DSk0AgUGgbNbFx5oM3lRsbrRk7JgQe3/GZ9 1d6jTgyh9UVGEQzdrkzUTLyLGIPYqEoGKeQ30Cw/BlcJdXd8zPluSuko/+a2KxPyY5DH 5UsHZR2cQRpODPT+fGXkJdgz+1Q0VZLl+KC8kj5hPme1AzgnRSjHXtl346diNDqgGwWl ZmDw== X-Forwarded-Encrypted: i=1; AJvYcCUjNOIS4ffp/b5FtDMSyLaK95LM3Bu78uthgMTWiXxPhwBkVT/Gk2IkdDM7kQXlidu7pdyWvJ1ARlZdX7iB@vger.kernel.org, AJvYcCXrNiVkj7ftXf87d5qlvQsDwOTWtEqHpPmuZKIo32qgQe0bhwuCZ8RNZAklg0b9yr78/1PMyc2zg2MuW2hK@vger.kernel.org X-Gm-Message-State: AOJu0YzASaUxNo0L2IWlD1yd4cHFMbR/CkD7V6oyZyUQp2VXp0sToBMz RlICc6oln2YweXXOD90rXxAcfMnMKEYMFSATzwFmrwTYOZc8YJIk X-Gm-Gg: ASbGncsBM/z91HVjai+MwoliqrY7uAzt5mJOEuhMz2p5ij/QFs73NKmYxE7e0okKfWh VMv/BJgn5zH6haHttsj8oQQL7dGQZ2vK1iVtolaAVNefn2C8XI9/qdjywabctgARMm0hxDYSZZ8 Mj9KiP9mFT6UFk992uAGnOAIhw1hzG/ync6ledws9w6vXhO2f8KgB8xX2aOSatPr5Z/s4KG3nsp RBZtDxsx4Xpm6MhHYyd/w0jJPySQwPrchTYZvf7DlMoc7P93JDgves/cWaKnLoaIoXO1G2QnGZe grNW+3b4COZw8G7Uz8VFBFKyA9BPcQccSQm2nwqsTZUFqNIPhXt1pg== X-Google-Smtp-Source: AGHT+IHy23t8AgZCMB1Zqlq4/iHMXi+C3dmbU8ydNHYxbJB1789omuobWf3648UiCWa0uyaOf1mJmg== X-Received: by 2002:a17:90b:5608:b0:2fa:1c09:3cee with SMTP id 98e67ed59e1d1-30879bc43b7mr22723221a91.9.1745320937116; Tue, 22 Apr 2025 04:22:17 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3087dee8956sm9504847a91.8.2025.04.22.04.22.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 04:22:16 -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 5/6] memcontrol-v1: add ksm_merging_pages in cgroup/memory.ksm_stat Date: Tue, 22 Apr 2025 11:22:12 +0000 Message-Id: <20250422112212.3231548-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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Users can obtain ksm_merging_pages of a cgroup just by: / # cat /sys/fs/cgroup/memory.ksm_stat ksm_rmap_items 76800 ksm_zero_pages 0 ksm_merging_pages 1092 Current implementation supports cgroup v1 temporarily; cgroup v2 compatibility is planned for future versions. Signed-off-by: xu xin --- mm/memcontrol-v1.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c index 9680749f4eef..7ee38d633d85 100644 --- a/mm/memcontrol-v1.c +++ b/mm/memcontrol-v1.c @@ -1826,6 +1826,7 @@ static int memcg_numa_stat_show(struct seq_file *m, v= oid *v) struct memcg_ksm_stat { unsigned long ksm_rmap_items; long ksm_zero_pages; + unsigned long ksm_merging_pages; }; =20 static int evaluate_memcg_ksm_stat(struct task_struct *task, void *arg) @@ -1837,6 +1838,7 @@ static int evaluate_memcg_ksm_stat(struct task_struct= *task, void *arg) if (mm) { ksm_stat->ksm_rmap_items +=3D mm->ksm_rmap_items; ksm_stat->ksm_zero_pages +=3D mm_ksm_zero_pages(mm); + ksm_stat->ksm_merging_pages +=3D mm->ksm_merging_pages; mmput(mm); } =20 @@ -1851,12 +1853,14 @@ static int memcg_ksm_stat_show(struct seq_file *m, = void *v) /* Initialization */ ksm_stat.ksm_rmap_items =3D 0; ksm_stat.ksm_zero_pages =3D 0; + ksm_stat.ksm_merging_pages =3D 0; =20 /* summing all processes'ksm statistic items of this cgroup hierarchy */ mem_cgroup_scan_tasks(memcg, evaluate_memcg_ksm_stat, &ksm_stat); =20 seq_printf(m, "ksm_rmap_items %lu\n", ksm_stat.ksm_rmap_items); seq_printf(m, "ksm_zero_pages %ld\n", ksm_stat.ksm_zero_pages); + seq_printf(m, "ksm_merging_pages %ld\n", ksm_stat.ksm_merging_pages); =20 return 0; } --=20 2.39.3 From nobody Mon Feb 9 10:16:39 2026 Received: from mail-pf1-f195.google.com (mail-pf1-f195.google.com [209.85.210.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C337B278167; Tue, 22 Apr 2025 11:22:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745320979; cv=none; b=s1fmy80UEbXq3FUffIG8bfuT9/z8PZtYAyM9DJB2vTKzuZ/lBKs4KR5qdG/NQtVgEa7jKsLruTh3tRMjH34qCjcq/hyUUta0YFMsuIO0VYJ7yCRhjXCX4/5iguqe2aoZR4CWVGIPCfPJ0GWFxuaL0FZkYx8CB3bw7jKZMPjU4ZM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745320979; c=relaxed/simple; bh=pzRMD7fDKf99WmyFQqJWme1aUHdFSU9HM/xTQzrFw7s=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=u+1/dWweA0g28AAH8VuYtgXV1ZoS853ds9st8or7Wsfq/xnyk2OyFIvoELc/ydlnVl4sdP4FXkcwFOZpANPcUtyjIGwgREDu2BWoXRQtPNxCDANEnYbpnT31aHRb9s0fs/NTwxaquGVaIyY42GV5fWI3feHPowylIQ5jtpysqX8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=SJeGi9p4; arc=none smtp.client-ip=209.85.210.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SJeGi9p4" Received: by mail-pf1-f195.google.com with SMTP id d2e1a72fcca58-7399838db7fso4736823b3a.0; Tue, 22 Apr 2025 04:22:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745320977; x=1745925777; darn=vger.kernel.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=aiGSkrm3DgewfYaP+Izlu7kFJeequ2GOc9ocYH0CLkc=; b=SJeGi9p4HqbQfsXOKRGSPp1jio1xxpXvcvcr59dNEMjJo+ireVqYGcwdGoE/O0Bxl/ +IWjLDMxtPn+LCQYkxTC+LyyddLxrCFT4pHQSLdGzRLEWWjJtdb6nPK5XqSxXP2rCo9t HLillhaajUuJrENz32Yl0LNKTjfVKoBouEmr/PSOSYsjNOvKy3kArcXLiifF73PuqHkx EOarv7v9dLKtC3kInf+Us/1smD/uYrOJlRBNAvtmXUvxBz/NWqvhuz63NTZzxxT5p5xu SGT6EKQEnwiQiyLnF9ZXrpHW6wKbBaL/JGJboKaT8Y2dQMpTmhWbEiqg/Xnn4tsTLL1l wJlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745320977; x=1745925777; 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=aiGSkrm3DgewfYaP+Izlu7kFJeequ2GOc9ocYH0CLkc=; b=h5T0ySxHdJt0fOxpeWbBeqmV+L+ddtBwpHW3n/OPdRqkX7oGTL4bGOPe7fESIcKpK3 Foc29OF5J0dbveoN4KCe2N+YRfKbsZPbwIYNOSMZR+tNq7IdCx+75N5DlLUHtcl9dTrZ bJNMZ7qtPXy5lCUWUTaw9scclQF3C82dcfeauJeCrd/MjL4+0MFlcQ1soXfefcsd4neI MaxpQQrPpAggHapsCY7mH9/DjxXh4VKUam4JuIYqmli9C3x/rHVwGuk5VtU1Tk18n6N6 Y6oky5vZzoEfLSdN1pGvXD/3QUfl2aKCIOE4DxPRbDZ441Bzld+oXZyAp/XECJ2T99v3 DDEA== X-Forwarded-Encrypted: i=1; AJvYcCXCl7Uvl5YvYOEnxhorZXCbodpm88gBOTW2hcSRvzkxX1o5AtInWSM5eMd9Hfh5Asqzo3XBdRUrWa7OGEnR@vger.kernel.org, AJvYcCXQBJDiKikQpdfPhYkLAAIbMzESXZE1VG3FPggFbSvNo3O9CNYIF69ePMfn1fgi4ZRJJi8SldCWjEgMMaQi@vger.kernel.org X-Gm-Message-State: AOJu0YxFdDGXzO3mr5AFeMo/cDu9vU5QjZk+bm69HDumUiXWQ3BiA7Em fJ12UKG21CVvwy/nnUUl05wOKLXFgCNWMa8HXVQmCsgazVjolc2P X-Gm-Gg: ASbGncteMKK6xvfSIN2jaCvQYmNmdehUNp87GHoTwIh497K7VEuH+AmnSS3/CPv9D4/ VefNiuSPY/OZBYTk0h2jak+r94gdREBzHWk4LAnZgnGkfi3vjvx3aDJbEjLXZTOhtm1WCEb4+Tq aSHca85DXpDcdzWbL0Tis28M1R6wJ3kIeyJ8O0ar2hgmbW6F9M7eUYfyGyRZUa4WVQY1sjGatxY nYA0Ukgkwf4RJWzb1Uog4i0qwLmQL4ouhvPiZmUGLFrZZgR7Kmo+GITnZYe1elaUU8aB0B+Fm1U C5cKTs5/XPiA0BoRIwhGPF9Y0RgwnJDV5wpL18YkHL1QpcMeOlhtLQ== X-Google-Smtp-Source: AGHT+IGjecXBs7xBC0/rqoGxfRjHsEUBjW1ci/D+q51pdPyQkmzahn2l0dZlrCg3rUyHbG4WAEIaXA== X-Received: by 2002:a05:6a00:2c86:b0:736:4e14:8ec5 with SMTP id d2e1a72fcca58-73dc1b78556mr21412590b3a.11.1745320976914; Tue, 22 Apr 2025 04:22:56 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73dbf901143sm8318136b3a.73.2025.04.22.04.22.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 04:22:56 -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 6/6] memcontrol-v1: add ksm_profit in cgroup/memory.ksm_stat Date: Tue, 22 Apr 2025 11:22:51 +0000 Message-Id: <20250422112251.3231599-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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Users can obtain ksm_profit of a cgroup just by: / # cat /sys/fs/cgroup/memory.ksm_stat ksm_rmap_items 76800 ksm_zero_pages 0 ksm_merging_pages 76800 ksm_profit 309657600 Current implementation supports cgroup v1 temporarily; cgroup v2 compatibility is planned for future versions. Signed-off-by: xu xin --- mm/memcontrol-v1.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c index 7ee38d633d85..2cf2823c5514 100644 --- a/mm/memcontrol-v1.c +++ b/mm/memcontrol-v1.c @@ -1827,6 +1827,7 @@ struct memcg_ksm_stat { unsigned long ksm_rmap_items; long ksm_zero_pages; unsigned long ksm_merging_pages; + long ksm_profit; }; =20 static int evaluate_memcg_ksm_stat(struct task_struct *task, void *arg) @@ -1839,6 +1840,7 @@ static int evaluate_memcg_ksm_stat(struct task_struct= *task, void *arg) ksm_stat->ksm_rmap_items +=3D mm->ksm_rmap_items; ksm_stat->ksm_zero_pages +=3D mm_ksm_zero_pages(mm); ksm_stat->ksm_merging_pages +=3D mm->ksm_merging_pages; + ksm_stat->ksm_profit +=3D ksm_process_profit(mm); mmput(mm); } =20 @@ -1854,6 +1856,7 @@ static int memcg_ksm_stat_show(struct seq_file *m, vo= id *v) ksm_stat.ksm_rmap_items =3D 0; ksm_stat.ksm_zero_pages =3D 0; ksm_stat.ksm_merging_pages =3D 0; + ksm_stat.ksm_profit =3D 0; =20 /* summing all processes'ksm statistic items of this cgroup hierarchy */ mem_cgroup_scan_tasks(memcg, evaluate_memcg_ksm_stat, &ksm_stat); @@ -1861,6 +1864,7 @@ static int memcg_ksm_stat_show(struct seq_file *m, vo= id *v) seq_printf(m, "ksm_rmap_items %lu\n", ksm_stat.ksm_rmap_items); seq_printf(m, "ksm_zero_pages %ld\n", ksm_stat.ksm_zero_pages); seq_printf(m, "ksm_merging_pages %ld\n", ksm_stat.ksm_merging_pages); + seq_printf(m, "ksm_profit %ld\n", ksm_stat.ksm_profit); =20 return 0; } --=20 2.39.3