Re: [PATCH v3 04/13] mm, compaction: move pageblock checks up from isolate_migratepages_range()

From: Naoya Horiguchi
Date: Tue Jun 24 2014 - 13:34:43 EST


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/