From 8518e85f768bb1de60785fc7bfe30aa904b7ff60 Mon Sep 17 00:00:00 2001 From: Justin Jiang Date: Tue, 3 Sep 2024 21:06:53 +0800 Subject: [PATCH] ANDROID: vendor_hooks: add hook for adjusting a more suitable watermark During zone initialization adjust a more suitable watermark for Customize, which can optimize kswapd load and system memory status. Bug: 364225965 Change-Id: Ib6d94ec244f504a1c474657833a5f7558ea5d00b Signed-off-by: Justin Jiang Signed-off-by: wengle --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/mm.h | 3 +++ mm/page_alloc.c | 1 + 3 files changed, 5 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index f7af28d625bd..94a0ae6f2101 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -468,3 +468,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_bd_link_disk_holder); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_new_ref); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_del_ref); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_fsnotify_open); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_init_adjust_zone_wmark); diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index b8ce65ab7a46..9a02181ed0bb 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -416,6 +416,9 @@ DECLARE_HOOK(android_rvh_alloc_pages_reclaim_cycle_end, DECLARE_HOOK(android_vh_kmalloc_slab, TP_PROTO(unsigned int index, gfp_t flags, struct kmem_cache **s), TP_ARGS(index, flags, s)); +DECLARE_HOOK(android_vh_init_adjust_zone_wmark, + TP_PROTO(struct zone *zone, u64 interval), + TP_ARGS(zone, interval)); #endif /* _TRACE_HOOK_MM_H */ /* This part must be outside protection */ diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 1559987c0bc1..6e8135c7026c 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -6449,6 +6449,7 @@ static void __setup_per_zone_wmarks(void) zone->_watermark[WMARK_HIGH] = low_wmark_pages(zone) + tmp; zone->_watermark[WMARK_PROMO] = high_wmark_pages(zone) + tmp; trace_mm_setup_per_zone_wmarks(zone); + trace_android_vh_init_adjust_zone_wmark(zone, tmp); spin_unlock_irqrestore(&zone->lock, flags); }