Re: [PATCH] add __GFP_ZERP to GFP_LEVEL_MASK

From: Peter Zijlstra
Date: Mon Jul 23 2007 - 14:41:20 EST


On Mon, 2007-07-23 at 11:37 -0700, Andrew Morton wrote:
> On Mon, 23 Jul 2007 12:03:40 +0200 Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> wrote:
>
> > Daniel recently spotted that __GFP_ZERO is not (and has never been)
> > part of GFP_LEVEL_MASK. I could not find a reason for this in the
> > original patch: 3977971c7f09ce08ed1b8d7a67b2098eb732e4cd in the -bk
> > tree.
>
> It doesn't make a lot of sense to be passing __GFP_ZERO into slab
> allocation functions. It's not really for the caller to be telling slab
> how it should arrange for its new memory to get zeroed.
>
> And the caller of slab functions will need to zero the memory anyway,
> because you don't know whether your new object came direct from the page
> allocator or if it is recycled memory from a partial slab.
>
> I have a feeling that we did support passing __GFP_ZERO into the slab
> allocation functions for a while, but took it out.

Didn't we just reinstate doing that?

/me goes look at .23-rc1

# grep __GFP_ZERO mm/sl[uoa]b.c
mm/slab.c: BUG_ON(flags & ~(GFP_DMA | __GFP_ZERO | GFP_LEVEL_MASK));
mm/slab.c: if (unlikely((flags & __GFP_ZERO) && ptr))
mm/slab.c: if (unlikely((flags & __GFP_ZERO) && objp))
mm/slob.c: if (unlikely((gfp & __GFP_ZERO) && b))
mm/slub.c: BUG_ON(flags & ~(GFP_DMA | __GFP_ZERO | GFP_LEVEL_MASK));
mm/slub.c: if (unlikely((gfpflags & __GFP_ZERO) && object))


seems to suggest we do.

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