[PATCH 08/15] mm: mmzone: MIGRATE_CMA migration type added
From: Mel Gorman <hidden>
Date: 2012-01-30 14:52:35
Also in:
linux-media, linux-mm, lkml
From: Mel Gorman <hidden>
Date: 2012-01-30 14:52:35
Also in:
linux-media, linux-mm, lkml
On Mon, Jan 30, 2012 at 02:06:50PM +0100, Michal Nazarewicz wrote:
quoted
quoted
@@ -1017,11 +1049,14 @@ __rmqueue_fallback(struct zone *zone, int order, int start_migratetype)rmv_page_order(page); /* Take ownership for orders >= pageblock_order */ - if (current_order >= pageblock_order) + if (current_order >= pageblock_order && + !is_pageblock_cma(page)) change_pageblock_range(page, current_order, start_migratetype); - expand(zone, page, order, current_order, area, migratetype); + expand(zone, page, order, current_order, area, + is_migrate_cma(start_migratetype) + ? start_migratetype : migratetype);What is this check meant to be doing? start_migratetype is determined by allocflags_to_migratetype() and that never will be MIGRATE_CMA so is_migrate_cma(start_migratetype) should always be false.Right, thanks! This should be the other way around, ie.: + expand(zone, page, order, current_order, area, + is_migrate_cma(migratetype) + ? migratetype : start_migratetype); I'll fix this and the calls to is_pageblock_cma().
That makes a lot more sense. Thanks. I have a vague recollection that there was a problem with finding unmovable pages in MIGRATE_CMA regions. This might have been part of the problem. -- Mel Gorman SUSE Labs