• P
    [PATCH] cpusets+hotplug+preepmt broken · b39c4fab
    Paul Jackson 提交于
    This patch removes the entwining of cpusets and hotplug code in the "No
    more Mr.  Nice Guy" case of sched.c move_task_off_dead_cpu().
    
    Since the hotplug code is holding a spinlock at this point, we cannot take
    the cpuset semaphore, cpuset_sem, as would seem to be required either to
    update the tasks cpuset, or to scan up the nested cpuset chain, looking for
    the nearest cpuset ancestor that still has some CPUs that are online.  So
    we just punt and blast the tasks cpus_allowed with all bits allowed.
    
    This reverts these lines of code to what they were before the cpuset patch.
     And it updates the cpuset Doc file, to match.
    
    The one known alternative to this that seems to work came from Dinakar
    Guniguntala, and required the hotplug code to take the cpuset_sem semaphore
    much earlier in its processing.  So far as we know, the increased locking
    entanglement between cpusets and hot plug of this alternative approach is
    not worth doing in this case.
    Signed-off-by: NPaul Jackson <pj@sgi.com>
    Acked-by: NNathan Lynch <ntl@pobox.com>
    Acked-by: NDinakar Guniguntala <dino@in.ibm.com>
    Signed-off-by: NAndrew Morton <akpm@osdl.org>
    Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
    b39c4fab
sched.c 124.3 KB