Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 11bbb235 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

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: default avatarChristoph Lameter <cl@linux.com>
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: default avatarChristoph Lameter <cl@linux.com>
Reviewed-by: default avatarPranith Kumar <bobby.prani@gmail.com>
parent 28ced795
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -105,7 +105,7 @@ struct rcu_state sname##_state = { \
	.name = RCU_STATE_NAME(sname), \
	.abbr = sabbr, \
}; \
DEFINE_PER_CPU(struct rcu_data, sname##_data)
DEFINE_PER_CPU_SHARED_ALIGNED(struct rcu_data, sname##_data)

RCU_STATE_INITIALIZER(rcu_sched, 's', call_rcu_sched);
RCU_STATE_INITIALIZER(rcu_bh, 'b', call_rcu_bh);