rcu: Shrink RCU based on number of CPUs
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 6 Sep 2012 22:38:02 +0000 (15:38 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sun, 23 Sep 2012 14:41:56 +0000 (07:41 -0700)
commitb17c7035f37f47c7f7cb08a5555ab2aebfa31f91
tree995c37771f64470dda04e631a8223e74d6713b0a
parent4dbd6bb38dd1cbfa5cb21e56e51dffc74aa20038
rcu: Shrink RCU based on number of CPUs

Currently, rcu_init_geometry() only reshapes RCU's combining trees
if the leaf fanout is changed at boot time.  This means that by
default, kernels compiled with (say) NR_CPUS=4096 will keep oversized
data structures, even when running on systems with (say) four CPUs.

This commit therefore checks to see if the maximum number of CPUs on
the actual running system (nr_cpu_ids) differs from NR_CPUS, and if so
reshapes the combining trees accordingly.

Reported-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcutree.c