From: Tejun Heo <tj@kernel.org>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: akpm@linux-foundation.org, containers@lists.linux-foundation.org,
lizf@cn.fujitsu.com, linux-kernel@vger.kernel.org,
oleg@redhat.com, linux-pm@lists.linux-foundation.org,
paul@paulmenage.org, kamezawa.hiroyu@Jp.fujitsu.com
Subject: Re: [PATCH 03/10] threadgroup: extend threadgroup_lock() to cover exit and exec
Date: Thu, 24 Nov 2011 13:22:33 -0800 [thread overview]
Message-ID: <20111124212233.GC6735@google.com> (raw)
In-Reply-To: <20111123140139.GB10669@somewhere.redhat.com>
Hello, Frederic.
On Wed, Nov 23, 2011 at 03:02:05PM +0100, Frederic Weisbecker wrote:
> This:
>
> static inline void threadgroup_lock(struct task_struct *tsk)
> {
> + /* exec uses exit for de-threading, grab cred_guard_mutex first */
> + mutex_lock(&tsk->signal->cred_guard_mutex);
> down_write(&tsk->signal->group_rwsem);
>
> is really not obvious.
>
> Just point out we want to synchronize against the leader, pid and the sighand
> that may change concurrently.
Sure thing. Will beef up the comments.
> > > Also note this is currently protected by the tasklist readlock. Cred
> > > guard mutex is certainly better, I just don't remember if you remove
> > > the tasklist lock in a further patch.
> >
> > I don't remove tasklist_lock.
>
> I believe you can do it after using the cred guard mutex. That needs to
> be double checked though. I think it was mostly there to keep while_each_thread()
> stable non-racy against leader change. cred_guard_mutex should handle that
> now.
Yes, probably, but I still don't think removing that is a good idea.
We're walking tasklist in a rather cold path, IMHO it's better to keep
the locking obvious.
> > So, to me, what seems more important is how to make it easier for each
> > cgroup client instead of what's the minimal that's necessary right
> > now.
> >
> > Heh, did I make any sense? :)
>
> Yep, fine for me :)
> Just wanted to ensure I (and others) understood and identified well the issues
> and the fixes.
Yeap, fair enough. Will update the patches, repost and push them
through cgroup/for-3.3, and move onto other pending patchsets.
Thank you.
--
tejun
WARNING: multiple messages have this Message-ID (diff)
From: Tejun Heo <tj@kernel.org>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: paul@paulmenage.org, rjw@sisk.pl, lizf@cn.fujitsu.com,
linux-pm@lists.linux-foundation.org,
linux-kernel@vger.kernel.org,
containers@lists.linux-foundation.org, matthltc@us.ibm.com,
akpm@linux-foundation.org, oleg@redhat.com,
kamezawa.hiroyu@Jp.fujitsu.com
Subject: Re: [PATCH 03/10] threadgroup: extend threadgroup_lock() to cover exit and exec
Date: Thu, 24 Nov 2011 13:22:33 -0800 [thread overview]
Message-ID: <20111124212233.GC6735@google.com> (raw)
In-Reply-To: <20111123140139.GB10669@somewhere.redhat.com>
Hello, Frederic.
On Wed, Nov 23, 2011 at 03:02:05PM +0100, Frederic Weisbecker wrote:
> This:
>
> static inline void threadgroup_lock(struct task_struct *tsk)
> {
> + /* exec uses exit for de-threading, grab cred_guard_mutex first */
> + mutex_lock(&tsk->signal->cred_guard_mutex);
> down_write(&tsk->signal->group_rwsem);
>
> is really not obvious.
>
> Just point out we want to synchronize against the leader, pid and the sighand
> that may change concurrently.
Sure thing. Will beef up the comments.
> > > Also note this is currently protected by the tasklist readlock. Cred
> > > guard mutex is certainly better, I just don't remember if you remove
> > > the tasklist lock in a further patch.
> >
> > I don't remove tasklist_lock.
>
> I believe you can do it after using the cred guard mutex. That needs to
> be double checked though. I think it was mostly there to keep while_each_thread()
> stable non-racy against leader change. cred_guard_mutex should handle that
> now.
Yes, probably, but I still don't think removing that is a good idea.
We're walking tasklist in a rather cold path, IMHO it's better to keep
the locking obvious.
> > So, to me, what seems more important is how to make it easier for each
> > cgroup client instead of what's the minimal that's necessary right
> > now.
> >
> > Heh, did I make any sense? :)
>
> Yep, fine for me :)
> Just wanted to ensure I (and others) understood and identified well the issues
> and the fixes.
Yeap, fair enough. Will update the patches, repost and push them
through cgroup/for-3.3, and move onto other pending patchsets.
Thank you.
--
tejun
next prev parent reply other threads:[~2011-11-24 21:22 UTC|newest]
Thread overview: 167+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-01 23:46 [PATCHSET] cgroup: stable threadgroup during attach & subsys methods consolidation Tejun Heo
2011-11-01 23:46 ` Tejun Heo
[not found] ` <1320191193-8110-1-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2011-11-01 23:46 ` [PATCH 01/10] cgroup: add cgroup_root_mutex Tejun Heo
2011-11-01 23:46 ` [PATCH 02/10] threadgroup: rename signal->threadgroup_fork_lock to ->group_rwsem Tejun Heo
2011-11-01 23:46 ` Tejun Heo
2011-11-04 8:40 ` KAMEZAWA Hiroyuki
[not found] ` <20111104174032.e0c4fc11.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2011-11-04 15:16 ` Tejun Heo
2011-11-04 15:16 ` Tejun Heo
2011-11-04 15:16 ` Tejun Heo
[not found] ` <1320191193-8110-3-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2011-11-04 8:40 ` KAMEZAWA Hiroyuki
2011-11-04 8:40 ` KAMEZAWA Hiroyuki
2011-11-01 23:46 ` [PATCH 03/10] threadgroup: extend threadgroup_lock() to cover exit and exec Tejun Heo
2011-11-01 23:46 ` [PATCH 04/10] cgroup: always lock threadgroup during migration Tejun Heo
2011-11-01 23:46 ` [PATCH 05/10] cgroup: subsys->attach_task() should be called after migration Tejun Heo
2011-11-01 23:46 ` [PATCH 06/10] cgroup: improve old cgroup handling in cgroup_attach_proc() Tejun Heo
2011-11-01 23:46 ` Tejun Heo
2011-11-14 20:37 ` Frederic Weisbecker
[not found] ` <1320191193-8110-7-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2011-11-14 20:37 ` Frederic Weisbecker
2011-11-14 20:37 ` Frederic Weisbecker
2011-11-01 23:46 ` [PATCH 07/10] cgroup: introduce cgroup_taskset and use it in subsys->can_attach(), cancel_attach() and attach() Tejun Heo
2011-11-01 23:46 ` Tejun Heo
2011-11-14 21:16 ` Frederic Weisbecker
[not found] ` <1320191193-8110-8-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2011-11-14 21:16 ` Frederic Weisbecker
2011-11-14 21:16 ` Frederic Weisbecker
2011-11-01 23:46 ` [PATCH 08/10] cgroup: don't use subsys->can_attach_task() or ->attach_task() Tejun Heo
2011-11-01 23:46 ` [PATCH 09/10] cgroup, cpuset: don't use ss->pre_attach() Tejun Heo
2011-11-01 23:46 ` Tejun Heo
[not found] ` <1320191193-8110-10-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2011-11-15 0:51 ` Frederic Weisbecker
2011-11-15 0:51 ` Frederic Weisbecker
2011-11-15 0:51 ` Frederic Weisbecker
2011-11-01 23:46 ` [PATCH 10/10] cgroup: kill subsys->can_attach_task(), pre_attach() and attach_task() Tejun Heo
2011-11-01 23:46 ` Tejun Heo
2011-11-04 9:10 ` KAMEZAWA Hiroyuki
2011-11-04 9:10 ` KAMEZAWA Hiroyuki
[not found] ` <1320191193-8110-11-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2011-11-04 9:10 ` KAMEZAWA Hiroyuki
2011-11-15 0:54 ` Frederic Weisbecker
2011-11-15 0:54 ` Frederic Weisbecker
2011-11-15 0:54 ` Frederic Weisbecker
2011-11-21 22:07 ` [PATCHSET] cgroup: stable threadgroup during attach & subsys methods consolidation Tejun Heo
2011-11-21 22:07 ` Tejun Heo
[not found] ` <20111121220719.GP25776-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-11-22 2:27 ` Li Zefan
2011-11-22 2:27 ` Li Zefan
2011-11-22 16:20 ` Tejun Heo
[not found] ` <4ECB089C.3080208-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2011-11-22 16:20 ` Tejun Heo
2011-11-22 16:20 ` Tejun Heo
2011-11-22 2:27 ` Li Zefan
2011-11-24 22:51 ` Tejun Heo
2011-11-01 23:46 ` [PATCH 01/10] cgroup: add cgroup_root_mutex Tejun Heo
2011-11-01 23:46 ` Tejun Heo
[not found] ` <1320191193-8110-2-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2011-11-04 8:38 ` KAMEZAWA Hiroyuki
2011-11-04 8:38 ` KAMEZAWA Hiroyuki
2011-11-04 8:38 ` KAMEZAWA Hiroyuki
2011-11-01 23:46 ` [PATCH 02/10] threadgroup: rename signal->threadgroup_fork_lock to ->group_rwsem Tejun Heo
2011-11-01 23:46 ` [PATCH 03/10] threadgroup: extend threadgroup_lock() to cover exit and exec Tejun Heo
2011-11-04 8:45 ` KAMEZAWA Hiroyuki
2011-11-04 8:45 ` KAMEZAWA Hiroyuki
2011-11-13 16:44 ` Frederic Weisbecker
[not found] ` <1320191193-8110-4-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2011-11-04 8:45 ` KAMEZAWA Hiroyuki
2011-11-13 16:44 ` Frederic Weisbecker
2011-11-13 16:44 ` Frederic Weisbecker
2011-11-14 13:54 ` Frederic Weisbecker
2011-11-14 13:54 ` Frederic Weisbecker
2011-11-14 13:54 ` Frederic Weisbecker
2011-11-21 22:03 ` Tejun Heo
2011-11-21 22:03 ` Tejun Heo
[not found] ` <20111121220326.GM25776-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-11-23 14:34 ` Frederic Weisbecker
2011-11-23 14:34 ` Frederic Weisbecker
2011-11-23 14:34 ` Frederic Weisbecker
2011-11-21 22:03 ` Tejun Heo
2011-11-21 21:58 ` Tejun Heo
2011-11-21 21:58 ` Tejun Heo
2011-11-21 21:58 ` Tejun Heo
2011-11-23 14:02 ` Frederic Weisbecker
[not found] ` <20111121215839.GL25776-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-11-23 14:02 ` Frederic Weisbecker
2011-11-23 14:02 ` Frederic Weisbecker
[not found] ` <20111123140139.GB10669-oHC15RC7JGTpAmv0O++HtFaTQe2KTcn/@public.gmane.org>
2011-11-24 21:22 ` Tejun Heo
2011-11-24 21:22 ` Tejun Heo [this message]
2011-11-24 21:22 ` Tejun Heo
2011-11-13 18:20 ` Frederic Weisbecker
2011-11-24 22:50 ` [PATCH UPDATED " Tejun Heo
2011-11-13 18:20 ` [PATCH " Frederic Weisbecker
2011-11-13 18:20 ` Frederic Weisbecker
2011-11-24 22:50 ` [PATCH UPDATED " Tejun Heo
2011-11-24 22:50 ` Tejun Heo
2011-11-25 4:02 ` Linus Torvalds
2011-11-25 4:02 ` Linus Torvalds
2011-11-27 19:21 ` Tejun Heo
[not found] ` <CA+55aFxq1wztMzYhKaY5RHazLBDz4pSXUgiGzTj2wA6EJcDbAw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-11-27 19:21 ` Tejun Heo
2011-11-27 19:21 ` Tejun Heo
2011-11-27 21:25 ` Tejun Heo
[not found] ` <20111127192155.GB4266-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-11-27 21:25 ` Tejun Heo
2011-11-27 21:25 ` Tejun Heo
[not found] ` <20111127212558.GE4266-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-01 19:29 ` Tejun Heo
2011-12-01 19:29 ` Tejun Heo
2011-12-01 19:29 ` Tejun Heo
2011-11-25 14:01 ` Frederic Weisbecker
2011-11-25 14:01 ` Frederic Weisbecker
2011-11-27 19:30 ` Tejun Heo
[not found] ` <20111125140136.GC23307-oHC15RC7JGTpAmv0O++HtFaTQe2KTcn/@public.gmane.org>
2011-11-27 19:30 ` Tejun Heo
2011-11-27 19:30 ` Tejun Heo
[not found] ` <20111127193001.GC4266-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-02 16:28 ` Frederic Weisbecker
2011-12-02 16:28 ` Frederic Weisbecker
2011-12-02 16:28 ` Frederic Weisbecker
[not found] ` <20111202162753.GA19752-oHC15RC7JGTpAmv0O++HtFaTQe2KTcn/@public.gmane.org>
2011-12-05 18:43 ` Tejun Heo
2011-12-05 18:43 ` Tejun Heo
[not found] ` <20111205184315.GJ627-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-07 15:30 ` Frederic Weisbecker
2011-12-07 15:30 ` Frederic Weisbecker
2011-12-07 15:30 ` Frederic Weisbecker
2011-12-07 18:22 ` Tejun Heo
2011-12-07 18:22 ` Tejun Heo
[not found] ` <20111207182214.GA7610-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-08 20:50 ` [PATCH UPDATED AGAIN " Tejun Heo
2011-12-08 20:50 ` Tejun Heo
2011-12-08 20:50 ` Tejun Heo
2011-12-09 23:42 ` Frederic Weisbecker
[not found] ` <20111208205055.GB12108-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-09 23:42 ` Frederic Weisbecker
2011-12-09 23:42 ` Frederic Weisbecker
2011-12-13 1:33 ` Tejun Heo
2011-12-13 1:33 ` Tejun Heo
[not found] ` <20111213013334.GC25802-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-13 2:17 ` Tejun Heo
2011-12-13 2:17 ` Tejun Heo
2011-12-13 2:17 ` Tejun Heo
2011-12-13 1:33 ` Tejun Heo
[not found] ` <20111207153046.GC13252-oHC15RC7JGTpAmv0O++HtFaTQe2KTcn/@public.gmane.org>
2011-12-07 18:22 ` [PATCH UPDATED " Tejun Heo
2011-12-05 18:43 ` Tejun Heo
[not found] ` <20111124225054.GA14828-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-11-25 4:02 ` Linus Torvalds
2011-11-25 14:01 ` Frederic Weisbecker
2011-11-01 23:46 ` [PATCH " Tejun Heo
2011-11-01 23:46 ` [PATCH 04/10] cgroup: always lock threadgroup during migration Tejun Heo
2011-11-01 23:46 ` Tejun Heo
2011-11-04 8:54 ` KAMEZAWA Hiroyuki
[not found] ` <20111104175413.30afaf8e.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2011-11-04 15:21 ` Tejun Heo
2011-11-04 15:21 ` Tejun Heo
2011-11-04 15:21 ` Tejun Heo
2011-11-04 8:54 ` KAMEZAWA Hiroyuki
[not found] ` <1320191193-8110-5-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2011-11-04 8:54 ` KAMEZAWA Hiroyuki
2011-11-14 18:46 ` Frederic Weisbecker
2011-11-14 18:46 ` Frederic Weisbecker
2011-11-14 18:52 ` Frederic Weisbecker
2011-11-14 18:52 ` Frederic Weisbecker
2011-11-14 18:52 ` Frederic Weisbecker
2011-11-21 22:05 ` Tejun Heo
2011-11-21 22:05 ` Tejun Heo
2011-11-21 22:05 ` Tejun Heo
2011-11-14 18:46 ` Frederic Weisbecker
2011-11-01 23:46 ` [PATCH 05/10] cgroup: subsys->attach_task() should be called after migration Tejun Heo
2011-11-01 23:46 ` Tejun Heo
[not found] ` <1320191193-8110-6-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2011-11-14 20:06 ` Frederic Weisbecker
2011-11-14 20:06 ` Frederic Weisbecker
2011-11-14 20:06 ` Frederic Weisbecker
2011-11-21 22:04 ` Tejun Heo
2011-11-21 22:04 ` Tejun Heo
2011-11-21 22:04 ` Tejun Heo
2011-11-01 23:46 ` [PATCH 06/10] cgroup: improve old cgroup handling in cgroup_attach_proc() Tejun Heo
2011-11-01 23:46 ` [PATCH 07/10] cgroup: introduce cgroup_taskset and use it in subsys->can_attach(), cancel_attach() and attach() Tejun Heo
2011-11-01 23:46 ` [PATCH 08/10] cgroup: don't use subsys->can_attach_task() or ->attach_task() Tejun Heo
2011-11-01 23:46 ` Tejun Heo
[not found] ` <1320191193-8110-9-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2011-11-04 9:08 ` KAMEZAWA Hiroyuki
2011-11-14 23:54 ` Frederic Weisbecker
2011-11-14 23:54 ` Frederic Weisbecker
2011-11-04 9:08 ` KAMEZAWA Hiroyuki
2011-11-04 9:08 ` KAMEZAWA Hiroyuki
2011-11-14 23:54 ` Frederic Weisbecker
2011-11-01 23:46 ` [PATCH 09/10] cgroup, cpuset: don't use ss->pre_attach() Tejun Heo
2011-11-01 23:46 ` [PATCH 10/10] cgroup: kill subsys->can_attach_task(), pre_attach() and attach_task() Tejun Heo
2011-11-21 22:07 ` [PATCHSET] cgroup: stable threadgroup during attach & subsys methods consolidation Tejun Heo
2011-11-24 22:51 ` Tejun Heo
2011-11-24 22:51 ` Tejun Heo
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=20111124212233.GC6735@google.com \
--to=tj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=containers@lists.linux-foundation.org \
--cc=fweisbec@gmail.com \
--cc=kamezawa.hiroyu@Jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=lizf@cn.fujitsu.com \
--cc=oleg@redhat.com \
--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.