diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 663121911094..7ceecabcaa38 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -475,3 +475,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_trigger_vendor_lmk_kill); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_filemap_map_pages_range); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_vprintk_store); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_folio_referenced_check_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_calculate_totalreserve_pages); diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index 74b76878fe9d..013b85d2c9a7 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -302,6 +302,9 @@ DECLARE_HOOK(android_vh_filemap_map_pages_range, TP_PROTO(struct file *file, pgoff_t orig_start_pgoff, pgoff_t last_pgoff, vm_fault_t ret), TP_ARGS(file, orig_start_pgoff, last_pgoff, ret)); +DECLARE_HOOK(android_vh_calculate_totalreserve_pages, + TP_PROTO(bool *skip), + TP_ARGS(skip)); #endif /* _TRACE_HOOK_MM_H */ /* This part must be outside protection */ diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 15087a0d7d71..d352b85fef7b 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -8950,6 +8950,7 @@ static void calculate_totalreserve_pages(void) struct pglist_data *pgdat; unsigned long reserve_pages = 0; enum zone_type i, j; + bool skip = false; for_each_online_pgdat(pgdat) { @@ -8978,6 +8979,9 @@ static void calculate_totalreserve_pages(void) } } totalreserve_pages = reserve_pages; + trace_android_vh_calculate_totalreserve_pages(&skip); + if (skip) + return; trace_mm_calculate_totalreserve_pages(totalreserve_pages); }