ANDROID: mm: Add vendor hook before rmqueue_bulk

This patch add a vendor hook to override batch size passed
in rmqueue_bulk, which is used to mitigate issues from long
local IRQ off.

Bug: 416197949
Change-Id: I2ff642ed2afa1a5c3f5fe1111446aa6e768f0b64
Signed-off-by: Chinwen Chang <chinwen.chang@mediatek.com>
This commit is contained in:
Chinwen Chang
2025-05-08 12:24:04 +08:00
committed by Suren Baghdasaryan
parent 34fe71fe24
commit ac8b302ab0
3 changed files with 7 additions and 0 deletions

View File

@@ -527,3 +527,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_direct_reclaim_exit);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_may_oom_exit);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_calculate_totalreserve_pages);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_madvise_cold_pageout_skip);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rmqueue_pcplist_override_batch);

View File

@@ -464,6 +464,9 @@ DECLARE_HOOK(android_vh_lruvec_del_folio,
TP_PROTO(struct lruvec *lruvec, struct folio *folio, enum lru_list lru,
bool *skip),
TP_ARGS(lruvec, folio, lru, skip));
DECLARE_HOOK(android_vh_rmqueue_pcplist_override_batch,
TP_PROTO(int *batch),
TP_ARGS(batch));
#endif /* _TRACE_HOOK_MM_H */
/* This part must be outside protection */

View File

@@ -3291,6 +3291,9 @@ struct page *___rmqueue_pcplist(struct zone *zone, unsigned int order,
trace_android_vh_rmqueue_bulk_bypass(order, pcp, migratetype, list);
if (!list_empty(list))
goto get_list;
trace_android_vh_rmqueue_pcplist_override_batch(&batch);
alloced = rmqueue_bulk(zone, order,
batch, list,
migratetype, alloc_flags);