• Paul Jackson's avatar
    [PATCH] cpusets+hotplug+preepmt broken · b39c4fab
    Paul Jackson authored
    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: default avatarPaul Jackson <pj@sgi.com>
    Acked-by: default avatarNathan Lynch <ntl@pobox.com>
    Acked-by: default avatarDinakar Guniguntala <dino@in.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    b39c4fab
sched.c 124 KB