aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/timers/NO_HZ.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/timers/NO_HZ.txt')
-rw-r--r--Documentation/timers/NO_HZ.txt44
1 files changed, 34 insertions, 10 deletions
diff --git a/Documentation/timers/NO_HZ.txt b/Documentation/timers/NO_HZ.txt
index 88697584242b..cca122f25120 100644
--- a/Documentation/timers/NO_HZ.txt
+++ b/Documentation/timers/NO_HZ.txt
@@ -24,8 +24,8 @@ There are three main ways of managing scheduling-clock interrupts
24 workloads, you will normally -not- want this option. 24 workloads, you will normally -not- want this option.
25 25
26These three cases are described in the following three sections, followed 26These three cases are described in the following three sections, followed
27by a third section on RCU-specific considerations and a fourth and final 27by a third section on RCU-specific considerations, a fourth section
28section listing known issues. 28discussing testing, and a fifth and final section listing known issues.
29 29
30 30
31NEVER OMIT SCHEDULING-CLOCK TICKS 31NEVER OMIT SCHEDULING-CLOCK TICKS
@@ -121,14 +121,15 @@ boot parameter specifies the adaptive-ticks CPUs. For example,
121"nohz_full=1,6-8" says that CPUs 1, 6, 7, and 8 are to be adaptive-ticks 121"nohz_full=1,6-8" says that CPUs 1, 6, 7, and 8 are to be adaptive-ticks
122CPUs. Note that you are prohibited from marking all of the CPUs as 122CPUs. Note that you are prohibited from marking all of the CPUs as
123adaptive-tick CPUs: At least one non-adaptive-tick CPU must remain 123adaptive-tick CPUs: At least one non-adaptive-tick CPU must remain
124online to handle timekeeping tasks in order to ensure that system calls 124online to handle timekeeping tasks in order to ensure that system
125like gettimeofday() returns accurate values on adaptive-tick CPUs. 125calls like gettimeofday() returns accurate values on adaptive-tick CPUs.
126(This is not an issue for CONFIG_NO_HZ_IDLE=y because there are no 126(This is not an issue for CONFIG_NO_HZ_IDLE=y because there are no running
127running user processes to observe slight drifts in clock rate.) 127user processes to observe slight drifts in clock rate.) Therefore, the
128Therefore, the boot CPU is prohibited from entering adaptive-ticks 128boot CPU is prohibited from entering adaptive-ticks mode. Specifying a
129mode. Specifying a "nohz_full=" mask that includes the boot CPU will 129"nohz_full=" mask that includes the boot CPU will result in a boot-time
130result in a boot-time error message, and the boot CPU will be removed 130error message, and the boot CPU will be removed from the mask. Note that
131from the mask. 131this means that your system must have at least two CPUs in order for
132CONFIG_NO_HZ_FULL=y to do anything for you.
132 133
133Alternatively, the CONFIG_NO_HZ_FULL_ALL=y Kconfig parameter specifies 134Alternatively, the CONFIG_NO_HZ_FULL_ALL=y Kconfig parameter specifies
134that all CPUs other than the boot CPU are adaptive-ticks CPUs. This 135that all CPUs other than the boot CPU are adaptive-ticks CPUs. This
@@ -232,6 +233,29 @@ scheduler will decide where to run them, which might or might not be
232where you want them to run. 233where you want them to run.
233 234
234 235
236TESTING
237
238So you enable all the OS-jitter features described in this document,
239but do not see any change in your workload's behavior. Is this because
240your workload isn't affected that much by OS jitter, or is it because
241something else is in the way? This section helps answer this question
242by providing a simple OS-jitter test suite, which is available on branch
243master of the following git archive:
244
245git://git.kernel.org/pub/scm/linux/kernel/git/frederic/dynticks-testing.git
246
247Clone this archive and follow the instructions in the README file.
248This test procedure will produce a trace that will allow you to evaluate
249whether or not you have succeeded in removing OS jitter from your system.
250If this trace shows that you have removed OS jitter as much as is
251possible, then you can conclude that your workload is not all that
252sensitive to OS jitter.
253
254Note: this test requires that your system have at least two CPUs.
255We do not currently have a good way to remove OS jitter from single-CPU
256systems.
257
258
235KNOWN ISSUES 259KNOWN ISSUES
236 260
237o Dyntick-idle slows transitions to and from idle slightly. 261o Dyntick-idle slows transitions to and from idle slightly.