Re: [patch -mmotm] mm: invoke oom killer for __GFP_NOFAIL

From: Jens Axboe
Date: Tue May 12 2009 - 12:37:42 EST


On Tue, May 12 2009, Nick Piggin wrote:
> On Tue, May 12, 2009 at 02:42:02PM +0200, Jens Axboe wrote:
> > On Mon, May 11 2009, Andrew Morton wrote:
> > > On Sat, 9 May 2009 15:46:39 -0700 (PDT)
> > > David Rientjes <rientjes@xxxxxxxxxx> wrote:
> > >
> > > > The oom killer must be invoked regardless of the order if the allocation
> > > > is __GFP_NOFAIL, otherwise it will loop forever when reclaim fails to
> > > > free some memory.
> > >
> > > Sigh. We're supposed to be deleting __GFP_NOFAIL. I added it as a way
> > > of easily finding lame error-handling-challenged callers which need to
> > > be fixed up. So of course we went and added lots more callers.
> > >
> > > y:/usr/src/linux-2.6.30-rc5> grep -rl GFP_NOFAIL .
> > > ./fs/bio-integrity.c
>
> This is no good either, it seems to be in the bio submission path.
>
> It needs a mempool or something.

mempool cannot help here, since the allocation is tied to the process
(and IO) life time.

> It has a dead code "fallback" that returns an error, but I suspect that's
> not really acceptable.

It's not that difficult to handle an error there, it just means that we
lose any process association with that request. It's mostly making sure
that all the bits and pieces deal with that correctly, but it should not
be very hard.

--
Jens Axboe

--
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/