Re: [PATCH] mm,oom: Re-enable OOM killer using timers.

From: Johannes Weiner
Date: Fri Jan 22 2016 - 09:58:18 EST


On Fri, Jan 22, 2016 at 10:59:10PM +0900, Tetsuo Handa wrote:
> David Rientjes wrote:
> > On Thu, 21 Jan 2016, Tetsuo Handa wrote:
> >
> > > I consider phases for managing system-wide OOM events as follows.
> > >
> > > (1) Design and use a system with appropriate memory capacity in mind.
> > >
> > > (2) When (1) failed, the OOM killer is invoked. The OOM killer selects
> > > an OOM victim and allow that victim access to memory reserves by
> > > setting TIF_MEMDIE to it.
> > >
> > > (3) When (2) did not solve the OOM condition, start allowing all tasks
> > > access to memory reserves by your approach.
> > >
> > > (4) When (3) did not solve the OOM condition, start selecting more OOM
> > > victims by my approach.
> > >
> > > (5) When (4) did not solve the OOM condition, trigger the kernel panic.
> > >
> >
> > This was all mentioned previously, and I suggested that the panic only
> > occur when memory reserves have been depleted, otherwise there is still
> > the potential for the livelock to be solved. That is a patch that would
> > apply today, before any of this work, since we never want to loop
> > endlessly in the page allocator when memory reserves are fully depleted.
> >
> > This is all really quite simple.
>
> So, David is OK with above approach, right?
> Then, Michal and Johannes, are you OK with above approach?

Yes, that order of events sounds reasonable to me. Personally, I'm not
entirely sure whether it's better to give out the last reserves to the
allocating task or subsequent OOM victims, but it's likely not even
that important. The most important part is to guarantee a predictable
and reasonable decision time.