diff options
Diffstat (limited to 'Documentation/RCU/stallwarn.txt')
-rw-r--r-- | Documentation/RCU/stallwarn.txt | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/Documentation/RCU/stallwarn.txt b/Documentation/RCU/stallwarn.txt index ed186a902d31..b57c0c1cdac6 100644 --- a/Documentation/RCU/stallwarn.txt +++ b/Documentation/RCU/stallwarn.txt | |||
@@ -15,7 +15,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT | |||
15 | 21 seconds. | 15 | 21 seconds. |
16 | 16 | ||
17 | This configuration parameter may be changed at runtime via the | 17 | This configuration parameter may be changed at runtime via the |
18 | /sys/module/rcutree/parameters/rcu_cpu_stall_timeout, however | 18 | /sys/module/rcupdate/parameters/rcu_cpu_stall_timeout, however |
19 | this parameter is checked only at the beginning of a cycle. | 19 | this parameter is checked only at the beginning of a cycle. |
20 | So if you are 10 seconds into a 40-second stall, setting this | 20 | So if you are 10 seconds into a 40-second stall, setting this |
21 | sysfs parameter to (say) five will shorten the timeout for the | 21 | sysfs parameter to (say) five will shorten the timeout for the |
@@ -152,6 +152,15 @@ no non-lazy callbacks ("." is printed otherwise, as shown above) and | |||
152 | "D" indicates that dyntick-idle processing is enabled ("." is printed | 152 | "D" indicates that dyntick-idle processing is enabled ("." is printed |
153 | otherwise, for example, if disabled via the "nohz=" kernel boot parameter). | 153 | otherwise, for example, if disabled via the "nohz=" kernel boot parameter). |
154 | 154 | ||
155 | If the relevant grace-period kthread has been unable to run prior to | ||
156 | the stall warning, the following additional line is printed: | ||
157 | |||
158 | rcu_preempt kthread starved for 2023 jiffies! | ||
159 | |||
160 | Starving the grace-period kthreads of CPU time can of course result in | ||
161 | RCU CPU stall warnings even when all CPUs and tasks have passed through | ||
162 | the required quiescent states. | ||
163 | |||
155 | 164 | ||
156 | Multiple Warnings From One Stall | 165 | Multiple Warnings From One Stall |
157 | 166 | ||
@@ -187,6 +196,11 @@ o For !CONFIG_PREEMPT kernels, a CPU looping anywhere in the | |||
187 | behavior, you might need to replace some of the cond_resched() | 196 | behavior, you might need to replace some of the cond_resched() |
188 | calls with calls to cond_resched_rcu_qs(). | 197 | calls with calls to cond_resched_rcu_qs(). |
189 | 198 | ||
199 | o Anything that prevents RCU's grace-period kthreads from running. | ||
200 | This can result in the "All QSes seen" console-log message. | ||
201 | This message will include information on when the kthread last | ||
202 | ran and how often it should be expected to run. | ||
203 | |||
190 | o A CPU-bound real-time task in a CONFIG_PREEMPT kernel, which might | 204 | o A CPU-bound real-time task in a CONFIG_PREEMPT kernel, which might |
191 | happen to preempt a low-priority task in the middle of an RCU | 205 | happen to preempt a low-priority task in the middle of an RCU |
192 | read-side critical section. This is especially damaging if | 206 | read-side critical section. This is especially damaging if |