diff options
author | Ben Blum <bblum@andrew.cmu.edu> | 2011-05-26 19:25:20 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-26 20:12:34 -0400 |
commit | 74a1166dfe1135dcc168d35fa5261aa7e087011b (patch) | |
tree | a7add70f0344e2352b8d0d6beb10aef85c6585f7 /Documentation | |
parent | f780bdb7c1c73009cb57adcf99ef50027d80bf3c (diff) |
cgroups: make procs file writable
Make procs file writable to move all threads by tgid at once.
Add functionality that enables users to move all threads in a threadgroup
at once to a cgroup by writing the tgid to the 'cgroup.procs' file. This
current implementation makes use of a per-threadgroup rwsem that's taken
for reading in the fork() path to prevent newly forking threads within the
threadgroup from "escaping" while the move is in progress.
Signed-off-by: Ben Blum <bblum@andrew.cmu.edu>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Cc: Matt Helsley <matthltc@us.ibm.com>
Reviewed-by: Paul Menage <menage@google.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/cgroups/cgroups.txt | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Documentation/cgroups/cgroups.txt b/Documentation/cgroups/cgroups.txt index b3bd3bdbe202..8c4f3466c894 100644 --- a/Documentation/cgroups/cgroups.txt +++ b/Documentation/cgroups/cgroups.txt | |||
@@ -236,7 +236,8 @@ containing the following files describing that cgroup: | |||
236 | - cgroup.procs: list of tgids in the cgroup. This list is not | 236 | - cgroup.procs: list of tgids in the cgroup. This list is not |
237 | guaranteed to be sorted or free of duplicate tgids, and userspace | 237 | guaranteed to be sorted or free of duplicate tgids, and userspace |
238 | should sort/uniquify the list if this property is required. | 238 | should sort/uniquify the list if this property is required. |
239 | This is a read-only file, for now. | 239 | Writing a thread group id into this file moves all threads in that |
240 | group into this cgroup. | ||
240 | - notify_on_release flag: run the release agent on exit? | 241 | - notify_on_release flag: run the release agent on exit? |
241 | - release_agent: the path to use for release notifications (this file | 242 | - release_agent: the path to use for release notifications (this file |
242 | exists in the top cgroup only) | 243 | exists in the top cgroup only) |
@@ -430,6 +431,12 @@ You can attach the current shell task by echoing 0: | |||
430 | 431 | ||
431 | # echo 0 > tasks | 432 | # echo 0 > tasks |
432 | 433 | ||
434 | You can use the cgroup.procs file instead of the tasks file to move all | ||
435 | threads in a threadgroup at once. Echoing the pid of any task in a | ||
436 | threadgroup to cgroup.procs causes all tasks in that threadgroup to be | ||
437 | be attached to the cgroup. Writing 0 to cgroup.procs moves all tasks | ||
438 | in the writing task's threadgroup. | ||
439 | |||
433 | Note: Since every task is always a member of exactly one cgroup in each | 440 | Note: Since every task is always a member of exactly one cgroup in each |
434 | mounted hierarchy, to remove a task from its current cgroup you must | 441 | mounted hierarchy, to remove a task from its current cgroup you must |
435 | move it into a new cgroup (possibly the root cgroup) by writing to the | 442 | move it into a new cgroup (possibly the root cgroup) by writing to the |