rcu: Eliminate panic when silly boot-time fanout specified
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 31 Jul 2015 15:28:35 +0000 (08:28 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 6 Oct 2015 18:09:41 +0000 (11:09 -0700)
commitee968ac61d5a3440b931375d81113e0eedfcb249
treeac6f4bc6727b19506941412b6d09c5fe44ca8b3d
parentbb73c52bad3666997ed2ec83c0c80c3f8ef55008
rcu: Eliminate panic when silly boot-time fanout specified

This commit loosens rcutree.rcu_fanout_leaf range checks
and replaces a panic() with a fallback to compile-time values.
This fallback is accompanied by a WARN_ON(), and both occur when the
rcutree.rcu_fanout_leaf value is too small to accommodate the number of
CPUs.  For example, given the current four-level limit for the rcu_node
tree, a system with more than 16 CPUs built with CONFIG_FANOUT=2 must
have rcutree.rcu_fanout_leaf larger than 2.

Reported-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Documentation/kernel-parameters.txt
kernel/rcu/tree.c