diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2013-06-21 14:08:45 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2013-08-18 21:07:02 -0400 |
commit | b44379af1cf40050794832c38ea6a64e07eb5087 (patch) | |
tree | 2f7fb3764976a4a0e2d2cf7a7f814564361203a4 /kernel/time | |
parent | 8bdf7a252b6398dbd4beaa7a2ba0904cea0abd04 (diff) |
nohz_full: Add Kconfig parameter for scalable detection of all-idle state
At least one CPU must keep the scheduling-clock tick running for
timekeeping purposes whenever there is a non-idle CPU. However, with
the new nohz_full adaptive-idle machinery, it is difficult to distinguish
between all CPUs really being idle as opposed to all non-idle CPUs being
in adaptive-ticks mode. This commit therefore adds a Kconfig parameter
as a first step towards enabling a scalable detection of full-system
idle state.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
[ paulmck: Update help text per Frederic Weisbecker. ]
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'kernel/time')
-rw-r--r-- | kernel/time/Kconfig | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig index 70f27e89012b..c7d2fd67799e 100644 --- a/kernel/time/Kconfig +++ b/kernel/time/Kconfig | |||
@@ -134,6 +134,29 @@ config NO_HZ_FULL_ALL | |||
134 | Note the boot CPU will still be kept outside the range to | 134 | Note the boot CPU will still be kept outside the range to |
135 | handle the timekeeping duty. | 135 | handle the timekeeping duty. |
136 | 136 | ||
137 | config NO_HZ_FULL_SYSIDLE | ||
138 | bool "Detect full-system idle state for full dynticks system" | ||
139 | depends on NO_HZ_FULL | ||
140 | default n | ||
141 | help | ||
142 | At least one CPU must keep the scheduling-clock tick running for | ||
143 | timekeeping purposes whenever there is a non-idle CPU, where | ||
144 | "non-idle" also includes dynticks CPUs as long as they are | ||
145 | running non-idle tasks. Because the underlying adaptive-tick | ||
146 | support cannot distinguish between all CPUs being idle and | ||
147 | all CPUs each running a single task in dynticks mode, the | ||
148 | underlying support simply ensures that there is always a CPU | ||
149 | handling the scheduling-clock tick, whether or not all CPUs | ||
150 | are idle. This Kconfig option enables scalable detection of | ||
151 | the all-CPUs-idle state, thus allowing the scheduling-clock | ||
152 | tick to be disabled when all CPUs are idle. Note that scalable | ||
153 | detection of the all-CPUs-idle state means that larger systems | ||
154 | will be slower to declare the all-CPUs-idle state. | ||
155 | |||
156 | Say Y if you would like to help debug all-CPUs-idle detection. | ||
157 | |||
158 | Say N if you are unsure. | ||
159 | |||
137 | config NO_HZ | 160 | config NO_HZ |
138 | bool "Old Idle dynticks config" | 161 | bool "Old Idle dynticks config" |
139 | depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS | 162 | depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS |