Re: slub: don't panic for memcg kmem cache creation failure

From: Shakeel Butt
Date: Sat Jun 29 2019 - 16:31:17 EST


On Sat, Jun 29, 2019 at 7:05 AM Alexey Dobriyan <adobriyan@xxxxxxxxx> wrote:
>
> > - if (flags & SLAB_PANIC)
> > - panic("Cannot create slab %s size=%u realsize=%u order=%u offset=%u flags=%lx\n",
> > - s->name, s->size, s->size,
> > - oo_order(s->oo), s->offset, (unsigned long)flags);
>
> This is wrong. Without SLAB_PANIC people will start to implement error
> checking out of habit and add all slightly different error messages.
> This simply increases text and rodata size.
>
> If memcg kmem caches creation failure is OK, then SLAB_PANIC should not
> be passed.
>
> The fact that SLAB doesn't implement SLAB_PANIC is SLAB bug.

I do not agree with you. IMHO the kmem_cache_create_usercopy() is the
right place to handle SLAB_PANIC which is handling it. If you want
extra info here, you can add pr_warn for SLAB_PANIC here and the
caller will still and rightfully do the panic().

thanks,
Shakeel