Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 810ce8b5 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

rcu: Document RCU_NONIDLE() restrictions in comment header

parent 40e0a6cf
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -379,12 +379,13 @@ static inline void rcu_init_nohz(void)
 * in the inner idle loop.
 *
 * This macro provides the way out:  RCU_NONIDLE(do_something_with_RCU())
 * will tell RCU that it needs to pay attending, invoke its argument
 * (in this example, a call to the do_something_with_RCU() function),
 * will tell RCU that it needs to pay attention, invoke its argument
 * (in this example, calling the do_something_with_RCU() function),
 * and then tell RCU to go back to ignoring this CPU.  It is permissible
 * to nest RCU_NONIDLE() wrappers, but the nesting level is currently
 * quite limited.  If deeper nesting is required, it will be necessary
 * to adjust DYNTICK_TASK_NESTING_VALUE accordingly.
 * to nest RCU_NONIDLE() wrappers, but not indefinitely (but the limit is
 * on the order of a million or so, even on 32-bit systems).  It is
 * not legal to block within RCU_NONIDLE(), nor is it permissible to
 * transfer control either into or out of RCU_NONIDLE()'s statement.
 */
#define RCU_NONIDLE(a) \
	do { \