ANDROID: Add vendor hook for cma adjusting
ALLOC_CMA is hard binded to GFP_CMA now, introduce a vh for adjusting. Bug: 291181967 Test: build pass Change-Id: Idd4c1a2b5971920881b8f42fdc9358918ef2a946 Signed-off-by: zhaoyang.huang <zhaoyang.huang@unisoc.com>
This commit is contained in:
committed by
Treehugger Robot
parent
dbd50f6113
commit
79353327f1
@@ -424,6 +424,8 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_save_cpu_resume);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_save_hib_resume_bdev);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_highpage_movable_gfp_adjust);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_anon_gfp_adjust);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_flags_cma_adjust);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rmqueue_cma_fallback);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_dma_buf_stats_teardown);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_madvise_cold_or_pageout);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_madvise_cold_or_pageout_abort);
|
||||
|
||||
@@ -223,6 +223,12 @@ DECLARE_HOOK(android_vh_compact_finished,
|
||||
DECLARE_HOOK(android_vh_madvise_cold_or_pageout_abort,
|
||||
TP_PROTO(struct vm_area_struct *vma, bool *abort_madvise),
|
||||
TP_ARGS(vma, abort_madvise));
|
||||
DECLARE_HOOK(android_vh_alloc_flags_cma_adjust,
|
||||
TP_PROTO(gfp_t gfp_mask, unsigned int *alloc_flags),
|
||||
TP_ARGS(gfp_mask, alloc_flags));
|
||||
DECLARE_HOOK(android_vh_rmqueue_cma_fallback,
|
||||
TP_PROTO(struct zone *zone, unsigned int order, struct page **page),
|
||||
TP_ARGS(zone, order, page));
|
||||
#endif /* _TRACE_HOOK_MM_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
|
||||
@@ -3170,6 +3170,12 @@ __rmqueue(struct zone *zone, unsigned int order, int migratetype,
|
||||
retry:
|
||||
page = __rmqueue_smallest(zone, order, migratetype);
|
||||
|
||||
/*
|
||||
* let normal GFP_MOVABLE has chance to try MIGRATE_CMA
|
||||
*/
|
||||
if (unlikely(!page) && (migratetype == MIGRATE_MOVABLE))
|
||||
trace_android_vh_rmqueue_cma_fallback(zone, order, &page);
|
||||
|
||||
if (unlikely(!page) && __rmqueue_fallback(zone, order, migratetype,
|
||||
alloc_flags))
|
||||
goto retry;
|
||||
@@ -4339,6 +4345,7 @@ static inline unsigned int gfp_to_alloc_flags_cma(gfp_t gfp_mask,
|
||||
#ifdef CONFIG_CMA
|
||||
if (gfp_migratetype(gfp_mask) == MIGRATE_MOVABLE && gfp_mask & __GFP_CMA)
|
||||
alloc_flags |= ALLOC_CMA;
|
||||
trace_android_vh_alloc_flags_cma_adjust(gfp_mask, &alloc_flags);
|
||||
#endif
|
||||
return alloc_flags;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user