ANDROID: mm: add vendor hook for direct reclaim

We'd like to adjust cpu priority for some processes with lower priority
during direct reclaim.

Bug: 351175506
Change-Id: Icdb613e99c8455f705d330aa90f65c908d43a6e3
Signed-off-by: Sooyong Suk <s.suk@samsung.corp-partner.google.com>
(cherry picked from commit 6508004f9ff26ee9949403b3dc0dd4ea27ba06f5)
Signed-off-by: Ziwei Dai <ziwei.dai@unisoc.com>
This commit is contained in:
Sooyong Suk
2024-09-27 14:03:34 +09:00
committed by ziwei.dai
parent b3a827e33d
commit 7a32e88bab
3 changed files with 11 additions and 0 deletions
+2
View File
@@ -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);
+6
View File
@@ -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 */
+3
View File
@@ -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);