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; }