Re: [PATCH 12/14] mm, oom: protect !costly allocations some more
From: Michal Hocko
Date: Wed May 04 2016 - 04:53:16 EST
On Wed 04-05-16 15:01:24, Joonsoo Kim wrote:
> On Wed, Apr 20, 2016 at 03:47:25PM -0400, Michal Hocko wrote:
[...]
Please try to trim your responses it makes it much easier to follow the
discussion
> > +static inline bool
> > +should_compact_retry(unsigned int order, enum compact_result compact_result,
> > + enum migrate_mode *migrate_mode,
> > + int compaction_retries)
> > +{
> > + if (!order)
> > + return false;
> > +
> > + /*
> > + * compaction considers all the zone as desperately out of memory
> > + * so it doesn't really make much sense to retry except when the
> > + * failure could be caused by weak migration mode.
> > + */
> > + if (compaction_failed(compact_result)) {
>
> IIUC, this compaction_failed() means that at least one zone is
> compacted and failed. This is not same with your assumption in the
> comment. If compaction is done and failed on ZONE_DMA, it would be
> premature decision.
Not really, because if other zones are making some progress then their
result will override COMPACT_COMPLETE
[...]
--
Michal Hocko
SUSE Labs