nohz: Pack nohz Kconfig option in a menu of choices
Now the user has the choice between three implementations of the timer tick: * Static periodic tick * Idle dynticks * Full dynticks At least for now, these are mutually exclusive choices, so let's rely on the proper Kconfig feature to display these to the user. A new entry CONFIG_NO_HZ_IDLE is created and the old CONFIG_NO_HZ maps to it for config file backward compatibility. The old name was too general now that we have more granular dynticks implementations. While at it, add some explanation to help the user on his decision between the 3 entries. Reported-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Chris Metcalf <cmetcalf@tilera.com> Cc: Christoph Lameter <cl@linux.com> Cc: Geoff Levand <geoff@infradead.org> Cc: Gilad Ben Yossef <gilad@benyossef.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: Namhyung Kim <namhyung.kim@lge.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>
This commit is contained in:
parent
3451d0243c
commit
3ca277e419
1 changed files with 23 additions and 5 deletions
|
@ -75,17 +75,33 @@ config NO_HZ_COMMON
|
||||||
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
|
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
|
||||||
select TICK_ONESHOT
|
select TICK_ONESHOT
|
||||||
|
|
||||||
|
# Kept around for compatibility, maps to NO_HZ_IDLE
|
||||||
config NO_HZ
|
config NO_HZ
|
||||||
bool "Tickless System (Dynamic Ticks)"
|
bool
|
||||||
|
|
||||||
|
choice
|
||||||
|
prompt "Timer tick handling"
|
||||||
|
default NO_HZ_IDLE if NO_HZ
|
||||||
|
|
||||||
|
config PERIODIC_HZ
|
||||||
|
bool "Periodic timer ticks (constant rate, no dynticks)"
|
||||||
|
help
|
||||||
|
This option keeps the tick running periodically at a constant
|
||||||
|
rate, even when the CPU doesn't need it.
|
||||||
|
|
||||||
|
config NO_HZ_IDLE
|
||||||
|
bool "Idle dynticks system (tickless idle)"
|
||||||
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
|
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
|
||||||
select NO_HZ_COMMON
|
select NO_HZ_COMMON
|
||||||
help
|
help
|
||||||
This option enables a tickless system: timer interrupts will
|
This option enables a tickless idle system: timer interrupts
|
||||||
only trigger on an as-needed basis both when the system is
|
will only trigger on an as-needed basis when the system is idle.
|
||||||
busy and when the system is idle.
|
This is usually interesting for energy saving.
|
||||||
|
|
||||||
|
Most of the time you want to say Y here.
|
||||||
|
|
||||||
config NO_HZ_EXTENDED
|
config NO_HZ_EXTENDED
|
||||||
bool "Full dynticks system"
|
bool "Full dynticks system (tickless single task)"
|
||||||
# NO_HZ_COMMON dependency
|
# NO_HZ_COMMON dependency
|
||||||
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
|
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
|
||||||
# RCU_USER_QS
|
# RCU_USER_QS
|
||||||
|
@ -112,6 +128,8 @@ config NO_HZ_EXTENDED
|
||||||
|
|
||||||
Say N.
|
Say N.
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
config HIGH_RES_TIMERS
|
config HIGH_RES_TIMERS
|
||||||
bool "High Resolution Timer Support"
|
bool "High Resolution Timer Support"
|
||||||
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
|
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
|
||||||
|
|
Loading…
Reference in a new issue