On 03/08/2016 03:48 PM, Michal Hocko wrote: > On Tue 08-03-16 15:34:37, Vlastimil Babka wrote: >>> --- a/include/linux/compaction.h >>> +++ b/include/linux/compaction.h >>> @@ -14,6 +14,11 @@ enum compact_result { >>> /* compaction should continue to another pageblock */ >>> COMPACT_CONTINUE, >>> /* >>> + * whoever is calling compaction should retry because it was either >>> + * not active or it tells us there is more work to be done. >>> + */ >>> + COMPACT_SHOULD_RETRY = COMPACT_CONTINUE, >> >> Hmm, I'm not sure about this. AFAIK compact_zone() doesn't ever return >> COMPACT_CONTINUE, and thus try_to_compact_pages() also doesn't. This >> overloading of CONTINUE only applies to compaction_suitable(). But the >> value that should_compact_retry() is testing comes only from >> try_to_compact_pages(). So this is not wrong, but perhaps a bit misleading? > > Well the idea was that I wanted to cover all the _possible_ cases where > compaction might want to tell us "please try again even when the last > round wasn't really successful". COMPACT_CONTINUE might not be returned > right now but we can come up with that in the future. It sounds like a > sensible feedback to me. But maybe there would be a better name for such > a feedback. I confess this is a bit oom-rework centric name...
Hmm, I see. But it doesn't really tell use to please try again. That interpretation is indeed oom-specific. What it's actually telling us is either a) reclaim and then try again (COMPACT_SKIPPED), b) try again just to overcome the deferred state (COMPACT_DEFERRED). COMPACT_CONTINUE says "go ahead", but only from compaction_suitable(). So the attempt a generic name doesn't really work here I'm afraid :/ > Also I find it better to hide details behind a more generic name. > > I am open to suggestions here, of course. >