On Tue 10-05-16 09:36:02, Vlastimil Babka wrote:
- should_compact_retry() is only called when should_reclaim_retry() returns
false. This means that compaction priority cannot get increased as long
as reclaim makes sufficient progress. Theoretically, reclaim should stop
retrying for high-order allocations as long as the high-order page doesn't
exist but due to races, this may result in spurious retries when the
high-order page momentarily does exist.
This is intentional behavior and I would like to preserve it if it is
possible. For higher order pages should_reclaim_retry retries as long
as there are some eligible high order pages present which are just hidden
by the watermark check. So this is mostly to get us over watermarks to
start carrying about fragmentation. If we race there then nothing really
terrible should happen and we should eventually converge to a terminal
state.
Does this make sense to you?