On Fri, Feb 10, 2017 at 06:23:40PM +0100, Vlastimil Babka wrote: > The migrate scanner in async compaction is currently limited to MIGRATE_MOVABLE > pageblocks. This is a heuristic intended to reduce latency, based on the > assumption that non-MOVABLE pageblocks are unlikely to contain movable pages. > > However, with the exception of THP's, most high-order allocations are not > movable. Should the async compaction succeed, this increases the chance that > the non-MOVABLE allocations will fallback to a MOVABLE pageblock, making the > long-term fragmentation worse. > > This patch attempts to help the situation by changing async direct compaction > so that the migrate scanner only scans the pageblocks of the requested > migratetype. If it's a non-MOVABLE type and there are such pageblocks that do > contain movable pages, chances are that the allocation can succeed within one > of such pageblocks, removing the need for a fallback. If that fails, the > subsequent sync attempt will ignore this restriction. > > Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx> Ok, I really like this idea. The thinking of async originally was to reduce latency but that was also at the time when THP allocations were stalling for long periods of time. Now that the default has changed, this idea makes a lot of sense. A few months ago I would have thought that this will increase the changes that a high-order allocation for the stack may have a higher chance of failing but with VMAP_STACK, this is much less of a concern. It would be very nice to know for this patch if the number of times the extfrag tracepoint is triggered is reduced or increased by this patch. Do you have that data? -- Mel Gorman SUSE Labs -- 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>