Re: [PATCH 11/25] mm, compaction: Use free lists to quickly locate a migration source

From: Vlastimil Babka
Date: Wed Jan 16 2019 - 10:00:26 EST


On 1/16/19 3:33 PM, Mel Gorman wrote:
>>> + break;
>>> + }
>>> +
>>> + /*
>>> + * If low PFNs are being found and discarded then
>>> + * limit the scan as fast searching is finding
>>> + * poor candidates.
>>> + */
>>
>> I wonder about the "low PFNs are being found and discarded" part. Maybe
>> I'm missing it, but I don't see them being discarded above, this seems
>> to be the first check against cc->migrate_pfn. With the min() part in
>> update_fast_start_pfn(), does it mean we can actually go back and rescan
>> (or skip thanks to skip bits, anyway) again pageblocks that we already
>> scanned?
>>
>
> Extremely poor phrasing. My mind was thinking in terms of discarding
> unsuitable candidates as they were below the migration scanner and it
> did not translate properly.
>
> Based on your feedback, how does the following untested diff look?

IMHO better. Meanwhile I noticed that the next patch removes the
set_pageblock_skip() so maybe it's needless churn to introduce the
fast_find_block, but I'll check more closely.

The new comment about pfns below cc->migrate_pfn is better but I still
wonder if it would be better to really skip over those candidates (they
are still called unsuitable) and not go backwards with cc->migrate_pfn.
But if you think the pageblock skip bits and halving of limit minimizes
pointless rescan sufficiently, then fine.