diff options
author | Ingo Molnar <mingo@kernel.org> | 2013-09-03 01:41:11 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-09-03 01:41:11 -0400 |
commit | 7d992feb7694a21ee81f22894b455dadd5d1c110 (patch) | |
tree | d0f0961186b1c31c536a26a7f986ad7ca677453b /kernel/time | |
parent | 6e4664525b1db28f8c4e1130957f70a94c19213e (diff) | |
parent | 25f27ce4a6a4995c8bdd69b4b2180465ed5ad2b8 (diff) |
Merge branch 'rcu/next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
Pull RCU updates from Paul E. McKenney:
"
* Update RCU documentation. These were posted to LKML at
https://lkml.org/lkml/2013/8/19/611.
* Miscellaneous fixes. These were posted to LKML at
https://lkml.org/lkml/2013/8/19/619.
* Full-system idle detection. This is for use by Frederic
Weisbecker's adaptive-ticks mechanism. Its purpose is
to allow the timekeeping CPU to shut off its tick when
all other CPUs are idle. These were posted to LKML at
https://lkml.org/lkml/2013/8/19/648.
* Improve rcutorture test coverage. These were posted to LKML at
https://lkml.org/lkml/2013/8/19/675.
"
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/time')
-rw-r--r-- | kernel/time/Kconfig | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig index 70f27e89012b..3381f098070f 100644 --- a/kernel/time/Kconfig +++ b/kernel/time/Kconfig | |||
@@ -134,6 +134,56 @@ 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 | |||
160 | config NO_HZ_FULL_SYSIDLE_SMALL | ||
161 | int "Number of CPUs above which large-system approach is used" | ||
162 | depends on NO_HZ_FULL_SYSIDLE | ||
163 | range 1 NR_CPUS | ||
164 | default 8 | ||
165 | help | ||
166 | The full-system idle detection mechanism takes a lazy approach | ||
167 | on large systems, as is required to attain decent scalability. | ||
168 | However, on smaller systems, scalability is not anywhere near as | ||
169 | large a concern as is energy efficiency. The sysidle subsystem | ||
170 | therefore uses a fast but non-scalable algorithm for small | ||
171 | systems and a lazier but scalable algorithm for large systems. | ||
172 | This Kconfig parameter defines the number of CPUs in the largest | ||
173 | system that will be considered to be "small". | ||
174 | |||
175 | The default value will be fine in most cases. Battery-powered | ||
176 | systems that (1) enable NO_HZ_FULL_SYSIDLE, (2) have larger | ||
177 | numbers of CPUs, and (3) are suffering from battery-lifetime | ||
178 | problems due to long sysidle latencies might wish to experiment | ||
179 | with larger values for this Kconfig parameter. On the other | ||
180 | hand, they might be even better served by disabling NO_HZ_FULL | ||
181 | entirely, given that NO_HZ_FULL is intended for HPC and | ||
182 | real-time workloads that at present do not tend to be run on | ||
183 | battery-powered systems. | ||
184 | |||
185 | Take the default if you are unsure. | ||
186 | |||
137 | config NO_HZ | 187 | config NO_HZ |
138 | bool "Old Idle dynticks config" | 188 | bool "Old Idle dynticks config" |
139 | depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS | 189 | depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS |