rcu: Fix full dynticks' dependency on wide RCU nocb mode
Frederic Weisbecker [Thu, 2 May 2013 23:28:12 +0000 (01:28 +0200)]
Commit 0637e029392386e6996f5d6574aadccee8315efa
("nohz: Select wide RCU nocb for full dynticks") intended
to force CONFIG_RCU_NOCB_CPU_ALL=y when full dynticks is
enabled.

However this option is part of a choice menu and Kconfig's
"select" instruction has no effect on such targets.

Fix this by using reverse dependencies on the targets we
don't want instead.

Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Hakan Akkan <hakanakkan@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Kevin Hilman <khilman@linaro.org>
Cc: Li Zhong <zhong@linux.vnet.ibm.com>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>

init/Kconfig
kernel/time/Kconfig

index 66f67af..b3fdf9a 100644 (file)
@@ -687,7 +687,7 @@ choice
 
 config RCU_NOCB_CPU_NONE
        bool "No build_forced no-CBs CPUs"
-       depends on RCU_NOCB_CPU
+       depends on RCU_NOCB_CPU && !NO_HZ_FULL
        help
          This option does not force any of the CPUs to be no-CBs CPUs.
          Only CPUs designated by the rcu_nocbs= boot parameter will be
@@ -695,7 +695,7 @@ config RCU_NOCB_CPU_NONE
 
 config RCU_NOCB_CPU_ZERO
        bool "CPU 0 is a build_forced no-CBs CPU"
-       depends on RCU_NOCB_CPU
+       depends on RCU_NOCB_CPU && !NO_HZ_FULL
        help
          This option forces CPU 0 to be a no-CBs CPU.  Additional CPUs
          may be designated as no-CBs CPUs using the rcu_nocbs= boot
index a2ddd65..e4c07b0 100644 (file)
@@ -109,7 +109,6 @@ config NO_HZ_FULL
        select NO_HZ_COMMON
        select RCU_USER_QS
        select RCU_NOCB_CPU
-       select RCU_NOCB_CPU_ALL
        select VIRT_CPU_ACCOUNTING_GEN
        select CONTEXT_TRACKING_FORCE
        select IRQ_WORK