Re: [PATCH] memcg: don't initialize kmem-cache destroying work forroot caches

From: Andrew Vagin
Date: Mon Aug 05 2013 - 17:44:28 EST


On Mon, Aug 05, 2013 at 02:16:09PM -0700, Andrew Morton wrote:
> On Tue, 6 Aug 2013 01:01:28 +0400 Andrew Vagin <avagin@xxxxxxxxxxxxx> wrote:
>
> > On Mon, Aug 05, 2013 at 01:05:30PM -0700, Andrew Morton wrote:
> > > On Mon, 5 Aug 2013 20:09:40 +0400 Andrey Vagin <avagin@xxxxxxxxxx> wrote:
> > >
> > > > struct memcg_cache_params has a union. Different parts of this union
> > > > are used for root and non-root caches. A part with destroying work is
> > > > used only for non-root caches.
> > > >
> > > > I fixed the same problem in another place v3.9-rc1-16204-gf101a94, but
> > > > didn't notice this one.
> > > >
> > > > Cc: <stable@xxxxxxxxxxxxxxx> [3.9.x]
> > >
> > > hm, why the cc:stable?
> >
> > Because this patch fixes the kernel panic:
> >
> > [ 46.848187] BUG: unable to handle kernel paging request at 000000fffffffeb8
> > [ 46.849026] IP: [<ffffffff811a484c>] kmem_cache_destroy_memcg_children+0x6c/0xc0
> > [ 46.849092] PGD 0
> > [ 46.849092] Oops: 0000 [#1] SMP
>
> OK, pretty soon we'll have a changelog!

Sorry, probably I had to write all these in the initial commit message. I
just thought that this patch is an additional part of v3.9-rc1-16204-gf101a94.

>
> What does one do to trigger this oops? The bug has been there since
> 3.9, so the means-of-triggering must be quite special?

I don't think that so many people use cgroups with limits of the kernel memory.

I use the vzctl utility to operate with containers. vzctl limits the
kernel memory of containers by default. A container should be started
and stoped a few times (five or four) to reproduce the bug.

And one more thing is that nf_conntrack should be loaded. It creates
a new kmem_cache for each network namespace.

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