mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 06:02:05 +00:00
nohz_full: Add testing information to documentation
This commit adds information about testing nohz_full, and also emphasizes the fact that you need a multi-CPU system to get any benefit from nohz_full. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Acked-by: Frederic Weisbecker <fweisbec@gmail.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
This commit is contained in:
parent
feed66ed26
commit
8bdf7a252b
@ -24,8 +24,8 @@ There are three main ways of managing scheduling-clock interrupts
|
|||||||
workloads, you will normally -not- want this option.
|
workloads, you will normally -not- want this option.
|
||||||
|
|
||||||
These three cases are described in the following three sections, followed
|
These three cases are described in the following three sections, followed
|
||||||
by a third section on RCU-specific considerations and a fourth and final
|
by a third section on RCU-specific considerations, a fourth section
|
||||||
section listing known issues.
|
discussing testing, and a fifth and final section listing known issues.
|
||||||
|
|
||||||
|
|
||||||
NEVER OMIT SCHEDULING-CLOCK TICKS
|
NEVER OMIT SCHEDULING-CLOCK TICKS
|
||||||
@ -121,14 +121,15 @@ boot parameter specifies the adaptive-ticks CPUs. For example,
|
|||||||
"nohz_full=1,6-8" says that CPUs 1, 6, 7, and 8 are to be adaptive-ticks
|
"nohz_full=1,6-8" says that CPUs 1, 6, 7, and 8 are to be adaptive-ticks
|
||||||
CPUs. Note that you are prohibited from marking all of the CPUs as
|
CPUs. Note that you are prohibited from marking all of the CPUs as
|
||||||
adaptive-tick CPUs: At least one non-adaptive-tick CPU must remain
|
adaptive-tick CPUs: At least one non-adaptive-tick CPU must remain
|
||||||
online to handle timekeeping tasks in order to ensure that system calls
|
online to handle timekeeping tasks in order to ensure that system
|
||||||
like gettimeofday() returns accurate values on adaptive-tick CPUs.
|
calls like gettimeofday() returns accurate values on adaptive-tick CPUs.
|
||||||
(This is not an issue for CONFIG_NO_HZ_IDLE=y because there are no
|
(This is not an issue for CONFIG_NO_HZ_IDLE=y because there are no running
|
||||||
running user processes to observe slight drifts in clock rate.)
|
user processes to observe slight drifts in clock rate.) Therefore, the
|
||||||
Therefore, the boot CPU is prohibited from entering adaptive-ticks
|
boot CPU is prohibited from entering adaptive-ticks mode. Specifying a
|
||||||
mode. Specifying a "nohz_full=" mask that includes the boot CPU will
|
"nohz_full=" mask that includes the boot CPU will result in a boot-time
|
||||||
result in a boot-time error message, and the boot CPU will be removed
|
error message, and the boot CPU will be removed from the mask. Note that
|
||||||
from the mask.
|
this means that your system must have at least two CPUs in order for
|
||||||
|
CONFIG_NO_HZ_FULL=y to do anything for you.
|
||||||
|
|
||||||
Alternatively, the CONFIG_NO_HZ_FULL_ALL=y Kconfig parameter specifies
|
Alternatively, the CONFIG_NO_HZ_FULL_ALL=y Kconfig parameter specifies
|
||||||
that all CPUs other than the boot CPU are adaptive-ticks CPUs. This
|
that 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
|
|||||||
where you want them to run.
|
where you want them to run.
|
||||||
|
|
||||||
|
|
||||||
|
TESTING
|
||||||
|
|
||||||
|
So you enable all the OS-jitter features described in this document,
|
||||||
|
but do not see any change in your workload's behavior. Is this because
|
||||||
|
your workload isn't affected that much by OS jitter, or is it because
|
||||||
|
something else is in the way? This section helps answer this question
|
||||||
|
by providing a simple OS-jitter test suite, which is available on branch
|
||||||
|
master of the following git archive:
|
||||||
|
|
||||||
|
git://git.kernel.org/pub/scm/linux/kernel/git/frederic/dynticks-testing.git
|
||||||
|
|
||||||
|
Clone this archive and follow the instructions in the README file.
|
||||||
|
This test procedure will produce a trace that will allow you to evaluate
|
||||||
|
whether or not you have succeeded in removing OS jitter from your system.
|
||||||
|
If this trace shows that you have removed OS jitter as much as is
|
||||||
|
possible, then you can conclude that your workload is not all that
|
||||||
|
sensitive to OS jitter.
|
||||||
|
|
||||||
|
Note: this test requires that your system have at least two CPUs.
|
||||||
|
We do not currently have a good way to remove OS jitter from single-CPU
|
||||||
|
systems.
|
||||||
|
|
||||||
|
|
||||||
KNOWN ISSUES
|
KNOWN ISSUES
|
||||||
|
|
||||||
o Dyntick-idle slows transitions to and from idle slightly.
|
o Dyntick-idle slows transitions to and from idle slightly.
|
||||||
|
Loading…
Reference in New Issue
Block a user