From 2d8da7e086af4eb1711c21978fc680e47f6cbbc4 Mon Sep 17 00:00:00 2001 From: Dmitry Skiba Date: Wed, 18 Sep 2024 22:16:12 +0000 Subject: [PATCH] ANDROID: mm: add vh for kcompactd_cpu_online() kcompactd_cpu_online() changes kcompactd cpumask, potentially overwriting any vendor-specific cpumask that was there. This hook allows vendors to re-set the cpumask. Bug: 367400751 Signed-off-by: Dmitry Skiba (cherry picked from commit b3a2458fc6e6bf265ee52297f6478e4b43725fb2) Signed-off-by: Jacky Liu (cherry picked from https://android-review.googlesource.com/q/commit:9a46e8ecf74c33f25dad1d6ad6592cdfc530c02e) Change-Id: I45b92bcd16fbf2d5d76474287db659e32af64201 --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/mm.h | 3 +++ mm/compaction.c | 1 + 3 files changed, 5 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index d8608099e62e..36ee1e875836 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -436,3 +436,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_compaction_end); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_vmscan_kswapd_wake); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_vmscan_kswapd_done); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_customize_alloc_gfp); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_kcompactd_cpu_online); diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index 411385435d80..5e49baf1bf04 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -384,6 +384,9 @@ DECLARE_HOOK(android_vh_adjust_kvmalloc_flags, DECLARE_HOOK(android_vh_customize_alloc_gfp, TP_PROTO(gfp_t *alloc_gfp, unsigned int order), TP_ARGS(alloc_gfp, order)); +DECLARE_HOOK(android_vh_mm_kcompactd_cpu_online, + TP_PROTO(int cpu), + TP_ARGS(cpu)); #endif /* _TRACE_HOOK_MM_H */ diff --git a/mm/compaction.c b/mm/compaction.c index efa41ee0a523..196b59e46830 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -3336,6 +3336,7 @@ static int kcompactd_cpu_online(unsigned int cpu) if (pgdat->kcompactd) set_cpus_allowed_ptr(pgdat->kcompactd, mask); } + trace_android_vh_mm_kcompactd_cpu_online(cpu); return 0; }