• Paul E. McKenney's avatar
    rcu: classic RCU locking and memory-barrier cleanups · 1f7b94cd
    Paul E. McKenney authored
    This patch simplifies the locking and memory-barrier usage in the Classic
    RCU grace-period-detection mechanism, incorporating Lai Jiangshan's
    feedback from the earlier version (http://lkml.org/lkml/2008/8/1/400
    and http://lkml.org/lkml/2008/8/3/43).  Passed 10 hours of
    rcutorture concurrent with CPUs being put online and taken offline on
    a 128-hardware-thread Power machine.  My apologies to whoever in the
    Eastern Hemisphere was planning to use this machine over the Western
    Hemisphere night, but it was sitting idle and...
    
    So this is ready for tip/core/rcu.
    
    This patch is in preparation for moving to a hierarchical
    algorithm to allow the very large SMP machines -- requested by some
    people at OLS, and there seem to have been a few recent patches in the
    4096-CPU direction as well.  The general idea is to move to a much more
    conservative concurrency design, then apply a hierarchy to reduce
    contention on the global lock by a few orders of magnitude (larger
    machines would see greater reductions).  The reason for taking a
    conservative approach is that this code isn't on any fast path.
    
    Prototype in progress.
    
    This patch is against the linux-tip git tree (tip/core/rcu).  If you
    wish to test this against 2.6.26, use the following set of patches:
    
    http://www.rdrop.com/users/paulmck/patches/2.6.26-ljsimp-1.patch
    http://www.rdrop.com/users/paulmck/patches/2.6.26-ljsimpfix-3.patch
    
    The first patch combines commits 5127bed5
    and 3cac97cb from Lai Jiangshan
    <laijs@cn.fujitsu.com>, and the second patch contains my changes.
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    1f7b94cd
rcuclassic.c 21 KB