From: Frederic Weisbecker <fweisbec@gmail.com>
To: Tejun Heo <tj@kernel.org>
Cc: akpm@linux-foundation.org, paul@paulmenage.org,
lizf@cn.fujitsu.com, linux-kernel@vger.kernel.org,
oleg@redhat.com, linux-pm@lists.linux-foundation.org,
Linus Torvalds <torvalds@linux-foundation.org>,
containers@lists.linux-foundation.org,
kamezawa.hiroyu@Jp.fujitsu.com
Subject: Re: [PATCH UPDATED 03/10] threadgroup: extend threadgroup_lock() to cover exit and exec
Date: Fri, 2 Dec 2011 17:28:03 +0100 [thread overview]
Message-ID: <20111202162753.GA19752@somewhere.redhat.com> (raw)
In-Reply-To: <20111127193001.GC4266@google.com>
On Sun, Nov 27, 2011 at 11:30:01AM -0800, Tejun Heo wrote:
> Hello, Frederic.
>
> On Fri, Nov 25, 2011 at 03:01:39PM +0100, Frederic Weisbecker wrote:
> > > + /*
> > > + * @tsk's threadgroup is going through changes - lock out users
> > > + * which expect stable threadgroup. Do this before actually
> > > + * starting tearing down @tsk so that locked threadgroup has either
> > > + * alive or dead tasks, not something inbetween.
> > > + */
> > > + threadgroup_change_begin(tsk);
> > > +
> >
> > I still wonder why there is a so big coverage of this lock. I mean
> > why is it called right before exit_irq_thread() and released so late.
> > All we want is to lock cgroup_exit() I think, after which tasks can't be
> > migrated.
>
> That way, cgroup plugins never see tasks in the process of
> deconstruction. Its ->mm, ->sighand, ->signal and so on either don't
> exist or continue to exist across all cgroup callbacks. It's simpler
> and safer (especially as bugs in this area would only be visible when
> migration and exit race), and if we're gonna synchronize exit path at
> all, there isn't anything to lose by excluding the whole thing.
Fine.
But I don't think it's very useful to protect against irq_exit_thread(),
what happens there is purely of internal irq interest.
Then right after, PF_EXITING is set before any interesting change.
Isn't it possible to simply lock this flag setting? IIRC, as soon
as the PF_EXITING flag is set, you ignore the task for attachment.
WARNING: multiple messages have this Message-ID (diff)
From: Frederic Weisbecker <fweisbec@gmail.com>
To: Tejun Heo <tj@kernel.org>
Cc: paul@paulmenage.org, rjw@sisk.pl, lizf@cn.fujitsu.com,
Linus Torvalds <torvalds@linux-foundation.org>,
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 UPDATED 03/10] threadgroup: extend threadgroup_lock() to cover exit and exec
Date: Fri, 2 Dec 2011 17:28:03 +0100 [thread overview]
Message-ID: <20111202162753.GA19752@somewhere.redhat.com> (raw)
In-Reply-To: <20111127193001.GC4266@google.com>
On Sun, Nov 27, 2011 at 11:30:01AM -0800, Tejun Heo wrote:
> Hello, Frederic.
>
> On Fri, Nov 25, 2011 at 03:01:39PM +0100, Frederic Weisbecker wrote:
> > > + /*
> > > + * @tsk's threadgroup is going through changes - lock out users
> > > + * which expect stable threadgroup. Do this before actually
> > > + * starting tearing down @tsk so that locked threadgroup has either
> > > + * alive or dead tasks, not something inbetween.
> > > + */
> > > + threadgroup_change_begin(tsk);
> > > +
> >
> > I still wonder why there is a so big coverage of this lock. I mean
> > why is it called right before exit_irq_thread() and released so late.
> > All we want is to lock cgroup_exit() I think, after which tasks can't be
> > migrated.
>
> That way, cgroup plugins never see tasks in the process of
> deconstruction. Its ->mm, ->sighand, ->signal and so on either don't
> exist or continue to exist across all cgroup callbacks. It's simpler
> and safer (especially as bugs in this area would only be visible when
> migration and exit race), and if we're gonna synchronize exit path at
> all, there isn't anything to lose by excluding the whole thing.
Fine.
But I don't think it's very useful to protect against irq_exit_thread(),
what happens there is purely of internal irq interest.
Then right after, PF_EXITING is set before any interesting change.
Isn't it possible to simply lock this flag setting? IIRC, as soon
as the PF_EXITING flag is set, you ignore the task for attachment.
next prev parent reply other threads:[~2011-12-02 16:28 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
2011-11-01 23:46 ` [PATCH 01/10] cgroup: add cgroup_root_mutex Tejun Heo
2011-11-01 23:46 ` Tejun Heo
2011-11-04 8:38 ` KAMEZAWA Hiroyuki
2011-11-04 8:38 ` KAMEZAWA Hiroyuki
[not found] ` <1320191193-8110-2-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
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
2011-11-13 18:20 ` Frederic Weisbecker
2011-11-13 18:20 ` 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
2011-11-23 14:34 ` Frederic Weisbecker
[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-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
2011-11-24 21:22 ` Tejun Heo
2011-11-24 21:22 ` Tejun Heo
[not found] ` <20111123140139.GB10669-oHC15RC7JGTpAmv0O++HtFaTQe2KTcn/@public.gmane.org>
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-24 22:50 ` 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
2011-12-01 19:29 ` Tejun Heo
2011-12-01 19:29 ` Tejun Heo
[not found] ` <20111127212558.GE4266-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-01 19:29 ` Tejun Heo
2011-11-25 14:01 ` Frederic Weisbecker
2011-11-25 14:01 ` Frederic Weisbecker
[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 [this message]
2011-12-02 16:28 ` Frederic Weisbecker
2011-12-05 18:43 ` Tejun Heo
[not found] ` <20111202162753.GA19752-oHC15RC7JGTpAmv0O++HtFaTQe2KTcn/@public.gmane.org>
2011-12-05 18:43 ` Tejun Heo
2011-12-05 18:43 ` Tejun Heo
2011-12-07 15:30 ` Frederic Weisbecker
2011-12-07 15:30 ` Frederic Weisbecker
[not found] ` <20111207153046.GC13252-oHC15RC7JGTpAmv0O++HtFaTQe2KTcn/@public.gmane.org>
2011-12-07 18:22 ` Tejun Heo
2011-12-07 18:22 ` Tejun Heo
2011-12-07 18:22 ` Tejun Heo
2011-12-08 20:50 ` [PATCH UPDATED AGAIN " Tejun Heo
2011-12-08 20:50 ` Tejun Heo
[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
2011-12-13 1:33 ` Tejun Heo
2011-12-13 2:17 ` 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-09 23:42 ` Frederic Weisbecker
[not found] ` <20111207182214.GA7610-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-08 20:50 ` Tejun Heo
[not found] ` <20111205184315.GJ627-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-07 15:30 ` [PATCH UPDATED " Frederic Weisbecker
2011-11-27 19:30 ` 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
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-14 18:46 ` Frederic Weisbecker
[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-21 22:05 ` Tejun Heo
2011-11-21 22:05 ` Tejun Heo
2011-11-21 22:05 ` Tejun Heo
2011-11-14 18:52 ` 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
2011-11-04 9:08 ` KAMEZAWA Hiroyuki
2011-11-04 9:08 ` KAMEZAWA Hiroyuki
2011-11-14 23:54 ` Frederic Weisbecker
[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-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
[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
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-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
[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-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
2011-11-15 0:51 ` Frederic Weisbecker
[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-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
2011-11-15 0:54 ` Frederic Weisbecker
[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-21 22:07 ` [PATCHSET] cgroup: stable threadgroup during attach & subsys methods consolidation Tejun Heo
2011-11-21 22:07 ` Tejun Heo
2011-11-22 2:27 ` Li Zefan
[not found] ` <20111121220719.GP25776-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-11-22 2:27 ` Li Zefan
2011-11-22 2:27 ` Li Zefan
[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 16:20 ` Tejun Heo
2011-11-24 22:51 ` Tejun Heo
2011-11-21 22:07 ` 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=20111202162753.GA19752@somewhere.redhat.com \
--to=fweisbec@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=containers@lists.linux-foundation.org \
--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 \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.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.