Commit 3ca277e4 authored by Frederic Weisbecker's avatar Frederic Weisbecker

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: default avatarIngo Molnar <mingo@kernel.org>
Signed-off-by: default avatarFrederic 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>
parent 3451d024
...@@ -75,17 +75,33 @@ config NO_HZ_COMMON ...@@ -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 ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment