• Paul E. McKenney's avatar
    rcu: Make preemptable RCU scan all CPUs when summing RCU counters · 8064d549
    Paul E. McKenney authored
    This patch eliminates the counter-moving during CPU-offline
    notifiers, eliminating potential confusion if counters are
    scanned during counter-movement process.
    
    This confusion could result in premature ending of an RCU grace
    period. For example, if there are two tasks in RCU read-side
    critical sections (so that the sum of the counters is two), and
    the counter for the CPU going offline is -2, then moving the
    count to another CPU can result in the sum momentarily
    appearing to be zero.  Since there are no memory barriers in
    either case, many more such scenarios are possible.
    
    So just don't move the counts!!!
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: laijs@cn.fujitsu.com
    Cc: dipankar@in.ibm.com
    Cc: josht@linux.vnet.ibm.com
    Cc: akpm@linux-foundation.org
    Cc: mathieu.desnoyers@polymtl.ca
    Cc: dvhltc@us.ibm.com
    Cc: niv@us.ibm.com
    Cc: peterz@infradead.org
    Cc: rostedt@goodmis.org
    Cc: hugh.dickins@tiscali.co.uk
    Cc: benh@kernel.crashing.org
    LKML-Reference: <12503552312863-git-send-email->
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    8064d549
rcupreempt.c 40.7 KB