diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2017-10-24 11:42:41 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2017-12-04 13:28:59 -0500 |
commit | f2b1760aedba1d8394636ba31b9e864e82527528 (patch) | |
tree | d56f3cf3d669e9ffa8e1c57926e8772fc4ce6559 | |
parent | 388a4c88064e7e62602b4d92ca127f0b0c9b305a (diff) |
doc: Eliminate cond_resched_rcu_qs() in favor of cond_resched()
Now that cond_resched() also provides RCU quiescent states when
needed, it can be used in place of cond_resched_rcu_qs(). This
commit therefore documents this change.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
-rw-r--r-- | Documentation/RCU/Design/Data-Structures/Data-Structures.html | 3 | ||||
-rw-r--r-- | Documentation/RCU/Design/Requirements/Requirements.html | 4 | ||||
-rw-r--r-- | Documentation/RCU/stallwarn.txt | 10 |
3 files changed, 8 insertions, 9 deletions
diff --git a/Documentation/RCU/Design/Data-Structures/Data-Structures.html b/Documentation/RCU/Design/Data-Structures/Data-Structures.html index 38d6d800761f..412466e4967a 100644 --- a/Documentation/RCU/Design/Data-Structures/Data-Structures.html +++ b/Documentation/RCU/Design/Data-Structures/Data-Structures.html | |||
@@ -1097,7 +1097,8 @@ will cause the CPU to disregard the values of its counters on | |||
1097 | its next exit from idle. | 1097 | its next exit from idle. |
1098 | Finally, the <tt>rcu_qs_ctr_snap</tt> field is used to detect | 1098 | Finally, the <tt>rcu_qs_ctr_snap</tt> field is used to detect |
1099 | cases where a given operation has resulted in a quiescent state | 1099 | cases where a given operation has resulted in a quiescent state |
1100 | for all flavors of RCU, for example, <tt>cond_resched_rcu_qs()</tt>. | 1100 | for all flavors of RCU, for example, <tt>cond_resched()</tt> |
1101 | when RCU has indicated a need for quiescent states. | ||
1101 | 1102 | ||
1102 | <h5>RCU Callback Handling</h5> | 1103 | <h5>RCU Callback Handling</h5> |
1103 | 1104 | ||
diff --git a/Documentation/RCU/Design/Requirements/Requirements.html b/Documentation/RCU/Design/Requirements/Requirements.html index 62e847bcdcdd..0372e6c54eef 100644 --- a/Documentation/RCU/Design/Requirements/Requirements.html +++ b/Documentation/RCU/Design/Requirements/Requirements.html | |||
@@ -2797,7 +2797,7 @@ RCU must avoid degrading real-time response for CPU-bound threads, whether | |||
2797 | executing in usermode (which is one use case for | 2797 | executing in usermode (which is one use case for |
2798 | <tt>CONFIG_NO_HZ_FULL=y</tt>) or in the kernel. | 2798 | <tt>CONFIG_NO_HZ_FULL=y</tt>) or in the kernel. |
2799 | That said, CPU-bound loops in the kernel must execute | 2799 | That said, CPU-bound loops in the kernel must execute |
2800 | <tt>cond_resched_rcu_qs()</tt> at least once per few tens of milliseconds | 2800 | <tt>cond_resched()</tt> at least once per few tens of milliseconds |
2801 | in order to avoid receiving an IPI from RCU. | 2801 | in order to avoid receiving an IPI from RCU. |
2802 | 2802 | ||
2803 | <p> | 2803 | <p> |
@@ -3128,7 +3128,7 @@ The solution, in the form of | |||
3128 | is to have implicit | 3128 | is to have implicit |
3129 | read-side critical sections that are delimited by voluntary context | 3129 | read-side critical sections that are delimited by voluntary context |
3130 | switches, that is, calls to <tt>schedule()</tt>, | 3130 | switches, that is, calls to <tt>schedule()</tt>, |
3131 | <tt>cond_resched_rcu_qs()</tt>, and | 3131 | <tt>cond_resched()</tt>, and |
3132 | <tt>synchronize_rcu_tasks()</tt>. | 3132 | <tt>synchronize_rcu_tasks()</tt>. |
3133 | In addition, transitions to and from userspace execution also delimit | 3133 | In addition, transitions to and from userspace execution also delimit |
3134 | tasks-RCU read-side critical sections. | 3134 | tasks-RCU read-side critical sections. |
diff --git a/Documentation/RCU/stallwarn.txt b/Documentation/RCU/stallwarn.txt index a08f928c8557..4259f95c3261 100644 --- a/Documentation/RCU/stallwarn.txt +++ b/Documentation/RCU/stallwarn.txt | |||
@@ -23,12 +23,10 @@ o A CPU looping with preemption disabled. This condition can | |||
23 | o A CPU looping with bottom halves disabled. This condition can | 23 | o A CPU looping with bottom halves disabled. This condition can |
24 | result in RCU-sched and RCU-bh stalls. | 24 | result in RCU-sched and RCU-bh stalls. |
25 | 25 | ||
26 | o For !CONFIG_PREEMPT kernels, a CPU looping anywhere in the | 26 | o For !CONFIG_PREEMPT kernels, a CPU looping anywhere in the kernel |
27 | kernel without invoking schedule(). Note that cond_resched() | 27 | without invoking schedule(). If the looping in the kernel is |
28 | does not necessarily prevent RCU CPU stall warnings. Therefore, | 28 | really expected and desirable behavior, you might need to add |
29 | if the looping in the kernel is really expected and desirable | 29 | some calls to cond_resched(). |
30 | behavior, you might need to replace some of the cond_resched() | ||
31 | calls with calls to cond_resched_rcu_qs(). | ||
32 | 30 | ||
33 | o Booting Linux using a console connection that is too slow to | 31 | o Booting Linux using a console connection that is too slow to |
34 | keep up with the boot-time console-message rate. For example, | 32 | keep up with the boot-time console-message rate. For example, |