diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 6f6dda6915eb..9dcb68bb0587 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -440,4 +440,6 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_vmscan_kswapd_wake); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_vmscan_kswapd_done); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_customize_alloc_gfp); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_kcompactd_cpu_online); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_direct_reclaim_begin); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_direct_reclaim_end); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_read_fault); diff --git a/include/trace/hooks/vmscan.h b/include/trace/hooks/vmscan.h index 6f1dec8f5b21..3e6e49aa5ca6 100644 --- a/include/trace/hooks/vmscan.h +++ b/include/trace/hooks/vmscan.h @@ -82,6 +82,12 @@ DECLARE_RESTRICTED_HOOK(android_rvh_vmscan_kswapd_done, TP_PROTO(int node_id, unsigned int highest_zoneidx, unsigned int alloc_order, unsigned int reclaim_order), TP_ARGS(node_id, highest_zoneidx, alloc_order, reclaim_order), 1); +DECLARE_HOOK(android_vh_direct_reclaim_begin, + TP_PROTO(int *prio), + TP_ARGS(prio)); +DECLARE_HOOK(android_vh_direct_reclaim_end, + TP_PROTO(int prio), + TP_ARGS(prio)); #endif /* _TRACE_HOOK_VMSCAN_H */ /* This part must be outside protection */ diff --git a/mm/vmscan.c b/mm/vmscan.c index 97b73ba5f93f..119527bc64e0 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -6653,6 +6653,7 @@ unsigned long try_to_free_pages(struct zonelist *zonelist, int order, .may_swap = 1, }; bool skip_swap = false; + int prio = 0; /* * scan_control uses s8 fields for order, priority, and reclaim_idx. @@ -6675,9 +6676,11 @@ unsigned long try_to_free_pages(struct zonelist *zonelist, int order, sc.may_swap = 0; set_task_reclaim_state(current, &sc.reclaim_state); trace_mm_vmscan_direct_reclaim_begin(order, sc.gfp_mask); + trace_android_vh_direct_reclaim_begin(&prio); nr_reclaimed = do_try_to_free_pages(zonelist, &sc); + trace_android_vh_direct_reclaim_end(prio); trace_mm_vmscan_direct_reclaim_end(nr_reclaimed); set_task_reclaim_state(current, NULL);