From 5f7004a8d09a928abe77727512f37fb570a66690 Mon Sep 17 00:00:00 2001 From: Chiawei Wang Date: Thu, 18 Feb 2021 10:47:37 +0800 Subject: [PATCH] ANDROID: mm: Add vendor hook in filemap_get_folio() Add a vendor hook for pagecache hit/miss and other vendor specific functions. Bug: 174088128 Bug: 172987241 Signed-off-by: Chiawei Wang Change-Id: Ie9f14a69a86b8ed81de766e44e30f2eba1d9bd84 Signed-off-by: Richard Chang (cherry picked from commit db158b4ae0543446d38313c3da942afee9947267) Signed-off-by: Jack Lee (cherry picked from commit cbac5cbf85540c043d1ddb917f288ebfe62bbca7) Signed-off-by: Dmitry Skiba --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/mm.h | 4 ++++ mm/filemap.c | 2 ++ 3 files changed, 7 insertions(+) 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;