diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 98b1e9951a6d..ae4bfd54bcb0 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -424,3 +424,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_save_vmalloc_stack); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_stack_hash); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_check); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rmqueue); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_filemap_get_folio); diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index 0ba9a0f08325..e5df5b865153 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -129,6 +129,10 @@ DECLARE_HOOK(android_vh_rmqueue, unsigned int alloc_flags, int migratetype), TP_ARGS(preferred_zone, zone, order, gfp_flags, alloc_flags, migratetype)); +DECLARE_HOOK(android_vh_filemap_get_folio, + TP_PROTO(struct address_space *mapping, pgoff_t index, + int fgp_flags, gfp_t gfp_mask, struct folio *folio), + TP_ARGS(mapping, index, fgp_flags, gfp_mask, folio)); DECLARE_HOOK(android_vh_meminfo_cache_adjust, TP_PROTO(unsigned long *cached), TP_ARGS(cached)); diff --git a/mm/filemap.c b/mm/filemap.c index f8d6ed3ee689..2d0358e5f32b 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -1906,6 +1906,8 @@ repeat: folio = filemap_get_entry(mapping, index); if (xa_is_value(folio)) folio = NULL; + trace_android_vh_filemap_get_folio(mapping, index, fgp_flags, + gfp, folio); if (!folio) goto no_page;