linux_dsm_epyc7002/Documentation/RCU
Paul E. McKenney e4453d8a1c rcu: Make rcu_read_unlock_special() safe for rq/pi locks
The scheduler is currently required to hold rq/pi locks across the entire
RCU read-side critical section or not at all.  This is inconvenient and
leaves traps for the unwary, including the author of this commit.

But now that excessively long grace periods enable scheduling-clock
interrupts for holdout nohz_full CPUs, the nohz_full rescue logic in
rcu_read_unlock_special() can be dispensed with.  In other words, the
rcu_read_unlock_special() function can refrain from doing wakeups unless
such wakeups are guaranteed safe.

This commit therefore avoids unsafe wakeups, freeing the scheduler to
hold rq/pi locks across rcu_read_unlock() even if the corresponding RCU
read-side critical section might have been preempted.  This commit also
updates RCU's requirements documentation.

This commit is inspired by a patch from Lai Jiangshan:
https://lore.kernel.org/lkml/20191102124559.1135-2-laijs@linux.alibaba.com
This commit is further intended to be a step towards his goal of permitting
the inlining of RCU-preempt's rcu_read_lock() and rcu_read_unlock().

Cc: Lai Jiangshan <laijs@linux.alibaba.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
2020-04-27 11:03:50 -07:00
..
Design rcu: Make rcu_read_unlock_special() safe for rq/pi locks 2020-04-27 11:03:50 -07:00
arrayRCU.rst
checklist.txt
index.rst
listRCU.rst doc/RCU/listRCU: Update example function name 2020-02-27 07:03:13 -08:00
lockdep-splat.txt
lockdep.txt
NMI-RCU.rst
rcu_dereference.rst
rcu.rst doc/RCU/rcu: Use https instead of http if possible 2020-02-27 07:03:13 -08:00
rcubarrier.rst
rculist_nulls.txt
rcuref.txt
RTFP.txt
stallwarn.txt
torture.txt doc: Add rcutorture scripting to torture.txt 2020-02-27 07:03:14 -08:00
UP.rst
whatisRCU.rst