|
@@ -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.
|