• Andrew Morton's avatar
    [PATCH] sched: fix setup races · 80b19256
    Andrew Morton authored
    From: Nick Piggin <nickpiggin@yahoo.com.au>
    
    De-racify the sched domain setup code.  This involves creating a dummy
    "init" domain during sched_init (which is called early).
    
    When topology information becomes available, the sched domains are then
    built and attached.  The attach mechanism is asynchronous and uses the
    migration threads, which perform the switch with interrupts off.  This is a
    quiescent state, so domains can still be lockless on the read side.  It
    also allows us to change the domains at runtime without much more work. 
    This is something SGI is interested in to elegantly do soft partitioning of
    their systems without having to use hard cpu affinities (which cause
    balancing problems of their own).
    
    The current setup code also has a race somewhere because it is unable to
    boot on a 384 CPU system.
    
    
    
    From: Anton Blanchard <anton@samba.org>
    
       This is basically a mindless ppc64 merge of the x86 changes to sched
       domain init code.
    
       Actually if I produce a sibling_map[] then the x86 code and the ppc64
       will be identical.  Maybe we can merge it.
    80b19256
sched.c 92.4 KB