mm: reduce watermark if free cma is too large [1/1]

PD#SWPL-807

Problem:
Sometimes driver can't allocation memory under atomic environment.
And free pages is enough but they are nearly ALL CMA pages.

Solution:
Reduce watermark with harf of free cma pages even allocation support
CMA.

Verify:
P212

Change-Id: I8e49768d4384ed064775537754a2b7f09a5bbb7c
Signed-off-by: tao zeng <tao.zeng@amlogic.com>
This commit is contained in:
tao zeng
2018-10-26 17:51:30 +08:00
committed by Jianxin Pan
parent 8b2c5df07a
commit 68a4d449ed

View File

@@ -2998,6 +2998,11 @@ bool __zone_watermark_ok(struct zone *z, unsigned int order, unsigned long mark,
/* If allocation can't use CMA areas don't use free CMA pages */
if (!(alloc_flags & ALLOC_CMA))
free_pages -= zone_page_state(z, NR_FREE_CMA_PAGES);
#ifdef CONFIG_AMLOGIC_CMA
/* avoid free pages in water mark are all CMA */
else
free_pages -= zone_page_state(z, NR_FREE_CMA_PAGES) / 2;
#endif
#endif
/*