On Thu, Sep 29, 2016 at 11:05:48PM +0200, Vlastimil Babka wrote:> The previous patch has adjusted async compaction so that it helps against> longterm fragmentation when compacting for a non-MOVABLE high-order allocation.> The goal of this patch is to force such allocations go through compaction> once before being allowed to fallback to a pageblock of different migratetype> (e.g. MOVABLE). In contexts where compaction is not allowed (and for order-0> allocations), this delayed fallback possibility can still help by trying a> different zone where fallback might not be needed and potentially waking up> kswapd earlier.

Hmm... can we justify this compaction overhead in case of that there ishigh order freepages in other migratetype pageblock? There is no guaranteethat longterm fragmentation happens and it affects the systempeformance.

And, it would easilly fail to compact in unmovable pageblock sincethere would not be migratable pages if everything works as ourintended. So, I guess that checking it over and over doesn't help toreduce fragmentation and just increase latency of allocation.