All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm00@gmail.com>
To: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Cc: LKML <linux-kernel@vger.kernel.org>,
	container ML <containers@lists.linux-foundation.org>,
	Paul Menage <paul@paulmenage.org>, Li Zefan <lizf@cn.fujitsu.com>,
	Ingo Molnar <mingo@elte.hu>, Miao Xie <miaox@cn.fujitsu.com>,
	Lai Jiangshan <laijs@cn.fujitsu.com>,
	Tejun Heo <htejun@gmail.com>
Subject: Re: [BUGFIX] cgroup: create a workqueue for cgroup
Date: Fri, 30 Sep 2011 15:30:49 -0700	[thread overview]
Message-ID: <20110930153049.6719a14e.akpm00@gmail.com> (raw)
In-Reply-To: <20110930165452.19c0fdf4.nishimura@mxp.nes.nec.co.jp>

On Fri, 30 Sep 2011 16:54:52 +0900
Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> 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.

>
> ...
> --- a/include/linux/cgroup.h
> +++ b/include/linux/cgroup.h
> @@ -27,6 +27,8 @@ struct css_id;
>  
>  extern int cgroup_init_early(void);
>  extern int cgroup_init(void);
> +extern void cgroup_wq_init(void);
> +extern void queue_cgroup_work(struct work_struct *work);
>  extern void cgroup_lock(void);
>  extern int cgroup_lock_is_held(void);
>  extern bool cgroup_lock_live_group(struct cgroup *cgrp);

Can we spot the odd man out?

I shall rename queue_cgroup_work() to cgroup_queue_work().

>
> ...
>

  reply	other threads:[~2011-09-30 22:31 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-30  7:54 [BUGFIX] cgroup: create a workqueue for cgroup Daisuke Nishimura
2011-09-30 22:30 ` Andrew Morton [this message]
2011-10-03  0:22   ` Daisuke Nishimura
2011-10-03  5:19     ` Daisuke Nishimura
2011-10-04 21:10       ` Andrew Morton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110930153049.6719a14e.akpm00@gmail.com \
    --to=akpm00@gmail.com \
    --cc=containers@lists.linux-foundation.org \
    --cc=htejun@gmail.com \
    --cc=laijs@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizf@cn.fujitsu.com \
    --cc=miaox@cn.fujitsu.com \
    --cc=mingo@elte.hu \
    --cc=nishimura@mxp.nes.nec.co.jp \
    --cc=paul@paulmenage.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.