aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/time/Kconfig
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2013-04-26 09:16:31 -0400
committerFrederic Weisbecker <fweisbec@gmail.com>2013-04-26 12:56:59 -0400
commitc58b0df12a6b5c497637db0676effd00e1fbab13 (patch)
treefcceffefccc7c2e33d87406a5e4531c4c613a5ec /kernel/time/Kconfig
parent65e709dc0c25dbd563861924815e9a3a93878b75 (diff)
nohz: Select VIRT_CPU_ACCOUNTING_GEN from full dynticks config
Turn the full dynticks passive dependency on VIRT_CPU_ACCOUNTING_GEN to an active one. The full dynticks Kconfig is currently hidden behind the full dynticks cputime accounting, which is an awkward and counter-intuitive layout: the user first has to select the dynticks cputime accounting in order to make the full dynticks feature to be visible. We definetly want it the other way around. The usual way to perform this kind of active dependency is use "select" on the depended target. Now we can't use the Kconfig "select" instruction when the target is a "choice". So this patch inspires on how the RCU subsystem Kconfig interact with its dependencies on SMP and PREEMPT: we make sure that cputime accounting can't propose another option than VIRT_CPU_ACCOUNTING_GEN when NO_HZ_FULL is selected by using the right "depends on" instruction for each cputime accounting choices. v2: Keep full dynticks cputime accounting available even without full dynticks, as per Paul McKenney's suggestion. Reported-by: Ingo Molnar <mingo@kernel.org> 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 E. McKenney <paulmck@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>
Diffstat (limited to 'kernel/time/Kconfig')
-rw-r--r--kernel/time/Kconfig4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig
index 1ea2bba4a686..a2ddd650cb92 100644
--- a/kernel/time/Kconfig
+++ b/kernel/time/Kconfig
@@ -104,11 +104,13 @@ config NO_HZ_FULL
104 depends on SMP 104 depends on SMP
105 # RCU_USER_QS dependency 105 # RCU_USER_QS dependency
106 depends on HAVE_CONTEXT_TRACKING 106 depends on HAVE_CONTEXT_TRACKING
107 depends on VIRT_CPU_ACCOUNTING_GEN 107 # VIRT_CPU_ACCOUNTING_GEN dependency
108 depends on 64BIT
108 select NO_HZ_COMMON 109 select NO_HZ_COMMON
109 select RCU_USER_QS 110 select RCU_USER_QS
110 select RCU_NOCB_CPU 111 select RCU_NOCB_CPU
111 select RCU_NOCB_CPU_ALL 112 select RCU_NOCB_CPU_ALL
113 select VIRT_CPU_ACCOUNTING_GEN
112 select CONTEXT_TRACKING_FORCE 114 select CONTEXT_TRACKING_FORCE
113 select IRQ_WORK 115 select IRQ_WORK
114 help 116 help