ANDROID: vendor_hooks:vendor hook for __alloc_pages_slowpath.
add vendor hook in __alloc_pages_slowpath ahead of __alloc_pages_direct_reclaim and warn_alloc. Bug: 243629905 Bug: 395197442 Change-Id: Ieacc6cf79823c0bfacfdeec9afb55ed66f40d0b0 Signed-off-by: xiaofeng <xiaofeng5@xiaomi.com> Signed-off-by: huzhanyuan <huzhanyuan@oppo.com> Signed-off-by: wengle <wengle@oppo.com>
This commit is contained in:
@@ -410,3 +410,5 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_vfs_fsync_range);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_fcntl);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_evict);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_vmscan_kswapd_done);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_reclaim_bypass);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_failure_bypass);
|
||||
|
||||
@@ -317,6 +317,14 @@ DECLARE_HOOK(android_vh_drain_all_pages_bypass,
|
||||
int migratetype, unsigned long did_some_progress,
|
||||
bool *bypass),
|
||||
TP_ARGS(gfp_mask, order, alloc_flags, migratetype, did_some_progress, bypass));
|
||||
DECLARE_HOOK(android_vh_alloc_pages_reclaim_bypass,
|
||||
TP_PROTO(gfp_t gfp_mask, int order, int alloc_flags,
|
||||
int migratetype, struct page **page),
|
||||
TP_ARGS(gfp_mask, order, alloc_flags, migratetype, page));
|
||||
DECLARE_HOOK(android_vh_alloc_pages_failure_bypass,
|
||||
TP_PROTO(gfp_t gfp_mask, int order, int alloc_flags,
|
||||
int migratetype, struct page **page),
|
||||
TP_ARGS(gfp_mask, order, alloc_flags, migratetype, page));
|
||||
#endif /* _TRACE_HOOK_MM_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
|
||||
@@ -4690,6 +4690,12 @@ retry:
|
||||
if (should_alloc_retry)
|
||||
goto retry;
|
||||
|
||||
trace_android_vh_alloc_pages_reclaim_bypass(gfp_mask, order,
|
||||
alloc_flags, ac->migratetype, &page);
|
||||
|
||||
if (page)
|
||||
goto got_pg;
|
||||
|
||||
/* Try direct reclaim and then allocating */
|
||||
page = __alloc_pages_direct_reclaim(gfp_mask, order, alloc_flags, ac,
|
||||
&did_some_progress);
|
||||
@@ -4794,6 +4800,11 @@ nopage:
|
||||
goto retry;
|
||||
}
|
||||
fail:
|
||||
trace_android_vh_alloc_pages_failure_bypass(gfp_mask, order,
|
||||
alloc_flags, ac->migratetype, &page);
|
||||
if (page)
|
||||
goto got_pg;
|
||||
|
||||
warn_alloc(gfp_mask, ac->nodemask,
|
||||
"page allocation failure: order:%u", order);
|
||||
got_pg:
|
||||
|
||||
Reference in New Issue
Block a user