aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2017-08-09 13:16:29 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2017-10-09 17:23:36 -0400
commitdfa0ee48ef86f79430d2be9d1e2e1b509abb3cce (patch)
tree44aeecfa9f8e874ddbd0df2fda15494b37d1d4f0
parentbb7e5ce7dde6f42e7793bd6cf4b1eb71a20145aa (diff)
documentation: Long-running irq handlers can stall RCU grace periods
If a periodic interrupt's handler takes longer to execute than the period between successive interrupts, RCU's kthreads and softirq handlers can be prevented from executing, resulting in otherwise inexplicable RCU CPU stall warnings. This commit therefore calls out this possibility in Documentation/RCU/stallwarn.txt. Reported-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
-rw-r--r--Documentation/RCU/stallwarn.txt12
1 files changed, 11 insertions, 1 deletions
diff --git a/Documentation/RCU/stallwarn.txt b/Documentation/RCU/stallwarn.txt
index 96a3d81837e1..21b8913acbdf 100644
--- a/Documentation/RCU/stallwarn.txt
+++ b/Documentation/RCU/stallwarn.txt
@@ -40,7 +40,9 @@ o Booting Linux using a console connection that is too slow to
40o Anything that prevents RCU's grace-period kthreads from running. 40o Anything that prevents RCU's grace-period kthreads from running.
41 This can result in the "All QSes seen" console-log message. 41 This can result in the "All QSes seen" console-log message.
42 This message will include information on when the kthread last 42 This message will include information on when the kthread last
43 ran and how often it should be expected to run. 43 ran and how often it should be expected to run. It can also
44 result in the "rcu_.*kthread starved for" console-log message,
45 which will include additional debugging information.
44 46
45o A CPU-bound real-time task in a CONFIG_PREEMPT kernel, which might 47o A CPU-bound real-time task in a CONFIG_PREEMPT kernel, which might
46 happen to preempt a low-priority task in the middle of an RCU 48 happen to preempt a low-priority task in the middle of an RCU
@@ -60,6 +62,14 @@ o A CPU-bound real-time task in a CONFIG_PREEMPT_RT kernel that
60 CONFIG_PREEMPT_RCU case, you might see stall-warning 62 CONFIG_PREEMPT_RCU case, you might see stall-warning
61 messages. 63 messages.
62 64
65o A periodic interrupt whose handler takes longer than the time
66 interval between successive pairs of interrupts. This can
67 prevent RCU's kthreads and softirq handlers from running.
68 Note that certain high-overhead debugging options, for example
69 the function_graph tracer, can result in interrupt handler taking
70 considerably longer than normal, which can in turn result in
71 RCU CPU stall warnings.
72
63o A hardware or software issue shuts off the scheduler-clock 73o A hardware or software issue shuts off the scheduler-clock
64 interrupt on a CPU that is not in dyntick-idle mode. This 74 interrupt on a CPU that is not in dyntick-idle mode. This
65 problem really has happened, and seems to be most likely to 75 problem really has happened, and seems to be most likely to