Re: [PATCH 09/14] mm: use compaction feedback for thp backoff conditions

From: Vlastimil Babka
Date: Thu Apr 28 2016 - 04:53:32 EST


On 04/20/2016 09:47 PM, Michal Hocko wrote:
From: Michal Hocko <mhocko@xxxxxxxx>

THP requests skip the direct reclaim if the compaction is either
deferred or contended to reduce stalls which wouldn't help the
allocation success anyway. These checks are ignoring other potential
feedback modes which we have available now.

It clearly doesn't make much sense to go and reclaim few pages if the
previous compaction has failed.

We can also simplify the check by using compaction_withdrawn which
checks for both COMPACT_CONTENDED and COMPACT_DEFERRED. This check
is however covering more reasons why the compaction was withdrawn.
None of them should be a problem for the THP case though.

It is safe to back of if we see COMPACT_SKIPPED because that means
that compaction_suitable failed and a single round of the reclaim is
unlikely to make any difference here. We would have to be close to
the low watermark to reclaim enough and even then there is no guarantee
that the compaction would make any progress while the direct reclaim
would have caused the stall.

COMPACT_PARTIAL_SKIPPED is slightly different because that means that we
have only seen a part of the zone so a retry would make some sense. But
it would be a compaction retry not a reclaim retry to perform. We are
not doing that and that might indeed lead to situations where THP fails
but this should happen only rarely and it would be really hard to
measure.

Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>

THP's don't compact by default in page fault path anymore, so we don't need to restrict them even more. And hopefully we'll replace the is_thp_gfp_mask() hack with something better soon, so this might be just extra code churn. But I don't feel strongly enough to nack it.