summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorLi Zefan <lizf@cn.fujitsu.com>2008-09-13 02:33:09 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-09-13 14:41:51 -0700
commit024994310e10cd7632f43b6873558820308c1af1 (patch)
tree8afc91968962ce0adc322e6763b99df3fc70a41e /Documentation
parent4e74339af6a59c061cf02f1ac497766bca1de19a (diff)
downloadlinux-3.10-024994310e10cd7632f43b6873558820308c1af1.tar.gz
linux-3.10-024994310e10cd7632f43b6873558820308c1af1.tar.bz2
linux-3.10-024994310e10cd7632f43b6873558820308c1af1.zip
cpuset: hotplug documentation fix
If all the cpus in a cpuset are offlined, the tasks in it will be moved to the nearest ancestor with non-empty cpus. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Acked-by: Paul Jackson <pj@sgi.com> Cc: Paul Menage <menage@google.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/cpusets.txt18
1 files changed, 10 insertions, 8 deletions
diff --git a/Documentation/cpusets.txt b/Documentation/cpusets.txt
index 1f5a924d1e5..47e568a9370 100644
--- a/Documentation/cpusets.txt
+++ b/Documentation/cpusets.txt
@@ -635,14 +635,16 @@ prior 'mems' setting, will not be moved.
There is an exception to the above. If hotplug functionality is used
to remove all the CPUs that are currently assigned to a cpuset,
-then the kernel will automatically update the cpus_allowed of all
-tasks attached to CPUs in that cpuset to allow all CPUs. When memory
-hotplug functionality for removing Memory Nodes is available, a
-similar exception is expected to apply there as well. In general,
-the kernel prefers to violate cpuset placement, over starving a task
-that has had all its allowed CPUs or Memory Nodes taken offline. User
-code should reconfigure cpusets to only refer to online CPUs and Memory
-Nodes when using hotplug to add or remove such resources.
+then all the tasks in that cpuset will be moved to the nearest ancestor
+with non-empty cpus. But the moving of some (or all) tasks might fail if
+cpuset is bound with another cgroup subsystem which has some restrictions
+on task attaching. In this failing case, those tasks will stay
+in the original cpuset, and the kernel will automatically update
+their cpus_allowed to allow all online CPUs. When memory hotplug
+functionality for removing Memory Nodes is available, a similar exception
+is expected to apply there as well. In general, the kernel prefers to
+violate cpuset placement, over starving a task that has had all
+its allowed CPUs or Memory Nodes taken offline.
There is a second exception to the above. GFP_ATOMIC requests are
kernel internal allocations that must be satisfied, immediately.