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(¤t->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(¤t->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(¤t->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(¤t->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(¤t->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(¤t->signal->threadgroup_fork_lock); +#endif cgroup_exit(p, cgroup_callbacks_done); delayacct_tsk_free(p); module_put(task_thread_info(p)->exec_domain->module);
next prev 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: linkBe 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.