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 B14D8C7115E for ; Thu, 19 Jun 2025 07:53:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 510416B007B; Thu, 19 Jun 2025 03:53:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4E76C6B0088; Thu, 19 Jun 2025 03:53:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3FDC66B008C; Thu, 19 Jun 2025 03:53:33 -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 2EE076B007B for ; Thu, 19 Jun 2025 03:53:33 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 9E5EA100D42 for ; Thu, 19 Jun 2025 07:53:32 +0000 (UTC) X-FDA: 83571385464.06.A3994EC Received: from esa3.hc1455-7.c3s2.iphmx.com (esa3.hc1455-7.c3s2.iphmx.com [207.54.90.49]) by imf18.hostedemail.com (Postfix) with ESMTP id 8BDED1C0005 for ; Thu, 19 Jun 2025 07:53:30 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=fujitsu.com header.s=fj2 header.b=rj536vdC; spf=pass (imf18.hostedemail.com: domain of lizhijian@fujitsu.com designates 207.54.90.49 as permitted sender) smtp.mailfrom=lizhijian@fujitsu.com; dmarc=pass (policy=reject) header.from=fujitsu.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750319610; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=PNIob+6SI7bIsKvrk4yPHPOAPxXPccVoqbgXXDim71s=; b=h5gHfyKqs7Z8sxkDRMIJ2ZJJKuBtB00P+Jk9E3PUt+uDxrEZ9+Tx7KYWih4mue838ngjq7 AGjkrYdv4xm1tTXIbtpVeNQ48aYfaOl+4Y1k9nAOKi4cjI22uwjUuUTj1fzPdd0cb7Sx4O vkD9Ixa7wLYYCpT632gbvUJQZ35qJ88= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=fujitsu.com header.s=fj2 header.b=rj536vdC; spf=pass (imf18.hostedemail.com: domain of lizhijian@fujitsu.com designates 207.54.90.49 as permitted sender) smtp.mailfrom=lizhijian@fujitsu.com; dmarc=pass (policy=reject) header.from=fujitsu.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750319610; a=rsa-sha256; cv=none; b=v9ShbOS4Am3t68tQdJ3AaWfwJ8I1wVeMiIaoiczeo817rXQAfRLNIVCPoJqh9p9zXVofuu 8nXY9dt0shavI88wyz340OZ1rhZGe9SAEKokCfSjCIMkIDZ2QsbusGcwCqtFaccvMx9J57 OzwFmMaYthE8DpNTYrxzZd+Id7/FxIM= DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj2; t=1750319610; x=1781855610; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=Wx7EkHpEKpF0iXlyn2dwo76kz1GGR/Yk/XzsioU02cc=; b=rj536vdCJry/p+zXnDiQX1uKqgfAgPD0RLzDkZJVecJ2N7RLuA9rW+pz 35y12z9SOCF44itle8YBkNe2W+YyBR8tLc4rOR8xe8pMmYapnLnk829PW CXbG3rTHtXNuF23xQemwKL1pSAR099RdLfINeu0O1MqD3H+nJr2DaKt5T iQ+2r67gqM/zfWX4r98BsFlhw+np5kDnL7kyeEW2aBW041VU77CM3wcMg xO+l7nVNS5cO7sSgNVX0VkPLecN/rCHpZcURXiN7yT6IvEn1eei1XaW82 e50XWPYgXbpDbAJpHZAdNfnDeiLC0qCajpdJ86j9F6nZji2v/jLWiVsz9 A==; X-CSE-ConnectionGUID: 5PDVdDMXSN6w9aN5Vx8Hqw== X-CSE-MsgGUID: YOTYSLEwTAWpyMD24dL4rg== X-IronPort-AV: E=McAfee;i="6800,10657,11468"; a="203233658" X-IronPort-AV: E=Sophos;i="6.16,248,1744038000"; d="scan'208";a="203233658" Received: from unknown (HELO yto-r3.gw.nic.fujitsu.com) ([218.44.52.219]) by esa3.hc1455-7.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Jun 2025 16:53:28 +0900 Received: from yto-m1.gw.nic.fujitsu.com (yto-nat-yto-m1.gw.nic.fujitsu.com [192.168.83.64]) by yto-r3.gw.nic.fujitsu.com (Postfix) with ESMTP id 1069DD5053 for ; Thu, 19 Jun 2025 16:53:26 +0900 (JST) Received: from edo.cn.fujitsu.com (edo.cn.fujitsu.com [10.167.33.5]) by yto-m1.gw.nic.fujitsu.com (Postfix) with ESMTP id 5D6CCCF7C2 for ; Thu, 19 Jun 2025 16:53:25 +0900 (JST) Received: from FNSTPC.g08.fujitsu.local (unknown [10.167.135.44]) by edo.cn.fujitsu.com (Postfix) with ESMTP id D97371A008D; Thu, 19 Jun 2025 15:53:21 +0800 (CST) From: Li Zhijian To: linux-mm@kvack.org Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org, y-goto@fujitsu.com, Li Zhijian , Huang Ying , Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider Subject: [PATCH RFC] mm: memory-tiering: Fix PGPROMOTE_CANDIDATE accounting Date: Thu, 19 Jun 2025 15:52:45 +0800 Message-ID: <20250619075245.3272384-1-lizhijian@fujitsu.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: 8BDED1C0005 X-Rspamd-Server: rspam01 X-Stat-Signature: rrfeh3afez9zdomua56cerabiz6et89k X-HE-Tag: 1750319610-458812 X-HE-Meta: U2FsdGVkX18KsMekhBm+/rWpPFZ7q676VXB5XfGHrM0Tyhp1LmKYnFU8UxNbkMc+sKhelaNHfe1M954lZ9voYevSns1CO9lukidiSM65eW8qsurfBjbSDux/nbwEA6M5sgb6n45C0As0vT1MiewP3VsahS1eDJhrGFW9cTU155WjrxaCyvAfU7ewvhGt7MaiNIkZq9rW4S1m2HZBEQ7j+YplmH9NwfQZhBcmuinO76xqTWcgSC4v3xwJMRZ34sBjdCMksgq7C/csY3rKwb1uQJEk4cEXPnxOpdyZlVpoXN9mTG/XbdkxhYwtsRaOCHdU9rPTUHCCjMy73mlPC0/N7CfQZLRp8RaToG23L4cOhlKqAmBwbJ31PdBFoL6hetj7pcCMdFWJjpIzp6/JE2Vs6gZSrsp9iQDPChvq9m0m2hF/+BZx3ixAskYIpasprfql5QP9YLLe10FVqRu2hqZNGQAmgbv9npKvKi3XPQG5g+/BFbyWluzd5B4YwJE88Z61dIQYbtw8kfiv6an8eOlpDLoOZUijs6yW6tUUCQHzvcy+xSTz1CgU3FhElT5dgYK52aEjrG9Md7EqsuoVRfQ5+ZEfemDh7ytiCv75dHFbM+G9KzxqnZFoaBBzqtYZITBSXqYhwmNJz0PUGRQ2eliV850RVt+a8WXlF4DIFUzmSrHoP8wL4S5QJVseUcAxv7yydc7K1CNSBsG3vymULCpr8uQiWndwWpW3AqzEcSCkMjrZ7xST7eZ6a/eZnRax3xgkNOVK1WSCKlvQsM3bTSOOfEYWyRje8itHKUlSIH5p1Fj2ITu0VgY+54yyxKfV+/9os/ML4Bgjn2RmiCNItrQpR4U6ONSlzNq9xJNw7Rmi+YVhd9+60ONUv2BzIj/e8L5AuiVzYUzDICJFb66MPuwVRBm8SUCdYkJzFht7S+eUEYDUuF16lNEAd2olQRLvJcO4L6z8aCyB/5dUhswhqdH cZlvHRZT lgg+NSdOcEmtUsLcsykn+pelp8WJ1SQ5HNnsa44pLvt7qA6YHjiMBGBURsLj/MkJrBt5633lt+81jAe6ddOFiA4DJImJ4ks7pESV7KCEwR7gYGhSYSQrwJEmIaHD/SjNTcQ0Gi2pnkXA2jwcKYuy2pD6a0nuXllvuvrjydUcbCk//pKbql8PrLe5bPOz1LllGFJRgD2Gb6Krzhi4w/lBbsOC9xRFS3X/3K2mk5yz713BE99PfyJihNdOmpPcP1LF9XSRSpR8PO5xfqDmken8Wi9Ojsm8ZGN3odO8VYhMMmU/IcpflZhPWY9B9CWBow4lqaAHXKMZKOCfq9bRizjVZhgUshNbZHW7hWkwbDim9BXxDtk77X8DgTmPVEfAiLQHCiroM7YbBL9E06m4DKRLLx/jVFYafGJDaKMATiea4q1XTqRwyZLtjklbwQEZzOhdi8TauP6MiTxQkeztu9uoj0wFU3PTPzQoyBbqCjdefLhWAyheB/3YQPSKFw28pE6P0XJ6vGT3pCiaUAlaKI70acn04q87P3rR3OChIuWeZXJaHf5/Fwjlj/Il7iEHLlXxxW0lK+EAoS0QyB49JwSFVC8NkK1qNZXBXnPOduHj3KYRnlN7e9G9JvQqTTbMJU6KpY8OoMBMmUdw7yXRPWmwZWUsBqzpEXa5QdkdG0b2VSt876EiFxBb/UrxksO9fENaj1QBh 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: Goto-san reported confusing pgpromote statistics where the pgpromote_success count significantly exceeded pgpromote_candidate. The issue manifests under specific memory pressure conditions: when top-tier memory (DRAM) is exhausted by memhog and allocation begins in lower-tier memory (CXL). After terminating memhog, the stats show: $ grep -e pgpromote /proc/vmstat pgpromote_success 2579 pgpromote_candidate 1 This update increments PGPROMOTE_CANDIDATE within the free space branch when a promotion decision is made, which may alter the mechanism of the rate limit. Consequently, it becomes easier to reach the rate limit than it was previously. For example: Rate Limit = 100 pages/sec Scenario: T0: 90 free-space migrations T0+100ms: 20-page migration request Before: Rate limit is *not* reached: 0 + 20 = 20 < 100 PGPROMOTE_CANDIDATE: 20 After: Rate limit is reached: 90 + 20 = 110 > 100 PGPROMOTE_CANDIDATE: 110 Reported-by: Yasunori Gotou (Fujitsu) Signed-off-by: Li Zhijian --- This is markes as RFC because I am uncertain whether we originally intended for this or if it was overlooked. However, the current situation where pgpromote_candidate < pgpromote_success is indeed confusing when interpreted literally. Cc: Huang Ying Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Juri Lelli Cc: Vincent Guittot Cc: Dietmar Eggemann Cc: Steven Rostedt Cc: Ben Segall Cc: Mel Gorman Cc: Valentin Schneider --- kernel/sched/fair.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 7a14da5396fb..4715cd4fa248 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1940,11 +1940,13 @@ bool should_numa_migrate_memory(struct task_struct *p, struct folio *folio, struct pglist_data *pgdat; unsigned long rate_limit; unsigned int latency, th, def_th; + long nr = folio_nr_pages(folio) pgdat = NODE_DATA(dst_nid); if (pgdat_free_space_enough(pgdat)) { /* workload changed, reset hot threshold */ pgdat->nbp_threshold = 0; + mod_node_page_state(pgdat, PGPROMOTE_CANDIDATE, nr); return true; } @@ -1958,8 +1960,7 @@ bool should_numa_migrate_memory(struct task_struct *p, struct folio *folio, if (latency >= th) return false; - return !numa_promotion_rate_limit(pgdat, rate_limit, - folio_nr_pages(folio)); + return !numa_promotion_rate_limit(pgdat, rate_limit, nr); } this_cpupid = cpu_pid_to_cpupid(dst_cpu, current->pid); -- 2.43.5