On Fri, Feb 3, 2012 at 8:18 PM, Marek Szyprowski m.szyprowski@samsung.com wrote:
From: Michal Nazarewicz mina86@mina86.com diff --git a/mm/compaction.c b/mm/compaction.c index d5174c4..a6e7c64 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -45,6 +45,11 @@ static void map_pages(struct list_head *list) } }
+static inline bool migrate_async_suitable(int migratetype)
On Fri, 03 Feb 2012 15:19:54 +0100, Hillf Danton dhillf@gmail.com wrote:
Just nitpick, since the helper is not directly related to what async means, how about migrate_suitable(int migrate_type) ?
I feel current name is better suited since it says that it's OK to scan this block if it's an asynchronous compaction run.
+{
return is_migrate_cma(migratetype) || migratetype == MIGRATE_MOVABLE;
+}
/*
- Isolate free pages onto a private freelist. Caller must hold zone->lock.
- If @strict is true, will abort returning 0 on any invalid PFNs or non-free
@@ -277,7 +282,7 @@ isolate_migratepages_range(struct zone *zone, struct compact_control *cc, */ pageblock_nr = low_pfn >> pageblock_order; if (!cc->sync && last_pageblock_nr != pageblock_nr &&
get_pageblock_migratetype(page) != MIGRATE_MOVABLE) {
migrate_async_suitable(get_pageblock_migratetype(page))) {
Here compaction looks corrupted if CMA not enabled, Mel?
Damn, yes, this should be !migrate_async_suitable(...). Sorry about that.