From ee117211e482e1ed39390468ea91c7f2d05d2cca Mon Sep 17 00:00:00 2001 From: Dongdong zhang Date: Thu, 24 Jul 2025 20:07:06 +0800 Subject: [PATCH] ANDROID: mm: add vendor hook to trace swap bio charge Add a vendor hook `android_vh_swap_bio_charge` in swap read path to allow vendors to monitor behavior when a swap bio is submitted. Bug: 433890875 Change-Id: I742978c7cb5c7d678d585b49e3466920f99e4fba Signed-off-by: Dongdong zhang --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/mm.h | 3 +++ mm/page_io.c | 1 + 3 files changed, 5 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 1d2a6f9a13e9..c78e6abd094f 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -587,3 +587,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gzvm_handle_demand_page_post); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gzvm_destroy_vm_post_process); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_usb_dev_suspend); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_usb_dev_resume); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_swap_bio_charge); diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index 4cc08294d9b0..9612397bcf38 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -540,6 +540,9 @@ DECLARE_HOOK(android_vh_filemap_add_folio, DECLARE_HOOK(android_vh_gcma_cc_store_page_bypass, TP_PROTO(bool *bypass), TP_ARGS(bypass)); +DECLARE_HOOK(android_vh_swap_bio_charge, + TP_PROTO(struct bio *bio), + TP_ARGS(bio)); #endif /* _TRACE_HOOK_MM_H */ /* This part must be outside protection */ diff --git a/mm/page_io.c b/mm/page_io.c index fce30cc03123..dbc50cab094d 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -594,6 +594,7 @@ static void swap_read_folio_bdev_sync(struct folio *folio, get_task_struct(current); count_vm_events(PSWPIN, folio_nr_pages(folio)); submit_bio_wait(&bio); + trace_android_vh_swap_bio_charge(&bio); __end_swap_bio_read(&bio); put_task_struct(current); }