Re: [PATCH] Remove OOM killer from try_to_free_pages /all_unreclaimable braindamage
From: Thomas Gleixner
Date: Fri Nov 05 2004 - 21:05:32 EST
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.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/