This patch removes the entwining of cpusets and hotplug code in the "Nomore Mr. Nice Guy" case of sched.c move_task_off_dead_cpu().

This is the same patch I sent last hour, with this patch comment cleanedup, and Documentation/cpusets.txt fixed as well.

Since the hotplug code is holding a spinlock at this point, we cannottake the cpuset semaphore, cpuset_sem, as would seem to be requiredeither to update the tasks cpuset, or to scan up the nested cpusetchain, looking for the nearest cpuset ancestor that still has some CPUsthat are online. So we just punt and blast the tasks cpus_allowed withall bits allowed.

This reverts these lines of code to what they were before the cpusetpatch. And it updates the cpuset Doc file, to match. This patch isuntested.

The one known alternative to this that seems to work came from DinakarGuniguntala, and required the hotplug code to take the cpuset_semsemaphore much earlier in its processing. So far as we know, theincreased locking entanglement between cpusets and hot plug of thisalternative approach is not worth doing in this case.

Signed-off-by: Paul Jackson <pj@sgi.com>

diff -Naurp 2.6.12-rc1-mm4.orig/Documentation/cpusets.txt 2.6.12-rc1-mm4/Documentation/cpusets.txt--- 2.6.12-rc1-mm4.orig/Documentation/cpusets.txt 2005-05-14 10:20:27.000000000 -0700+++ 2.6.12-rc1-mm4/Documentation/cpusets.txt 2005-05-14 10:24:13.000000000 -0700@@ -252,8 +252,7 @@ in a tasks processor placement. There is an exception to the above. If hotplug funtionality 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 with the online CPUs of the-nearest parent cpuset that still has some CPUs online. When memory+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 taskdiff -Naurp 2.6.12-rc1-mm4.orig/kernel/sched.c 2.6.12-rc1-mm4/kernel/sched.c--- 2.6.12-rc1-mm4.orig/kernel/sched.c 2005-05-13 18:39:54.000000000 -0700+++ 2.6.12-rc1-mm4/kernel/sched.c 2005-05-14 09:06:29.000000000 -0700@@ -4301,7 +4301,7 @@ static void move_task_off_dead_cpu(int d