mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
cma: fix watermark checking
* Add ALLOC_CMA alloc flag and pass it to [__]zone_watermark_ok() (from Minchan Kim). * During watermark check decrease available free pages number by free CMA pages number if necessary (unmovable allocations cannot use pages from CMA areas). Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]> Signed-off-by: Kyungmin Park <[email protected]> Cc: Marek Szyprowski <[email protected]> Cc: Michal Nazarewicz <[email protected]> Cc: Minchan Kim <[email protected]> Cc: Mel Gorman <[email protected]> Cc: Hugh Dickins <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
d1ce749a0d
commit
d95ea5d18e
3 changed files with 36 additions and 17 deletions
|
|
@ -934,6 +934,7 @@ unsigned long try_to_compact_pages(struct zonelist *zonelist,
|
|||
struct zoneref *z;
|
||||
struct zone *zone;
|
||||
int rc = COMPACT_SKIPPED;
|
||||
int alloc_flags = 0;
|
||||
|
||||
/* Check if the GFP flags allow compaction */
|
||||
if (!order || !may_enter_fs || !may_perform_io)
|
||||
|
|
@ -941,6 +942,10 @@ unsigned long try_to_compact_pages(struct zonelist *zonelist,
|
|||
|
||||
count_vm_event(COMPACTSTALL);
|
||||
|
||||
#ifdef CONFIG_CMA
|
||||
if (allocflags_to_migratetype(gfp_mask) == MIGRATE_MOVABLE)
|
||||
alloc_flags |= ALLOC_CMA;
|
||||
#endif
|
||||
/* Compact each zone in the list */
|
||||
for_each_zone_zonelist_nodemask(zone, z, zonelist, high_zoneidx,
|
||||
nodemask) {
|
||||
|
|
@ -951,7 +956,8 @@ unsigned long try_to_compact_pages(struct zonelist *zonelist,
|
|||
rc = max(status, rc);
|
||||
|
||||
/* If a normal allocation would succeed, stop compacting */
|
||||
if (zone_watermark_ok(zone, order, low_wmark_pages(zone), 0, 0))
|
||||
if (zone_watermark_ok(zone, order, low_wmark_pages(zone), 0,
|
||||
alloc_flags))
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue