Re: [PATCH] Remove OOM killer from try_to_free_pages / all_unreclaimable braindamage

Marcelo Tosatti
2004-11-06T13:41:43Z

On Sat, Nov 06, 2004 at 02:55:50AM +0100, Thomas Gleixner wrote:
> On Sat, 2004-11-06 at 02:20 +0100, Andrea Arcangeli wrote:
> > On Fri, Nov 05, 2004 at 03:32:50PM -0800, Jesse Barnes wrote:
> > > On Friday, November 05, 2004 12:01 pm, Marcelo Tosatti wrote:
> > > > In my opinion the correct approach is to trigger the OOM killer
> > > > when kswapd is unable to free pages. Once that is done, the number
> > > > of tasks inside page reclaim is irrelevant.
> > >
> > > That makes sense.
> >
> > I don't like it, kswapd may fail balancing because there's a GFP_DMA
> > allocation that eat the last dma page, but we should not kill tasks if
> > we fail to balance in kswapd, we should kill tasks only when no fail
> > path exists (i.e. only during page faults, everything else in the kernel
> > has a fail path and it should never trigger oom).
> >
> > If you move it in kswapd there's no way to prevent oom-killing from a
> > syscall allocation (I guess even right now it would go wrong in this
> > sense, but at least right now it's more fixable). I want to move the oom
> > kill outside the alloc_page paths. The oom killing is all about the page
> > faults not having a fail path, and in turn the oom killing should be
> > moved in the page fault code, not in the allocator. Everything else
> > should keep returning -ENOMEM to the caller.
> >
> > So to me moving the oom killer into kswapd looks a regression.
>
> My point is not where oom-killer is triggered. My point is the decision
> criteria of oom-killer, when it is finally invoked, which process to
> kill. That's kind of independend of your patch. Your patch corrects the
> context in which oom-killer is called. My concern is that the decision
> critrion which process should be killed is not sufficient. In my case it
> kills sshd instead of a process which forks a bunch of child processes.
> Thats just wrong, because it takes away the chance to log into the
> machine remotely and fix the problem.

Hi Thomas,

Yes your patches are correct and needed independantly of where OOM killer
is triggered from.