diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index ade852aa0f9c..f897daea3aea 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -421,3 +421,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_page_isolated_for_reclaim); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_inactive_is_low); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_snapshot_refaults); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_account_swap_pages); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_unuse_swap_page); diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index a33a701e8ee4..6f385db5813b 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -185,6 +185,9 @@ DECLARE_HOOK(android_vh_page_isolated_for_reclaim, DECLARE_HOOK(android_vh_account_swap_pages, TP_PROTO(struct swap_info_struct *si, bool *skip), TP_ARGS(si, skip)); +DECLARE_HOOK(android_vh_unuse_swap_page, + TP_PROTO(struct swap_info_struct *si, struct page *page), + TP_ARGS(si, page)); /* macro versions of hooks are no longer required */ #endif /* _TRACE_HOOK_MM_H */ diff --git a/mm/swapfile.c b/mm/swapfile.c index d04aca85d426..7d7e9096fec8 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -2014,6 +2014,7 @@ static int unuse_pte_range(struct vm_area_struct *vma, pmd_t *pmd, } try_to_free_swap(page); + trace_android_vh_unuse_swap_page(si, page); unlock_page(page); put_page(page); @@ -2252,6 +2253,7 @@ retry: lock_page(page); wait_on_page_writeback(page); try_to_free_swap(page); + trace_android_vh_unuse_swap_page(si, page); unlock_page(page); put_page(page);