]> www.infradead.org Git - linux.git/commitdiff
doc: Eliminate cond_resched_rcu_qs() in favor of cond_resched()
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 24 Oct 2017 15:42:41 +0000 (08:42 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 4 Dec 2017 18:28:59 +0000 (10:28 -0800)
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>
Documentation/RCU/Design/Data-Structures/Data-Structures.html
Documentation/RCU/Design/Requirements/Requirements.html
Documentation/RCU/stallwarn.txt

index 38d6d800761f7cd944c7b290eeea19dbc0d3866e..412466e4967afa6e75a8709d0ac8112268a5a7b7 100644 (file)
@@ -1097,7 +1097,8 @@ will cause the CPU to disregard the values of its counters on
 its next exit from idle.
 Finally, the <tt>rcu_qs_ctr_snap</tt> field is used to detect
 cases where a given operation has resulted in a quiescent state
-for all flavors of RCU, for example, <tt>cond_resched_rcu_qs()</tt>.
+for all flavors of RCU, for example, <tt>cond_resched()</tt>
+when RCU has indicated a need for quiescent states.
 
 <h5>RCU Callback Handling</h5>
 
index 62e847bcdcddf9c454361b3cfb080db4278d3d60..0372e6c54eef3a6f79ad7731a078604d1624e778 100644 (file)
@@ -2797,7 +2797,7 @@ RCU must avoid degrading real-time response for CPU-bound threads, whether
 executing in usermode (which is one use case for
 <tt>CONFIG_NO_HZ_FULL=y</tt>) or in the kernel.
 That said, CPU-bound loops in the kernel must execute
-<tt>cond_resched_rcu_qs()</tt> at least once per few tens of milliseconds
+<tt>cond_resched()</tt> at least once per few tens of milliseconds
 in order to avoid receiving an IPI from RCU.
 
 <p>
@@ -3128,7 +3128,7 @@ The solution, in the form of
 is to have implicit
 read-side critical sections that are delimited by voluntary context
 switches, that is, calls to <tt>schedule()</tt>,
-<tt>cond_resched_rcu_qs()</tt>, and
+<tt>cond_resched()</tt>, and
 <tt>synchronize_rcu_tasks()</tt>.
 In addition, transitions to and from userspace execution also delimit
 tasks-RCU read-side critical sections.
index a08f928c8557507212d81ee7fbc2cd2c78f5a53e..4259f95c32616eb04f23037475163e4195f2ddf7 100644 (file)
@@ -23,12 +23,10 @@ o   A CPU looping with preemption disabled.  This condition can
 o      A CPU looping with bottom halves disabled.  This condition can
        result in RCU-sched and RCU-bh stalls.
 
-o      For !CONFIG_PREEMPT kernels, a CPU looping anywhere in the
-       kernel without invoking schedule().  Note that cond_resched()
-       does not necessarily prevent RCU CPU stall warnings.  Therefore,
-       if the looping in the kernel is really expected and desirable
-       behavior, you might need to replace some of the cond_resched()
-       calls with calls to cond_resched_rcu_qs().
+o      For !CONFIG_PREEMPT kernels, a CPU looping anywhere in the kernel
+       without invoking schedule().  If the looping in the kernel is
+       really expected and desirable behavior, you might need to add
+       some calls to cond_resched().
 
 o      Booting Linux using a console connection that is too slow to
        keep up with the boot-time console-message rate.  For example,