diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index c581527d0397..2d7bed528a89 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -411,6 +411,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_handle_pte_fault_end); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cow_user_page); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_swapin_add_anon_rmap); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_waiting_for_page_migration); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_migrate_page_states); 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); diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index 9433497b3c7c..8e65846d821a 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -161,6 +161,9 @@ DECLARE_HOOK(android_vh_swapin_add_anon_rmap, DECLARE_HOOK(android_vh_waiting_for_page_migration, TP_PROTO(struct page *page), TP_ARGS(page)); +DECLARE_HOOK(android_vh_migrate_page_states, + TP_PROTO(struct page *page, struct page *newpage), + TP_ARGS(page, newpage)); DECLARE_HOOK(android_vh_page_isolated_for_reclaim, TP_PROTO(struct mm_struct *mm, struct page *page), TP_ARGS(mm, page)); diff --git a/mm/migrate.c b/mm/migrate.c index a3cf3d624694..6d09285f3c1a 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -587,6 +587,8 @@ void migrate_page_states(struct page *newpage, struct page *page) { int cpupid; + trace_android_vh_migrate_page_states(page, newpage); + if (PageError(page)) SetPageError(newpage); if (PageReferenced(page))