mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
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: 407420219
Change-Id: I5ee29988eebb53da503f729564946b12deb1d981
Signed-off-by: pengzhongcui <pengzhongcui@xiaomi.corp-partner.google.com>
This commit is contained in:
committed by
Zhongcui Peng
parent
c1fd50266b
commit
4fc6483e90
@@ -310,6 +310,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmap_region);
|
|||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_unmap_one);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_unmap_one);
|
||||||
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);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_shrink_slab);
|
||||||
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_shrink_slab_ex);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_get_page_wmark);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_get_page_wmark);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_page_add_new_anon_rmap);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_page_add_new_anon_rmap);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_psci_tos_resident_on);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_psci_tos_resident_on);
|
||||||
|
|||||||
@@ -21,6 +21,10 @@ DECLARE_HOOK(android_vh_shrink_slab_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_shrink_node_memcgs,
|
DECLARE_HOOK(android_vh_shrink_node_memcgs,
|
||||||
TP_PROTO(struct mem_cgroup *memcg, bool *skip),
|
TP_PROTO(struct mem_cgroup *memcg, bool *skip),
|
||||||
TP_ARGS(memcg, skip));
|
TP_ARGS(memcg, skip));
|
||||||
|
|||||||
@@ -816,6 +816,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