mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	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>
This commit is contained in:
		
							parent
							
								
									28ced795cb
								
							
						
					
					
						commit
						11bbb235c2
					
				
					 1 changed files with 1 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -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);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue