From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D02EEC5B543 for ; Wed, 4 Jun 2025 03:45:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6A4C06B04AD; Tue, 3 Jun 2025 23:45:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 67C306B04AE; Tue, 3 Jun 2025 23:45:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5BAF36B04B0; Tue, 3 Jun 2025 23:45:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 3DD066B04AD for ; Tue, 3 Jun 2025 23:45:22 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id A74B3C226B for ; Wed, 4 Jun 2025 03:45:21 +0000 (UTC) X-FDA: 83516328042.26.D44C31F Received: from mxhk.zte.com.cn (mxhk.zte.com.cn [160.30.148.35]) by imf11.hostedemail.com (Postfix) with ESMTP id E574740007 for ; Wed, 4 Jun 2025 03:45:15 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=none; spf=pass (imf11.hostedemail.com: domain of xu.xin16@zte.com.cn designates 160.30.148.35 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=1749008718; a=rsa-sha256; cv=none; b=f7O0WCoAAmZVptFc8JmSV/f5HcakxBiABYJ5858oX8GvFX8ecVPrxSXTLhr2FJgXUlHiJy gGG0RDITfcU/cYaTH91C9rsE6bXPFzDF63ttnL1/4TeLcIaXHQ/r8xxHamtcEiNPJgrvn+ 577YfLvQol3MDuGrnmI2m3mqM9/U8mg= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=none; spf=pass (imf11.hostedemail.com: domain of xu.xin16@zte.com.cn designates 160.30.148.35 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=1749008718; 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=PDbooxhsMfyRVvIEIQQAUbklHDxVSLUyqJdjJ6spFVs=; b=mvdhyIcCRwHq7/zmArhKmOP4vYaC07As7QbfwFV166jFFIIFM39nq8EVSw/geFuz5HgjT5 0ikv6RgKmTeBge06EC5wPyJRSYkTnC+BT7vf9ZsP8VpcWrcDaLcqAnheTw697m/Z8iGidL klbDQ5PuzsuFKrCcCHWW01bieXUo7ng= 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 mxhk.zte.com.cn (FangMail) with ESMTPS id 4bBtkr0j4hz8RVF6; Wed, 4 Jun 2025 11:45:08 +0800 (CST) Received: from xaxapp05.zte.com.cn ([10.99.98.109]) by mse-fl1.zte.com.cn with SMTP id 5543j0WP086912; Wed, 4 Jun 2025 11:45:00 +0800 (+08) (envelope-from xu.xin16@zte.com.cn) Received: from mapi (xaxapp04[null]) by mapi (Zmail) with MAPI id mid32; Wed, 4 Jun 2025 11:45:01 +0800 (CST) Date: Wed, 4 Jun 2025 11:45:01 +0800 (CST) X-Zmail-TransId: 2afb683fc13d277-84121 X-Mailer: Zmail v1.0 Message-ID: <20250604114501931NW2by8F85vCd24yqRYHAx@zte.com.cn> In-Reply-To: <20250604031758.4150209-2-xialonglong@kylinos.cn> References: 20250604031758.4150209-1-xialonglong@kylinos.cn,20250604031758.4150209-2-xialonglong@kylinos.cn Mime-Version: 1.0 From: To: Cc: , , , , , Subject: =?UTF-8?B?UmU6IFtQQVRDSCAxLzJdIG1tL2tzbTogY2FsY3VsYXRlIGtzbV9wcm9jZXNzX3Byb2ZpdCBtb3JlIGFjY3VyYXRlbHk=?= Content-Type: text/plain; charset="UTF-8" X-MAIL:mse-fl1.zte.com.cn 5543j0WP086912 X-Fangmail-Anti-Spam-Filtered: true X-Fangmail-MID-QID: 683FC144.000/4bBtkr0j4hz8RVF6 X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: E574740007 X-Stat-Signature: inxaxs6rejo9q57e6xaof53qk8p8z31a X-Rspam-User: X-HE-Tag: 1749008715-905477 X-HE-Meta: U2FsdGVkX1/VoRGyeCLQawx8I189z+x2sIvSPvNj14xtGhxIQUQDE0KnAbC7wDBR0x56ZdAYIpTMuo6bklnx+rUJUasQPb0oms+5UZK7CgpVuEZ2hgrn5xno07TaswgJEreWmOI/Br9NLuaH/n5Dtq/KvKIE8460x1RGVhKRgl00+yVapj1/BFPts7VhPioxJXagWFpTJeuOpTGmBKwWAcre+kN9zuxal924aPEuy3z1OUb3NLB5mSUMJCYXjgBYDydFQCUA8BAdHFBdVwGYmLPWUet/bI0hjSQBVdVJ8HnHLVZkng9UTaoUooV/xix41NRVE2jBnO+LZ7oRUIBOtJH4soHeX+cHx05iVCuRaS3aXJL2An1e/UGy3zcEEVkyfe4YQZfdo9bsR5EhNN/xK1rwkvu29/ZUPrx2VtmFeGBa6Xgpwty25PTlf7ZX37ic9DgqeMEqBrjX859wjgv5CI6dS+74xdmzo8aCqOThP5/kwWsf5JcsjyCXZA7dcxzquetOzxGJVYVgYKRttvHq1OTBOr4a+hKTx30hW5SI3kK+wvubJnDibe7myXkJzRaI+GxvMVo0o9yBm9wxtsOt6IeLAGWMEFzv9URcBiMJ3WiLJ2q6j4Mpe/v8iCb8eWnxzOr6E5ZTPC/8fUf5fTF7tNRS7mfpyUZjHZnudXFcAKigx13s0/Z9hU/SULW6F0vt+eR1oMNggWclAnw3C0XD58DG0AGFKKeKCE3jl2YU/ZEb0WNJjlbvzMz4S0+CXtuGTv9usDgYrq8HWA7YN0bszbwXHJeiSuQ1nV1cLTGndvjVYpPlmAW3GKV2KodQaZ/tsc9H3hleQYBKO0tVxqibd+TS6bfzUqd8YclJbKhEzEiM68NU8bjOkhR045ww+HoO 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: > The general_profit_show() only considers ksm_pages_sharing, > whereas ksm_process_profit() accounts for both ksm_pages_sharing > and ksm_pages_shared for each process. This discrepancy leads to > the sum of ksm_process_profit() across all processes not being equal > to general_profit_show(). > > Fixes: 7609385337a4 ("ksm: count ksm merging pages for each process") > Signed-off-by: Longlong Xia > --- > mm/ksm.c | 20 ++++++++------------ > 1 file changed, 8 insertions(+), 12 deletions(-) Thanks for you report, but we'd better not change the definition of ksm_merging_pages which means all pages involved in ksm merging (pages_sharing + pages_shared), and Do not rename the existing of interface, which breaks user-space tools. If we reallt want a more pricise profit of a process , I suggest: - 1) Add a variable 'ksm_pages_sharing' in mm_struct for processes. - 2) Refine the implementation of ksm_process_profit(). Thanks~ > > diff --git a/mm/ksm.c b/mm/ksm.c > index 8583fb91ef13..fa4e1618b671 100644 > --- a/mm/ksm.c > +++ b/mm/ksm.c > @@ -824,12 +824,10 @@ static void remove_node_from_stable_tree(struct ksm_stable_node *stable_node) > hlist_for_each_entry(rmap_item, &stable_node->hlist, hlist) { > if (rmap_item->hlist.next) { > ksm_pages_sharing--; > + rmap_item->mm->ksm_merging_pages--; > trace_ksm_remove_rmap_item(stable_node->kpfn, rmap_item, rmap_item->mm); > - } else { > + } else > ksm_pages_shared--; > - } > - > - rmap_item->mm->ksm_merging_pages--;