Re: [PATCH] mm, oom: protect !costly allocations some more

From: Sergey Senozhatsky
Date: Tue Mar 08 2016 - 04:31:18 EST


On (03/08/16 10:24), Vlastimil Babka wrote:
[..]
> > @@ -3294,6 +3289,18 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
> > did_some_progress > 0, no_progress_loops))
> > goto retry;
> >
> > + /*
> > + * !costly allocations are really important and we have to make sure
> > + * the compaction wasn't deferred or didn't bail out early due to locks
> > + * contention before we go OOM.
> > + */
> > + if (order && order <= PAGE_ALLOC_COSTLY_ORDER) {
> > + if (compact_result <= COMPACT_CONTINUE)
>
> Same here.
> I was going to say that this didn't have effect on Sergey's test, but
> turns out it did :)

I'm sorry, my test is not correct. I have disabled compaction last weeked on
purpose - to provoke more OOM-kills and OOM conditions for reworked printk()
patch set testing (http://marc.info/?l=linux-kernel&m=145734549308803); and I
forgot to re-enable it.

-ss