doc: RCU scheduler spinlock rcu_read_unlock() restriction remains
authorPaul E. McKenney <paulmck@linux.ibm.com>
Mon, 15 Oct 2018 17:54:13 +0000 (10:54 -0700)
committerPaul E. McKenney <paulmck@linux.ibm.com>
Mon, 12 Nov 2018 16:56:25 +0000 (08:56 -0800)
commit97562c018135a9d01c59bd3bf95a9458548b79e2
treee3382f990d2dce406e4a892f4b90958147379670
parent97949f0176da396c32e7c881cbfbc61642fb1266
doc: RCU scheduler spinlock rcu_read_unlock() restriction remains

Given RCU flavor consolidation, when rcu_read_unlock() is invoked with
interrupts disabled, the reporting of the corresponding quiescent state is
deferred until interrupts are re-enabled.  There was therefore some hope
that this would allow dropping the restriction against holding scheduler
spinlocks across an rcu_read_unlock() without disabling interrupts across
the entire corresponding RCU read-side critical section.  Unfortunately,
the need to quickly provide a quiescent state to expedited grace periods
sometimes requires a call to raise_softirq() during rcu_read_unlock()
execution.  Because raise_softirq() can sometimes acquire the scheduler
spinlocks, the restriction must remain in effect.  This commit therefore
updates the RCU requirements documentation accordingly.

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