Re: [PATCH] fix spurious OOM kills

Marcelo Tosatti
2004-11-22T08:35:48Z

On Mon, Nov 22, 2004 at 01:15:12PM +0100, Chris Ross wrote:
> Hi Andrew,
>
> Chris Ross escreveu:
> > Andrew Morton escreveu:
> >> Please ignore the previous patch and try the below.
> >
> > I still get OOM kills with this (well one, anyway). It does seem harder
> > to trigger though.
>
> Turns out it's not that hard. Sorry for the slight delay, I've been away
> a few days.
>
> root@sleepy chris # grep Killed /var/log/messages
> Nov 21 22:24:22 sleepy Out of Memory: Killed process 6800 (qmgr).
> Nov 21 22:24:32 sleepy Out of Memory: Killed process 6799 (pickup).
> Nov 21 22:24:57 sleepy Out of Memory: Killed process 6472 (distccd).
> Nov 21 22:25:00 sleepy Out of Memory: Killed process 6473 (distccd).
> Nov 21 22:25:00 sleepy Out of Memory: Killed process 6582 (distccd).
> Nov 21 22:25:00 sleepy Out of Memory: Killed process 6686 (distccd).
> Nov 21 22:25:00 sleepy Out of Memory: Killed process 6687 (ntpd).
>
> If you want to seem the actual oom messages just ask.
>
> This is with 2.6.10-rc2-mm1 + your patch whilst doing an "emerge sync"
> which isn't ridiculously memory hungry and shouldn't result in oom kills.
>
> Informally I felt I had better results from Marcelo's patch, though I
> should test both under the same conditions before I say that...

Chris,

The kill-from-kswapd approach on top of recent -mm which includes
"ignore referenced information on zero priority" should be quite
reliable. Would be nice if you could try that.

The current scheme is broken yes, the main problem being the all_unreclaimable
logic which conflicts with OOM detection - I (we) were hoping
"ignore-referenced-information-on-zero-priority" would be enough for 99% of
cases, but it doesnt seem so.

Either way killing from kswapd or from task context all_unreclaimable logic
is conflitant with OOM detection.

But we are going the right way :)