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, 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/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>