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 2DF6BC4332F for ; Thu, 2 Nov 2023 05:47:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 98D2D8E001F; Thu, 2 Nov 2023 01:47:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8EEEC8D0026; Thu, 2 Nov 2023 01:47:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 768B28E001F; Thu, 2 Nov 2023 01:47:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 6127B8D0026 for ; Thu, 2 Nov 2023 01:47:18 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 3EBCC40E4A for ; Thu, 2 Nov 2023 05:47:18 +0000 (UTC) X-FDA: 81411931356.27.240E455 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.65]) by imf23.hostedemail.com (Postfix) with ESMTP id 4A7A4140006 for ; Thu, 2 Nov 2023 05:47:16 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b="L/ZyVrBt"; spf=pass (imf23.hostedemail.com: domain of ying.huang@intel.com designates 134.134.136.65 as permitted sender) smtp.mailfrom=ying.huang@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1698904036; 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:dkim-signature; bh=ciuN5mgGrRe+foiMo8a7QVDTMR1aWrLvTfoV73h84wc=; b=kz3U/PfXuoTjJaY6CJJLTyslh4fjLC5reCSZB/eQSC2mi2w1zNSkSrAQmfIgoe/q4x4jTR TlJYwdil7b2FRiMjp0Yu2uvgj2cyAuujt40IfoOcMwcaXqeC/vaxrknomWLmP0CGc9QYF0 zLY7ee//+lH4WqvB2/6vbpXN7EIlEi8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1698904036; a=rsa-sha256; cv=none; b=yyoKbHhlZGcT6Yx0oNjYFRZZd5nmgqzBoIcovQZFqtuKiWmpbW1rKm4yk5ZNYOrE6JBYQf OukPADaqLIPszhdmV5FKa36+tSxdLP9RwA0FVkYcyuChm0QsQevDFpR2peaLOYa2DvefKT 4qMJ+1cdNpyVemOcXezSX7yzgV2qPb4= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b="L/ZyVrBt"; spf=pass (imf23.hostedemail.com: domain of ying.huang@intel.com designates 134.134.136.65 as permitted sender) smtp.mailfrom=ying.huang@intel.com; dmarc=pass (policy=none) header.from=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1698904036; x=1730440036; h=from:to:cc:subject:in-reply-to:references:date: message-id:mime-version; bh=TkaENhbVAzlufpoPSmuORpCUkk9dSifiMhFEGZFd7VQ=; b=L/ZyVrBtJRiANLeFCYgKeWvMnJobkw95gS6zayVXVnc4nNm3HSu/haez O4KZ0jI2YQsgHz4h/sSVSPfI2/IcjTqKrWx8t9HpGJqFYd22TSCjryl8S c4rFz9uGkjqE1egnN/WZ48fDG2M6XjeAtFg8dmbpp4nIl4JWUZa1nOA3g rYgEPqtjO5tr2bl/vIa3hmFJYtno/Iyz0xE3ogHPP481KF14pFLNevi96 GQmHi65tAE5DoLW6GMienC0TYFhYeOQ31BLQtO1rLfQezrcHSphm62NsC YivaKyOc2p8f1ZbFOH4fg5mkthKE2kx7RAFGdNqSjixW5Y3o0YYXsOzrk A==; X-IronPort-AV: E=McAfee;i="6600,9927,10881"; a="392527297" X-IronPort-AV: E=Sophos;i="6.03,270,1694761200"; d="scan'208";a="392527297" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Nov 2023 22:47:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10881"; a="1008353291" X-IronPort-AV: E=Sophos;i="6.03,270,1694761200"; d="scan'208";a="1008353291" Received: from yhuang6-desk2.sh.intel.com (HELO yhuang6-desk2.ccr.corp.intel.com) ([10.238.208.55]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Nov 2023 22:47:12 -0700 From: "Huang, Ying" To: Li Zhijian Cc: Andrew Morton , Greg Kroah-Hartman , , , , Subject: Re: [PATCH RFC 3/4] mm/vmstat: rename pgdemote_* to pgdemote_dst_* and add pgdemote_src_* In-Reply-To: <20231102025648.1285477-4-lizhijian@fujitsu.com> (Li Zhijian's message of "Thu, 2 Nov 2023 10:56:47 +0800") References: <20231102025648.1285477-1-lizhijian@fujitsu.com> <20231102025648.1285477-4-lizhijian@fujitsu.com> Date: Thu, 02 Nov 2023 13:45:10 +0800 Message-ID: <87r0l81zfd.fsf@yhuang6-desk2.ccr.corp.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=ascii X-Stat-Signature: hftga5fsk94hshhpnmudigh6krn8hrsf X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 4A7A4140006 X-Rspam-User: X-HE-Tag: 1698904036-725785 X-HE-Meta: U2FsdGVkX181SOSZHleI3gigOdSdupVkcHE67eoTW/mx67edUgeNFIyF6Q/X3RA+RnoWBtcxZacS8tZ/32027ReAvLV2J15kj2NSkTNKoqU6E6/X6O0YhwP+6xm8pDB3sOYbqmskqt7ZlZNJgt3dPLb0QW2xQLKHCDq17YgB69kHTheyNmmQhuEY9Fgw4TrHCOxsmbq+Lf/5kKlCohZbsazDtkgE4ppepC/Ei2sHFFoyFbkUVKmhiayVgjqaVZleLBNd37dEHv6QivTUllt5fNVyQHPG4cb+4rCPXa01TWYll+Ec38GbE+9QPnTuJIt+p8JJwboCXSZ7YVxSF8rdP7S+Vx9iHW/uh2njuSID60JgFYBK4Oda4fDC0AyBfpFceUFxk/zrNKpTOPipUFwsCIWEBgF4q2QtjviyvJho4Cn9bO2/flMp+ASeb6N45DfD+y//z2e8v8Mqzt0JcmOVLMoT2/HxDIrjMqkZ+Ek5njKLTy3npaMYhwtt+wyTnY5EKf2n15wlEC5zAg3QKfCkjVqGnMsyxgrJWBPjlnLb7iIiQRgsy8/hPoNyTY3xXw5JuOPCQD4v0vW7dehQhigB1vsNTFnz+13HrkHCV4UqZcXgxkyJ0GXVgeFhUrVjc5vMushDVZDhiZ29DKBecQ3Tru9U66dPCzk77Oph10cqgxY3vNexS7fjYeAa0lRg3DuhPQurZXns4Ba+Cp3J+08C/gly8GTPXm5O86rIgdvBM8OmAYHbcZlL4ULrfqHgK3ZheCZRChkgz5mvI9qf6omxXuFqjWHMQJ1+u8scMUNn/vfIH12f5OFftT3pRkv4t7k3LRP+BMPixhDt53ikxhW/ppR3ozUFVF9qMb82utNbSskUBKeyJ1mO0rhpPNRqk+EYenJ51T5TniPk4dIANkFUplVsntRT0tIKorNsv8z0eJxDkc3xr2iuuBxpOJyby+2D9G+K4CcP6+v3jAOzhbI GVK23+am c95mIsczZ0aad/19jbjEzdzoVOLza6RKCAU8JauycDEhbG+SXEUqMJIwCtXB7rOBUWIEHyq2vw3WCQo3NPwFacDEMt+utB5XYB31njUcgWbHsWO2R5YSpoLWRoGuh0U4jqxvMoquWgf8+PSk+rKs+HxzLlNRrE9wBzVS+u46CQgyC5Rsit68nxlfafjCS2QB85EWTrJhGYtDhZq5J6Ry2JJKoD56758u+mV7eO5gqjbr2cIgYueRHOhpexNmxAH2pyiWB 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: Li Zhijian writes: > pgdemote_src_*: pages demoted from this node. > pgdemote_dst_*: pages demoted to this node. > > So that we are able to know their demotion per-node stats by checking this. > > In the environment, node0 and node1 are DRAM, node3 is PMEM. > > Global stats: > $ grep -E 'demote' /proc/vmstat > pgdemote_src_kswapd 130155 > pgdemote_src_direct 113497 > pgdemote_src_khugepaged 0 > pgdemote_dst_kswapd 130155 > pgdemote_dst_direct 113497 > pgdemote_dst_khugepaged 0 > > Per-node stats: > $ grep demote /sys/devices/system/node/node0/vmstat > pgdemote_src_kswapd 68454 > pgdemote_src_direct 83431 > pgdemote_src_khugepaged 0 > pgdemote_dst_kswapd 0 > pgdemote_dst_direct 0 > pgdemote_dst_khugepaged 0 > > $ grep demote /sys/devices/system/node/node1/vmstat > pgdemote_src_kswapd 185834 > pgdemote_src_direct 30066 > pgdemote_src_khugepaged 0 > pgdemote_dst_kswapd 0 > pgdemote_dst_direct 0 > pgdemote_dst_khugepaged 0 > > $ grep demote /sys/devices/system/node/node3/vmstat > pgdemote_src_kswapd 0 > pgdemote_src_direct 0 > pgdemote_src_khugepaged 0 > pgdemote_dst_kswapd 254288 > pgdemote_dst_direct 113497 > pgdemote_dst_khugepaged 0 > > From above stats, we know node3 is the demotion destination which one > the node0 and node1 will demote to. Why do we need these information? Do you have some use case? -- Best Regards, Huang, Ying > Signed-off-by: Li Zhijian > --- > RFC: their names are open to discussion, maybe pgdemote_from/to_* > Another defect of this patch is that, SUM(pgdemote_src_*) is always same > as SUM(pgdemote_dst_*) in the global stats, shall we hide one of them. > --- > include/linux/mmzone.h | 9 ++++++--- > mm/vmscan.c | 13 ++++++++++--- > mm/vmstat.c | 9 ++++++--- > 3 files changed, 22 insertions(+), 9 deletions(-) > > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > index ad0309eea850..a6140d894bec 100644 > --- a/include/linux/mmzone.h > +++ b/include/linux/mmzone.h > @@ -207,9 +207,12 @@ enum node_stat_item { > PGPROMOTE_SUCCESS, /* promote successfully */ > PGPROMOTE_CANDIDATE, /* candidate pages to promote */ > /* PGDEMOTE_*: pages demoted */ > - PGDEMOTE_KSWAPD, > - PGDEMOTE_DIRECT, > - PGDEMOTE_KHUGEPAGED, > + PGDEMOTE_SRC_KSWAPD, > + PGDEMOTE_SRC_DIRECT, > + PGDEMOTE_SRC_KHUGEPAGED, > + PGDEMOTE_DST_KSWAPD, > + PGDEMOTE_DST_DIRECT, > + PGDEMOTE_DST_KHUGEPAGED, > #endif > NR_VM_NODE_STAT_ITEMS > }; > diff --git a/mm/vmscan.c b/mm/vmscan.c > index 2f1fb4ec3235..55d2287d7150 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -1111,13 +1111,18 @@ void drop_slab(void) > static int reclaimer_offset(void) > { > BUILD_BUG_ON(PGSTEAL_DIRECT - PGSTEAL_KSWAPD != > - PGDEMOTE_DIRECT - PGDEMOTE_KSWAPD); > + PGDEMOTE_SRC_DIRECT - PGDEMOTE_SRC_KSWAPD); > BUILD_BUG_ON(PGSTEAL_DIRECT - PGSTEAL_KSWAPD != > PGSCAN_DIRECT - PGSCAN_KSWAPD); > BUILD_BUG_ON(PGSTEAL_KHUGEPAGED - PGSTEAL_KSWAPD != > - PGDEMOTE_KHUGEPAGED - PGDEMOTE_KSWAPD); > + PGDEMOTE_SRC_KHUGEPAGED - PGDEMOTE_SRC_KSWAPD); > BUILD_BUG_ON(PGSTEAL_KHUGEPAGED - PGSTEAL_KSWAPD != > PGSCAN_KHUGEPAGED - PGSCAN_KSWAPD); > + BUILD_BUG_ON(PGDEMOTE_SRC_DIRECT - PGDEMOTE_SRC_KSWAPD != > + PGDEMOTE_DST_DIRECT - PGDEMOTE_DST_KSWAPD); > + BUILD_BUG_ON(PGDEMOTE_SRC_KHUGEPAGED - PGDEMOTE_SRC_KSWAPD != > + PGDEMOTE_DST_KHUGEPAGED - PGDEMOTE_DST_KSWAPD); > + > > if (current_is_kswapd()) > return 0; > @@ -1678,8 +1683,10 @@ static unsigned int demote_folio_list(struct list_head *demote_folios, > (unsigned long)&mtc, MIGRATE_ASYNC, MR_DEMOTION, > &nr_succeeded); > > + mod_node_page_state(pgdat, > + PGDEMOTE_SRC_KSWAPD + reclaimer_offset(), nr_succeeded); > mod_node_page_state(NODE_DATA(target_nid), > - PGDEMOTE_KSWAPD + reclaimer_offset(), nr_succeeded); > + PGDEMOTE_DST_KSWAPD + reclaimer_offset(), nr_succeeded); > > return nr_succeeded; > } > diff --git a/mm/vmstat.c b/mm/vmstat.c > index f141c48c39e4..63f106a5e008 100644 > --- a/mm/vmstat.c > +++ b/mm/vmstat.c > @@ -1244,9 +1244,12 @@ const char * const vmstat_text[] = { > #ifdef CONFIG_NUMA_BALANCING > "pgpromote_success", > "pgpromote_candidate", > - "pgdemote_kswapd", > - "pgdemote_direct", > - "pgdemote_khugepaged", > + "pgdemote_src_kswapd", > + "pgdemote_src_direct", > + "pgdemote_src_khugepaged", > + "pgdemote_dst_kswapd", > + "pgdemote_dst_direct", > + "pgdemote_dst_khugepaged", > #endif > > /* enum writeback_stat_item counters */