On Wed, Apr 11, 2018 at 08:44:23AM -0500, Christopher Lameter wrote:
> > +++ b/mm/slub.c
> > @@ -2725,7 +2726,7 @@ static __always_inline void *slab_alloc_node(struct 
> > kmem_cache *s,
> >             stat(s, ALLOC_FASTPATH);
> >     }
> >
> > -   if (unlikely(gfpflags & __GFP_ZERO) && object)
> > +   if (unlikely(gfpflags & __GFP_ZERO) && object && slab_no_ctor(s))
> >             memset(object, 0, s->object_size);
> >
> >     slab_post_alloc_hook(s, gfpflags, 1, &object);
> 
> Please put this in a code path that is enabled by specifying
> 
> slub_debug
> 
> on the kernel command line.

I don't understand.  First, I had:

        if (unlikely(gfpflags & __GFP_ZERO) && object && !WARN_ON_ONCE(s->ctor))

and you didn't like that because it was putting checking into a (semi)fast
path.  Now you want me to add a check for slub_debug somewhere?  I dont
see an existing one I can leverage that will hit on every allocation.
Perhaps I'm missing something.

Reply via email to