Re: [BUGFIX] cgroup: create a workqueue for cgroup

From: Andrew Morton
Date: Tue Oct 04 2011 - 17:10:21 EST


On Mon, 3 Oct 2011 14:19:11 +0900
Daisuke Nishimura <nishimura@xxxxxxxxxxxxxxxxx> wrote:

> On Mon, 3 Oct 2011 09:22:44 +0900
> Daisuke Nishimura <nishimura@xxxxxxxxxxxxxxxxx> wrote:
>
> > On Fri, 30 Sep 2011 15:30:49 -0700
> > Andrew Morton <akpm00@xxxxxxxxx> wrote:
> >
> > > On Fri, 30 Sep 2011 16:54:52 +0900
> > > Daisuke Nishimura <nishimura@xxxxxxxxxxxxxxxxx> wrote:
> > >
> > > > In commit:f90d4118, cpuset_wq, a separate workqueue for cpuset, was introduced
> > > > to avoid a dead lock against cgroup_mutex between async_rebuild_sched_domains()
> > > > and cgroup_tasks_write().
> > > >
> > > > But check_for_release() has a similar problem:
> > > >
> > > > check_for_release()
> > > > schedule_work(release_agent_work)
> > > > cgroup_release_agent()
> > > > mutex_lock(&cgroup_mutex)
> > > >
> > > > And I actually see a lockup which seems to be caused by this problem
> > > > on 2.6.32-131.0.15.el6.x86_64.
> > >
> > > Are you sure the bug is still present in current kernels? Perhaps
> > > Tejun's workqueue changes magically made it go away.
> > >
> > Not yet, but I'll check it.
> >
> As you said, I cannot repricate this issue on 3.1-rc8. But I've verified
> it happens on 2.6.32.46 and this patch fixes it, so I think this patch is
> necessary for stable at least.
>

Getting the fix into -stable is a problem.

Firstly, the -stable maintainers only really take backports of fixes
which are already in mainline. So to fix this bug one would need to
identify which upstream fix(es) did the work, and backport those.

Secondly, I'm not sure that kernels as old as 2.6.32.x are still being
maintained at kernel.org, at least.

So I'm not sure what to suggest. Perhaps send the fix directly to
distro kernel maintainers?
--
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/