[PATCHSET cgroup] extend threadgroup locking
htejun at gmail.com
Sat Sep 10 20:35:36 PDT 2011
On Mon, Sep 05, 2011 at 03:01:16AM +0900, Tejun Heo wrote:
> cgroup currently only blocks new threads from joining the target
> threadgroup during migration, and on-going migration could race
> against exec and exit leading to interesting problems - the symmetry
> between various attach methods, task exiting during method execution,
> ->exit() racing against attach methods, migrating task switching basic
> properties during exec and so on.
> This patchset extends threadgroup locking such that it covers all
> operations which can alter the threadgroup - fork, exit and exec, and
> update cgroup to take advantage of it. rwsem read ops are added to
> exit path but exec is excluded by grabbing the existing
> cred_guard_mutex from threadgroup locking helper.
> This makes threadgroup locking complete and resolves cgroup issues
> stemming from the target taskset being unstable.
> This patchset is on top of the current pm-freezer + "freezer: fixes &
> simplifications" patchset and contains the following four patches.
> Patch list and diffstat follow.
> [PATCH 1/4] cgroup: change locking order in attach_task_by_pid()
> [PATCH 2/4] threadgroup: rename signal->threadgroup_fork_lock to
> [PATCH 3/4] threadgroup: extend threadgroup_lock() to cover exit and
> [PATCH 4/4] cgroup: always lock threadgroup during migration
> include/linux/init_task.h | 9 ++----
> include/linux/sched.h | 58 ++++++++++++++++++++++++++++---------------
> kernel/cgroup.c | 62 +++++++++++++++++++++-------------------------
> kernel/exit.c | 16 ++++++++---
> kernel/fork.c | 8 ++---
> 5 files changed, 88 insertions(+), 65 deletions(-)
Oops, forgot to cc Oleg on this series.
Oleg, this one definitely needs your review. The original thread is...
If you want the series in mbox format, please let me know.
More information about the Containers