From: Frederic Weisbecker <fweisbec-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org,
containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
oleg-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
rjw-KKrjLPT3xs0@public.gmane.org,
linux-pm-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
paul-inf54ven1CmVyaH7bEyXVA@public.gmane.org
Subject: Re: [PATCH 04/10] cgroup: always lock threadgroup during migration
Date: Mon, 14 Nov 2011 19:46:34 +0100 [thread overview]
Message-ID: <20111114184630.GE9446@somewhere> (raw)
In-Reply-To: <1320191193-8110-5-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
On Tue, Nov 01, 2011 at 04:46:27PM -0700, Tejun Heo wrote:
> Update cgroup to take advantage of the fack that threadgroup_lock()
> guarantees stable threadgroup.
>
> * Lock threadgroup even if the target is a single task. This
> guarantees that when the target tasks stay stable during migration
> regardless of the target type.
>
> * Remove PF_EXITING early exit optimization from attach_task_by_pid()
> and check it in cgroup_task_migrate() instead. The optimization was
> for rather cold path to begin with and PF_EXITING state can be
> trusted throughout migration by checking it after locking
> threadgroup.
>
> * Don't add PF_EXITING tasks to target task array in
> cgroup_attach_proc(). This ensures that task migration is performed
> only for live tasks.
>
> * Remove -ESRCH failure path from cgroup_task_migrate(). With the
> above changes, it's guaranteed to be called only for live tasks.
>
> After the changes, only live tasks are migrated and they're guaranteed
> to stay alive until migration is complete. This removes problems
> caused by exec and exit racing against cgroup migration including
> symmetry among cgroup attach methods and different cgroup methods
> racing each other.
>
> v2: Oleg pointed out that one more PF_EXITING check can be removed
> from cgroup_attach_proc(). Removed.
>
> Signed-off-by: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
> Cc: Oleg Nesterov <oleg-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> Cc: Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
> Cc: Paul Menage <paul-inf54ven1CmVyaH7bEyXVA@public.gmane.org>
> Cc: Li Zefan <lizf-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
Reviewed-by: Frederic Weisbecker <fweisbec-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Just a little thing:
> ---
> kernel/cgroup.c | 51 +++++++++++++++++++++++----------------------------
> 1 files changed, 23 insertions(+), 28 deletions(-)
>
> diff --git a/kernel/cgroup.c b/kernel/cgroup.c
> index f0e099f..83e10f9 100644
> --- a/kernel/cgroup.c
> +++ b/kernel/cgroup.c
> @@ -1762,7 +1762,7 @@ EXPORT_SYMBOL_GPL(cgroup_path);
> *
> * 'guarantee' is set if the caller promises that a new css_set for the task
> * will already exist. If not set, this function might sleep, and can fail with
> - * -ENOMEM. Otherwise, it can only fail with -ESRCH.
> + * -ENOMEM. Must be called with cgroup_mutex and threadgroup locked.
> */
> static int cgroup_task_migrate(struct cgroup *cgrp, struct cgroup *oldcgrp,
> struct task_struct *tsk, bool guarantee)
> @@ -1800,13 +1800,9 @@ static int cgroup_task_migrate(struct cgroup *cgrp, struct cgroup *oldcgrp,
> }
> put_css_set(oldcg);
>
> - /* if PF_EXITING is set, the tsk->cgroups pointer is no longer safe. */
> + /* @tsk can't exit as its threadgroup is locked */
> task_lock(tsk);
> - if (tsk->flags & PF_EXITING) {
> - task_unlock(tsk);
> - put_css_set(newcg);
> - return -ESRCH;
> - }
> + WARN_ON_ONCE(tsk->flags & PF_EXITING);
I have the feeling the task_lock is now useless given that we are synchronized
against cgroup_exit() with the threadgroup_lock.
It's probably also useless in cgroup_exit(). But that's something for a further
patch...
Thanks.
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,
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 04/10] cgroup: always lock threadgroup during migration
Date: Mon, 14 Nov 2011 19:46:34 +0100 [thread overview]
Message-ID: <20111114184630.GE9446@somewhere> (raw)
In-Reply-To: <1320191193-8110-5-git-send-email-tj@kernel.org>
On Tue, Nov 01, 2011 at 04:46:27PM -0700, Tejun Heo wrote:
> Update cgroup to take advantage of the fack that threadgroup_lock()
> guarantees stable threadgroup.
>
> * Lock threadgroup even if the target is a single task. This
> guarantees that when the target tasks stay stable during migration
> regardless of the target type.
>
> * Remove PF_EXITING early exit optimization from attach_task_by_pid()
> and check it in cgroup_task_migrate() instead. The optimization was
> for rather cold path to begin with and PF_EXITING state can be
> trusted throughout migration by checking it after locking
> threadgroup.
>
> * Don't add PF_EXITING tasks to target task array in
> cgroup_attach_proc(). This ensures that task migration is performed
> only for live tasks.
>
> * Remove -ESRCH failure path from cgroup_task_migrate(). With the
> above changes, it's guaranteed to be called only for live tasks.
>
> After the changes, only live tasks are migrated and they're guaranteed
> to stay alive until migration is complete. This removes problems
> caused by exec and exit racing against cgroup migration including
> symmetry among cgroup attach methods and different cgroup methods
> racing each other.
>
> v2: Oleg pointed out that one more PF_EXITING check can be removed
> from cgroup_attach_proc(). Removed.
>
> Signed-off-by: Tejun Heo <tj@kernel.org>
> Cc: Oleg Nesterov <oleg@redhat.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Paul Menage <paul@paulmenage.org>
> Cc: Li Zefan <lizf@cn.fujitsu.com>
Reviewed-by: Frederic Weisbecker <fweisbec@gmail.com>
Just a little thing:
> ---
> kernel/cgroup.c | 51 +++++++++++++++++++++++----------------------------
> 1 files changed, 23 insertions(+), 28 deletions(-)
>
> diff --git a/kernel/cgroup.c b/kernel/cgroup.c
> index f0e099f..83e10f9 100644
> --- a/kernel/cgroup.c
> +++ b/kernel/cgroup.c
> @@ -1762,7 +1762,7 @@ EXPORT_SYMBOL_GPL(cgroup_path);
> *
> * 'guarantee' is set if the caller promises that a new css_set for the task
> * will already exist. If not set, this function might sleep, and can fail with
> - * -ENOMEM. Otherwise, it can only fail with -ESRCH.
> + * -ENOMEM. Must be called with cgroup_mutex and threadgroup locked.
> */
> static int cgroup_task_migrate(struct cgroup *cgrp, struct cgroup *oldcgrp,
> struct task_struct *tsk, bool guarantee)
> @@ -1800,13 +1800,9 @@ static int cgroup_task_migrate(struct cgroup *cgrp, struct cgroup *oldcgrp,
> }
> put_css_set(oldcg);
>
> - /* if PF_EXITING is set, the tsk->cgroups pointer is no longer safe. */
> + /* @tsk can't exit as its threadgroup is locked */
> task_lock(tsk);
> - if (tsk->flags & PF_EXITING) {
> - task_unlock(tsk);
> - put_css_set(newcg);
> - return -ESRCH;
> - }
> + WARN_ON_ONCE(tsk->flags & PF_EXITING);
I have the feeling the task_lock is now useless given that we are synchronized
against cgroup_exit() with the threadgroup_lock.
It's probably also useless in cgroup_exit(). But that's something for a further
patch...
Thanks.
next prev parent reply other threads:[~2011-11-14 18:46 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
[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
[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
2011-11-04 15:16 ` Tejun Heo
2011-11-04 15:16 ` Tejun Heo
[not found] ` <20111104174032.e0c4fc11.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
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
[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-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
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-01 23:46 ` [PATCH 03/10] threadgroup: extend threadgroup_lock() to cover exit and exec Tejun Heo
2011-11-01 23:46 ` 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
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 21:58 ` Tejun Heo
2011-11-21 21:58 ` Tejun Heo
[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
2011-11-24 21:22 ` Tejun Heo
2011-11-23 14:02 ` Frederic Weisbecker
2011-11-21 21:58 ` 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
[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] ` <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 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 [this message]
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-01 23:46 ` [PATCH 05/10] cgroup: subsys->attach_task() should be called after migration 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 ` 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
[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-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=20111114184630.GE9446@somewhere \
--to=fweisbec-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-pm-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=oleg-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=paul-inf54ven1CmVyaH7bEyXVA@public.gmane.org \
--cc=rjw-KKrjLPT3xs0@public.gmane.org \
--cc=tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.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.