From nobody Mon Feb 9 15:48:39 2026 Received: from mail-pj1-f68.google.com (mail-pj1-f68.google.com [209.85.216.68]) (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 01E9B1E5718; Thu, 1 May 2025 04:11:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.68 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746072705; cv=none; b=SXybPoN+Ia+J7J24/81mjSMCU6J/ZUPeKf6oixSise5wMXIkik1VoxXUY8LkzSmUc0HOSVJSDsM7DZewhpdL63m7nzoSGM8/TUiWlnqrRs8nGWf71+kmCTypt/k1tS4tHIZSN9GuFEZ030WjbV2/bHHZTnjdDKMfafPiPTELn7Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746072705; c=relaxed/simple; bh=7mMCNb67c5ihis7cYh/q8iG7Q8XEwTqHfzL1JbKgnPA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=poQwJfQR0Cf2Nf/jcS7mI2jGhc0vTuInkS5sIkZgdMIMWmPxccYBX80rF+/6cFJb+xxs6aCS6XZO9M+EwFrA9MpyzsJX3MVltHwFtRCH9X5L7OssNcou4s/MOm3O5RiqVia7d4nRPgKo8nT/M5qbG5eFv6prWnn1N45nVH5X34I= 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=lzS10+jx; arc=none smtp.client-ip=209.85.216.68 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="lzS10+jx" Received: by mail-pj1-f68.google.com with SMTP id 98e67ed59e1d1-2ff6cf448b8so785555a91.3; Wed, 30 Apr 2025 21:11:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746072701; x=1746677501; 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=XHIMhaHRLvw2RghH/IB5uM/em0iRZ35SCGJ4beGxlKA=; b=lzS10+jxZl325CMeQUh+ojHx3EoecjTwEN6TF6cm0R+eFHpnHk4MLbPFLrn0kN4Ez4 WY7wjfnzOngrV7EDZ0/O2dQx0BgKr/UbIwWJw1QgKY326IU10gVYBFAwEZH81JvbJbYR fe4H53LKQwgHpndCk1a0+rq8gkg6qUj7X9ROCAY3/Iq25hSdDtj9dvbRgxmyIM9D1qoB SwUjuPFwPueY//AQpG0XZzuVTBNM3T1icNNmJpTcRc7uHNaldhNVaPbEbnqUUWAr34p8 NV5qh/9u9lx15T0397FE3/0AeTa5oefF22FS7dLVZj6r2ncwAn4a8HIXcUlCwUBA2aHj RLGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746072701; x=1746677501; 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=XHIMhaHRLvw2RghH/IB5uM/em0iRZ35SCGJ4beGxlKA=; b=MIB6uBduM6CYZ1cyDV4Q8gfrvpjntFaLTgNL4Uf+z8JsUGpeaFXHfYiYTPuhb8hy0D 6HMmlOm0pyY+ZGIG5iiLS9yUSmj4LLshqg2CURolgpyDa36t00iqCWeeWtT4MzTF2tpf o4G03ifq3rPA/03B57IKFfiqZvJQ76UEltFD32EUu8aTX1Xez9IiPJz/PQsEh5UTJvwV H1u9JMDXsuhuCRrbKUlbJdYDEoKGHR7bbEMueEjRS3rOhnEF5lSXvRWK5FJBsWXdUEx1 eO3YUXl4hh7l3xx0iFal4u1Wt54OJR5pHCIoQMuYpa0k3Y+BFqCU2NvrVh8Kb0gT+6Sx FGQg== X-Forwarded-Encrypted: i=1; AJvYcCU3Zs6/hlvliqWT+Odfdl33fgujM8l3fOPeo1mHosoQSxlp5+B3z09vsS3GGg3N79buu32mQImSRIzOoxSW@vger.kernel.org, AJvYcCXG86y23WFnzxh5Lg0C1zHvpf9AbVL4f+wnf8/6GZBbz3kjTN1S0Mevop5mVVIfAZHIm0oMKfmpsrOUNGl2@vger.kernel.org X-Gm-Message-State: AOJu0YxLTLjX2gjDF9SaJg/u1Gmzq4pZkMySS7akW9HQ6dN9OyCaZ0Iy 6qAmi0+f4EdbyRSy6XqnNoiycX6ujSuDShnqZVKM5AKvY+9aTeHI X-Gm-Gg: ASbGnctI9Qz5JeF8K2Uc+o25t1cI3gUBMALgJgkOvN6xLlnNW9iB1htC9REEU8P3C4u 7uEGR0SLu9xs/YiMegIe+jfiFUMpvX96IsUoIzUuwmGZGGJk/MNoTbYxf3AG4i1mzUYRc6pSVKT re8AFPzDng3t95DdlLgNx0uODOO3e4wtK3NIVbAbYVs7VnWkiiqLECWSLzJ35LK7GidpmpIwhdM t2tcfGLH31eeSc8n0tp8hmRKVGwttA2hUny1zWTVXwVRdgWSg1vPAyIBLeCb4Eudgnr2VVBRjwV pJiz7GUG1UFKF9/9UCzJBxajo+9d8n2IfZcVbx1zInRLPqPvgXeszg== X-Google-Smtp-Source: AGHT+IHqhofn4K/pgs3znTQZX1F5DniK/sLpCE6lLj5At9RS50DnqHAWsyd8CLPEel0uElii4xTipA== X-Received: by 2002:a17:90b:2704:b0:2fe:b907:562f with SMTP id 98e67ed59e1d1-30a400bdae7mr2792257a91.14.1746072700887; Wed, 30 Apr 2025 21:11:40 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-30a34a11adcsm2549916a91.26.2025.04.30.21.11.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Apr 2025 21:11:40 -0700 (PDT) From: xu.xin.sc@gmail.com X-Google-Original-From: xu.xin16@zte.com.cn 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 v2 1/9] memcontrol: rename mem_cgroup_scan_tasks() Date: Thu, 1 May 2025 04:11:34 +0000 Message-Id: <20250501041134.3324145-1-xu.xin16@zte.com.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250501120854885LyBCW0syCGojqnJ8crLVl@zte.com.cn> References: <20250501120854885LyBCW0syCGojqnJ8crLVl@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" From: xu xin 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.15.2 From nobody Mon Feb 9 15:48:39 2026 Received: from mail-pl1-f196.google.com (mail-pl1-f196.google.com [209.85.214.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 D04331C5F18; Thu, 1 May 2025 04:13:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.196 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746072838; cv=none; b=nqCqPk1euV27N7Hmj44tDHnJD/1h9azrlkJ3J4NO+wc86aRKh3XLx4pX8aQdGTqPyavh3avAn/m2JT5FqRTKh0bslSRu7H7PS0wTsF2g+w2HmblsmvizQo1CK66/APuuK9yzZtID+ryTLuAsRQrRW4JC2PA7ak8YKY5Qqoccfeo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746072838; c=relaxed/simple; bh=Ps6lR+ljBYMMnnb+sUxwpl0fPXuAzKc2idDDdy9QQi8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=MEHjxxCBhusyo1qjvbRtCEQfCnvGGs2m8QLT9beLEMXoeMNyWR6gVfYd483POBi8AUjYDRowV7AbnYQMf1dexyc8a80LUXvPNvv/nkt8VuqOG4SiEJsCIMpFBhH5kWAa6prZwBmcj9WdArJeTooDnEsXIfJOZ9/xljYSvyWp+hc= 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=RmTtlDBy; arc=none smtp.client-ip=209.85.214.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="RmTtlDBy" Received: by mail-pl1-f196.google.com with SMTP id d9443c01a7336-2241053582dso8319355ad.1; Wed, 30 Apr 2025 21:13:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746072835; x=1746677635; 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=CIk5P/ejsLPrdbPMn0Ve6H4xUkHSSg3SisVuP8kmDBA=; b=RmTtlDByxknIsdoShxX0RKoLQBCJ6u3QT3cBNjDtl5mTZAltY888TJgQg1CRKxvuAo BxqwotnpYYGCQx1pYg+wj9zEgc4GSGrcJJfQcWDgh0jWGDB51xlLx7BMZgYnaV3TbqUG aHCOYPkj9ETSFhF4t0IUfwGRaYsBSbKOn1p7qtNgIj1uqUaKEqB7L3Fc6ztpd2EUv72D ZRnR/bQRvaLUWjtpdLcUSu3cS+EvrHK4AKVBnrLp6v2432B8zTmgFkSbZAojhnoNlPzu DWosUhpv22uPB+S7DNkN0wLt9IzTU2bo1BLZh0Hsd9uuGyqUGLS7p+Dvt2dUunFUCLQJ 3VBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746072835; x=1746677635; 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=CIk5P/ejsLPrdbPMn0Ve6H4xUkHSSg3SisVuP8kmDBA=; b=iwyoDY/ij0YgO/DwXfZ7/6hNP4bR/52Exph2G7B4M7JzpEQH+PjDYuvF+LvAQgB5QA GI2a1wJLbFUbdUVBszEa6aiFBI+NFRspEVutQfkl2I+ZJIOpOOKUHzNEo5XuIB+hQP+J YlflxufMUGBfkORCnuMtNIDnRf1Z31UDDCs9z9fN3lhPc4IGbi+vLwRcveibvtIWekMY 58gTiWUDeeSJ08PIIFsBMuIEygDVUTFQ68CF8AVziawiOGF4JoR6R8zVvmY3UG2pWgFT Zc7qr0P+gBvCbNIbSje+uRtpt/vXpxUfI6FBqZvnPwixGb0/XZr8Lzx7ZmqsVEqRu9Ir g5Aw== X-Forwarded-Encrypted: i=1; AJvYcCWETnaR3SRnTS0HgSyDg9ColWLT+hdumHpNR4K4z8hCE58AVhsjqruNMLBVLA4Xk3F7BAiL1Vdk7MLrLQ2D@vger.kernel.org, AJvYcCXX9kgVmMvDIW4IVtDEOrnB0yFRLE3BajB6DwU5seE2PYxE5hP/jH7xZXOSQTA+SRi8MXIt5Z88ukldq7KH@vger.kernel.org X-Gm-Message-State: AOJu0YxT/FxKHz/N7QNVqlKAlEpOvc6GiiKRyWVsj+ZD77UHDjczHIwC 9TWQK8/3q0KgX3YOYRpi3SVedpZlWxYlgH/O488AuMYCtUTQ6eYj X-Gm-Gg: ASbGncsEI++gCKs72JFVYFmSePYGPhBtGYP/UiuW6sJF3m7DnAqLw0i0kccfeayv+t0 QPzmjH1H5vGAolpQpbQDSEmM6FKN6fxfmur1Ss5V+7x9uO09lXeCtqtCHd3Jb87dSjNsY9q0Plf od0MgjxrxSPd9596GY5s9qfb1HAV9hfzq//xO/EBq7iDCnL0ye0RebrLkXAfKOkfdTbibWuLy2T VmPoa/EhDOvP1GoUu6eBPbCTKll7kyyQm04CHCWgqyxsaHfp9L49xfIg/c4iKOPc25Z+soZ9N/F Wg6RpGEJA5MwDUb+rM5cGuTPTlR4f3KEtPtIHJP7SCc3/QPBSdOyJg== X-Google-Smtp-Source: AGHT+IFSpSg6g2ApNTApEGIeTJvR6iuG7EXlp92mzkJ/HA1tiLw70I+wddiypjYWmIRDhTC+3u9n2Q== X-Received: by 2002:a17:902:ec8e:b0:224:1781:a947 with SMTP id d9443c01a7336-22df578bce0mr78813545ad.21.1746072834969; Wed, 30 Apr 2025 21:13:54 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22db4dbdce2sm131036025ad.85.2025.04.30.21.13.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Apr 2025 21:13:54 -0700 (PDT) From: xu.xin.sc@gmail.com X-Google-Original-From: xu.xin16@zte.com.cn 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 v2 2/9] memcontrol: introduce the new mem_cgroup_scan_tasks() Date: Thu, 1 May 2025 04:13:50 +0000 Message-Id: <20250501041350.3324212-1-xu.xin16@zte.com.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250501120854885LyBCW0syCGojqnJ8crLVl@zte.com.cn> References: <20250501120854885LyBCW0syCGojqnJ8crLVl@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" From: xu xin 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.15.2 From nobody Mon Feb 9 15:48: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 77FE322F749; Thu, 1 May 2025 04:14:25 +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=1746072867; cv=none; b=gzB3hqQSjNyaZyXPH0OGwqHUgt9dcpjQZRtvIVKKFmxDW+bSwqXkajVROkGEPx1RA8PRCSlCFRW0lHBwH7v928RftWmsdzp/WoKNMKdY6RRxI/kmmLf20jTJfbvBWtqfEGQKPDbYr3r8TLZNghxgivsOYEIktvrcRDAn7/ipDvg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746072867; c=relaxed/simple; bh=tIrJAgCP68nCudViWm5qwZYmcNHoXqmvQI6Qg0l4gBI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=FG47zOuc/Bx5AyAmxcw5pchOpkFO9sb4drjpsphxUMhHu9eB9GIjRyLRBqAChZQjBBd3Q/DEqD1wENvPK200Ij70xlIKMEpwA4cun/rHIE/xcv4S2Dmg5DqbvdLgka0vGRMjCOTQd9noXt3sIrU/paKJ6C1ZL5dNqUn9EnM6xUA= 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=MMyHOVne; 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="MMyHOVne" Received: by mail-pf1-f195.google.com with SMTP id d2e1a72fcca58-7370a2d1981so483287b3a.2; Wed, 30 Apr 2025 21:14:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746072865; x=1746677665; 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=mRsldxeP3L7LcldfEvyCBZ645cQKKVexyC6xDBrpilg=; b=MMyHOVnerGBIeWIEOvKhYlLarJk8xenSLf4hOJYlNjiWENjEfCGHXlr9S3tSyz05rZ xG2s4ROmwCyOPpRx2LY2KLJzNrgeAb1WrIiuFgMOAL6n0KF5mDQTfJUx7/HahgIJGhxQ YFQSNmnZ7+ACewnnoqh3xHDfG45My1F2scLecjI7uVJ69bn5Ec2NAoB0kAx19jFrEpsr PdMY5wfgr5LDSMnfPSqv2eIblJnAgfagxojUIYRdMOWC5jgLqZuFDAbE6tFUbqhXklrB bK6dWW1zOZPhuFL5ZztdyUJRWzZBU3ZtgV+boat3vUMj00rC9+PDNVXV2q0eswHjs7vu 6RgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746072865; x=1746677665; 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=mRsldxeP3L7LcldfEvyCBZ645cQKKVexyC6xDBrpilg=; b=BiGiBD7O6qcYcFH1wgDvW/6uF374aqub441xqzrsW/PbPGYioZ/UAZghQ19g6TXBic ksB/MQiIBvDrTc18ZEt8xFsRt5+4UFaiNED1wy9VjDMxB/uTIP4eMwLYbOB3UMYc3Wqt 1Q4w++v3J1SrgVX/6jTQX3luOUb7X54HZfnBGA2QZwvI+J2QcqPNf1kSNhQkN0Jf1SqZ kr5ZPyrjVWX55nkbrPLPrbCK6FiqwK6ucZLNt3985gES/p3dr86fTGgeWkjQ5S2pV13o wYLiD4ZllBPs0YNkmGvU7yRtr7wOF8b0UKdkgssh4Y4oWl5WYDBah9YM6gppDesD5rf6 OmDA== X-Forwarded-Encrypted: i=1; AJvYcCUAZNVQpt2B3fXxSOYs3mBPugEXNnipx9bYgdNIknG5PuXXs5i8Gh0E98Bs7BFB1hVUgaJ/qlMxdoYvKWQJ@vger.kernel.org, AJvYcCX+sfQ8gQoWCULbaimTcJHGtHwfwZfmAI50/FBUKyFNfwDOk/lTpahKTF8m/x7TpDDKvEWAG2rTLjyEI4Io@vger.kernel.org X-Gm-Message-State: AOJu0YzXH8GkxjJkFtN0tISNwz/as+Pmpu/7R+e76rqs5DsMJ7KV9ncE KpZHk77I0wNqfMUNhEFnu2NIQlU+4xiJnmPh05vTPNmmcDCdiDXx X-Gm-Gg: ASbGncupKoJytCrmUVHxI5Gy7VVUS88D9JESZv3wNGs6agbRco6a/RoDae3536SAcek 5vmSqalaQju8P2Zi8lUMYOwnW3R3bHxkg3bU37pKLv3TGdGfeUlwlx3INCfg/YVNtuzA//Zti1T dKAtS5aKe/2kXzora4LrVbjbzvwFLVDSkbVnkCz/0Kro10flChnWE6moRd67gnWnZp8LruTA9hz OWSvitoxI7O9tr+WI/DCv6+DMkxKe698WBhYa/WBCRb1vsC+NGNf+UeXoxOPYhj8Mx3gB52kPW1 Ry0ZQpbS2b2j4isnTQA880ZHWnCcZvGmYpbaQOSZiJ/BIIdum51HPw== X-Google-Smtp-Source: AGHT+IFY/cCkGicCkAIMvgxbCrgAAD6LUmISXFDWa/nrZSZ7OZtQqHaWxeuAu+qJqAIisyQhhXqtSw== X-Received: by 2002:a05:6a00:3e1d:b0:736:9f20:a175 with SMTP id d2e1a72fcca58-740477650ddmr2394745b3a.2.1746072864580; Wed, 30 Apr 2025 21:14:24 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7403991f046sm2571637b3a.41.2025.04.30.21.14.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Apr 2025 21:14:24 -0700 (PDT) From: xu.xin.sc@gmail.com X-Google-Original-From: xu.xin16@zte.com.cn 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 v2 3/9] memcontrol: introduce ksm_stat at memcg-v2 Date: Thu, 1 May 2025 04:14:18 +0000 Message-Id: <20250501041418.3324279-1-xu.xin16@zte.com.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250501120854885LyBCW0syCGojqnJ8crLVl@zte.com.cn> References: <20250501120854885LyBCW0syCGojqnJ8crLVl@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" From: xu xin 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 memcg-v2. Users can obtain the KSM information of a cgroup just by: `cat /sys/fs/cgroup/memory.ksm_stat` Co-developed-by: Haonan Chen Signed-off-by: Haonan Chen Signed-off-by: xu xin --- mm/memcontrol.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 629e2ce2d830..69521a66639b 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4388,6 +4388,40 @@ static int memory_numa_stat_show(struct seq_file *m,= void *v) } #endif =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 int memory_oom_group_show(struct seq_file *m, void *v) { struct mem_cgroup *memcg =3D mem_cgroup_from_seq(m); @@ -4554,6 +4588,12 @@ static struct cftype memory_files[] =3D { .name =3D "numa_stat", .seq_show =3D memory_numa_stat_show, }, +#endif +#ifdef CONFIG_KSM + { + .name =3D "ksm_stat", + .seq_show =3D memcg_ksm_stat_show, + }, #endif { .name =3D "oom.group", --=20 2.15.2 From nobody Mon Feb 9 15:48:39 2026 Received: from mail-pl1-f193.google.com (mail-pl1-f193.google.com [209.85.214.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 06BA41C5F18; Thu, 1 May 2025 04:14:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.193 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746072891; cv=none; b=UICc5AV5oqZVRcqycT3/PigBzNDJTPvg6ZALKmnPd5n7ZucsVVth1kVzL6wnX4xs7LUHQM7ANsFAjdNOSMSFILHXyQeOuYgqq9I76b0H16BaTOwkaUOVpxWk59BEbt5IdamuujBUH3o7wSzR22fBP5v02hLttP7pSqLT5cusoVY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746072891; c=relaxed/simple; bh=esfxzeKdg1MJfuXOyTZU+V6sbcqs+o0YVZAGE8mnaVo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=o80wopBBCI7hqkXQ10DfSkOeawOM/zqA8wK+ZvRuPp3TqgmUileCe/7HY1JOh8/uYLd8v0qu5HeXdOHmScs4ehWZIbQR+OgLJJLq+Ow9sbhyf9BMNKq1CBrxU3qfgTxIWv5L0ObuXKbfJLoZyKDgM/Cvm6BesdwkAnbwQoGIfVk= 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=HyejidQy; arc=none smtp.client-ip=209.85.214.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="HyejidQy" Received: by mail-pl1-f193.google.com with SMTP id d9443c01a7336-227b828de00so4908325ad.1; Wed, 30 Apr 2025 21:14:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746072889; x=1746677689; 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=6SiLzuAtNq2HhU1+JMyDly4I1nWdcHwUCD3RbB6Ax1A=; b=HyejidQy+dvizaCZweY6S/Iz3LEFc837Tn/jXkbja8cb8QLlP+FOnIom9SDhxVROnU HiuO8RcAfsI6adexhq8pKGPPMWw4vN4iTehYrWAcsX5uBalONG99ZqW8fVCfFieKlKAa 4aCo8HQsQFVIhIW3UW/3kPO/iwZqBvz7Lw24wzgf4Z3fIyTx/McMQgQ96PEBTZoNTvWX UWmh96p8BsX4eUD9jeJx7HTkM71otjMniTwBg2fAjkKqCeOQUE/e/kbUuLVLQM318dr7 lSn05AVUIqkM3sgwCGbDK282Dr8GotBleiun+4ZTRSrlx0UqGleybyGrm9fq8i5qNOaE ybWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746072889; x=1746677689; 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=6SiLzuAtNq2HhU1+JMyDly4I1nWdcHwUCD3RbB6Ax1A=; b=iR4LjzklNvDidKqbYmoJW9GFDefDUxlenxrlJugk9xj8aDZMWw3IVGlusu8lM/urd1 BSCC+3XqYRfbQ2zSrIMt4rx0FmzuwK1tzWGn7XmsM2U0M9AqR9E6PWBtpRoFJz3yzYip r+kLYtAWks3kNbwS2kub3tgH0J3Uua2nmrOfhqfuLFZp9f/PPZM/cIA9sQMeiULF/E/n xhoUGV+bAnfYoGkJvOtSvLIHeK8m9mZv5tSdiLI07laUf7rFTP0KkB6XCdZ/TMAQnFt7 O3KNt8uEUPNprmH5IF76Crl+qJXtjQcujZasnhXgf5PvpvyQ/aURfaaNkFtGIOP9cpsU U4TA== X-Forwarded-Encrypted: i=1; AJvYcCUEpzQSmI64/DD41MWYIUGFKgVzxKTpJSgAaWbbOzBsRcmBzRi8u88kOfx+oU6hNdgFn9fBDxYxyJPx90F+@vger.kernel.org, AJvYcCWCZuazJPR/3wq4EQccwwdqDXE3NP4QNxftGVVI5I2OslghcAFGhKX9I5BoDW3gxq/8gFiBPFIuPesO+/Lv@vger.kernel.org X-Gm-Message-State: AOJu0YzlzTJWh3uxWtNho/u8PJXAyLojs7gkmeunwTwVeZYYsp1VcR8g NnRPsR0O+DcC2++svMIk8m6+velAhJ7edauXkfJvGKT82LZDtgd9 X-Gm-Gg: ASbGnctodf55948e7zRWtZg4BYbBvTpM1wrobCfdEzYiA2atghDOKi67hog+6xpmd6i pQC1s3wyfmMNF4wbMsJ3QPagqcQDQ5nZTgt+bmzsxmBq1Ax4BzhoxkfL4Er1zklgTmfg2D+SU0q GLE3ONPcx2fbJK+cpnDfVXvSUhqMZdu1UnwXoHMiLjXFxEJ49lQq6BrcNUfNTysFSCzllpVpVRt nuEAAE+toP3SW8einD+0BEpWyUFjXZDJhBRFTqZHT5fW2UbcjcLJgSLojHXXbYHcZXDvmFPDn9L gQjz4h/QZAGEiHvWbECQo3VEd4VNaIo9bVLcUt+TgzQ4PjXseg30LA== X-Google-Smtp-Source: AGHT+IHn3L1NVRunvUOsShzPwp65pqL9GPzUchB1/FjcHdgqQtBcMBAJPiNtQUa/4i4/a/mJv3Ur6g== X-Received: by 2002:a17:902:d486:b0:21f:4c8b:c4de with SMTP id d9443c01a7336-22df35bafbdmr81800625ad.42.1746072889180; Wed, 30 Apr 2025 21:14:49 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22db51027b3sm131092695ad.193.2025.04.30.21.14.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Apr 2025 21:14:48 -0700 (PDT) From: xu.xin.sc@gmail.com X-Google-Original-From: xu.xin16@zte.com.cn 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 v2 4/9] memcontrol: add ksm_zero_pages in cgroup/memory.ksm_stat Date: Thu, 1 May 2025 04:14:43 +0000 Message-Id: <20250501041443.3324342-1-xu.xin16@zte.com.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250501120854885LyBCW0syCGojqnJ8crLVl@zte.com.cn> References: <20250501120854885LyBCW0syCGojqnJ8crLVl@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" From: xu xin 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 Signed-off-by: xu xin --- mm/memcontrol.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 69521a66639b..509098093bbd 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -63,6 +63,7 @@ #include #include #include +#include #include "internal.h" #include #include @@ -4391,6 +4392,7 @@ static int memory_numa_stat_show(struct seq_file *m, = void *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) @@ -4401,6 +4403,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 @@ -4414,9 +4417,12 @@ 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.15.2 From nobody Mon Feb 9 15:48:39 2026 Received: from mail-pl1-f196.google.com (mail-pl1-f196.google.com [209.85.214.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 63D2D1C173C; Thu, 1 May 2025 04:15:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.196 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746072922; cv=none; b=FoRBxmAumCtUoLVXrLINL+adu396iKVBovcTufjmcHFRE1OzqiQlvXsDAv+EXPb5SWKN+eZXNoREk8PkasfaA03EUrRzJxGQzt4swbL2CtslHjat+r1zvSCDpRKJWcEGd8Izk+/4NPJtFIwukkpJcnNZxqtqDDMnvfN6SH78dlg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746072922; c=relaxed/simple; bh=ZKmzZnpvSfthMX2tW23l//Fng96C3b5QOXQpZr5pAPA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hdhhnFNCXHv4Cyay73RbNejBxICDi0zsZKjGOOPdMbDapSi+SW66t4u/UXg4xHXoXY0r5UswaWUwHSgoaCG2NpsJzlrhF093N5k1+f+MofPRDJafv4SZri7rIBTm0U9MFQXwhiW7oJ7tA0i85udKvy41fz+bdT9+pRa68z9m6KA= 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=B9dIIJS0; arc=none smtp.client-ip=209.85.214.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="B9dIIJS0" Received: by mail-pl1-f196.google.com with SMTP id d9443c01a7336-227b828de00so4909985ad.1; Wed, 30 Apr 2025 21:15:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746072920; x=1746677720; 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=zRs/vax7mlMaNylMGZ6U5l76qcaA00w4PhyK68LX5sI=; b=B9dIIJS0r7Fou3De5GNPY1qtQf9zL7y7AB34g4w22Ac5g8NoVprhbKB7Cg3x98TMLP MU0qGlHEI03tHEMolv/cXE66SgfqqP90WRQoFkQpPb5DIWkXNJhQqpEqxG1EI6l6vOGE AoYmuPUe6PUPEK21Z0Chy1smzyKb+nfdDtEC6t1pgApPShtkngZsqB7glufgWkLYD1oJ emLfosNVWbNGhv1XmmDwMd9d5f9wHUKfS4mxv9sKI52WY5VwvVHxDWMEYR5xezQPiapx swuN/4kau/JYKk15YdjoDyo8COLPfasmnbeA0iQgEwEWsJHX62KN/k3g9by+D3N9iQcu pQHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746072920; x=1746677720; 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=zRs/vax7mlMaNylMGZ6U5l76qcaA00w4PhyK68LX5sI=; b=aVxBkUvOvWqviAp/5bUc5oKtW0u1k/qpbuK/zRAvl4w/n1pRhjFGn6jT+jOmbdfkZv z0AW0wkvoTrp2FN8Y3mTx1LAqdPVpJF6ETIp05R2TIqPTviDhQsy5z4ICp0hknRTbqtR BIdNsQYegi3jAXqgyXmtexLzUCn0cm67/A7g0BFCaExlSSr9xzkq9ccM1yWl2xvG9aG8 g0vOwCG1ikMfDKHdgCgvo+L5P9JMXbAMbAvfJn2u+aLRv2x094AClNass11fDiKG2cYe n9oi9mOLZ+qpditscmyfyokTeQ7HrEtz2ONLTMUWmCVWANn4aG3fnEXwf7z0PeLwaoaQ 4niQ== X-Forwarded-Encrypted: i=1; AJvYcCVgcaGNAIy9q/mpe93HYRn4B9G2FirLTKx6dBo9Ph80AZG8gEHWQLTK0ODgDf1PKGN3fT3OjW+WPucfou4g@vger.kernel.org, AJvYcCWPxsXu6CtXLw057Ag9AbkIve1ezl9XBSMCSEPSRQqxrM9Eu/3a7zA0fhUaVnKgXZjtL6ljTqQ/0uAfp36Q@vger.kernel.org X-Gm-Message-State: AOJu0YyDXthGXARn+GTLWcnMXVhaG6U2248+7TYppuUNrXQNwCn+hC6j o4ZADZC9htFy1/KPCdRMhJwK1Pigwba8O6Hq5P8VnHlqj3JblMqb7f86SsZ/ X-Gm-Gg: ASbGncs8Zag1RvG4D8Q+FWHmFUq16FmvP0yhOhLHiCd0U7sZBvhsmsIC9PU9pIDxtcw wRk9+Wxn55hjOeTA+86mOCW0vloOukfiYzs92bHv3coY54kwzI4D9IWE/EM3UKfZVQfEg1tgHzq cwbatTgyI+hycIIJa7Fq6hRi42GqaIxEcat17XhIOzTYW4ZjV/kC3Qe0uU+RQk60xRMA3pz7c/E KvdZQW2VZdbDcs0BsFQH+rOsz//1bWDrBonGcW2POEZvjcm1OnmoNOzkFzYZ+acY36jNj4MrZaT V6Us52hcbxau81yQ9QPOq59TdI9lVVIbmxhbjk/uLHzbtlbSTg6Nog== X-Google-Smtp-Source: AGHT+IHLGOPK6GlKYXpa9eMiXP9ZUHpWY23bd3bSe/+/AL8m63px6IxjXr31QO77R9u59/2K/Ahprw== X-Received: by 2002:a17:903:1cf:b0:224:1220:7f40 with SMTP id d9443c01a7336-22df34aa13emr93717335ad.3.1746072920537; Wed, 30 Apr 2025 21:15:20 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22db51017b2sm130975015ad.176.2025.04.30.21.15.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Apr 2025 21:15:20 -0700 (PDT) From: xu.xin.sc@gmail.com X-Google-Original-From: xu.xin16@zte.com.cn 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 v2 5/9] memcontrol: add ksm_merging_pages in cgroup/memory.ksm_stat Date: Thu, 1 May 2025 04:15:14 +0000 Message-Id: <20250501041514.3324403-1-xu.xin16@zte.com.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250501120854885LyBCW0syCGojqnJ8crLVl@zte.com.cn> References: <20250501120854885LyBCW0syCGojqnJ8crLVl@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" From: xu xin 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 Signed-off-by: xu xin --- mm/memcontrol.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 509098093bbd..9569d32944e3 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4393,6 +4393,7 @@ static int memory_numa_stat_show(struct seq_file *m, = void *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) @@ -4404,6 +4405,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 @@ -4418,11 +4420,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); + 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.15.2 From nobody Mon Feb 9 15:48:39 2026 Received: from mail-pg1-f193.google.com (mail-pg1-f193.google.com [209.85.215.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 A2D521DF98D; Thu, 1 May 2025 04:15:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.193 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746072958; cv=none; b=QZ+iG03z/rSWSOUo7zwGWfa4arRaccNbcD4qngceHcWTEetp6BMetSzyyrBA8oUPUh6RiFD7WNE4QKfDF+Z7TzF1eqA33AiPo+/Sbqgg1T8cvcl8fpxkzfX8Z7psborcHW+i+9SPrN1g2uvC1Y3FeQUebt1ETu8Y//Ngky4m8Tg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746072958; c=relaxed/simple; bh=geH6V48P/zVTAmN4U2a/Rf8voMJ08N5ZCdRLj5h0yYs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=S2ZuWa1pNPBtlr1NeIJ6rW3HvffzfIULsN7U6Cc3ceHrT/2hLKwr8Qh8/1PokMWNcp+chuEsppY/LIgkpYRS1FvF6Q6fp/zJRGHYKStruoP7rg6Ar/V1L2ZKKaQM2ynly82v+b4igaGUWoV0xKnL6qTahIWDTkKvj+cBih8WUeI= 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=AvyryrNj; arc=none smtp.client-ip=209.85.215.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="AvyryrNj" Received: by mail-pg1-f193.google.com with SMTP id 41be03b00d2f7-af9925bbeb7so395674a12.3; Wed, 30 Apr 2025 21:15:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746072956; x=1746677756; 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=joXCGnOLEZovFd4Cq/aH1We34Qnzyjp4Ndw1KlcoW0I=; b=AvyryrNjbUw7e9rMayF+poeXOP+ZsDaNkG/I/buIpLRVboJ9ee07+J02qwmUrdwdmY o+20dF4XaPb9NuhYFyPJR5As0z/OYxzHK0X2gtI5XacB2r6jFeWj4QMCMDoc2ydH3iHp Ct+TqS4IdcsYY7spRtEO8YDNxv5Al606fL6JjnoEJwHJIKiPF1/M0ohAUjn7JkYNuy7M WAB+5HbWHffyVzdO+rQymDvbhiWP+eaDC31cCsfSIx1bnYyJb3j2mPw3ERWhBV+SnI2T VWR+28EGUkOmKDb4X+Ckef2eBSeX5kIBTQMVeqh/uTOXe/7vvugTXqc28eMH1MDbN/T6 8HjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746072956; x=1746677756; 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=joXCGnOLEZovFd4Cq/aH1We34Qnzyjp4Ndw1KlcoW0I=; b=RXf92qwjQ6eMginrvGh32q3foZgbVBgapLGQLnObMerQVGUGwHC3tumkhDbbBcqwGZ ltLJgZOoS27OoE0SIm4SP7zmbUsYpd4qpo2ro1PDUsPfzrw1YogJUlHU3Ql3zmEvktJ7 LwK6h2udKWoCuragn5IEGJ6KqslfVIFueIqWYbP7fS2YPH+CjEA3/kd48qD7/XNrCE0J qwm4aCTcbWFEA/A8ieVMzQpJN3NPLOUjWfL6/VJJiWQk4NX066VJjCOv4K10yCjuSn0q BMHHeVudvH81sSr0k2TiY1RuTKEJ9GPUF/TkxQgtzc+LkzLWBnj8XSFHSayZ8MbWrqd8 yezA== X-Forwarded-Encrypted: i=1; AJvYcCW3T2rqX/IKYAxC/Se1gtn2MY6zkFSqgr9OJ97wKavQKcjDY4Pn4JznxMD638jqOJJhNNvYwrvEa2aILa5r@vger.kernel.org, AJvYcCWsaM4v31YP65mmvHmTO+OB4b/u8np9aicanwQgSV8u4eZZS6v5LCEojC5Juqz+KOFp9HI8cgcU589oyBnt@vger.kernel.org X-Gm-Message-State: AOJu0YwNLeDxw1qePOLFZWEcYkFiSHoDmbRkByoBB8W4i8Mny5V9hWJ4 idilMKFlCOJGce9C/g9kWuBNwZhy52KAv4LnE6mwvtO6S08dVtP8AM75m0+o X-Gm-Gg: ASbGnctCqeHai38syZkN1T/biqgDb/Srzj8nT9Dc+tupBCKLE1uczVsuOwyU0zuEJMd /8XIXf+Eub+AQweLv4gV312tTJvFjF73ZP1mZqMwRosQbAxFBgdXNfOlbB624DSqno64/URrIwE YlZAIGldMlZlVr5/qQvZj/Ha+HSj5uY+NRJBV2BlZ8JToY+B3OcnN0347LsWCKVkfm+cNon7L4M UFXOrBFDnO2+aHuep4Q4dY8L2aoU2ZifvPNM6OFDZZdPxJ2VIqvJfetRgpH1UbbXC/FI9Bfzd6o QGRZGohLZsTAB39QzWmi5nLphilyAiakw76HI4wfWNxnUVRd1aRxog== X-Google-Smtp-Source: AGHT+IFrVUrrdjXtX28HF5q+Y5KrvFqxCG/XexHXBL6W9sDunZDSHv9kPRBMKLDWiJcck0lgchVi/g== X-Received: by 2002:a17:902:f685:b0:224:abb:92c with SMTP id d9443c01a7336-22e0425a178mr22826855ad.50.1746072955794; Wed, 30 Apr 2025 21:15:55 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-30a34a3bcf1sm2571247a91.37.2025.04.30.21.15.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Apr 2025 21:15:55 -0700 (PDT) From: xu.xin.sc@gmail.com X-Google-Original-From: xu.xin16@zte.com.cn 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 v2 6/9] memcontrol: add ksm_profit in cgroup/memory.ksm_stat Date: Thu, 1 May 2025 04:15:49 +0000 Message-Id: <20250501041549.3324472-1-xu.xin16@zte.com.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250501120854885LyBCW0syCGojqnJ8crLVl@zte.com.cn> References: <20250501120854885LyBCW0syCGojqnJ8crLVl@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" From: xu xin 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 Signed-off-by: xu xin --- mm/memcontrol.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 9569d32944e3..8ab21420ebb8 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4394,6 +4394,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) @@ -4406,6 +4407,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 @@ -4421,6 +4423,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); @@ -4428,6 +4431,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.15.2 From nobody Mon Feb 9 15:48:39 2026 Received: from mail-pj1-f65.google.com (mail-pj1-f65.google.com [209.85.216.65]) (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 F292ACA4E; Thu, 1 May 2025 04:16:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.65 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746073016; cv=none; b=n6pIND0nR0Ft4v6H5MYGbRfsmfCopCyYQ8gj014dQrTJ1lvZ/6t9s4WIu406VxTre8bpCZ9XGqKLvgt+zWMdJWeyGAeVcHVpkXXNHe7ATnMn4/T0BomtEYgNjSMpyiBQFQabzdKxcR8Ycv7CBS0OwXoZevfiwfUu9dSrc6YUtO0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746073016; c=relaxed/simple; bh=lUs8EJiyEGr6p/1PLbJmdNja3jVSs8zbcMfVO1RsAVw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=E/119aw/+0gjghjcaH8dATiwS2FAYzQ427bj2Pm1MtzykYvesfQD0CKNFOI52WE0HOvwRAz0IFOBUUCkMpeecgb/gGePnAc6YuH6KF8V7YOyfiJSpwVad3KpAntXkIQ5fUf+CmghWuY+Yb55mTl7Uzhxm/VtOOUySNgY9Y4ll+Y= 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=Le6O0VMa; arc=none smtp.client-ip=209.85.216.65 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="Le6O0VMa" Received: by mail-pj1-f65.google.com with SMTP id 98e67ed59e1d1-3015001f862so441839a91.3; Wed, 30 Apr 2025 21:16:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746073013; x=1746677813; 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=e267ZtJ1ZkJztGP0++gAXgcgqqIPPYKaOinMj59fXW0=; b=Le6O0VMaNHRzlM0EKXVMIoTNzyDxh0SGer5OAqWpuBcjDTDIheOcItXFi5F0+YcoU2 A0/bsTzaBbUX8YSxeimmP5NyKhzPWUR08LJFRioV1sBV0OUxvFhZO3ZhDxEJnqqsZmE2 lm3Xlk0i9/lKgs/b0GNJy48kWPcDVjZaNIFGh/yYtxtULT/u5aU1O0sLaoa2dPh5XsUi KBAZLz92DaxXSLS1MXkfLsA1PIvQvyFSl2uUpuyoxoFvA30HyJ+w9iexarSy0UXlP+0E V5v4xYn3GJZrHQzLwR2G3K6cPCdPrzX0uLJ1AKeIga+3N3S+0lEMDk4czHS0sXffvh4L o5nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746073013; x=1746677813; 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=e267ZtJ1ZkJztGP0++gAXgcgqqIPPYKaOinMj59fXW0=; b=wbOyLUbqi33ak86XRY7pIOWbVfCMKkSEdYEbj1ks996o3rZtFvN/RQk7BN4HKhLmWs JV/5vVfTmnPhUWDv1DLzJRp8OZmBzAv7br5UFdiN4tAgAAUdiLW65zv4yF8MgcvTX4au Ga1CZNskTOCpQ6RQiWGPPHjWvMpDJpvJ/Nl/2NdkJRIsSlygcEgogLxRcJW5eMjJJtrw muLwXiGY4dTvosQQZIVP7Hvn3xi/xcClS+/Z0eHWZTDYTsUpVDTaM9GcopFmGNe/pPqM EskF53wjJiFvpp7L7jJn7+iqH6XNRAlCqLJPc2hUuu48O4Qazs+4V2POmthsG/JOdSHG g1sg== X-Forwarded-Encrypted: i=1; AJvYcCXn/gmHCdP+C1JdJJTCAZjmH8EQ8p7oH6hOkUfnNFSO3gB1SAO4QL39kvxYyJIDsoC0kXFgkzBzZxnRyB3Y@vger.kernel.org, AJvYcCXxxP6eDSAhsvYVlUUNDBw4djY1+cZvDMNShw6FW3DG88HPpuDSYR/bnemjM+QxMWK/PVo9vasdzHdUvtKr@vger.kernel.org X-Gm-Message-State: AOJu0YzonIafSbCFKR5ZJPahypuyx+5ql4PRTfBhKaZ0Mkjl1eJYazIe LSYQDTbIkxXFpruVvUNDnP/07WydfsT0U8drxI90KCm8rppLS90t X-Gm-Gg: ASbGncvK5OEQl+Ql1yZOrNmo0o1zXBqMncST2Pavy6YjFBZcSkt8XzB9yP1lIjJvQFP KopaSZeV1tc+AhuHcZKUjB74mbEqhiYl5tWtciDlCmzPDtJq8ebNrCTtu+umSyZgEQTZNWpvuWm oTqrvnI5or/aHUovOYh117Q0o1FPHVp4RQ/LWYCp/3RchmN3TRh93aHkUhe4CvK+8EwRRaowhZv SNFpVKL21l6GZdj4sn3Vm+MAPYTYHjW9FrUPLil6iGbOWmT3kTWlE/jd4Yo76dq7LiHALzuQDsK v+rX5rGvWfuUoMT73uqH9iX0tqSAcrKntK2sOtidfUJTNaav+A8u+A== X-Google-Smtp-Source: AGHT+IEzY5R3iNEkJoRaDyBSxa6xzJCwxk54f9/TLZvds2D37t+5BVfn97oR4mhD0+7nW44TJvp8Fg== X-Received: by 2002:a17:90b:57eb:b0:2ee:8430:b831 with SMTP id 98e67ed59e1d1-30a332df61fmr8763348a91.2.1746073012942; Wed, 30 Apr 2025 21:16:52 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-30a385f613dsm1911678a91.40.2025.04.30.21.16.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Apr 2025 21:16:52 -0700 (PDT) From: xu.xin.sc@gmail.com X-Google-Original-From: xu.xin16@zte.com.cn 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 v2 7/9] memcontrol-v1: add ksm_stat at memcg-v1 Date: Thu, 1 May 2025 04:16:47 +0000 Message-Id: <20250501041647.3324541-1-xu.xin16@zte.com.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250501120854885LyBCW0syCGojqnJ8crLVl@zte.com.cn> References: <20250501120854885LyBCW0syCGojqnJ8crLVl@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" From: xu xin 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-v1. Since the implementation of ksm_stat has been added into memcg-v2, this just add it back to memcg-v1 with the same function of traversing the process of the memcg. Users can obtain the KSM information of a cgroup just by: `cat /sys/fs/cgroup/memory.ksm_stat` Signed-off-by: xu xin --- include/linux/memcontrol.h | 7 +++++++ mm/memcontrol-v1.c | 6 ++++++ mm/memcontrol.c | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index f9d663a7ccde..880ed3619f57 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -939,6 +939,8 @@ unsigned long lruvec_page_state(struct lruvec *lruvec, = enum node_stat_item idx); unsigned long lruvec_page_state_local(struct lruvec *lruvec, enum node_stat_item idx); =20 +int memcg_ksm_stat_show(struct seq_file *m, void *v); + void mem_cgroup_flush_stats(struct mem_cgroup *memcg); void mem_cgroup_flush_stats_ratelimited(struct mem_cgroup *memcg); =20 @@ -1415,6 +1417,11 @@ static inline unsigned long lruvec_page_state_local(= struct lruvec *lruvec, return node_page_state(lruvec_pgdat(lruvec), idx); } =20 +static inline int memcg_ksm_stat_show(struct seq_file *m, void *v) +{ + return 0; +} + static inline void mem_cgroup_flush_stats(struct mem_cgroup *memcg) { } diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c index 4a9cf27a70af..0891ae3dae78 100644 --- a/mm/memcontrol-v1.c +++ b/mm/memcontrol-v1.c @@ -2079,6 +2079,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", diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 8ab21420ebb8..cf4e9d47bb40 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4414,7 +4414,7 @@ static int evaluate_memcg_ksm_stat(struct task_struct= *task, void *arg) return 0; } =20 -static int memcg_ksm_stat_show(struct seq_file *m, void *v) +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); --=20 2.15.2 From nobody Mon Feb 9 15:48:39 2026 Received: from mail-pf1-f194.google.com (mail-pf1-f194.google.com [209.85.210.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 5849BCA4E; Thu, 1 May 2025 04:17:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.194 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746073039; cv=none; b=lSNVyLr4XhiDu8C3GsGI6AjDBfkqL3NIsNX0aToY057RUtAvWHcwA4XnU5hUhR5fSTS75hXr1TAbW5KgRM48SVC5hQ0tEIgwJieNGjGs2MBxAUwSCXWVGF5E+/uO7O77YTdTKWeTiyzKYE5Cpj+x+wQfY0V7KrE4vNl4naczvww= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746073039; c=relaxed/simple; bh=6Uc/efFXmGs/JO4LOoqt4fg1j/FQiuh1BOAH74fuWDA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=D9PPamz85TB+UQOXjMDBssNSRSwiV+VHa8hV1O+upQ84LRnyWIBRARg+dAppCsj/JSV1zlST/pBnT/6KepfjXhpux65t4RceBJ63h4hrvCK1x+BaMWG4jnj/Fg0NWGeXnp6DU51DP2dvVqUP2kRZkWLKF4fIDREhOVKmQt6/s1E= 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=J0Hbw8o5; arc=none smtp.client-ip=209.85.210.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="J0Hbw8o5" Received: by mail-pf1-f194.google.com with SMTP id d2e1a72fcca58-7370a2d1981so484304b3a.2; Wed, 30 Apr 2025 21:17:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746073038; x=1746677838; 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=kSqWz+uwNyc71utyx5zA29Wqka9YgW7cUa1XkyvqWms=; b=J0Hbw8o5/3N6GgH6Pr/UINH5Icz//Ucb0wAP3JrkUXBguHhgZI/CIoSioxJSF6spDY 4T1oYj60Bd8JRqBYuqt9yczaPsXLuEYfR4PbyNAPj868j/BjLCRCfG5GwIZmqRsSXteR NcfmN2iehDM7koPrfY5ooknpP39r6LKwwpf0zII3n4PbCEXJv5N7B8yqHsVOSaw4EhUR vbuh7u7CTSchTRvxqxmYkWX+DJ2KuE3IHW2GmTPE5wYUGYnFkfdeZT+BPFLRGrcmIi/r jPFG0/fcaKm9+ZAwYc0Mz1NpkEUg1Xy1tNXHsRwbEZs0DnaXC5rT1JyCXbz3K6neUkjW UMig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746073038; x=1746677838; 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=kSqWz+uwNyc71utyx5zA29Wqka9YgW7cUa1XkyvqWms=; b=ncW0lAU7krWVRcw7t0pOLJd/3tCy4sY1CUlqk+wGv97RAXPEd6A6rS/mjUjSMe6hLq +FalIBmpyryc8Gyj2i8yJdEVw4k+2mTWpOITnVK0JV28dhS4ZMHD26ssYc5G15hskkME /6SS7dTMYY4nf+YEDaUuUopBTWFf5ybyuWz5KS6SaMowvVYZRz+Ry1qhY5sKZhNWft23 njH9Te9JkADRu9LFF/CLhJFHwwxEFQwcys/flTsENBaB7kXsFLAifPqf7t27QpB0JIPI uG7KWOCrQalzorgzXra6DAfYYMhPGiuvX4kNx2KX9sdlnDToxum088Nquc2bQ85IKlpw nW4g== X-Forwarded-Encrypted: i=1; AJvYcCUDzjbBqkThehVbAufasEhOAkm30TuRBOopDJYl6wAlPHQeOBPGNZyi/6heUUH3VpG3Znzf8OsE4PFv4XuY@vger.kernel.org, AJvYcCVi2SMgitMTg+AVaEyLdQODiqTRaDQbezSj6Vyi0cKBq715qNmDS9jCO+6audpl1kHaUPw0dfvGSaRcLgLW@vger.kernel.org X-Gm-Message-State: AOJu0Yw8PbCYSHCIKihEIdicSTEZ1mu+mRiy1NKk4n0EBd1marDI5zzg zhLuDntKBvJJ8uR3TrJVy/ANa+VCxU1i/1wIMWT/r/NFi3nmu5Ro X-Gm-Gg: ASbGnct0ZsvwKZBPZ1ja9hnbGkPgw5QqnRNGUqAsYWv+C3CKcNpiWT7HXASD6zt8xic 57rMmlS1tn8xXb9OE/tUEYChuqF37UnJkXjJkK7rznXCo0iEWRRa4xY4OpWVuBQkelRAZDImKQ2 /4R/5kNo4Cq7yjcbeRK+W86BPzPMMOD8ZrdC+4WufDKKHU1aYRTD11oRGsi+goerinkhV/Qjdhv B3dZDzDeXNdhlt/4zebaSsa1bqud0rfx+V5C7K31NKpE7IxEL/844mRbPl8sHMD2/6lCeiljNO+ 5qHzgtJEANxqbj/H3rT42x8n5lUcgI323dV26bxoboRIx3Pt5SlQUbDNE+aUp13j X-Google-Smtp-Source: AGHT+IHhhWhjtWqWjYhISbbYXlaaZG6J8Ta7drcMEv/LrBwlqg/TrkGMke/PM4xEXkJPcepQjnZfzg== X-Received: by 2002:a05:6a21:1511:b0:203:becd:f9ce with SMTP id adf61e73a8af0-20ba8e4bbe9mr2663073637.39.1746073037614; Wed, 30 Apr 2025 21:17:17 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74039a30e50sm2548943b3a.119.2025.04.30.21.17.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Apr 2025 21:17:17 -0700 (PDT) From: xu.xin.sc@gmail.com X-Google-Original-From: xu.xin16@zte.com.cn 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 v2 8/9] Documentation: add ksm_stat description in cgroup-v1/memory.rst Date: Thu, 1 May 2025 04:17:13 +0000 Message-Id: <20250501041713.3324621-1-xu.xin16@zte.com.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250501120854885LyBCW0syCGojqnJ8crLVl@zte.com.cn> References: <20250501120854885LyBCW0syCGojqnJ8crLVl@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" From: xu xin This updates ksm_stat description in cgroup-v1/memory.rst. Signed-off-by: xu xin --- Documentation/admin-guide/cgroup-v1/memory.rst | 36 ++++++++++++++++++++++= ++++ 1 file changed, 36 insertions(+) diff --git a/Documentation/admin-guide/cgroup-v1/memory.rst b/Documentation= /admin-guide/cgroup-v1/memory.rst index d6b1db8cc7eb..a67e573c43d2 100644 --- a/Documentation/admin-guide/cgroup-v1/memory.rst +++ b/Documentation/admin-guide/cgroup-v1/memory.rst @@ -97,6 +97,8 @@ Brief summary of control files. used. memory.numa_stat show the number of memory usage per numa node + memory.ksm_stat show the statistic information about = various ksm + counters memory.kmem.limit_in_bytes Deprecated knob to set and read the k= ernel memory hard limit. Kernel hard limit = is not supported since 5.16. Writing any val= ue to @@ -674,6 +676,40 @@ The output format of memory.numa_stat is:: =20 The "total" count is sum of file + anon + unevictable. =20 +.. _memcg_ksm_stat: + +5.7 ksm_stat +------------ + +When CONFIG_KSM is enabled, the ksm_stat file can be used to observe the k= sm +merging status of the processes within an memory cgroup. + +The output format of memory.ksm_stat is:: + + ksm_rmap_items + ksm_zero_pages + ksm_merging_pages + ksm_profit + +The "ksm_rmap_items" count specifies the number of ksm_rmap_item structure= s in +use. The structureksm_rmap_item stores the reverse mapping information for +virtual addresses. KSM will generate a ksm_rmap_item for each ksm-scanned= page +of the process. + +The "ksm_zero_pages" count specifies represent how many empty pages are me= rged +with kernel zero pages by KSM, which is useful when /sys/kernel/mm/ksm/use= _zero_pages +is enabled. + +The "ksm_merging_pages" count specifies how many pages of this process are= involved +in KSM merging (not including ksm_zero_pages). + +The "ksm_process_profit" count specifies the profit that KSM brings (Saved= bytes). +KSM can save memory by merging identical pages, but also can consume addit= ional +memory, because it needs to generate a number of rmap_items to save each s= canned +page's brief rmap information. Some of these pages may be merged, but some= may not +be abled to be merged after being checked several times, which are unprofi= table +memory consumed. + 6. Hierarchy support =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 --=20 2.15.2 From nobody Mon Feb 9 15:48: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 954991E5718; Thu, 1 May 2025 04:17:46 +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=1746073068; cv=none; b=mlR25uhy56z5TkWzLa0dVV7ceR0jzSiBtuPiP3fdnTN5+eceVNqLRzIk7jCyOvF3YNirSnrBxv7IbwIabhP2TKuTddQtkv8wicvGtE1PYYMiJE1tY5L4fR8SKoRGNh6nG8Q1pBiuEo0mQ/ZyWTA4QRyRLdpGAhgKrcCGVIBweWA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746073068; c=relaxed/simple; bh=w6ykFKU6W8XbzySYo6UA6ZzlGN8WlCDHXAPwnIpqbJ0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=GfxbWi+skbJ02uJxUb1DgMPS8wK9hXUs7MQDS3jKhxZ3DqKp3y78mNacwr3+uR81RZTEC7sGeH6F/SuXOcKlUO6jeyysTbqk9F+/nahg0RGkU4u2aOdcHdt8PKImUzn52BImebgAjj93O/6Cza73LGzKsxbb90/t/hJpAQBRLzg= 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=EqOCDE8i; 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="EqOCDE8i" Received: by mail-pf1-f193.google.com with SMTP id d2e1a72fcca58-73bf5aa95e7so539217b3a.1; Wed, 30 Apr 2025 21:17:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746073066; x=1746677866; 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=n21bC37JtSPMbsSu3t2OsrA8QyyqY/ViIMbItOPfpIM=; b=EqOCDE8inQ0tL8XtUkzsJm/Epnkx+RNDphy2dkBrhInRsH9jEaGHYa2S16OfWCfHIp oUSHikw2R6eD1qJOFmezFzTsib2e2xc5KqjaYarnh8TrkPt7rtTBTC9hWfKKqZmmVJOk sMPDCA0gBuBuKCzjrCEBKtJD0tychpfDVLI08ZlSN+V/+JPyrYqiQDKR8UWfa03uxmMG jClOmIRkGI8a5cY4+vbxTq6SRC5D5dkW/Pe+uAgGowscUoUPtGQwcFPyDFzr1z1M9dsF yoOWCFPohhc5tvd2VY0dL7oKFphtbMGVxh04+anGthYiTUID/EcF95gkykaos/UbNypO 9HjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746073066; x=1746677866; 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=n21bC37JtSPMbsSu3t2OsrA8QyyqY/ViIMbItOPfpIM=; b=AdrorPCm5888eFk4mqkWEhZBJ5DFYqjydsE2iD1UFWcTzGljvZnNw9zKOjjkAa4pF8 C11BDqpeMl5Kcj9ouLgmL+nY9PDuxP23grokm41aOPP8CP9Rml9F/pZOjBdnOlNTMlvF qEsx0vcu7cmQ2Q3ssD/r7tKjiTpwnWIQSXGteZFo/C53/RSX2bfkp3gr4wJwXUuGHUBz uh7l/Gpu/dj9qMi46ush0SMu64rC/F/in+LzgJEKzJ2LInU7B1AZDre1Of4dr+zSV1JD VR5fB7QLWQy1JxirulOIISYvV35LcNfgCSusUIaL6uC1jSfVZI9ofeYwKO2u+Fkxsg7O SL1g== X-Forwarded-Encrypted: i=1; AJvYcCUhSDHxPe62i8ZW0xwkat7PHBBRiMphqCsf397aVl8isap/FcQ0qyyd4WVL+IjRM8UpvbLNRdwBP21yRL+W@vger.kernel.org, AJvYcCVj9eCvrzPdJU5WCYc5KXgbZpjEyeT5SnBcZ/Xd7tOjlc/8rW8z+7scHjR70t8TFVMjMogabJD5wQtQelSv@vger.kernel.org X-Gm-Message-State: AOJu0YzEE/3030pHf+/pIt2BWpcfCB3hw5/7PWDStSt7yWeoM+F9NyHU gjTvFzFj0nFo1ajXFdWD2CUGS0P5b2dOI7c8OffvLSasEyXmWaOa X-Gm-Gg: ASbGncv+stxruc+OufliW9XRYLhjusj191jPn4hzAlGCCj0rxpydTHc9eGw/kIDRRyD +uDU7djyrUt9GdbKkiaJpHlzD5ngtWVbyCHk4e50D2Ew4GYy04jG5WRBEMEffMQP9doiO9/F54H wx4i1c5UZv78wJUR76ilCFOdXpz1jBEiGOYDxmFXZIHfLojT8g1tFWYH/rLGvfSomW6jko/wuzS B4kJ4ZAf02u+aTqbAi9YncO6thzc+KQ7yJMLQryiq2HgRTC5GM716jBy7uGtNnoWrux41/9WGle V68Uv7DlZTygb6mZ/fH+L2U/D17qQ0mpuc+uhNObbMwEV5K9nE7UMw== X-Google-Smtp-Source: AGHT+IHDSecc++JnN9ZF7KiUO77n8h6r+gRK/5dMIMB4VhSxeBrb8DmzphALPYOnOFOCgood6UnY4A== X-Received: by 2002:a05:6a00:22c9:b0:736:4ebd:e5a with SMTP id d2e1a72fcca58-740492701c0mr1701661b3a.20.1746073065721; Wed, 30 Apr 2025 21:17:45 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-740398fa1e7sm2585506b3a.5.2025.04.30.21.17.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Apr 2025 21:17:45 -0700 (PDT) From: xu.xin.sc@gmail.com X-Google-Original-From: xu.xin16@zte.com.cn 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 v2 9/9] Documentation: add ksm_stat description in cgroup-v2.rst Date: Thu, 1 May 2025 04:17:39 +0000 Message-Id: <20250501041739.3324672-1-xu.xin16@zte.com.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250501120854885LyBCW0syCGojqnJ8crLVl@zte.com.cn> References: <20250501120854885LyBCW0syCGojqnJ8crLVl@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" From: xu xin This updates ksm_stat description in cgroup-v2.rst. Signed-off-by: xu xin --- Documentation/admin-guide/cgroup-v2.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-= guide/cgroup-v2.rst index 8fb14ffab7d1..acab4c9c6e25 100644 --- a/Documentation/admin-guide/cgroup-v2.rst +++ b/Documentation/admin-guide/cgroup-v2.rst @@ -1718,6 +1718,18 @@ The following nested keys are defined. =20 The entries can refer to the memory.stat. =20 + memory.ksm_stat + A read-only nested-keyed file. + + The file can be used to observe the ksm merging status of the + processes within an memory cgroup. There are four items + including "ksm_rmap_items", "ksm_zero_pages", "ksm_merging_pages" + and "ksm_profit". + + See + :ref:`Documentation/admin-guide/cgroup-v1/memory.rst ksm_stat ` + for details. + memory.swap.current A read-only single value file which exists on non-root cgroups. --=20 2.15.2