From patchwork Thu Apr 3 05:40:13 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: 14036755 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 5E80BC3600C for ; Thu, 3 Apr 2025 05:40:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E5B08280004; Thu, 3 Apr 2025 01:40:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E0BD4280001; Thu, 3 Apr 2025 01:40:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CD591280004; Thu, 3 Apr 2025 01:40:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id AF73D280001 for ; Thu, 3 Apr 2025 01:40:20 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 638D41CD19B for ; Thu, 3 Apr 2025 05:40:21 +0000 (UTC) X-FDA: 83291632242.10.4C627CC Received: from mxct.zte.com.cn (mxct.zte.com.cn [183.62.165.209]) by imf22.hostedemail.com (Postfix) with ESMTP id E8030C000A for ; Thu, 3 Apr 2025 05:40:18 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=none; spf=pass (imf22.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=1743658819; 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=Mv0MKnR7rzbVuyKDq72GS1TFEmhlzIbU0bVPWOE9+eQ=; b=P+cHUo2L/AvgIlIobHnu49+PwL/lxMwaOSvqlOmNMh1cc9pCEzpmOGGGOjCY2cohPW7n5u mca+iDCvPHbOyy2Vl539YUdGfAodkmbk6VINtXU2fxDONx1jn9LH0zvXnFrlTEb08EIgxt 7qfCMUW4t87IdO6fXyuswZgt8mb3zL0= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=none; spf=pass (imf22.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=1743658819; a=rsa-sha256; cv=none; b=zQSdO8+95JAdIeYWhr5uCvJGs4W+3XgtVDb/h4O36hccBeBJW1+OT//40ukiQF8Y0UMgLe tXCM8g5z/aOOgrsS1nX2njl7Fg2qv4fpP4Z6mjdgH2qqE5qpMrwexNpJwbomQNGiH1kZGf fwkUf9qcR6Hu+9ToZs90DUwu+2vkeSI= Received: from mse-fl1.zte.com.cn (unknown [10.5.228.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mxct.zte.com.cn (FangMail) with ESMTPS id 4ZSrDD759fz4x6DN; Thu, 3 Apr 2025 13:40:12 +0800 (CST) Received: from xaxapp05.zte.com.cn ([10.99.98.109]) by mse-fl1.zte.com.cn with SMTP id 5335eBrW047456; Thu, 3 Apr 2025 13:40:11 +0800 (+08) (envelope-from xu.xin16@zte.com.cn) Received: from mapi (xaxapp05[null]) by mapi (Zmail) with MAPI id mid32; Thu, 3 Apr 2025 13:40:13 +0800 (CST) Date: Thu, 3 Apr 2025 13:40:13 +0800 (CST) X-Zmail-TransId: 2afc67ee1f3dffffffffce3-75188 X-Mailer: Zmail v1.0 Message-ID: <20250403134013749X6VVdhQope3TRpBQF_qia@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_6/6=5D_memcontrol-v1=3A_add_ksm=5Fpro?= =?utf-8?q?fit_in_cgroup/memory=2Eksm=5Fstat?= X-MAIL: mse-fl1.zte.com.cn 5335eBrW047456 X-Fangmail-Anti-Spam-Filtered: true X-Fangmail-MID-QID: 67EE1F3C.00C/4ZSrDD759fz4x6DN X-Rspamd-Queue-Id: E8030C000A X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: y83in6jh99xmof3imwp3s717mqmsi54m X-HE-Tag: 1743658818-458121 X-HE-Meta: U2FsdGVkX18jH41v6e8p5uV8y/xfx+2B0Y/Yo+hB7HbyZ11kNtjwaDqLQPfmjb3EdLWDioBjgHxOjw39pgJYkcJ0Tb9GAcUQ3xldfQCeMotamSPF6xz6Qp/k3QDLrSATb6T41RGxYcPlAQ9bQtBybstpk82akzNzNbjkRzBdVjDTZy8C/hMiOY6zs2GWZ5EMxOW/Lv3CXrAgR6mW2DjBgMyt2iXZRWeCsBC+vQCnrO8jWv8V1skvnNUymQ+Gq1Gp75heL+SYpPQAPC3WIq4qjJaLQ8uxEHyD8GPG7hXSUn8arj86vChbr5fVJ+jRFmnZHfg5ZU3JSLbVMog0Qxg/29gbYkObR4hQtIUq4kK7KSoBz4CoZ59TBCWFSVojlnlhDV2QAOQMLSW6hQ4wnPFVjjIcL0RxIYHqCQAZYeXXdiMAWjVXvAY2NSUPTRzVe6qsVP29KYP/214900sOpf3aupjT0jJiewR/El71a+kSeC2Goz4F2f/HYMwmWqjJPDGrN0v2F0iXYTsBMKBU0799NJbUU8oOFr4NkhjbA6Vd0HAyXGVEhkRrUaWGRicwuwW4wWry/GG4NvNSVhg5y08q0RpL6SuTVZkoyGaHN+JVDgkvF0eU/kzdsB3LXjC+/tMv59AZ3cmEn6qkYh9XSfZsJB1Iwc+5Uu71PXVI/TZcOyGm1lv/pX/jli1hCjpY30po+spUFoXAbAvvY/p7Dj+E6FloFVZwkIs//BqezigYBT3jruM5BR5tGkNOAwo27JCiNOW17rqVJGB62bie+g5Vatons3KX5NFkxtfOBpEfq6MB1oGwWHgbJBQoVVc8TgNRF0usPBDEcUKnzNoYmFW3aQOZrcUGh4Uxkl7hDC4C1fMa/P1YmTqHmYpndXwmh9jvTbN3bx32Ekv0M6uwmREQLekCK//wcLUBy09qfIlk/3hWe0WMQkL/iVQdcK2ntg2YN7feDI4gjDWSEOOdX6d h5Y6DRtc 76C8u363pYlY1m7y1+75ROPqElb7q9rRrp3vkFW3uRz+ZsyXoJD0L8Z3csBh0aPSNRJJMpbIN+ml7QGZp8rqC0QB24wSHcgy3yTCxt0j8DN0OkMM5dd2dkfxSTZAhz4xyQ5pDQIILMzg4wOTXDhJOV0MWGCng6cLcCDhkTu69p8Oh1NQXb/xF+IL8Z8qI+jtZsYVh3hx9rMJ8Ciw+SQGukY8kqQgQDw1fBQmoGa8so2X+9LCz0+eGMSgVfFdvL6+kF2GK6kUi6uOaPB8= 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_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 b52f728af963..3e7a653e3df1 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; }; 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 += mm->ksm_rmap_items; ksm_stat->ksm_zero_pages += mm_ksm_zero_pages(mm); ksm_stat->ksm_merging_pages += mm->ksm_merging_pages; + ksm_stat->ksm_profit += ksm_process_profit(mm); mmput(mm); } @@ -1854,6 +1856,7 @@ static int memcg_ksm_stat_show(struct seq_file *m, void *v) ksm_stat.ksm_rmap_items = 0; ksm_stat.ksm_zero_pages = 0; ksm_stat.ksm_merging_pages = 0; + ksm_stat.ksm_profit = 0; /* 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, void *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); return 0; }