rcu: Drive configuration directly from SMP and PREEMPT
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 8 Jun 2011 23:31:33 +0000 (16:31 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 29 Sep 2011 04:36:45 +0000 (21:36 -0700)
This commit eliminates the possibility of running TREE_PREEMPT_RCU
when SMP=n and of running TINY_RCU when PREEMPT=y.  People who really
want these combinations can hand-edit init/Kconfig, but eliminating
them as choices for production systems reduces the amount of testing
required.  It will also allow cutting out a few #ifdefs.

Note that running TREE_RCU and TINY_RCU on single-CPU systems using
SMP-built kernels is still supported.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

init/Kconfig

index d627783..dc7e27b 100644 (file)
@@ -391,7 +391,7 @@ config TREE_RCU
 
 config TREE_PREEMPT_RCU
        bool "Preemptible tree-based hierarchical RCU"
-       depends on PREEMPT
+       depends on PREEMPT && SMP
        help
          This option selects the RCU implementation that is
          designed for very large SMP systems with hundreds or
@@ -401,7 +401,7 @@ config TREE_PREEMPT_RCU
 
 config TINY_RCU
        bool "UP-only small-memory-footprint RCU"
-       depends on !SMP
+       depends on !PREEMPT && !SMP
        help
          This option selects the RCU implementation that is
          designed for UP systems from which real-time response
@@ -410,7 +410,7 @@ config TINY_RCU
 
 config TINY_PREEMPT_RCU
        bool "Preemptible UP-only small-memory-footprint RCU"
-       depends on !SMP && PREEMPT
+       depends on PREEMPT && !SMP
        help
          This option selects the RCU implementation that is designed
          for real-time UP systems.  This option greatly reduces the