ANDROID: vendor_hook: Add hook is to optimize the time consumption of shrink slab.
one Vendor hook add:
android_vh_do_shrink_slab_ex
Add vendor hook point in do_shrink_slab to optimize for user
experience related threads and time-consuming shrinkers.
Bug: 399777353
Bug: 425405860
Change-Id: I63778c73f76930fe27869e33ba6cdb97d50cf543
Signed-off-by: pengzhongcui <pengzhongcui@xiaomi.corp-partner.google.com>
This commit is contained in:
committed by
Treehugger Robot
parent
30b14cdad4
commit
9651bcfa2a
@@ -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);
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user