On Thu, Jan 17, 2019 at 06:17:28PM +0100, Vlastimil Babka wrote: > On 1/4/19 1:50 PM, Mel Gorman wrote: > > Migrate has separate cached PFNs for ASYNC and SYNC* migration on the > > basis that some migrations will fail in ASYNC mode. However, if the cached > > PFNs match at the start of scanning and pageblocks are skipped due to > > having no isolation candidates, then the sync state does not matter. > > This patch keeps matching cached PFNs in sync until a pageblock with > > isolation candidates is found. > > > > The actual benefit is marginal given that the sync scanner following the > > async scanner will often skip a number of pageblocks but it's useless > > work. Any benefit depends heavily on whether the scanners restarted > > recently so overall the reduction in scan rates is a mere 2.8% which > > is borderline noise. > > > > Signed-off-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> > > Acked-by: Vlastimil Babka <vbabka@xxxxxxx> > > My easlier suggestion to check more thoroughly if pages can be migrated (which > depends on the mode) before isolating them wouldn't play nice with this :) > No, unfortunately it wouldn't. I did find though that sync_light often ran very quickly after async when compaction was having trouble succeeding. The time window was short enough that states like Dirty/Writeback were highly unlikely to be cleared. It might have played nice when fragmentation was very low but any benefit then would be very difficult to detect. -- Mel Gorman SUSE Labs