Re: [PATCH v3 09/17] mm, compaction: make whole_zone flag ignore cached scanner positions

From: Vlastimil Babka
Date: Mon Jul 18 2016 - 05:13:02 EST


On 07/06/2016 07:09 AM, Joonsoo Kim wrote:
On Fri, Jun 24, 2016 at 11:54:29AM +0200, Vlastimil Babka wrote:
A recent patch has added whole_zone flag that compaction sets when scanning
starts from the zone boundary, in order to report that zone has been fully
scanned in one attempt. For allocations that want to try really hard or cannot
fail, we will want to introduce a mode where scanning whole zone is guaranteed
regardless of the cached positions.

This patch reuses the whole_zone flag in a way that if it's already passed true
to compaction, the cached scanner positions are ignored. Employing this flag

Okay. But, please don't reset cached scanner position even if whole_zone
flag is set. Just set cc->migrate_pfn and free_pfn, appropriately. With

Won't that result in confusion on cached position updates during compaction where it checks the previous cached position? I wonder what kinds of corner cases it can bring...

your following patches, whole_zone could be set without any compaction
try

I don't understand what you mean here? Even after whole series, whole_zone is only checked, and positions thus reset, after passing the compaction_suitable() call from compact_zone(). So at that point we can say that compaction is being actually tried and it's not a drive-by reset?

Thanks