diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2013-04-26 09:16:31 -0400 |
---|---|---|
committer | Frederic Weisbecker <fweisbec@gmail.com> | 2013-04-26 12:56:59 -0400 |
commit | c58b0df12a6b5c497637db0676effd00e1fbab13 (patch) | |
tree | fcceffefccc7c2e33d87406a5e4531c4c613a5ec /init | |
parent | 65e709dc0c25dbd563861924815e9a3a93878b75 (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/Kconfig | 6 |
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 |
307 | config TICK_CPU_ACCOUNTING | 307 | config 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 | ||
317 | config VIRT_CPU_ACCOUNTING_NATIVE | 317 | config 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 | ||
347 | config IRQ_TIME_ACCOUNTING | 347 | config 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 |