documentation: Emphasize the call_rcu() is illegal from idle
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 31 Mar 2016 18:00:08 +0000 (11:00 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 31 Mar 2016 20:33:23 +0000 (13:33 -0700)
Although call_rcu()'s fastpath works just fine on an idle CPU,
some branches of the slowpath invoke the scheduler, which uses
RCU.  Therefore, this commit emphasizes the fact that call_rcu()
must not be invoked from an idle CPU.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Documentation/RCU/Design/Requirements/Requirements.html

index 85cf2238fd083589348dd79e6e2f0b8d82426446..e7e24b3e86e29e2c721c447c237de890b11e7062 100644 (file)
@@ -1650,7 +1650,7 @@ situations where neither <tt>synchronize_rcu()</tt> nor
 including within preempt-disable code, <tt>local_bh_disable()</tt> code,
 interrupt-disable code, and interrupt handlers.
 However, even <tt>call_rcu()</tt> is illegal within NMI handlers
-and from offline CPUs.
+and from idle and offline CPUs.
 The callback function (<tt>remove_gp_cb()</tt> in this case) will be
 executed within softirq (software interrupt) environment within the
 Linux kernel,