The following patch forces ALLOC_CMA to __zone_watermark_ok() in
__compaction_suitable() because the migration target free page can
be allocated from the free list of MIGRATE_CMA:
984fdba6a32e mm, compaction: use proper alloc_flags in __compaction_suitable()
However, it is not true from the following patch:
bf72522dabeb mm: compaction: exclude cma pages from compaction
Therefore, force 0 to __zone_watermark_ok() and revert the alloc_flag
in __isolate_free_page().
Change-Id: I95b3ac6e705f5546b93a8b5c4ceabeaa73d5642d
Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
* if compaction succeeds.
* For costly orders, we require low watermark instead of min for
* compaction to proceed to increase its chances.
- * ALLOC_CMA is used, as pages in CMA pageblocks are considered
- * suitable migration targets
*/
watermark = (order > PAGE_ALLOC_COSTLY_ORDER) ?
low_wmark_pages(zone) : min_wmark_pages(zone);
watermark += compact_gap(order);
if (!__zone_watermark_ok(zone, 0, watermark, classzone_idx,
- ALLOC_CMA, wmark_target))
+ 0, wmark_target))
return COMPACT_SKIPPED;
return COMPACT_CONTINUE;
* exists.
*/
watermark = min_wmark_pages(zone) + (1UL << order);
- if (!zone_watermark_ok(zone, 0, watermark, 0, ALLOC_CMA))
+ if (!zone_watermark_ok(zone, 0, watermark, 0, 0))
return 0;
__mod_zone_freepage_state(zone, -(1UL << order), mt);