Re: memcg/kmem panics

From: Shakeel Butt
Date: Wed Jun 19 2019 - 19:10:02 EST


On Wed, Jun 19, 2019 at 3:50 PM Dave Hansen <dave.hansen@xxxxxxxxx> wrote:
>
> I have a bit of a grievance to file. :)
>
> I'm seeing "Cannot create slab..." panic()s coming from
> kmem_cache_open() when trying to create memory cgroups on a Fedora
> system running 5.2-rc's. The panic()s happen when failing to create
> memcg-specific slabs because the memcg code passes through the
> root_cache->flags, which can include SLAB_PANIC.
>
> I haven't tracked down the root cause yet, or where this behavior
> started. But, the end-user experience is that systemd tries to create a
> cgroup and ends up with a kernel panic. That's rather sad, especially
> for the poor sod that's trying to debug it.
>
> Should memcg_create_kmem_cache() be, perhaps filtering out SLAB_PANIC
> from root_cache->flags, for instance? That might make the system a bit
> less likely to turn into a doorstop if and when something goes mildly
> wrong. I've hacked out the panic()s and the system actually seems to
> boot OK.

You must be using CONFIG_SLUB and I see that in kmem_cache_open() in
SLUB doing a SLAB_PANIC check. I think we should remove that
altogether from SLUB as SLAB does not do this and failure in memcg
kmem cache creation can and should be handled gracefully. I can send a
patch to remove that check.

Shakeel