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_vh_tune_mmap_readaround);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_hw_protection_shutdown);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_hw_protection_shutdown);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shrink_slab_bypass);
|
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_drain_all_pages_bypass);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_security_audit_log_setid);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_security_audit_log_setid);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_insert);
|
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,
|
DECLARE_HOOK(android_vh_do_shrink_slab,
|
||||||
TP_PROTO(struct shrinker *shrinker, long *freeable),
|
TP_PROTO(struct shrinker *shrinker, long *freeable),
|
||||||
TP_ARGS(shrinker, 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,
|
DECLARE_HOOK(android_vh_rebalance_anon_lru_bypass,
|
||||||
TP_PROTO(bool *bypass),
|
TP_PROTO(bool *bypass),
|
||||||
TP_ARGS(bypass));
|
TP_ARGS(bypass));
|
||||||
|
|||||||
@@ -386,6 +386,7 @@ static unsigned long do_shrink_slab(struct shrink_control *shrinkctl,
|
|||||||
|
|
||||||
freeable = shrinker->count_objects(shrinker, shrinkctl);
|
freeable = shrinker->count_objects(shrinker, shrinkctl);
|
||||||
trace_android_vh_do_shrink_slab(shrinker, &freeable);
|
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)
|
if (freeable == 0 || freeable == SHRINK_EMPTY)
|
||||||
return freeable;
|
return freeable;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user