[PATCH] mm/show_mem: Print totalreserve_pages in show_mem output

Ye Liu posted 1 patch 1 month, 3 weeks ago
mm/show_mem.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
[PATCH] mm/show_mem: Print totalreserve_pages in show_mem output
Posted by Ye Liu 1 month, 3 weeks ago
From: Ye Liu <liuye@kylinos.cn>

Add totalreserve_pages to the main show_mem output line for easier
debugging and memory analysis. This helps developers and
administrators quickly see how many pages are reserved by the kernel
and not available for user allocations.

Signed-off-by: Ye Liu <liuye@kylinos.cn>
---
 mm/show_mem.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/mm/show_mem.c b/mm/show_mem.c
index 41999e94a56d..c56d5599de45 100644
--- a/mm/show_mem.c
+++ b/mm/show_mem.c
@@ -201,7 +201,8 @@ static void show_free_areas(unsigned int filter, nodemask_t *nodemask, int max_z
 		" mapped:%lu shmem:%lu pagetables:%lu\n"
 		" sec_pagetables:%lu bounce:%lu\n"
 		" kernel_misc_reclaimable:%lu\n"
-		" free:%lu free_pcp:%lu free_cma:%lu\n",
+		" free:%lu free_pcp:%lu free_cma:%lu\n"
+		" totalreserve_pages:%lu\n",
 		global_node_page_state(NR_ACTIVE_ANON),
 		global_node_page_state(NR_INACTIVE_ANON),
 		global_node_page_state(NR_ISOLATED_ANON),
@@ -221,7 +222,8 @@ static void show_free_areas(unsigned int filter, nodemask_t *nodemask, int max_z
 		global_node_page_state(NR_KERNEL_MISC_RECLAIMABLE),
 		global_zone_page_state(NR_FREE_PAGES),
 		free_pcp,
-		global_zone_page_state(NR_FREE_CMA_PAGES));
+		global_zone_page_state(NR_FREE_CMA_PAGES),
+		totalreserve_pages);
 
 	for_each_online_pgdat(pgdat) {
 		if (show_mem_node_skip(filter, pgdat->node_id, nodemask))
-- 
2.43.0
Re: [PATCH] mm/show_mem: Print totalreserve_pages in show_mem output
Posted by Johannes Weiner 1 month, 3 weeks ago
On Thu, Aug 14, 2025 at 05:26:21PM +0800, Ye Liu wrote:
> From: Ye Liu <liuye@kylinos.cn>
> 
> Add totalreserve_pages to the main show_mem output line for easier
> debugging and memory analysis. This helps developers and
> administrators quickly see how many pages are reserved by the kernel
> and not available for user allocations.

This number isn't used very widely in decision making.

For actual allocations, what matters is watermarks, lowmem_reserve,
highatomic, and cma pages - all of which are already printed out on a
per-zone basis in show_mem().