aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMartin Liu <liumartin@google.com>2025-03-08 03:46:02 +0000
committerAndrew Morton <akpm@linux-foundation.org>2025-03-17 22:07:03 -0700
commit15766485e4a51bec2dcce304c089a95550720033 (patch)
treed91bb9edacaadaa7a2343548ccf411af5505af7e
parentmm/page_alloc: add trace event for per-zone lowmem reserve setup (diff)
downloadwireguard-linux-15766485e4a51bec2dcce304c089a95550720033.tar.xz
wireguard-linux-15766485e4a51bec2dcce304c089a95550720033.zip
mm/page_alloc: add trace event for totalreserve_pages calculation
This commit introduces a new trace event, `mm_calculate_totalreserve_pages`, which reports the new reserve value at the exact time when it takes effect. The `totalreserve_pages` value represents the total amount of memory reserved across all zones and nodes in the system. This reserved memory is crucial for ensuring that critical kernel operations have access to sufficient memory, even under memory pressure. By tracing the `totalreserve_pages` value, developers can gain insights that how the total reserved memory changes over time. Link: https://lkml.kernel.org/r/20250308034606.2036033-4-liumartin@google.com Signed-off-by: Martin Liu <liumartin@google.com> Acked-by: David Rientjes <rientjes@google.com> Cc: "Masami Hiramatsu (Google)" <mhiramat@kernel.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r--include/trace/events/kmem.h18
-rw-r--r--mm/page_alloc.c1
2 files changed, 19 insertions, 0 deletions
diff --git a/include/trace/events/kmem.h b/include/trace/events/kmem.h
index 9623e68d4d26..f74925a6cf69 100644
--- a/include/trace/events/kmem.h
+++ b/include/trace/events/kmem.h
@@ -402,6 +402,24 @@ TRACE_EVENT(mm_setup_per_zone_lowmem_reserve,
__entry->lowmem_reserve)
);
+TRACE_EVENT(mm_calculate_totalreserve_pages,
+
+ TP_PROTO(unsigned long totalreserve_pages),
+
+ TP_ARGS(totalreserve_pages),
+
+ TP_STRUCT__entry(
+ __field(unsigned long, totalreserve_pages)
+ ),
+
+ TP_fast_assign(
+ __entry->totalreserve_pages = totalreserve_pages;
+ ),
+
+ TP_printk("totalreserve_pages=%lu", __entry->totalreserve_pages)
+);
+
+
/*
* Required for uniquely and securely identifying mm in rss_stat tracepoint.
*/
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index a82d96cb3044..0be1fedd1201 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -5914,6 +5914,7 @@ static void calculate_totalreserve_pages(void)
}
}
totalreserve_pages = reserve_pages;
+ trace_mm_calculate_totalreserve_pages(totalreserve_pages);
}
/*