Re: cgroup: BUG: unable to handle kernel NULL pointer dereference

From: Serge E. Hallyn
Date: Sat Jan 02 2016 - 22:41:30 EST


On Sat, Jan 02, 2016 at 06:59:16PM -0600, Serge E. Hallyn wrote:
> On Sat, Jan 02, 2016 at 01:50:49PM -0800, Jeremiah Mahler wrote:
> > Serge,
> >
> > On Sat, Jan 02, 2016 at 12:24:16PM -0600, Serge E. Hallyn wrote:
> > [...]
> > >
> > > Tried to reproduce with setting CONFIG_CFQ_GROUP_IOSCHED=y, but did not
> > > succeed. Could you send me the .config? Also, if someone could send
> > > the objdump -d output that might help. Though really, it seems clear
> > > that current->nsproxy must be NULL. Hm, that's right - we used to have
> > > that issue in pidns (or was it netns) during process exit. I don't know
> > > that I'll get time this afternoon, but I'll look into it asap.
> > >
> > > thanks.
> >
> > Attached is the .config I used. I can send an objdump, but do you want
> > a dump of the kernel, where the cgroup code is?
> >
> > --
> > - Jeremiah Mahler
>
> Thanks - Shoulda looked at the exit path before - exit_io_context is called
> after exit_task_namespaces().
>
> I'll have to figure out the best way to handle this. In the past we've
> restructured exit code to ensure that anything wanting to dereference
> nsproxy happened before exit_task_namespaces(). However, this is only
> happening in a debug stmt at blkg_path() in
> http://lxr.free-electrons.com/source/include/linux/blk-cgroup.h#L344
> so simply returning the init_cgroup_namespace is actually the right thing
> to do. I'm tempted to add a init_cgroup_path() which ignores namespaces,
> for use in debugging statements.

Or really I think it makes more sense to make cgroup_path_ns() take
the namespace into account, switch over cgroup_path() users who want _ns(),
and leave cgroup_path() using the initial cgroup namespace.
--
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/