Re: [RFC 12/13] mm, compaction: more reliably increase direct compaction priority

From: Vlastimil Babka
Date: Mon May 16 2016 - 05:28:06 EST


On 05/16/2016 10:14 AM, Michal Hocko wrote:
On Mon 16-05-16 09:31:44, Vlastimil Babka wrote:

Yeah it should work, my only worry was that this may get subtly wrong (as
experience shows us) and due to e.g. slightly different watermark checks
and/or a corner-case zone such as ZONE_DMA, should_reclaim_retry() would
keep returning true, even if reclaim couldn't/wouldn't help anything. Then
compaction would be needlessly kept at ineffective priority.

watermark check for ZONE_DMA should always fail because it fails even
when is completely free to the lowmem reserves. I had a subtle bug in
the original code to check highzone_idx rather than classzone_idx but
that should the fix has been posted recently:
http://lkml.kernel.org/r/1463051677-29418-2-git-send-email-mhocko@xxxxxxxxxx

Sure, but that just adds to the experience of being subtly wrong in this area :) But sure we can leave this part alone until proven wrong, I don't insist strongly.

Also my understanding of the initial compaction priorities is to lower the
latency if fragmentation is just light and there's enough memory. Once we
start struggling, I don't see much point in not switching to the full
compaction priority quickly.

That is true but why to compact when there are high order pages and they
are just hidden by the watermark check.

Compaction should skip such zone regardless of priority.