diff options
| author | Jiayuan Chen <jiayuan.chen@linux.dev> | 2025-10-27 22:18:17 +0800 |
|---|---|---|
| committer | Andrew Morton <akpm@linux-foundation.org> | 2025-11-16 17:28:26 -0800 |
| commit | 6af766c86b1c9f075e30ba7bd291c6aa5384c1f6 (patch) | |
| tree | 2662b916bc7ec8de5325187d80f5a6ad71a7e538 /mm | |
| parent | 272239dc8fcb109b9f1ec1a73bb85405dac92eda (diff) | |
| download | tip-6af766c86b1c9f075e30ba7bd291c6aa5384c1f6.tar.gz | |
mm: vmstat: output reserved_highatomic and free_highatomic in zoneinfo
The nr_free_highatomic is a key factor in calculating watermarks as it
affects the free pages count. Adding this metric, along with
nr_reserved_highatomic, to /proc/zoneinfo facilitates easier diagnosis
memory watermark calculations and memory pressure states.
Sample output:
cat /proc/zoneinfo
......
pagesets
cpu: 0
count: 52069
high: 52675
batch: 63
high_min: 13971
high_max: 62284
vm stats threshold: 10
node_unreclaimable: 0
start_pfn: 4096
reserved_highatomic: 5120
free_highatomic: 2081
Link: https://lkml.kernel.org/r/20251027141818.283587-1-jiayuan.chen@linux.dev
Signed-off-by: Jiayuan Chen <jiayuan.chen@linux.dev>
Cc: David Hildenbrand <david@redhat.com>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'mm')
| -rw-r--r-- | mm/vmstat.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/mm/vmstat.c b/mm/vmstat.c index f226942db746aa..b53b07aa29e813 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1852,9 +1852,13 @@ static void zoneinfo_show_print(struct seq_file *m, pg_data_t *pgdat, } seq_printf(m, "\n node_unreclaimable: %u" - "\n start_pfn: %lu", + "\n start_pfn: %lu" + "\n reserved_highatomic: %lu" + "\n free_highatomic: %lu", atomic_read(&pgdat->kswapd_failures) >= MAX_RECLAIM_RETRIES, - zone->zone_start_pfn); + zone->zone_start_pfn, + zone->nr_reserved_highatomic, + zone->nr_free_highatomic); seq_putc(m, '\n'); } |
