mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-06 06:37:59 +00:00
rcu: Update stall-warning documentation
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
This commit is contained in:
parent
272b98c645
commit
64d3b7a1d5
1 changed files with 15 additions and 7 deletions
|
@ -12,12 +12,12 @@ CONFIG_RCU_CPU_STALL_TIMEOUT
|
||||||
This kernel configuration parameter defines the period of time
|
This kernel configuration parameter defines the period of time
|
||||||
that RCU will wait from the beginning of a grace period until it
|
that RCU will wait from the beginning of a grace period until it
|
||||||
issues an RCU CPU stall warning. This time period is normally
|
issues an RCU CPU stall warning. This time period is normally
|
||||||
sixty seconds.
|
21 seconds.
|
||||||
|
|
||||||
This configuration parameter may be changed at runtime via the
|
This configuration parameter may be changed at runtime via the
|
||||||
/sys/module/rcutree/parameters/rcu_cpu_stall_timeout, however
|
/sys/module/rcutree/parameters/rcu_cpu_stall_timeout, however
|
||||||
this parameter is checked only at the beginning of a cycle.
|
this parameter is checked only at the beginning of a cycle.
|
||||||
So if you are 30 seconds into a 70-second stall, setting this
|
So if you are 10 seconds into a 40-second stall, setting this
|
||||||
sysfs parameter to (say) five will shorten the timeout for the
|
sysfs parameter to (say) five will shorten the timeout for the
|
||||||
-next- stall, or the following warning for the current stall
|
-next- stall, or the following warning for the current stall
|
||||||
(assuming the stall lasts long enough). It will not affect the
|
(assuming the stall lasts long enough). It will not affect the
|
||||||
|
@ -32,7 +32,7 @@ CONFIG_RCU_CPU_STALL_VERBOSE
|
||||||
also dump the stacks of any tasks that are blocking the current
|
also dump the stacks of any tasks that are blocking the current
|
||||||
RCU-preempt grace period.
|
RCU-preempt grace period.
|
||||||
|
|
||||||
RCU_CPU_STALL_INFO
|
CONFIG_RCU_CPU_STALL_INFO
|
||||||
|
|
||||||
This kernel configuration parameter causes the stall warning to
|
This kernel configuration parameter causes the stall warning to
|
||||||
print out additional per-CPU diagnostic information, including
|
print out additional per-CPU diagnostic information, including
|
||||||
|
@ -43,7 +43,8 @@ RCU_STALL_DELAY_DELTA
|
||||||
Although the lockdep facility is extremely useful, it does add
|
Although the lockdep facility is extremely useful, it does add
|
||||||
some overhead. Therefore, under CONFIG_PROVE_RCU, the
|
some overhead. Therefore, under CONFIG_PROVE_RCU, the
|
||||||
RCU_STALL_DELAY_DELTA macro allows five extra seconds before
|
RCU_STALL_DELAY_DELTA macro allows five extra seconds before
|
||||||
giving an RCU CPU stall warning message.
|
giving an RCU CPU stall warning message. (This is a cpp
|
||||||
|
macro, not a kernel configuration parameter.)
|
||||||
|
|
||||||
RCU_STALL_RAT_DELAY
|
RCU_STALL_RAT_DELAY
|
||||||
|
|
||||||
|
@ -52,7 +53,8 @@ RCU_STALL_RAT_DELAY
|
||||||
However, if the offending CPU does not detect its own stall in
|
However, if the offending CPU does not detect its own stall in
|
||||||
the number of jiffies specified by RCU_STALL_RAT_DELAY, then
|
the number of jiffies specified by RCU_STALL_RAT_DELAY, then
|
||||||
some other CPU will complain. This delay is normally set to
|
some other CPU will complain. This delay is normally set to
|
||||||
two jiffies.
|
two jiffies. (This is a cpp macro, not a kernel configuration
|
||||||
|
parameter.)
|
||||||
|
|
||||||
When a CPU detects that it is stalling, it will print a message similar
|
When a CPU detects that it is stalling, it will print a message similar
|
||||||
to the following:
|
to the following:
|
||||||
|
@ -86,7 +88,12 @@ printing, there will be a spurious stall-warning message:
|
||||||
|
|
||||||
INFO: rcu_bh_state detected stalls on CPUs/tasks: { } (detected by 4, 2502 jiffies)
|
INFO: rcu_bh_state detected stalls on CPUs/tasks: { } (detected by 4, 2502 jiffies)
|
||||||
|
|
||||||
This is rare, but does happen from time to time in real life.
|
This is rare, but does happen from time to time in real life. It is also
|
||||||
|
possible for a zero-jiffy stall to be flagged in this case, depending
|
||||||
|
on how the stall warning and the grace-period initialization happen to
|
||||||
|
interact. Please note that it is not possible to entirely eliminate this
|
||||||
|
sort of false positive without resorting to things like stop_machine(),
|
||||||
|
which is overkill for this sort of problem.
|
||||||
|
|
||||||
If the CONFIG_RCU_CPU_STALL_INFO kernel configuration parameter is set,
|
If the CONFIG_RCU_CPU_STALL_INFO kernel configuration parameter is set,
|
||||||
more information is printed with the stall-warning message, for example:
|
more information is printed with the stall-warning message, for example:
|
||||||
|
@ -216,4 +223,5 @@ that portion of the stack which remains the same from trace to trace.
|
||||||
If you can reliably trigger the stall, ftrace can be quite helpful.
|
If you can reliably trigger the stall, ftrace can be quite helpful.
|
||||||
|
|
||||||
RCU bugs can often be debugged with the help of CONFIG_RCU_TRACE
|
RCU bugs can often be debugged with the help of CONFIG_RCU_TRACE
|
||||||
and with RCU's event tracing.
|
and with RCU's event tracing. For information on RCU's event tracing,
|
||||||
|
see include/trace/events/rcu.h.
|
||||||
|
|
Loading…
Add table
Reference in a new issue