From patchwork Tue Mar 18 07:58:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hao Jia X-Patchwork-Id: 14020535 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 056B1C282EC for ; Tue, 18 Mar 2025 07:58:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 41675280003; Tue, 18 Mar 2025 03:58:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3C49A280001; Tue, 18 Mar 2025 03:58:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 266A2280003; Tue, 18 Mar 2025 03:58:55 -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 0A34E280001 for ; Tue, 18 Mar 2025 03:58:55 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id A5B8B57886 for ; Tue, 18 Mar 2025 07:58:54 +0000 (UTC) X-FDA: 83233920588.08.4EAC3E5 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) by imf04.hostedemail.com (Postfix) with ESMTP id C60DC4000B for ; Tue, 18 Mar 2025 07:58:52 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dC2iiz7W; spf=pass (imf04.hostedemail.com: domain of jiahao.kernel@gmail.com designates 209.85.214.174 as permitted sender) smtp.mailfrom=jiahao.kernel@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742284732; 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:in-reply-to:references:references:dkim-signature; bh=XxXzV7DwlTDF8yOc5L7I2B68LYmEIw24ReUnP4B+up0=; b=05Q3oQ5keL4CcYbpgK1tHYoyQEL1nHQ+E1Kw3cFQD+2BmGzHnIysoYG2hGzl9zQpK5jczY XXwhtN6AHVzJ69zoM8G7MVMz9uLZ00e1gkSA6kHsIJOBOVvIgtqaFqEsvkml/6P6GOT1bP l+PfSv9cowJvqoe68ZOuguyVpN7DnV4= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dC2iiz7W; spf=pass (imf04.hostedemail.com: domain of jiahao.kernel@gmail.com designates 209.85.214.174 as permitted sender) smtp.mailfrom=jiahao.kernel@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742284732; a=rsa-sha256; cv=none; b=bIG9k6IWr6D+Lioqk0ZIJCo8la7DybY5BAsevh2Y9i+bBA4BaFrykJ71fi5yrth7lVPsXr UljpcwqHakqI9e/1vpWkmgnPafmGqXsn+5+anubZVq11THUcAFjXz0Asp4epKwGqztrqwQ e5snLgN0Hkprax73Zk9yxE0pFxreUkc= Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-2241053582dso465995ad.1 for ; Tue, 18 Mar 2025 00:58:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742284732; x=1742889532; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XxXzV7DwlTDF8yOc5L7I2B68LYmEIw24ReUnP4B+up0=; b=dC2iiz7WKJbmXRVC5SBr4IbYWTKDMYF4dFJ0zWqW2mZlMbULWr/JSMt6vAkdCqKjRZ iNVOu666o1gYBrWqEf9CicqmKkxu8fgC+ojXelF6WHdh/g9qDG/WT5rhRdeMrQspXB+m ddGX4MtheloBKide6CixvXh6BwHbF40CdMI15GOp4MljJiRG2GxUrC9f0E/gVLyBa6F6 Ph1uh3dZuM1kLrmhxXYviPBp627qs1hbEsPzKhWwqagpI76qOR9NXZIsvXapUq8KMUnE 5QmjpHe+gxLEHfqNPlO14YcjJ3nGMs45jlvaQOxbYN3TOL8r9h2mjyalrM5yXa2QfdEw aacg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742284732; x=1742889532; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XxXzV7DwlTDF8yOc5L7I2B68LYmEIw24ReUnP4B+up0=; b=NDWIkAFUFp6+JYZ2iWDs8nRmqtQefHCxQbrOLtLAQMo+MOQsABbqDm9/S8leZR6J0L iq7NUt35jwpaV/w+VviE4JKGgMr6wUXa0vg8Bl7uObSd+/bIz7HmjC7UJTNvJepQAOg7 1/iCaPeYzl7fzFB0kbKt9LdJQKGgAnHCDAw6FbeFSXtEl/mgakMsjcEfsCOH4REZlcBB CCQcmpOZin3H4OnBaIok74v8sRR1ei/CXlBFuB6kuZTvCn0ibiSp7vnkyWiiv+vhzaa9 Nb2AdfwbO2QOTs63CjAuPm1yvp9tQYf/DaniTVvD4ZJn8m1gTGr2wAwYUOiEwGXDRcLF fZ0Q== X-Forwarded-Encrypted: i=1; AJvYcCXgjRPalELKd1AeXwRXUiHYiFuCZ0aOUlKdfClmnMjHLKBUayi1vIPyO8RhquKMldJI6WcUnLV6ug==@kvack.org X-Gm-Message-State: AOJu0YwqqnMlJ73nZv08t03ewlt9j1SvL/nyhhg/jCpMdc3ft7PsCYdl prN4v0hXkdbv5dzHGvQ8kzwD5nadl/2LZTHV9POT/ftuKl4SbIh9uGapYA== X-Gm-Gg: ASbGncuWm27GreBbUlv17e65nonv8MPP0x8ov0vDL5Deqj2wgqBGv8wgp0zIX46jtnq 56s8dn2RyBqZk8xACQnNm4j8lWvgbmpNR5JRDgLVORoUxwXN3pJRkLWyjXTLNoVRQg1K/UWXKLV kq1l1nsGLfNqdh47LbsvSJYgqvhy8Ea3YoRweztwl65kfI/Pua+ovyfI7zcFHRuA8LsUVJayaYQ yIgiYIe5bgPRUVtPXEgzDf0HjMvWRkzsKRiDorHnci3hiXEkqEMl0q3+UYnTH0PjU290BQg39m9 /nU/O72LEaHZ8mBXN2SdvxD7kW+UH3IbC/GwVUfWNbcIzOqSP+os+D3syn1jCZeD+a8ofHQmcg= = X-Google-Smtp-Source: AGHT+IG70M+3jC0+LlNGEu2YxLMWJbOVsC00G6HIxEPm5SmjKCbYKfZWcOZHy16UHVYEjTwiL26qDg== X-Received: by 2002:a17:903:1a26:b0:224:c46:d166 with SMTP id d9443c01a7336-225e0b18f50mr238963125ad.40.1742284731742; Tue, 18 Mar 2025 00:58:51 -0700 (PDT) Received: from localhost.localdomain ([103.165.80.178]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-225c6bbfdfesm88149865ad.203.2025.03.18.00.58.46 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 18 Mar 2025 00:58:51 -0700 (PDT) From: Hao Jia To: hannes@cmpxchg.org, akpm@linux-foundation.org, tj@kernel.org, corbet@lwn.net, mhocko@kernel.org, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, mkoutny@suse.com Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Hao Jia Subject: [PATCH 1/2] mm: vmscan: Split proactive reclaim statistics from direct reclaim statistics Date: Tue, 18 Mar 2025 15:58:32 +0800 Message-Id: <20250318075833.90615-2-jiahao.kernel@gmail.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20250318075833.90615-1-jiahao.kernel@gmail.com> References: <20250318075833.90615-1-jiahao.kernel@gmail.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: C60DC4000B X-Rspamd-Server: rspam08 X-Stat-Signature: qbnqiibknr5twmb1z6nz75j1kkosrmg4 X-HE-Tag: 1742284732-320408 X-HE-Meta: U2FsdGVkX181apg0bzt5H0abSoCyYajnEH/JMwrhUoXxLByCQd3dd1Q8eYsDIM+nAAmuHIYqnfU7sdaisKMmIiyDFfnez3g4rLpRA/bLQrvaeoas9tsssvHrzBE7vEI7gIWh0FDAAEuZAntJcRbyWGSWZFprZ/v8rkC5or/UsHDZaZ+MLvd9/d7pE20D9u4agSAU8v3RFzzR/NyXX+/LLCa6ObqLQ2Iv2+XmL4fu3PpFhoBiSxpg/LTLVo6KfkWI7NiSwamTIS39rSBE2gaez9bFjkIKnRCUV+GnV63uMjJscuGMtJY7q6SpgPNke6U5iITPAphNbdPqPXAwq4NaLCH0F/AMg7gSOAGMJBy5PS8boXU7nHl+dZ4NKFikb/vtvCuf0R6qN+G/BQ8EB4M9xb5F7WcwmIizR5ejFevnUfgyy1E7azDIpzUs+ORiCcEQd58P85HMwhnQle9+JT8CLv3i72QIDMSIUowPNifVlfErxwz7WRK4aUkrXBzT/fhjtO0xh91JRpLBopMhqC+atzIv97VDPFz///W4wAVWNXbdPUeHvx8t0MFimSbo/gBWSaXhH9chqjvUAT01oGHG0kPuFZznWqGNOtAjGxb8KLKq8zC66ETam7XTCVMZ93C9CD2tmJqv2Y66ZXBBrZS3MQaD2R1NgaX+AsyC/58+9k72msm/1UkcpXxec9haZvEf83yvEUQX3J0likmkYBOjKIXZnBO+FASonZDKHjlVSIq8JNGc5NKEW8LsV+pc1AmI5/kZgOic6vXmDJXM0Uh67fbojA0eVZeqn6NaKN/IeyeRaqUGJwFmzyuDZE7y0CpHR53BXTq+4ZRwup7XWcLT1dQ1+I3X0n6nnu24xUSzFV5eMiz9YU93m5Dc9LrpOGZtXjqDcsIs8VCBxZNsyy/WdIzMigGdsKQyBSswi9DoHVZU6wz2POyRweAJR+h7mcHJESL0aU/hMgznVY3ehII 2UWJzt6C j78R2RABTyF+Ypu+5hBOmSxJedmOu7pLDYqpdjpr6ouP++vK5gBfS6Fum6kWP85TKuUZfjBFJMV6+TgkevCfLrQ7t7zHWdd0KGOEwum8qFA9tOwviEz+ScJiezf7Fy3x/NR+geQSWtu/vnL1zjG7lqxIlKBAXDk4nmeYR2dI2mxpHRGEtArSVf0MqSR+vp2Q2nObn1+h9mVvloOsyi6PuxuFQcFenWEDO/xyL3BlXfGcAX5/b1xq1S/lYJ9Wd/zeMiVUWzZVxo1TYPjcPKRWcF8a6+dOs+mdaABkiufhM7jloB3+3fVXIT8hlGPtwP9Wvd/jEy3eRZEItKSGqnvLJ2UraZJlaCHFdzfdOXQa53M+mK+7tOZZsVETm15OBODEiCZi1/ROkVnenr+bghawNDrRNsreUZ/bx6YSTfhSE4iBR7dx7DDAEiUkPFvkr5GWPw+ic 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: Hao Jia In proactive memory reclaim scenarios, it is necessary to accurately track proactive reclaim statistics to dynamically adjust the frequency and amount of memory being reclaimed proactively. Currently, proactive reclaim is included in direct reclaim statistics, which can make these direct reclaim statistics misleading. Therefore, separate proactive reclaim memory from the direct reclaim counters by introducing new counters: pgsteal_proactive, pgdemote_proactive, and pgscan_proactive, to avoid confusion with direct reclaim. Signed-off-by: Hao Jia Acked-by: Johannes Weiner --- Documentation/admin-guide/cgroup-v2.rst | 9 +++++++ include/linux/mmzone.h | 1 + include/linux/vm_event_item.h | 2 ++ mm/memcontrol.c | 7 +++++ mm/vmscan.c | 35 ++++++++++++++----------- mm/vmstat.c | 3 +++ 6 files changed, 42 insertions(+), 15 deletions(-) diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst index cb1b4e759b7e..d6692607f80a 100644 --- a/Documentation/admin-guide/cgroup-v2.rst +++ b/Documentation/admin-guide/cgroup-v2.rst @@ -1570,6 +1570,9 @@ The following nested keys are defined. pgscan_khugepaged (npn) Amount of scanned pages by khugepaged (in an inactive LRU list) + pgscan_proactive (npn) + Amount of scanned pages proactively (in an inactive LRU list) + pgsteal_kswapd (npn) Amount of reclaimed pages by kswapd @@ -1579,6 +1582,9 @@ The following nested keys are defined. pgsteal_khugepaged (npn) Amount of reclaimed pages by khugepaged + pgsteal_proactive (npn) + Amount of reclaimed pages proactively + pgfault (npn) Total number of page faults incurred @@ -1656,6 +1662,9 @@ The following nested keys are defined. pgdemote_khugepaged Number of pages demoted by khugepaged. + pgdemote_proactive + Number of pages demoted by proactively. + hugetlb Amount of memory used by hugetlb pages. This metric only shows up if hugetlb usage is accounted for in memory.current (i.e. diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 9540b41894da..69b4996dadc8 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -220,6 +220,7 @@ enum node_stat_item { PGDEMOTE_KSWAPD, PGDEMOTE_DIRECT, PGDEMOTE_KHUGEPAGED, + PGDEMOTE_PROACTIVE, #ifdef CONFIG_HUGETLB_PAGE NR_HUGETLB, #endif diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index f70d0958095c..f11b6fa9c5b3 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -41,9 +41,11 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, PGSTEAL_KSWAPD, PGSTEAL_DIRECT, PGSTEAL_KHUGEPAGED, + PGSTEAL_PROACTIVE, PGSCAN_KSWAPD, PGSCAN_DIRECT, PGSCAN_KHUGEPAGED, + PGSCAN_PROACTIVE, PGSCAN_DIRECT_THROTTLE, PGSCAN_ANON, PGSCAN_FILE, diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 4de6acb9b8ec..32e28ab90914 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -315,6 +315,7 @@ static const unsigned int memcg_node_stat_items[] = { PGDEMOTE_KSWAPD, PGDEMOTE_DIRECT, PGDEMOTE_KHUGEPAGED, + PGDEMOTE_PROACTIVE, #ifdef CONFIG_HUGETLB_PAGE NR_HUGETLB, #endif @@ -431,9 +432,11 @@ static const unsigned int memcg_vm_event_stat[] = { PGSCAN_KSWAPD, PGSCAN_DIRECT, PGSCAN_KHUGEPAGED, + PGSCAN_PROACTIVE, PGSTEAL_KSWAPD, PGSTEAL_DIRECT, PGSTEAL_KHUGEPAGED, + PGSTEAL_PROACTIVE, PGFAULT, PGMAJFAULT, PGREFILL, @@ -1390,6 +1393,7 @@ static const struct memory_stat memory_stats[] = { { "pgdemote_kswapd", PGDEMOTE_KSWAPD }, { "pgdemote_direct", PGDEMOTE_DIRECT }, { "pgdemote_khugepaged", PGDEMOTE_KHUGEPAGED }, + { "pgdemote_proactive", PGDEMOTE_PROACTIVE }, #ifdef CONFIG_NUMA_BALANCING { "pgpromote_success", PGPROMOTE_SUCCESS }, #endif @@ -1432,6 +1436,7 @@ static int memcg_page_state_output_unit(int item) case PGDEMOTE_KSWAPD: case PGDEMOTE_DIRECT: case PGDEMOTE_KHUGEPAGED: + case PGDEMOTE_PROACTIVE: #ifdef CONFIG_NUMA_BALANCING case PGPROMOTE_SUCCESS: #endif @@ -1503,10 +1508,12 @@ static void memcg_stat_format(struct mem_cgroup *memcg, struct seq_buf *s) seq_buf_printf(s, "pgscan %lu\n", memcg_events(memcg, PGSCAN_KSWAPD) + memcg_events(memcg, PGSCAN_DIRECT) + + memcg_events(memcg, PGSCAN_PROACTIVE) + memcg_events(memcg, PGSCAN_KHUGEPAGED)); seq_buf_printf(s, "pgsteal %lu\n", memcg_events(memcg, PGSTEAL_KSWAPD) + memcg_events(memcg, PGSTEAL_DIRECT) + + memcg_events(memcg, PGSTEAL_PROACTIVE) + memcg_events(memcg, PGSTEAL_KHUGEPAGED)); for (i = 0; i < ARRAY_SIZE(memcg_vm_event_stat); i++) { diff --git a/mm/vmscan.c b/mm/vmscan.c index c767d71c43d7..fa816cd08ac3 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -441,21 +441,26 @@ void drop_slab(void) } while ((freed >> shift++) > 1); } -static int reclaimer_offset(void) +#define CHECK_RECLAIMER_OFFSET(type) \ + do { \ + BUILD_BUG_ON(PGSTEAL_##type - PGSTEAL_KSWAPD != \ + PGDEMOTE_##type - PGDEMOTE_KSWAPD); \ + BUILD_BUG_ON(PGSTEAL_##type - PGSTEAL_KSWAPD != \ + PGSCAN_##type - PGSCAN_KSWAPD); \ + } while (0) + +static int reclaimer_offset(struct scan_control *sc) { - BUILD_BUG_ON(PGSTEAL_DIRECT - PGSTEAL_KSWAPD != - PGDEMOTE_DIRECT - PGDEMOTE_KSWAPD); - BUILD_BUG_ON(PGSTEAL_KHUGEPAGED - PGSTEAL_KSWAPD != - PGDEMOTE_KHUGEPAGED - PGDEMOTE_KSWAPD); - BUILD_BUG_ON(PGSTEAL_DIRECT - PGSTEAL_KSWAPD != - PGSCAN_DIRECT - PGSCAN_KSWAPD); - BUILD_BUG_ON(PGSTEAL_KHUGEPAGED - PGSTEAL_KSWAPD != - PGSCAN_KHUGEPAGED - PGSCAN_KSWAPD); + CHECK_RECLAIMER_OFFSET(DIRECT); + CHECK_RECLAIMER_OFFSET(KHUGEPAGED); + CHECK_RECLAIMER_OFFSET(PROACTIVE); if (current_is_kswapd()) return 0; if (current_is_khugepaged()) return PGSTEAL_KHUGEPAGED - PGSTEAL_KSWAPD; + if (sc->proactive) + return PGSTEAL_PROACTIVE - PGSTEAL_KSWAPD; return PGSTEAL_DIRECT - PGSTEAL_KSWAPD; } @@ -1986,7 +1991,7 @@ static unsigned long shrink_inactive_list(unsigned long nr_to_scan, &nr_scanned, sc, lru); __mod_node_page_state(pgdat, NR_ISOLATED_ANON + file, nr_taken); - item = PGSCAN_KSWAPD + reclaimer_offset(); + item = PGSCAN_KSWAPD + reclaimer_offset(sc); if (!cgroup_reclaim(sc)) __count_vm_events(item, nr_scanned); __count_memcg_events(lruvec_memcg(lruvec), item, nr_scanned); @@ -2002,10 +2007,10 @@ static unsigned long shrink_inactive_list(unsigned long nr_to_scan, spin_lock_irq(&lruvec->lru_lock); move_folios_to_lru(lruvec, &folio_list); - __mod_lruvec_state(lruvec, PGDEMOTE_KSWAPD + reclaimer_offset(), + __mod_lruvec_state(lruvec, PGDEMOTE_KSWAPD + reclaimer_offset(sc), stat.nr_demoted); __mod_node_page_state(pgdat, NR_ISOLATED_ANON + file, -nr_taken); - item = PGSTEAL_KSWAPD + reclaimer_offset(); + item = PGSTEAL_KSWAPD + reclaimer_offset(sc); if (!cgroup_reclaim(sc)) __count_vm_events(item, nr_reclaimed); __count_memcg_events(lruvec_memcg(lruvec), item, nr_reclaimed); @@ -4545,7 +4550,7 @@ static int scan_folios(struct lruvec *lruvec, struct scan_control *sc, break; } - item = PGSCAN_KSWAPD + reclaimer_offset(); + item = PGSCAN_KSWAPD + reclaimer_offset(sc); if (!cgroup_reclaim(sc)) { __count_vm_events(item, isolated); __count_vm_events(PGREFILL, sorted); @@ -4695,10 +4700,10 @@ static int evict_folios(struct lruvec *lruvec, struct scan_control *sc, int swap reset_batch_size(walk); } - __mod_lruvec_state(lruvec, PGDEMOTE_KSWAPD + reclaimer_offset(), + __mod_lruvec_state(lruvec, PGDEMOTE_KSWAPD + reclaimer_offset(sc), stat.nr_demoted); - item = PGSTEAL_KSWAPD + reclaimer_offset(); + item = PGSTEAL_KSWAPD + reclaimer_offset(sc); if (!cgroup_reclaim(sc)) __count_vm_events(item, reclaimed); __count_memcg_events(memcg, item, reclaimed); diff --git a/mm/vmstat.c b/mm/vmstat.c index 16bfe1c694dd..eff4d833ff8a 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1273,6 +1273,7 @@ const char * const vmstat_text[] = { "pgdemote_kswapd", "pgdemote_direct", "pgdemote_khugepaged", + "pgdemote_proactive", #ifdef CONFIG_HUGETLB_PAGE "nr_hugetlb", #endif @@ -1307,9 +1308,11 @@ const char * const vmstat_text[] = { "pgsteal_kswapd", "pgsteal_direct", "pgsteal_khugepaged", + "pgsteal_proactive", "pgscan_kswapd", "pgscan_direct", "pgscan_khugepaged", + "pgscan_proactive", "pgscan_direct_throttle", "pgscan_anon", "pgscan_file", From patchwork Tue Mar 18 07:58:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hao Jia X-Patchwork-Id: 14020536 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 BED9AC282EC for ; Tue, 18 Mar 2025 07:59:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 17C77280005; Tue, 18 Mar 2025 03:59:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 12E37280004; Tue, 18 Mar 2025 03:59:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EE96A280005; Tue, 18 Mar 2025 03:59:00 -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 CF5AC280004 for ; Tue, 18 Mar 2025 03:59:00 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id AD83E140E4C for ; Tue, 18 Mar 2025 07:59:00 +0000 (UTC) X-FDA: 83233920840.22.6DBB8EE Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by imf05.hostedemail.com (Postfix) with ESMTP id CFA25100006 for ; Tue, 18 Mar 2025 07:58:58 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LStu3LOY; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of jiahao.kernel@gmail.com designates 209.85.214.171 as permitted sender) smtp.mailfrom=jiahao.kernel@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742284738; a=rsa-sha256; cv=none; b=peIr61fP2QQLp+jUWrTqf2tQJ2ynmDkHCJt8aEqRrSnrctgbxlrQw78cOXspD4TNnTgyeW tEj2be7QYWIoG9yKJQRnDxrTkpkkLv9kkgpUnchuoL+jDOo+gpJFJ1TT2zZbW+QZjvOaHe lz39fDLfub+7Qi1z9tlmGzKp3ql0izM= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LStu3LOY; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of jiahao.kernel@gmail.com designates 209.85.214.171 as permitted sender) smtp.mailfrom=jiahao.kernel@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742284738; 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:in-reply-to:references:references:dkim-signature; bh=yYkie2WFFPh6MLf16Vdfl3mc2wE13ro8k5To4/q+ryc=; b=sZD/mrWxGzNjTxKIVWNdg/xgsOd1g+IOlXRHEjxApP6ySpLFL+oilDjGdgi0wlgL3cBFVy 6kX4dzzYhdrNwHpB7t3wnSDiND8iTHZL9rSCfDPdOCA5ewQZ5r+fewWXOYzGqp5nTF+TK2 tmgZNFrXj7PVWJsEUrahegzXpxm+pnY= Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-223a7065ff8so527715ad.0 for ; Tue, 18 Mar 2025 00:58:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742284738; x=1742889538; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yYkie2WFFPh6MLf16Vdfl3mc2wE13ro8k5To4/q+ryc=; b=LStu3LOYxcumGwLzNXf5kD6g5WJdDH65HwYVuxXi5xWvdjPxJM8xvJHhB5UE57oQoD X4LboDR+jdz3PXwW/coJSWl6Le8y5zSS6Xn8ZSLvDI8TF690i+BsnWBFWxq0K5NiAhDm 5POcIU3GfWTPATgSv/YmbvXNkZmuS0Wg7L8Ya6eWJWuAsc1r8lqedh1Mp6MWBmJVyR96 NRfYk4mIvTLZkYFDM5pg6JMvjo9wrbfxiCAzmP+2vDsb3vD2vocq86IFAKf4phq6nVUJ SXU1KQBswGkdIoP2V7u5DzrcHXoMscbBR1KFX5y5PvxTpXTZ56dZNNWDFh6j7m6Hu1dw Zm6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742284738; x=1742889538; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yYkie2WFFPh6MLf16Vdfl3mc2wE13ro8k5To4/q+ryc=; b=OVCNN1mps1aU3lCFSvBIXsrb51p8sY9pnDwlBIVCCEtrkl1bEczxj2sGtl1M+6lS68 rt58Fh7Izub8QLJBasKj7hUEgzZtStq+mtEVhROtse4MsKY93q4dUpcpRgIyYe/GN6x0 xApP0APB9YntUOaSR39NIaJPM0+q2ruaMBg/iVRNaUNFj1Fjuz66DvylZummmF64Ior3 GQjMGJpw3R1duegJLmt5bhw7TFYnmxDCbYRST9Wqe2yUCIbIaDp7NJvykXrcCvvpxBtw VNVYAH0QP+hqjQFLejnQJXGTSviJU7ydCvMqp7zgVY1eJ4vsLiCqDXrX0NJtyucTlaN0 LUnA== X-Forwarded-Encrypted: i=1; AJvYcCXVgAlZxbVUGwsuX80w9B/0GdOdD78EbiqohwdVVX5tfVluqVHb1B9Fze0dKpL0JmPnI6NWXVjCdA==@kvack.org X-Gm-Message-State: AOJu0YxHQeoXucovHH5S8tRKLx12U1j5a6SbuDO8c75uQCtZHvznAAIV coQ/g+zfOAAh3l+/FcLd6AYrzjXVcz8SCFGE02f0IMdNg4l/cTC3 X-Gm-Gg: ASbGncv22Ehir3B6EBX1az3AiCg4WoaaIFDs8TYW+6DEMxYIEBqQMlFZRlq02JQ1K6i LHa4hETyGDywYj8CucOseypCTM84nU3j2KI6jopFH35JtjtNPFvz1mAt9506A3f98AdRv3aIRxK f0386ZQPQguAbjah3LsQhj9CXvIlLY8JZ0Zv/RgORrCS+a/3O35mtM3XCEIiXB5tRdwKRFDFz+K qROXHSJEMOsf///PW1EFgtb+NmRhaTCbEF0Rfm6MeWkMVGYlAuigMq0Scjdm8Z09CFZCMXevR4c 7sLwMpPih5itwj545FIOScVHcEdtLy2ZVzx5BA0ZYsm/9KW6hxFWT8edBSsfQLWNmQKStLhqvg= = X-Google-Smtp-Source: AGHT+IHZPc811NNLRZEIxP4R4zyaMG1jX2U3vYy0bi+ioTPSMd6Mg09k60Le2zemZ1Wb06bX8d7uHQ== X-Received: by 2002:a17:902:d584:b0:224:1234:5a3b with SMTP id d9443c01a7336-225e0b62e3dmr201449945ad.51.1742284737785; Tue, 18 Mar 2025 00:58:57 -0700 (PDT) Received: from localhost.localdomain ([103.165.80.178]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-225c6bbfdfesm88149865ad.203.2025.03.18.00.58.53 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 18 Mar 2025 00:58:57 -0700 (PDT) From: Hao Jia To: hannes@cmpxchg.org, akpm@linux-foundation.org, tj@kernel.org, corbet@lwn.net, mhocko@kernel.org, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, mkoutny@suse.com Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Hao Jia Subject: [PATCH 2/2] cgroup: docs: Add pswpin and pswpout items in cgroup v2 doc Date: Tue, 18 Mar 2025 15:58:33 +0800 Message-Id: <20250318075833.90615-3-jiahao.kernel@gmail.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20250318075833.90615-1-jiahao.kernel@gmail.com> References: <20250318075833.90615-1-jiahao.kernel@gmail.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: CFA25100006 X-Stat-Signature: dph5pgzrzffnw4nf6snbagpuk4ga14nd X-Rspamd-Server: rspam06 X-HE-Tag: 1742284738-662994 X-HE-Meta: U2FsdGVkX1/Ss9K1yuocx02zMe/X5+4ZCYEYdoaBeN7i5/Q1nGk+IKUi7Qjlmp3OX7OLr2fIH0TmLNitWiCAWPVXyIcPR0bTZqjhrHCdU6h61+BjxsShMRXEqUeqxi7ugKaW3DdArFOIQMxuC7A6lwIlTgBaJcgihFoVYouiBiugE41ELmx5HxzqBSqC0M1QSR3MYKat3Ry/DPJGsZtiLvbaBZgzkeVAAAFOsLJ9oa0/m30uBoKDy0fnaKmISDETpw1ehZIeYC9Sgsoy0pz65QGt08ce754hVlIn4bpsE9B90a13OHHVDewaLX6WSop96pFn+3cq9cNA6s1r0aHMDvUZ9ODbdkksQWGBgnpXS/zJiJiikiR4U4gEL26fY/5LWlaNHrTZmaonqNM8LxQcJKfBTevrVEzNUlhbQ4s+Ls7c2KzjP/Nk2CXzELPJ6eQbOl374QGM+ahfjDkdYGu3nqRUuL5aZ9PYF624Yo7eWp8P1/sL4w8jIYSnLFoGyDo5RPbx+jaX+c8AKMliW6CAf1qV67WItXPe+8aQgr/ohXeSPvMGGobc1TGPoNOtpiIUtoyP/HoqOIqLqCZoNzYwYQnQb8S+N1Uf7K2wPH3tkETHZN+pZKeaSE6VNwIY4ceKI0OntTwtlJKmxgf8DSyNSVnF7jI+RKiHZ5O7gm2sgwXmnSUvd5PU9jTFB2IHbSFQTlcBeo1C2kvm/zs6duQqbA9TxUQyziP5IjxAz8iQLsjA1rKK13R36CzcIWx/fitPQ3K06IvzTBJ/8kgHxavZbF6up6ltygiRuTbklFxlNSKjK0QxF4hcITcc9mFXXUN5UwPg4fSzwAPB4YfMP8btFd3vJrPlv6VvtAIeeieaP48V8W+LzJZ7c1jNFe78nS7fCSdWT/7lAWTEVnQy9rMzNnZ3iG5vFjzGvjODlXYVWk1WjYeKldwTQYRSX1Hk4DOoaXUwt1Rd2RKx3FWEZwY voGgg33/ foZNSlofoulaq5dlk0EcTp3e105Ay6fKU3/gG+Ld9f7TQ3yC14nGe577FgShENVCp8AtLXukuwfzRoSxvVGB3ucOD12CwYx/MmKTGr5w03Ic6tJ+kjd+QhWhtx3XN98fb7bTJphmt78TtzxMrDfhboFlH5QOSN/f8ooZkulD/6qbitiZTW4lDk6SyvBLgfCJeX8pyi9Y8u6D9LmJZ84zd+4SscdT2libi67n5l5Hnj6ycrAfTMtXiBQ3qLL8K3gZIEvZRF/oomJB7BjgMQlm6Bbbn0eisQo8MdZY5HNp9/q9tTkS8nKpJbdxJH0Daa0/cr7vdiT0fBd91HQfjB8PHGXGUpq+l6VaBksd+1h4CqnfjxRt0HzRFsPI3qTEWWRkAP42SrltjQD3M9t9Pj5bS+3bLnXT1uyoHCqkBzhYVm/TSmAizqzEMq4VvdtPgCnf6NIZj 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: Hao Jia The commit 15ff4d409e1a ("mm/memcontrol: add per-memcg pgpgin/pswpin counter") introduced the pswpin and pswpout items in the memory.stat of cgroup v2. Therefore, update them accordingly in the cgroup-v2 documentation. Signed-off-by: Hao Jia Acked-by: Tejun Heo Acked-by: Johannes Weiner --- Documentation/admin-guide/cgroup-v2.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst index d6692607f80a..c0ae7a76005a 100644 --- a/Documentation/admin-guide/cgroup-v2.rst +++ b/Documentation/admin-guide/cgroup-v2.rst @@ -1555,6 +1555,12 @@ The following nested keys are defined. workingset_nodereclaim Number of times a shadow node has been reclaimed + pswpin (npn) + Number of pages swapped into memory + + pswpout (npn) + Number of pages swapped out of memory + pgscan (npn) Amount of scanned pages (in an inactive LRU list)