All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Blum <bblum-OM76b2Iv3yLQjUSlxSEPGw@public.gmane.org>
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
Cc: bblum-OM76b2Iv3yLQjUSlxSEPGw@public.gmane.org,
	oleg-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org,
	menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
	akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org
Subject: [PATCH v4 1/2] cgroups: read-write lock CLONE_THREAD forking per threadgroup
Date: Fri, 30 Jul 2010 19:57:54 -0400	[thread overview]
Message-ID: <20100730235754.GB22644@ghc17.ghc.andrew.cmu.edu> (raw)
In-Reply-To: <20100730235649.GA22644-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>

[-- Attachment #1: cgroup-threadgroup-fork-lock.patch --]
[-- Type: text/plain, Size: 3737 bytes --]

Adds functionality to read/write lock CLONE_THREAD fork()ing per-threadgroup

From: Ben Blum <bblum-OM76b2Iv3yLQjUSlxSEPGw@public.gmane.org>

This patch adds an rwsem that lives in a threadgroup's signal_struct that's
taken for reading in the fork path, under CONFIG_CGROUPS. If another part of
the kernel later wants to use such a locking mechanism, the CONFIG_CGROUPS
ifdefs should be changed to a higher-up flag that CGROUPS and the other system
would both depend on.

This is a pre-patch for cgroups-procs-write.patch.

Signed-off-by: Ben Blum <bblum-OM76b2Iv3yLQjUSlxSEPGw@public.gmane.org>
---
 include/linux/init_task.h |    9 +++++++++
 include/linux/sched.h     |   10 ++++++++++
 kernel/fork.c             |   16 ++++++++++++++++
 3 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index 1f43fa5..ca46711 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -15,6 +15,14 @@
 extern struct files_struct init_files;
 extern struct fs_struct init_fs;
 
+#ifdef CONFIG_CGROUPS
+#define INIT_THREADGROUP_FORK_LOCK(sig)					\
+	.threadgroup_fork_lock =					\
+		__RWSEM_INITIALIZER(sig.threadgroup_fork_lock),
+#else
+#define INIT_THREADGROUP_FORK_LOCK(sig)
+#endif
+
 #define INIT_SIGNALS(sig) {						\
 	.nr_threads	= 1,						\
 	.wait_chldexit	= __WAIT_QUEUE_HEAD_INITIALIZER(sig.wait_chldexit),\
@@ -29,6 +37,7 @@ extern struct fs_struct init_fs;
 		.running = 0,						\
 		.lock = __SPIN_LOCK_UNLOCKED(sig.cputimer.lock),	\
 	},								\
+	INIT_THREADGROUP_FORK_LOCK(sig)					\
 }
 
 extern struct nsproxy init_nsproxy;
diff --git a/include/linux/sched.h b/include/linux/sched.h
index ae69716..82b0bcf 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -619,6 +619,16 @@ struct signal_struct {
 	unsigned audit_tty;
 	struct tty_audit_buf *tty_audit_buf;
 #endif
+#ifdef CONFIG_CGROUPS
+	/*
+	 * The threadgroup_fork_lock prevents threads from forking with
+	 * CLONE_THREAD while held for writing. Use this for fork-sensitive
+	 * threadgroup-wide operations. It's taken for reading in fork.c in
+	 * copy_process().
+	 * Currently only needed write-side by cgroups.
+	 */
+	struct rw_semaphore threadgroup_fork_lock;
+#endif
 
 	int oom_adj;	/* OOM kill score adjustment (bit shift) */
 };
diff --git a/kernel/fork.c b/kernel/fork.c
index a82a65c..a9bce89 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -898,6 +898,10 @@ static int copy_signal(unsigned long clone_flags, struct task_struct *tsk)
 
 	tty_audit_fork(sig);
 
+#ifdef CONFIG_CGROUPS
+	init_rwsem(&sig->threadgroup_fork_lock);
+#endif
+
 	sig->oom_adj = current->signal->oom_adj;
 
 	return 0;
@@ -1076,6 +1080,10 @@ static struct task_struct *copy_process(unsigned long clone_flags,
 	monotonic_to_bootbased(&p->real_start_time);
 	p->io_context = NULL;
 	p->audit_context = NULL;
+#ifdef CONFIG_CGROUPS
+	if (clone_flags & CLONE_THREAD)
+		down_read(&current->signal->threadgroup_fork_lock);
+#endif
 	cgroup_fork(p);
 #ifdef CONFIG_NUMA
 	p->mempolicy = mpol_dup(p->mempolicy);
@@ -1283,6 +1291,10 @@ static struct task_struct *copy_process(unsigned long clone_flags,
 	write_unlock_irq(&tasklist_lock);
 	proc_fork_connector(p);
 	cgroup_post_fork(p);
+#ifdef CONFIG_CGROUPS
+	if (clone_flags & CLONE_THREAD)
+		up_read(&current->signal->threadgroup_fork_lock);
+#endif
 	perf_event_fork(p);
 	return p;
 
@@ -1316,6 +1328,10 @@ bad_fork_cleanup_policy:
 	mpol_put(p->mempolicy);
 bad_fork_cleanup_cgroup:
 #endif
+#ifdef CONFIG_CGROUPS
+	if (clone_flags & CLONE_THREAD)
+		up_read(&current->signal->threadgroup_fork_lock);
+#endif
 	cgroup_exit(p, cgroup_callbacks_done);
 	delayacct_tsk_free(p);
 	module_put(task_thread_info(p)->exec_domain->module);

WARNING: multiple messages have this Message-ID (diff)
From: Ben Blum <bblum@andrew.cmu.edu>
To: linux-kernel@vger.kernel.org, containers@lists.linux-foundation.org
Cc: akpm@linux-foundation.org, bblum@andrew.cmu.edu,
	ebiederm@xmission.com, lizf@cn.fujitsu.com, matthltc@us.ibm.com,
	menage@google.com, oleg@redhat.com
Subject: [PATCH v4 1/2] cgroups: read-write lock CLONE_THREAD forking per threadgroup
Date: Fri, 30 Jul 2010 19:57:54 -0400	[thread overview]
Message-ID: <20100730235754.GB22644@ghc17.ghc.andrew.cmu.edu> (raw)
In-Reply-To: <20100730235649.GA22644@ghc17.ghc.andrew.cmu.edu>

[-- Attachment #1: cgroup-threadgroup-fork-lock.patch --]
[-- Type: text/plain, Size: 3687 bytes --]

Adds functionality to read/write lock CLONE_THREAD fork()ing per-threadgroup

From: Ben Blum <bblum@andrew.cmu.edu>

This patch adds an rwsem that lives in a threadgroup's signal_struct that's
taken for reading in the fork path, under CONFIG_CGROUPS. If another part of
the kernel later wants to use such a locking mechanism, the CONFIG_CGROUPS
ifdefs should be changed to a higher-up flag that CGROUPS and the other system
would both depend on.

This is a pre-patch for cgroups-procs-write.patch.

Signed-off-by: Ben Blum <bblum@andrew.cmu.edu>
---
 include/linux/init_task.h |    9 +++++++++
 include/linux/sched.h     |   10 ++++++++++
 kernel/fork.c             |   16 ++++++++++++++++
 3 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index 1f43fa5..ca46711 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -15,6 +15,14 @@
 extern struct files_struct init_files;
 extern struct fs_struct init_fs;
 
+#ifdef CONFIG_CGROUPS
+#define INIT_THREADGROUP_FORK_LOCK(sig)					\
+	.threadgroup_fork_lock =					\
+		__RWSEM_INITIALIZER(sig.threadgroup_fork_lock),
+#else
+#define INIT_THREADGROUP_FORK_LOCK(sig)
+#endif
+
 #define INIT_SIGNALS(sig) {						\
 	.nr_threads	= 1,						\
 	.wait_chldexit	= __WAIT_QUEUE_HEAD_INITIALIZER(sig.wait_chldexit),\
@@ -29,6 +37,7 @@ extern struct fs_struct init_fs;
 		.running = 0,						\
 		.lock = __SPIN_LOCK_UNLOCKED(sig.cputimer.lock),	\
 	},								\
+	INIT_THREADGROUP_FORK_LOCK(sig)					\
 }
 
 extern struct nsproxy init_nsproxy;
diff --git a/include/linux/sched.h b/include/linux/sched.h
index ae69716..82b0bcf 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -619,6 +619,16 @@ struct signal_struct {
 	unsigned audit_tty;
 	struct tty_audit_buf *tty_audit_buf;
 #endif
+#ifdef CONFIG_CGROUPS
+	/*
+	 * The threadgroup_fork_lock prevents threads from forking with
+	 * CLONE_THREAD while held for writing. Use this for fork-sensitive
+	 * threadgroup-wide operations. It's taken for reading in fork.c in
+	 * copy_process().
+	 * Currently only needed write-side by cgroups.
+	 */
+	struct rw_semaphore threadgroup_fork_lock;
+#endif
 
 	int oom_adj;	/* OOM kill score adjustment (bit shift) */
 };
diff --git a/kernel/fork.c b/kernel/fork.c
index a82a65c..a9bce89 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -898,6 +898,10 @@ static int copy_signal(unsigned long clone_flags, struct task_struct *tsk)
 
 	tty_audit_fork(sig);
 
+#ifdef CONFIG_CGROUPS
+	init_rwsem(&sig->threadgroup_fork_lock);
+#endif
+
 	sig->oom_adj = current->signal->oom_adj;
 
 	return 0;
@@ -1076,6 +1080,10 @@ static struct task_struct *copy_process(unsigned long clone_flags,
 	monotonic_to_bootbased(&p->real_start_time);
 	p->io_context = NULL;
 	p->audit_context = NULL;
+#ifdef CONFIG_CGROUPS
+	if (clone_flags & CLONE_THREAD)
+		down_read(&current->signal->threadgroup_fork_lock);
+#endif
 	cgroup_fork(p);
 #ifdef CONFIG_NUMA
 	p->mempolicy = mpol_dup(p->mempolicy);
@@ -1283,6 +1291,10 @@ static struct task_struct *copy_process(unsigned long clone_flags,
 	write_unlock_irq(&tasklist_lock);
 	proc_fork_connector(p);
 	cgroup_post_fork(p);
+#ifdef CONFIG_CGROUPS
+	if (clone_flags & CLONE_THREAD)
+		up_read(&current->signal->threadgroup_fork_lock);
+#endif
 	perf_event_fork(p);
 	return p;
 
@@ -1316,6 +1328,10 @@ bad_fork_cleanup_policy:
 	mpol_put(p->mempolicy);
 bad_fork_cleanup_cgroup:
 #endif
+#ifdef CONFIG_CGROUPS
+	if (clone_flags & CLONE_THREAD)
+		up_read(&current->signal->threadgroup_fork_lock);
+#endif
 	cgroup_exit(p, cgroup_callbacks_done);
 	delayacct_tsk_free(p);
 	module_put(task_thread_info(p)->exec_domain->module);

  parent reply	other threads:[~2010-07-30 23:57 UTC|newest]

Thread overview: 185+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-30 23:56 [PATCH v4 0/2] cgroups: implement moving a threadgroup's threads atomically with cgroup.procs Ben Blum
2010-07-30 23:59 ` [PATCH v4 2/2] cgroups: make procs file writable Ben Blum
2010-08-04  1:08   ` KAMEZAWA Hiroyuki
2010-08-04  4:28     ` Ben Blum
     [not found]     ` <20100804100811.199d73ba.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2010-08-04  4:28       ` Ben Blum
2010-08-04  4:30       ` Paul Menage
2010-08-04  4:30     ` Paul Menage
     [not found]       ` <AANLkTikMofFGHSwF2QrdcAsit+hU6ihndhK5cod8duwS-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-08-04  4:38         ` Ben Blum
2010-08-04  4:38           ` Ben Blum
2010-08-04  4:46           ` Paul Menage
     [not found]           ` <20100804043849.GC11950-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-08-04  4:46             ` Paul Menage
     [not found]   ` <20100730235902.GC22644-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-08-04  1:08     ` KAMEZAWA Hiroyuki
     [not found] ` <20100730235649.GA22644-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-07-30 23:57   ` Ben Blum [this message]
2010-07-30 23:57     ` [PATCH v4 1/2] cgroups: read-write lock CLONE_THREAD forking per threadgroup Ben Blum
2010-08-04  3:44     ` Paul Menage
     [not found]       ` <AANLkTikpNG2Y3S3AyxAbCkMynKu1u5yKPrw=bh+uy=9R-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-08-04  4:33         ` Ben Blum
2010-08-04  4:33           ` Ben Blum
     [not found]           ` <20100804043328.GB11950-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-08-04  4:34             ` Paul Menage
2010-08-04  4:34               ` Paul Menage
2010-08-06  6:02               ` Ben Blum
2010-08-06  7:08                 ` KAMEZAWA Hiroyuki
     [not found]                 ` <20100806060224.GA1351-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-08-06  7:08                   ` KAMEZAWA Hiroyuki
     [not found]               ` <AANLkTi=dhym3c+XJVjoObROcw=mz2Y+a2R5oMdePK3Ng-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-08-06  6:02                 ` Ben Blum
2010-08-04 16:34         ` Brian K. White
2010-08-04 16:34           ` Brian K. White
     [not found]     ` <20100730235754.GB22644-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-08-04  3:44       ` Paul Menage
2010-07-30 23:59   ` [PATCH v4 2/2] cgroups: make procs file writable Ben Blum
2010-08-03 19:58   ` [PATCH v4 0/2] cgroups: implement moving a threadgroup's threads atomically with cgroup.procs Andrew Morton
2010-08-11  5:46   ` [PATCH v5 0/3] " Ben Blum
2010-08-11  5:46     ` Ben Blum
2010-08-11  5:47     ` [PATCH v5 1/3] cgroups: read-write lock CLONE_THREAD forking per threadgroup Ben Blum
2010-08-23 23:35       ` Paul Menage
     [not found]       ` <20100811054711.GB8743-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-08-23 23:35         ` Paul Menage
     [not found]     ` <20100811054604.GA8743-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-08-11  5:47       ` Ben Blum
2010-08-11  5:48       ` [PATCH v5 2/3] cgroups: add can_attach callback for checking all threads in a group Ben Blum
2010-08-11  5:48         ` Ben Blum
2010-08-23 23:31         ` Paul Menage
     [not found]         ` <20100811054814.GC8743-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-08-23 23:31           ` Paul Menage
2010-08-11  5:48       ` [PATCH v5 3/3] cgroups: make procs file writable Ben Blum
2010-12-24  8:22       ` [PATCH v6 0/3] cgroups: implement moving a threadgroup's threads atomically with cgroup.procs Ben Blum
2010-12-24  8:22         ` Ben Blum
     [not found]         ` <20101224082226.GA13872-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-12-24  8:23           ` [PATCH v6 1/3] cgroups: read-write lock CLONE_THREAD forking per threadgroup Ben Blum
2010-12-24  8:23             ` Ben Blum
2010-12-24  8:24           ` [PATCH v6 2/3] cgroups: add can_attach callback for checking all threads in a group Ben Blum
2010-12-24  8:24             ` Ben Blum
2010-12-24  8:24           ` [PATCH v6 3/3] cgroups: make procs file writable Ben Blum
2010-12-24  8:24             ` Ben Blum
2011-01-12 23:26             ` Paul E. McKenney
     [not found]             ` <20101224082445.GD13872-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2011-01-12 23:26               ` Paul E. McKenney
2010-12-26 12:09           ` [PATCH v7 0/3] cgroups: implement moving a threadgroup's threads atomically with cgroup.procs Ben Blum
2010-12-26 12:09         ` Ben Blum
2010-12-26 12:09           ` [PATCH v7 1/3] cgroups: read-write lock CLONE_THREAD forking per threadgroup Ben Blum
2011-01-24  8:38             ` Paul Menage
2011-01-24 21:05             ` Andrew Morton
2011-02-04 21:25               ` Ben Blum
     [not found]                 ` <20110204212515.GA5916-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2011-02-04 21:36                   ` Andrew Morton
2011-02-04 21:36                 ` Andrew Morton
     [not found]                   ` <20110204133657.78aeebe3.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2011-02-04 21:43                     ` Ben Blum
2011-02-04 21:43                       ` Ben Blum
2011-02-14  5:31               ` Paul Menage
     [not found]               ` <20110124130529.903d9832.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2011-02-04 21:25                 ` Ben Blum
2011-02-14  5:31                 ` Paul Menage
     [not found]             ` <20101226120951.GB28529-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2011-01-24  8:38               ` Paul Menage
2011-01-24 21:05               ` Andrew Morton
2010-12-26 12:11           ` [PATCH v7 2/3] cgroups: add atomic-context per-thread subsystem callbacks Ben Blum
     [not found]             ` <20101226121100.GC28529-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2011-01-24  8:38               ` Paul Menage
2011-01-24  8:38             ` Paul Menage
2011-01-24 15:32               ` Ben Blum
     [not found]               ` <AANLkTimytfrDnr_5SzBUFQu0SaGdAWDC0p38hiFiHrtU-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-01-24 15:32                 ` Ben Blum
2010-12-26 12:12           ` [PATCH v7 3/3] cgroups: make procs file writable Ben Blum
     [not found]           ` <20101226120919.GA28529-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-12-26 12:09             ` [PATCH v7 1/3] cgroups: read-write lock CLONE_THREAD forking per threadgroup Ben Blum
2010-12-26 12:11             ` [PATCH v7 2/3] cgroups: add atomic-context per-thread subsystem callbacks Ben Blum
2010-12-26 12:12             ` [PATCH v7 3/3] cgroups: make procs file writable Ben Blum
2011-02-08  1:35             ` [PATCH v8 0/3] cgroups: implement moving a threadgroup's threads atomically with cgroup.procs Ben Blum
2011-02-08  1:35           ` Ben Blum
2011-02-08  1:37             ` [PATCH v8 1/3] cgroups: read-write lock CLONE_THREAD forking per threadgroup Ben Blum
2011-03-03 17:54               ` Paul Menage
     [not found]               ` <20110208013741.GD31569-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2011-03-03 17:54                 ` Paul Menage
     [not found]             ` <20110208013542.GC31569-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2011-02-08  1:37               ` Ben Blum
2011-02-08  1:39               ` [PATCH v8 2/3] cgroups: add per-thread subsystem callbacks Ben Blum
2011-02-08  1:39                 ` Ben Blum
2011-03-03 17:59                 ` Paul Menage
     [not found]                 ` <20110208013915.GE31569-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2011-03-03 17:59                   ` Paul Menage
2011-02-08  1:39               ` [PATCH v8 3/3] cgroups: make procs file writable Ben Blum
2011-02-08  1:39                 ` Ben Blum
2011-02-16 19:22                 ` [PATCH v8 4/3] cgroups: use flex_array in attach_proc Ben Blum
     [not found]                   ` <20110216192200.GA11980-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2011-03-03 17:48                     ` Paul Menage
2011-03-03 17:48                   ` Paul Menage
2011-03-22  5:15                     ` Ben Blum
     [not found]                       ` <20110322051553.GB11447-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2011-03-22  5:19                         ` [PATCH v8.5 " Ben Blum
2011-03-22  5:19                       ` Ben Blum
     [not found]                     ` <AANLkTinKTqBnjLKkv93UxyWoPL-2vyXP=LUvRz8JTC2K-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-22  5:15                       ` [PATCH v8 " Ben Blum
2011-03-03 18:38                 ` [PATCH v8 3/3] cgroups: make procs file writable Paul Menage
     [not found]                   ` <AANLkTinEnNsu8=PEktXL_EECzGYqsgdf+uogGxe7k4W+-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-10  6:18                     ` Ben Blum
2011-03-10  6:18                   ` Ben Blum
2011-03-10 20:01                     ` Paul Menage
     [not found]                       ` <AANLkTikkmfwk0nV0p=omz2ddrw+ZqWF1Lx3EfO6dTjEQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-15 21:13                         ` Ben Blum
2011-03-15 21:13                           ` Ben Blum
2011-03-18 16:54                           ` Paul Menage
     [not found]                             ` <AANLkTim4z_x_UQE__f5t73Dimja8PTTXTKKgj2phv6FY-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-22  5:18                               ` [PATCH v8.5 " Ben Blum
2011-03-22  5:18                                 ` Ben Blum
     [not found]                                 ` <20110322051841.GA12055-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2011-03-29 23:27                                   ` Paul Menage
2011-03-29 23:27                                 ` Paul Menage
2011-03-29 23:39                                   ` Andrew Morton
     [not found]                                   ` <BANLkTikMgd5HvMyC1BTGzAtj_=Jk=wZm+A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-29 23:39                                     ` Andrew Morton
     [not found]                           ` <20110315211353.GA9992-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2011-03-18 16:54                             ` [PATCH v8 " Paul Menage
2011-03-22  5:08                     ` Ben Blum
     [not found]                     ` <20110310061831.GA23736-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2011-03-10 20:01                       ` Paul Menage
2011-03-22  5:08                       ` Ben Blum
     [not found]                 ` <20110208013950.GF31569-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2011-02-16 19:22                   ` [PATCH v8 4/3] cgroups: use flex_array in attach_proc Ben Blum
2011-03-03 18:38                   ` [PATCH v8 3/3] cgroups: make procs file writable Paul Menage
2011-02-09 23:10               ` [PATCH v8 0/3] cgroups: implement moving a threadgroup's threads atomically with cgroup.procs Andrew Morton
2011-04-06 19:44               ` [PATCH v8.75 0/4] " Ben Blum
2011-02-09 23:10             ` [PATCH v8 0/3] " Andrew Morton
2011-02-10  1:02               ` KAMEZAWA Hiroyuki
     [not found]                 ` <20110210100210.adf09c49.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2011-02-10  1:36                   ` Ben Blum
2011-02-14  6:12                   ` Paul Menage
2011-02-10  1:36                 ` Ben Blum
2011-02-14  6:12                 ` Paul Menage
2011-02-14  6:12               ` Paul Menage
     [not found]               ` <20110209151046.89e03dcd.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2011-02-10  1:02                 ` KAMEZAWA Hiroyuki
2011-02-14  6:12                 ` Paul Menage
2011-04-06 19:44             ` [PATCH v8.75 0/4] " Ben Blum
2011-04-06 19:45               ` [PATCH v8.75 1/4] cgroups: read-write lock CLONE_THREAD forking per threadgroup Ben Blum
     [not found]               ` <20110406194420.GC10792-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2011-04-06 19:45                 ` Ben Blum
2011-04-06 19:46                 ` [PATCH v8.75 2/4] cgroups: add per-thread subsystem callbacks Ben Blum
2011-04-06 19:46                 ` [PATCH v8.75 3/4] cgroups: make procs file writable Ben Blum
2011-04-06 19:47                 ` [PATCH v8.75 4/4] cgroups: use flex_array in attach_proc Ben Blum
2011-04-12 23:25                 ` [PATCH v8.75 0/4] cgroups: implement moving a threadgroup's threads atomically with cgroup.procs Andrew Morton
2011-04-06 19:46               ` [PATCH v8.75 2/4] cgroups: add per-thread subsystem callbacks Ben Blum
2011-04-06 19:46               ` [PATCH v8.75 3/4] cgroups: make procs file writable Ben Blum
2011-04-06 19:47               ` [PATCH v8.75 4/4] cgroups: use flex_array in attach_proc Ben Blum
2011-04-12 23:25               ` [PATCH v8.75 0/4] cgroups: implement moving a threadgroup's threads atomically with cgroup.procs Andrew Morton
2011-04-12 23:59                 ` Ben Blum
2011-04-13  2:07                 ` Li Zefan
     [not found]                 ` <20110412162516.4120c441.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2011-04-12 23:59                   ` Ben Blum
2011-04-13  2:07                   ` Li Zefan
2010-08-11  5:48     ` [PATCH v5 3/3] cgroups: make procs file writable Ben Blum
     [not found]       ` <20100811054851.GD8743-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-08-24 18:08         ` Paul Menage
2010-08-24 18:08       ` Paul Menage
     [not found]         ` <AANLkTimRM8rDe+u7fTy853RK=1mnLJMK57Tci2OLPR7L-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-10-08 21:57           ` Paul Menage
     [not found]             ` <AANLkTim7HW0wNyqOPePFXmEMV8hx_fMKNMTAsSwkRzZX-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-12-16  6:34               ` Paul Menage
     [not found]                 ` <AANLkTin7aK5uEFi0U+iU_9=cbfRTHfDzKsbWupn73fSL-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-12-16  8:26                   ` Andrew Morton
     [not found]                     ` <20101216002603.6741874a.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2010-12-24  3:33                       ` Ben Blum
     [not found]                         ` <20101224033352.GA7804-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-12-24 10:49                           ` David Rientjes
     [not found]                             ` <alpine.DEB.2.00.1012240245040.775-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2010-12-24 11:45                               ` Ben Blum
     [not found]                                 ` <20101224114500.GA18036-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-12-24 11:53                                   ` Andrew Morton
     [not found]                                     ` <20101224035331.b907b410.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2010-12-24 12:08                                       ` Ben Blum
     [not found]                                         ` <20101224120853.GA18518-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-12-24 21:24                                           ` Ben Blum
     [not found]                                             ` <20101224212452.GA27275-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-12-24 21:34                                               ` David Rientjes
     [not found]                                                 ` <alpine.DEB.2.00.1012241333010.13509-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2010-12-24 23:09                                                   ` Ben Blum
     [not found]                                                     ` <20101224230901.GA30136-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-12-26 21:48                                                       ` David Rientjes
     [not found]                                                         ` <alpine.DEB.2.00.1012261345340.23173-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2010-12-27  0:12                                                           ` Ben Blum
     [not found]                                                             ` <20101227001233.GA10951-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-12-27 10:31                                                               ` David Rientjes
     [not found]                                                                 ` <alpine.DEB.2.00.1012270227010.3960-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2010-12-27 10:37                                                                   ` Ben Blum
     [not found]                                                                     ` <20101227103701.GC20986-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-12-27 10:53                                                                       ` David Rientjes
     [not found]                                                                         ` <alpine.DEB.2.00.1012270240400.3960-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2010-12-27 11:00                                                                           ` Ben Blum
     [not found]                                                                             ` <20101227110050.GF20986-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-12-27 11:03                                                                               ` David Rientjes
2010-12-29  1:39                                                                           ` Li Zefan
     [not found]                                                                             ` <4D1A913C.5080702-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2010-12-30  0:26                                                                               ` David Rientjes
     [not found]                                                                                 ` <alpine.DEB.2.00.1012291624210.6040-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2010-12-30  4:02                                                                                   ` Li Zefan
     [not found]                                                                                     ` <4D1C0464.5090801-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2010-12-30  4:24                                                                                       ` David Rientjes
     [not found]                                                                                         ` <alpine.DEB.2.00.1012292019540.27634-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2010-12-30  4:38                                                                                           ` Li Zefan
     [not found]                                                                                             ` <4D1C0CC6.4090107-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2010-12-30  5:49                                                                                               ` David Rientjes
     [not found]                                                                                                 ` <alpine.DEB.2.00.1012292149000.29486-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2010-12-30  6:12                                                                                                   ` Li Zefan
     [not found]                                                                                                     ` <4D1C22D2.9090007-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2010-12-30 18:25                                                                                                       ` David Rientjes
2010-12-24 21:32                                           ` David Rientjes
2010-12-25  2:55                           ` Ben Blum
     [not found]                             ` <20101225025508.GA649-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-12-27  0:53                               ` Daisuke Nishimura
     [not found]                                 ` <20101227095353.48d95687.nishimura-YQH0OdQVrdy45+QrQBaojngSJqDPrsil@public.gmane.org>
2010-12-27  1:15                                   ` KAMEZAWA Hiroyuki
2010-12-27  4:22                                   ` Ben Blum
     [not found]                                     ` <20101227042254.GA15417-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-12-27  7:00                                       ` KAMEZAWA Hiroyuki
     [not found]                                         ` <20101227160041.07bff52a.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2010-12-27  7:21                                           ` Ben Blum
     [not found]                                             ` <20101227072123.GA19652-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-12-27  7:42                                               ` KAMEZAWA Hiroyuki
     [not found]                                                 ` <20101227164207.b09318be.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2010-12-27  8:42                                                   ` Ben Blum
     [not found]                                                     ` <20101227084257.GA20986-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2010-12-27  9:18                                                       ` KAMEZAWA Hiroyuki
     [not found]                                                         ` <20101227181801.095e9a23.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2010-12-27 10:12                                                           ` Ben Blum
     [not found]                                                             ` <20101227101228.GB20986-dJQ2lsn+DImqwBT9kiuFm8WGCVk0P7UB@public.gmane.org>
2011-01-04  0:57                                                               ` KAMEZAWA Hiroyuki
2010-12-28  2:43                                       ` [RFC][BUGFIX] memcg: fix dead lock between cpuset and memcg (Re: [PATCH v5 3/3] cgroups: make procs file writable) Daisuke Nishimura
2010-12-25  4:24                           ` [PATCH v5 3/3] cgroups: make procs file writable Ben Blum
2010-08-03 19:58 ` [PATCH v4 0/2] cgroups: implement moving a threadgroup's threads atomically with cgroup.procs Andrew Morton
     [not found]   ` <20100803125827.0822e6ab.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2010-08-03 23:45     ` KAMEZAWA Hiroyuki
2010-08-04  2:00     ` Li Zefan
2010-08-04  2:00       ` Li Zefan
2010-08-03 23:45   ` KAMEZAWA Hiroyuki

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=20100730235754.GB22644@ghc17.ghc.andrew.cmu.edu \
    --to=bblum-om76b2iv3ylqjuslxsepgw@public.gmane.org \
    --cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
    --cc=oleg-H+wXaHxf7aLQT0dZR+AlfA@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.