Re: upcoming kerneloops.org item: get_page_from_freelist

From: Andrew Morton
Date: Wed Jun 24 2009 - 13:55:54 EST


On Wed, 24 Jun 2009 19:55:24 +0300 Pekka Enberg <penberg@xxxxxxxxxxxxxx> wrote:

> On Wed, Jun 24, 2009 at 7:46 PM, Andrew Morton<akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> > Well yes. __Using GFP_NOFAIL on a higher-order allocation is bad. __This
> > patch is there to find, name, shame, blame and hopefully fix callers.
> >
> > A fix for cxgb3 is in the works. __slub's design is a big problem.
> >
> > But we'll probably have to revert it for 2.6.31 :(
>
> How is SLUB's design a problem here? Can't we just clear GFP_NOFAIL
> from the higher order allocation and thus force GFP_NOFAIL allocations
> to use the minimum required order?

That could then lead to the __GFP_NOFAIL allocation attempt returning
NULL. But the callers cannot handle that and probably don't even test
for it - this is why they used __GFP_NOFAIL.

I dunno. Mabe we should just remove __GFP_NOFAIL and convert callers back
to open-coded infinite retry loops. Hardly an improvement, but it at
least would stop people naively using __GFP_NOFAIL.

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