rcu: Use DEFINE_PER_CPU_SHARED_ALIGNED for rcu_data
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 4 Sep 2014 19:21:41 +0000 (12:21 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 4 Nov 2014 03:20:03 +0000 (19:20 -0800)
commit11bbb235c26f93b7c69e441452e44adbf6ed6996
treefbb0889e0a86daf78272f16487a7682fe9cc0117
parent28ced795cbb43f01146feb96d03a72facdee9911
rcu: Use DEFINE_PER_CPU_SHARED_ALIGNED for rcu_data

The rcu_data per-CPU variable has a number of fields that are atomically
manipulated, potentially by any CPU.  This situation can result in false
sharing with per-CPU variables that have the misfortune of being allocated
adjacent to rcu_data in memory.  This commit therefore changes the
DEFINE_PER_CPU() to DEFINE_PER_CPU_SHARED_ALIGNED() in order to avoid
this false sharing.

Reported-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Christoph Lameter <cl@linux.com>
Reviewed-by: Pranith Kumar <bobby.prani@gmail.com>
kernel/rcu/tree.c