On Tue, Jun 24, 2014 at 05:34:32PM +0200, Vlastimil Babka wrote: > On 06/24/2014 06:52 AM, Naoya Horiguchi wrote: > >>- low_pfn = isolate_migratepages_range(zone, cc, low_pfn, end_pfn, false); > >>- if (!low_pfn || cc->contended) > >>- return ISOLATE_ABORT; > >>+ /* Do not scan within a memory hole */ > >>+ if (!pfn_valid(low_pfn)) > >>+ continue; > >>+ > >>+ page = pfn_to_page(low_pfn); > > > >Can we move (page_zone != zone) check here as isolate_freepages() does? > > Duplicate perhaps, not sure about move.
Sorry for my unclearness. I meant that we had better do this check in per-pageblock loop (as the free scanner does) instead of in per-pfn loop (as we do now.) > Does CMA make sure that all pages > are in the same zone? It seems not, CMA just specifies start pfn and end pfn, so it can cover multiple zones. And we also have a case of node overlapping as commented in commit dc9086004 "mm: compaction: check for overlapping nodes during isolation for migration". So we need this check in compaction side. Thanks, Naoya Horiguchi > Common sense tells me it would be useless otherwise, > but I haven't checked if we can rely on it. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/