diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2010-08-23 19:34:02 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2010-08-23 19:34:02 -0400 |
commit | 2c96c7751d2bb822542b03ddfaca70933f5aaf02 (patch) | |
tree | 9bdb922d816db6bcfdc92e048167007af9006df0 /Documentation/RCU | |
parent | a6b9b4d50f492630443b38404d1f436b3b748c14 (diff) |
rcu: upgrade stallwarn.txt documentation for CPU-bound RT processes
CPU-bound real-time processes can cause RCU CPU stall warnings, and
much other trouble as well. Document the fact that they can cause
RCU CPU stall warnings.
Suggested-by: Darren Hart <dvhltc@us.ibm.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'Documentation/RCU')
-rw-r--r-- | Documentation/RCU/stallwarn.txt | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Documentation/RCU/stallwarn.txt b/Documentation/RCU/stallwarn.txt index 44c6dcc93d6d..862c08ef1fde 100644 --- a/Documentation/RCU/stallwarn.txt +++ b/Documentation/RCU/stallwarn.txt | |||
@@ -80,6 +80,24 @@ o A CPU looping with bottom halves disabled. This condition can | |||
80 | o For !CONFIG_PREEMPT kernels, a CPU looping anywhere in the kernel | 80 | o For !CONFIG_PREEMPT kernels, a CPU looping anywhere in the kernel |
81 | without invoking schedule(). | 81 | without invoking schedule(). |
82 | 82 | ||
83 | o A CPU-bound real-time task in a CONFIG_PREEMPT kernel, which might | ||
84 | happen to preempt a low-priority task in the middle of an RCU | ||
85 | read-side critical section. This is especially damaging if | ||
86 | that low-priority task is not permitted to run on any other CPU, | ||
87 | in which case the next RCU grace period can never complete, which | ||
88 | will eventually cause the system to run out of memory and hang. | ||
89 | While the system is in the process of running itself out of | ||
90 | memory, you might see stall-warning messages. | ||
91 | |||
92 | o A CPU-bound real-time task in a CONFIG_PREEMPT_RT kernel that | ||
93 | is running at a higher priority than the RCU softirq threads. | ||
94 | This will prevent RCU callbacks from ever being invoked, | ||
95 | and in a CONFIG_TREE_PREEMPT_RCU kernel will further prevent | ||
96 | RCU grace periods from ever completing. Either way, the | ||
97 | system will eventually run out of memory and hang. In the | ||
98 | CONFIG_TREE_PREEMPT_RCU case, you might see stall-warning | ||
99 | messages. | ||
100 | |||
83 | o A bug in the RCU implementation. | 101 | o A bug in the RCU implementation. |
84 | 102 | ||
85 | o A hardware failure. This is quite unlikely, but has occurred | 103 | o A hardware failure. This is quite unlikely, but has occurred |