From 5f63d051ce041cdea246873cd91d9d864f8322cf Mon Sep 17 00:00:00 2001 From: Sooyong Suk Date: Fri, 26 Apr 2024 15:00:40 +0900 Subject: [PATCH] ANDROID: mm: add vendor hooks in madvise for swap entry Add vendor hooks in madvise for swap entry - android_vh_madvise_pageout_swap_entry - android_vh_madvise_swapin_walk_pmd_entry - android_vh_process_madvise_end removed android_vh_madvise_pageout_swap_entry() renamed android_vh_process_madvise() Bug: 284059805 Change-Id: Ic389244e343737a583286c20cadb6774efd8890c Signed-off-by: Sooyong Suk (cherry picked from commit 7adccac4c2778efee2a6683f360bf7e685931cf4) --- drivers/android/vendor_hooks.c | 2 ++ include/trace/hooks/mm.h | 7 +++++++ mm/madvise.c | 2 ++ 3 files changed, 11 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 052767110f69..fcd653650197 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -321,6 +321,8 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cma_alloc_retry); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_smaps_pte_entry); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_smap); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rebalance_anon_lru_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_madvise_swapin_walk_pmd_entry); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_process_madvise); EXPORT_TRACEPOINT_SYMBOL_GPL(android_trigger_vendor_lmk_kill); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_slowpath_start); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_slowpath_end); diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index 71499ab8dac3..81b5daac494c 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -133,6 +133,13 @@ struct slabinfo; DECLARE_HOOK(android_vh_cache_show, TP_PROTO(struct seq_file *m, struct slabinfo *sinfo, struct kmem_cache *s), TP_ARGS(m, sinfo, s)); +DECLARE_HOOK(android_vh_madvise_swapin_walk_pmd_entry, + TP_PROTO(swp_entry_t entry), + TP_ARGS(entry)); +DECLARE_HOOK(android_vh_process_madvise, + TP_PROTO(int behavior, ssize_t *ret, void *priv), + TP_ARGS(behavior, ret, priv)); + DECLARE_HOOK(android_vh_count_workingset_refault, TP_PROTO(struct folio *folio), TP_ARGS(folio)); diff --git a/mm/madvise.c b/mm/madvise.c index 30feca8f1531..64e758130cd1 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -200,6 +200,7 @@ static int swapin_walk_pmd_entry(pmd_t *pmd, unsigned long start, pte_unmap_unlock(ptep, ptl); ptep = NULL; + trace_android_vh_madvise_swapin_walk_pmd_entry(entry); folio = read_swap_cache_async(entry, GFP_HIGHUSER_MOVABLE, vma, addr, &splug); @@ -1580,5 +1581,6 @@ release_task: free_iov: kfree(iov); out: + trace_android_vh_process_madvise(behavior, &ret, NULL); return ret; }