aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2011-08-10 17:21:01 -0400
committerFrederic Weisbecker <fweisbec@gmail.com>2013-04-03 08:00:46 -0400
commit3ca277e41914ab344214ed50a41c14c48ae973f3 (patch)
treef8111dd8771c7be6d22e259f294b3117b6d1cb25 /kernel
parent3451d0243c3cdfd729b36f9684a14659d4895ca3 (diff)
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>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/time/Kconfig28
1 files changed, 23 insertions, 5 deletions
diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig
index c88fc43494c9..27cc404ea187 100644
--- a/kernel/time/Kconfig
+++ b/kernel/time/Kconfig
@@ -75,17 +75,33 @@ config NO_HZ_COMMON
75 depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS 75 depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
76 select TICK_ONESHOT 76 select TICK_ONESHOT
77 77
78# Kept around for compatibility, maps to NO_HZ_IDLE
78config NO_HZ 79config NO_HZ
79 bool "Tickless System (Dynamic Ticks)" 80 bool
81
82choice
83 prompt "Timer tick handling"
84 default NO_HZ_IDLE if NO_HZ
85
86config PERIODIC_HZ
87 bool "Periodic timer ticks (constant rate, no dynticks)"
88 help
89 This option keeps the tick running periodically at a constant
90 rate, even when the CPU doesn't need it.
91
92config NO_HZ_IDLE
93 bool "Idle dynticks system (tickless idle)"
80 depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS 94 depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
81 select NO_HZ_COMMON 95 select NO_HZ_COMMON
82 help 96 help
83 This option enables a tickless system: timer interrupts will 97 This option enables a tickless idle system: timer interrupts
84 only trigger on an as-needed basis both when the system is 98 will only trigger on an as-needed basis when the system is idle.
85 busy and when the system is idle. 99 This is usually interesting for energy saving.
100
101 Most of the time you want to say Y here.
86 102
87config NO_HZ_EXTENDED 103config NO_HZ_EXTENDED
88 bool "Full dynticks system" 104 bool "Full dynticks system (tickless single task)"
89 # NO_HZ_COMMON dependency 105 # NO_HZ_COMMON dependency
90 depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS 106 depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
91 # RCU_USER_QS 107 # RCU_USER_QS
@@ -112,6 +128,8 @@ config NO_HZ_EXTENDED
112 128
113 Say N. 129 Say N.
114 130
131endchoice
132
115config HIGH_RES_TIMERS 133config HIGH_RES_TIMERS
116 bool "High Resolution Timer Support" 134 bool "High Resolution Timer Support"
117 depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS 135 depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS