From: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx> Subject: [PATCH] cma: retry on test_pages_isolated() failure Retry (once) migration on test_pages_isolated() failure. Cc: Michal Nazarewicz <mina86@xxxxxxxxxx> Cc: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> Cc: Mel Gorman <mgorman@xxxxxxx> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx> Signed-off-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx> --- mm/page_alloc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) Index: b/mm/page_alloc.c =================================================================== --- a/mm/page_alloc.c 2012-05-15 12:40:54.199127705 +0200 +++ b/mm/page_alloc.c 2012-05-15 12:41:25.335127686 +0200 @@ -5796,7 +5796,7 @@ { struct zone *zone = page_zone(pfn_to_page(start)); unsigned long outer_start, outer_end; - int ret = 0, order; + int ret = 0, order, retry = 0; /* * What we do here is we mark all pageblocks in range as @@ -5826,7 +5826,7 @@ pfn_max_align_up(end), migratetype); if (ret) goto done; - +migrate: ret = __alloc_contig_migrate_range(start, end); if (ret) goto done; @@ -5863,6 +5863,8 @@ /* Make sure the range is really isolated. */ if (test_pages_isolated(outer_start, end)) { + if (retry++ < 1) + goto migrate; pr_warn("alloc_contig_range test_pages_isolated(%lx, %lx) failed\n", outer_start, end); ret = -EBUSY; -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>