diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 69035c52d8d6..7327cf4b6b0b 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -200,6 +200,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ra_tuning_max_page); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_mmap_readaround); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_hw_protection_shutdown); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shrink_slab_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_shrink_slab_ex); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_drain_all_pages_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_security_audit_log_setid); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_insert); diff --git a/include/trace/hooks/vmscan.h b/include/trace/hooks/vmscan.h index cd64cfcf7e58..43e730a4407a 100644 --- a/include/trace/hooks/vmscan.h +++ b/include/trace/hooks/vmscan.h @@ -62,6 +62,10 @@ DECLARE_HOOK(android_vh_should_memcg_bypass, DECLARE_HOOK(android_vh_do_shrink_slab, TP_PROTO(struct shrinker *shrinker, long *freeable), TP_ARGS(shrinker, freeable)); +DECLARE_HOOK(android_vh_do_shrink_slab_ex, + TP_PROTO(struct shrink_control *shrinkctl, struct shrinker *shrinker, + long *freeable, int priority), + TP_ARGS(shrinkctl, shrinker, freeable, priority)); DECLARE_HOOK(android_vh_rebalance_anon_lru_bypass, TP_PROTO(bool *bypass), TP_ARGS(bypass)); @@ -83,14 +87,14 @@ DECLARE_HOOK(android_vh_shrink_slab_bypass, TP_ARGS(gfp_mask, nid, memcg, priority, bypass)); DECLARE_HOOK(android_vh_vmscan_kswapd_done, TP_PROTO(int node_id, unsigned int highest_zoneidx, unsigned int alloc_order, - unsigned int reclaim_order), + unsigned int reclaim_order), TP_ARGS(node_id, highest_zoneidx, alloc_order, reclaim_order)); DECLARE_RESTRICTED_HOOK(android_rvh_vmscan_kswapd_wake, TP_PROTO(int node_id, unsigned int highest_zoneidx, unsigned int alloc_order), TP_ARGS(node_id, highest_zoneidx, alloc_order), 1); 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), + 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), diff --git a/mm/shrinker.c b/mm/shrinker.c index afbc1702fb0a..6ad91d959a8e 100644 --- a/mm/shrinker.c +++ b/mm/shrinker.c @@ -386,6 +386,7 @@ static unsigned long do_shrink_slab(struct shrink_control *shrinkctl, freeable = shrinker->count_objects(shrinker, shrinkctl); trace_android_vh_do_shrink_slab(shrinker, &freeable); + trace_android_vh_do_shrink_slab_ex(shrinkctl, shrinker, &freeable, priority); if (freeable == 0 || freeable == SHRINK_EMPTY) return freeable;