From: Oleg Nesterov <oleg@redhat.com>
To: NeilBrown <neilb@suse.de>
Cc: Paul Menage <menage@google.com>, Ben Blum <bblum@andrew.cmu.edu>,
Li Zefan <lizf@cn.fujitsu.com>,
containers@lists.linux-foundation.org,
"Paul E.McKenney" <paulmck@linux.vnet.ibm.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: Possible race between cgroup_attach_proc and de_thread, and questionable code in de_thread.
Date: Mon, 15 Aug 2011 21:09:35 +0200 [thread overview]
Message-ID: <20110815190935.GA17589@redhat.com> (raw)
In-Reply-To: <20110815101144.39812e9f@notabene.brown>
On 08/15, NeilBrown wrote:
>
> de_thread can change the group_leader of a thread_group, and release_task can
> remove a non-leader while leaving the rest of the thread_group intact. So
> any while_each_thread() loop needs some extra care to ensure that it doesn't
> loop infinitely, because the "head" that it is looking for might not be there
> any more.
> Maybe there are other rules that ensure this can never happen, but they sure
> aren't obvious to me (i.e. if you know them - please tell ;-)
No, I don't know ;)
And note also that if g != leader, then while_each_thread(g, t) can hang
simply because g exits. I am still trying to invent something simple to
fix while_each_thread-under-rcu.
This looks possible, but I am starting to think that, say, zap_threads()
needs locking anyway. With any fix I can imagine, it can miss a thread
we should care about.
Oleg.
next prev parent reply other threads:[~2011-08-15 19:13 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-27 7:11 Possible race between cgroup_attach_proc and de_thread, and questionable code in de_thread NeilBrown
[not found] ` <20110727171101.5e32d8eb-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2011-07-27 15:07 ` Ben Blum
2011-07-27 15:07 ` Ben Blum
[not found] ` <20110727150710.GB5242-japSPQJXeIlCM1neWV3AGuCmf2DRS9x2@public.gmane.org>
2011-07-27 23:42 ` Paul E. McKenney
2011-07-27 23:42 ` Paul E. McKenney
[not found] ` <20110727234235.GA2318-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2011-07-28 1:08 ` NeilBrown
2011-07-28 1:08 ` NeilBrown
2011-07-28 6:26 ` Ben Blum
[not found] ` <20110728062616.GC15204-japSPQJXeIlCM1neWV3AGuCmf2DRS9x2@public.gmane.org>
2011-07-28 7:13 ` NeilBrown
2011-07-28 7:13 ` NeilBrown
2011-07-29 14:28 ` [PATCH][BUGFIX] cgroups: more safe tasklist locking in cgroup_attach_proc Ben Blum
2011-08-01 19:31 ` Paul Menage
[not found] ` <20110729142842.GA8462-japSPQJXeIlCM1neWV3AGuCmf2DRS9x2@public.gmane.org>
2011-08-01 19:31 ` Paul Menage
2011-08-15 18:49 ` Oleg Nesterov
2011-08-15 18:49 ` Oleg Nesterov
2011-08-15 22:50 ` Frederic Weisbecker
2011-08-15 23:04 ` Ben Blum
[not found] ` <20110815230415.GA6867-japSPQJXeIlCM1neWV3AGuCmf2DRS9x2@public.gmane.org>
2011-08-15 23:09 ` Ben Blum
2011-08-15 23:09 ` Ben Blum
2011-08-15 23:19 ` Frederic Weisbecker
[not found] ` <20110815230900.GB6867-japSPQJXeIlCM1neWV3AGuCmf2DRS9x2@public.gmane.org>
2011-08-15 23:19 ` Frederic Weisbecker
2011-08-15 23:04 ` Ben Blum
2011-08-15 23:11 ` [PATCH][BUGFIX] cgroups: fix ordering of calls " Ben Blum
2011-08-15 23:11 ` Ben Blum
[not found] ` <20110815231156.GC6867-japSPQJXeIlCM1neWV3AGuCmf2DRS9x2@public.gmane.org>
2011-08-15 23:20 ` Frederic Weisbecker
2011-08-15 23:31 ` Paul Menage
2011-08-15 23:20 ` Frederic Weisbecker
2011-08-15 23:31 ` Paul Menage
[not found] ` <20110815184957.GA16588-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-15 22:50 ` [PATCH][BUGFIX] cgroups: more safe tasklist locking " Frederic Weisbecker
2011-09-01 21:46 ` Ben Blum
2011-09-01 21:46 ` Ben Blum
2011-09-02 12:32 ` Oleg Nesterov
2011-09-08 2:11 ` Ben Blum
[not found] ` <20110902123251.GA26764-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-09-08 2:11 ` Ben Blum
[not found] ` <20110901214643.GD10401-japSPQJXeIlCM1neWV3AGuCmf2DRS9x2@public.gmane.org>
2011-09-02 12:32 ` Oleg Nesterov
2011-10-14 0:31 ` [PATCH 1/2] cgroups: use sighand lock instead of tasklist_lock " Ben Blum
2011-10-14 12:15 ` Frederic Weisbecker
2011-10-14 0:36 ` [PATCH 2/2] cgroups: convert ss->attach to use whole threadgroup flex_array (cpuset, memcontrol) Ben Blum
2011-10-14 12:21 ` Frederic Weisbecker
2011-10-14 13:53 ` Ben Blum
2011-10-14 13:54 ` Ben Blum
2011-10-14 15:22 ` Frederic Weisbecker
2011-10-17 19:11 ` Ben Blum
2011-10-14 15:21 ` Frederic Weisbecker
2011-10-19 5:43 ` Paul Menage
[not found] ` <20110728171345.67d3797d-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2011-07-29 14:28 ` [PATCH][BUGFIX] cgroups: more safe tasklist locking in cgroup_attach_proc Ben Blum
2011-07-28 12:17 ` Possible race between cgroup_attach_proc and de_thread, and questionable code in de_thread Paul E. McKenney
[not found] ` <20110728121741.GB2427-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2011-08-14 17:51 ` Oleg Nesterov
2011-08-14 17:51 ` Oleg Nesterov
[not found] ` <20110814175119.GC2381-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-14 23:58 ` NeilBrown
2011-08-15 18:01 ` Paul E. McKenney
2011-08-14 23:58 ` NeilBrown
2011-08-15 18:01 ` Paul E. McKenney
[not found] ` <20110728110813.7ff84b13-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2011-07-28 6:26 ` Ben Blum
2011-07-28 12:17 ` Paul E. McKenney
2011-08-14 17:45 ` Oleg Nesterov
2011-08-14 17:45 ` Oleg Nesterov
2011-08-14 17:40 ` Oleg Nesterov
2011-08-14 17:40 ` Oleg Nesterov
2011-08-15 0:11 ` NeilBrown
2011-08-15 19:09 ` Oleg Nesterov [this message]
[not found] ` <20110815101144.39812e9f-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2011-08-15 19:09 ` Oleg Nesterov
[not found] ` <20110814174000.GA2381-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-15 0:11 ` NeilBrown
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=20110815190935.GA17589@redhat.com \
--to=oleg@redhat.com \
--cc=bblum@andrew.cmu.edu \
--cc=containers@lists.linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=menage@google.com \
--cc=neilb@suse.de \
--cc=paulmck@linux.vnet.ibm.com \
/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.