mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
ANDROID: Add vendor hook for cma adjusting
ALLOC_CMA is hard binded to GFP_CMA now, introduce a vh for adjusting. Bug: 291181967 Bug: 374857413 Test: build pass Change-Id: Idd4c1a2b5971920881b8f42fdc9358918ef2a946 Signed-off-by: zhaoyang.huang <zhaoyang.huang@unisoc.com> (cherry picked from commit 79353327f1a51082c2308733ed38b4235d5956e0)
This commit is contained in:
committed by
Suren Baghdasaryan
parent
e02772c76d
commit
a03d1670d2
@@ -344,6 +344,8 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ctl_dirty_rate);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_hibernation_swap);
|
||||
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_flags_cma_adjust);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rmqueue_cma_fallback);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_encrypt_page);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_init_aes_encrypt);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_skip_swap_map_write);
|
||||
|
||||
@@ -282,6 +282,12 @@ DECLARE_HOOK(android_vh_filemap_map_pages,
|
||||
TP_PROTO(struct file *file, pgoff_t first_pgoff,
|
||||
pgoff_t last_pgoff, vm_fault_t ret),
|
||||
TP_ARGS(file, first_pgoff, last_pgoff, ret));
|
||||
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 */
|
||||
|
||||
@@ -3165,6 +3165,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;
|
||||
@@ -4295,6 +4301,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