aboutsummaryrefslogtreecommitdiffstats
path: root/init
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 /init
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 'init')
-rw-r--r--init/Kconfig6
1 files changed, 3 insertions, 3 deletions
diff --git a/init/Kconfig b/init/Kconfig
index edc8132584f1..8f97a7407714 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -306,7 +306,7 @@ choice
306# Kind of a stub config for the pure tick based cputime accounting 306# Kind of a stub config for the pure tick based cputime accounting
307config TICK_CPU_ACCOUNTING 307config TICK_CPU_ACCOUNTING
308 bool "Simple tick based cputime accounting" 308 bool "Simple tick based cputime accounting"
309 depends on !S390 309 depends on !S390 && !NO_HZ_FULL
310 help 310 help
311 This is the basic tick based cputime accounting that maintains 311 This is the basic tick based cputime accounting that maintains
312 statistics about user, system and idle time spent on per jiffies 312 statistics about user, system and idle time spent on per jiffies
@@ -316,7 +316,7 @@ config TICK_CPU_ACCOUNTING
316 316
317config VIRT_CPU_ACCOUNTING_NATIVE 317config VIRT_CPU_ACCOUNTING_NATIVE
318 bool "Deterministic task and CPU time accounting" 318 bool "Deterministic task and CPU time accounting"
319 depends on HAVE_VIRT_CPU_ACCOUNTING 319 depends on HAVE_VIRT_CPU_ACCOUNTING && !NO_HZ_FULL
320 select VIRT_CPU_ACCOUNTING 320 select VIRT_CPU_ACCOUNTING
321 help 321 help
322 Select this option to enable more accurate task and CPU time 322 Select this option to enable more accurate task and CPU time
@@ -346,7 +346,7 @@ config VIRT_CPU_ACCOUNTING_GEN
346 346
347config IRQ_TIME_ACCOUNTING 347config IRQ_TIME_ACCOUNTING
348 bool "Fine granularity task level IRQ time accounting" 348 bool "Fine granularity task level IRQ time accounting"
349 depends on HAVE_IRQ_TIME_ACCOUNTING 349 depends on HAVE_IRQ_TIME_ACCOUNTING && !NO_HZ_FULL
350 help 350 help
351 Select this option to enable fine granularity task irq time 351 Select this option to enable fine granularity task irq time
352 accounting. This is done by reading a timestamp on each 352 accounting. This is done by reading a timestamp on each