rcu: limit rcu_node leaf-level fanout
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 15 Dec 2010 00:07:52 +0000 (16:07 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 17 Dec 2010 20:34:20 +0000 (12:34 -0800)
Some recent benchmarks have indicated possible lock contention on the
leaf-level rcu_node locks.  This commit therefore limits the number of
CPUs per leaf-level rcu_node structure to 16, in other words, there
can be at most 16 rcu_data structures fanning into a given rcu_node
structure.  Prior to this, the limit was 32 on 32-bit systems and 64 on
64-bit systems.

Note that the fanout of non-leaf rcu_node structures is unchanged.  The
organization of accesses to the rcu_node tree is such that references
to non-leaf rcu_node structures are much less frequent than to the
leaf structures.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcutree.c
kernel/rcutree.h

Simple merge
Simple merge