From patchwork Thu Apr 3 05:38:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: xu.xin16@zte.com.cn X-Patchwork-Id: 14036754 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A8553C3600C for ; Thu, 3 Apr 2025 05:38:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 66664280004; Thu, 3 Apr 2025 01:38:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5F026280001; Thu, 3 Apr 2025 01:38:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4946F280004; Thu, 3 Apr 2025 01:38:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 2CA4C280001 for ; Thu, 3 Apr 2025 01:38:46 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 797CEACF8B for ; Thu, 3 Apr 2025 05:38:46 +0000 (UTC) X-FDA: 83291628252.25.61994D7 Received: from mxct.zte.com.cn (mxct.zte.com.cn [183.62.165.209]) by imf18.hostedemail.com (Postfix) with ESMTP id 106431C0011 for ; Thu, 3 Apr 2025 05:38:40 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=none; spf=pass (imf18.hostedemail.com: domain of xu.xin16@zte.com.cn designates 183.62.165.209 as permitted sender) smtp.mailfrom=xu.xin16@zte.com.cn; dmarc=pass (policy=none) header.from=zte.com.cn ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743658721; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JdyH5PU8Dv15mS1Edsy3Rj7QZueI89tsQCSYBzjXsu4=; b=s4XK8cAKIIAicrDQXYPPXGxaD+lpkQEqPzOOYTeC+dRb/txLoRrU5eOKmW3Ff5nP0cx6Tc ho4w8xd9zkwAK9NMq0dEQnNor7/hV1HDotRa3H1/dQn5Xsef/bo8TMhvuYCvXSJwd1r6bE 76rzKRpGJNI1UEbtpFITwSaNVM9L9NA= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=none; spf=pass (imf18.hostedemail.com: domain of xu.xin16@zte.com.cn designates 183.62.165.209 as permitted sender) smtp.mailfrom=xu.xin16@zte.com.cn; dmarc=pass (policy=none) header.from=zte.com.cn ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743658721; a=rsa-sha256; cv=none; b=bICrkJlASQrrSHH/nRlL0ki19OCQKNRHscZO9gvshmLGEYsIXLkHaWPE3U2J+FaRarX1Qy kcTAbgak7FB4/pkDSUkt1Lh4v7uTaSQTl6Jyq3B37Jmvha9zxbeXtbszHwPHPfOLrtx0PX VVQhzec7grYZVXDpRpmMZPFj+z7uI6k= Received: from mse-fl2.zte.com.cn (unknown [10.5.228.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mxct.zte.com.cn (FangMail) with ESMTPS id 4ZSrBN0RWlz51SY9; Thu, 3 Apr 2025 13:38:36 +0800 (CST) Received: from xaxapp04.zte.com.cn ([10.99.98.157]) by mse-fl2.zte.com.cn with SMTP id 5335cWOB017140; Thu, 3 Apr 2025 13:38:32 +0800 (+08) (envelope-from xu.xin16@zte.com.cn) Received: from mapi (xaxapp04[null]) by mapi (Zmail) with MAPI id mid32; Thu, 3 Apr 2025 13:38:34 +0800 (CST) Date: Thu, 3 Apr 2025 13:38:34 +0800 (CST) X-Zmail-TransId: 2afb67ee1eda53d-6e9e8 X-Mailer: Zmail v1.0 Message-ID: <20250403133834135T-0RJg5_VxJfmzN3dG3bE@zte.com.cn> In-Reply-To: <20250403132534636XLwK7CWiCj1J4-FENz0vk@zte.com.cn> References: 20250403132534636XLwK7CWiCj1J4-FENz0vk@zte.com.cn Mime-Version: 1.0 From: To: , Cc: , , , , , , , , , Subject: =?utf-8?q?=5BPATCH_linux-next_5/6=5D_memcontrol-v1=3A_add_ksm=5Fmer?= =?utf-8?q?ging=5Fpages_in_cgroup/memory=2Eksm=5Fstat?= X-MAIL: mse-fl2.zte.com.cn 5335cWOB017140 X-Fangmail-Anti-Spam-Filtered: true X-Fangmail-MID-QID: 67EE1EDC.000/4ZSrBN0RWlz51SY9 X-Rspamd-Queue-Id: 106431C0011 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: wo6g8kn88ki3i5z9csurzzekdykeoga8 X-HE-Tag: 1743658720-870979 X-HE-Meta: U2FsdGVkX1+ayLJpO+vqUgYq3pcmaqdP5g1+E8p/Gpi0CUhn32rzPolHgVsdo6P2sdRocl9mj1/yVugFOVna8ixzFPFtXi4pIJOBpN6hcbpuDTrC3ZZVlWBYR/QPonTFB9VuBbtlo/Jt8azq6zSYCcvy25O+hvDUdv3sOWbPpZKuX41py4fLsoELKGrJr553adtR/IAwJUs52PFS65e+BqSg9BCfHmBRsyUcn15hTXLi+7cEO7tseN/hiFSRTHcqVVLI7qiy6sLTWly0ZYgrR2oIiW9gDT5HYGuWpQmrRTOpovZvi1vJL+jW6xkWrsgxA9FJpIi3BJdyumvuHJWNP9NP4DvogZr6V+sH+/xXgKl+m2M4RfdNto+hXQD9U/jaMGLBWdZkpDA5QC2UVYv11UU5m+JrKYwfoFIDyudM+WjkvtBEXIaajw8x1ndoGz+W1vP9SQ5wpedfISxJZH9sjXOIbrOmkFTsoWWoGAvXJHxwl24lbYI61oYvxyOIYeKHNsTTwotcKzp12+1eCifTXRJo6ITXOVw51hU3JFZ8FI3QPASfMFtg5/kULSS0YmqpUT0jTDEiokRbcLnZtgd69mjCUE7F8A6GHWu36TqjhVt1ex6UJVZ95D9OyfiJV204kExscDH553EGRu2XmSPM/VLuP1OYagY3VHa+0AEIYROeQC/jHh5wauAhsyCKqETmkRc+m2GsdwH9Ssw/Ks+9k2Jx6MIQgsut2BSuu92A2/OwgsgDpNstlsm2ZGB3GopwJv/JJLQ060A+uuQPKUJ0BGQ/xuoL6dBiKxu3OYnagmU07oYiHXYuwEKyhmXb63vGHTcb9y9OibKZUtQSqJ7ierhRHxoRjRsyOOGVTW9iw7LchFEt0hYtnahvrJiAo1h5bxUKKjZdnZR+ljU6E3GK50qu7O0meb4Wq/IOpj/TVpjjxhIWMXIKQXhT9d514+28QTdxW4lf66C61dyvsDw Ku6fsR63 K3R+U06+77uua9E/OrJ7ROOEneaM5mprMK7vCXeIw/UUyLFATgXoMg3z+cTMRkEWt0g5DNZlkYgsUT/IuuqmheV0LtVtWTeULMdcWdFh6bA0usxOLSQl2S8r6X1o2rKOIhhFUHYZfScLiNFqYWxXTjM8VLt4Xb5ntgu+aKNl7i94M+sXxRTReSGGKDEnR5pob7sLIxdY6AWw1ew7332hcCEplmvkwfZf/6Fk7DTofRY7l736cbOvF/oP3u8lLxUeuqeLHnJb5OafUfd4= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: xu xin 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 a6eea1deebff..b52f728af963 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, void *v) struct memcg_ksm_stat { unsigned long ksm_rmap_items; long ksm_zero_pages; + unsigned long ksm_merging_pages; }; 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 += mm->ksm_rmap_items; ksm_stat->ksm_zero_pages += mm_ksm_zero_pages(mm); + ksm_stat->ksm_merging_pages += mm->ksm_merging_pages; mmput(mm); } @@ -1851,12 +1853,14 @@ static int memcg_ksm_stat_show(struct seq_file *m, void *v) /* Initialization */ ksm_stat.ksm_rmap_items = 0; ksm_stat.ksm_zero_pages = 0; + ksm_stat.ksm_merging_pages = 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); + seq_printf(m, "ksm_merging_pages %ld\n", ksm_stat.ksm_merging_pages); return 0; }