rcu: Drive expedited grace periods from workqueue
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 29 Jun 2016 20:46:25 +0000 (13:46 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 22 Aug 2016 16:30:25 +0000 (09:30 -0700)
commit8b355e3bc1408be238ae4695fb6318ae502cae8e
treef923d1cb005f3102e76cd0b2f64567ed80f67c7a
parentf7b8eb847e35b18d3ec333774691a905bf16017f
rcu: Drive expedited grace periods from workqueue

The current implementation of expedited grace periods has the user
task drive the grace period.  This works, but has downsides: (1) The
user task must awaken tasks piggybacking on this grace period, which
can result in latencies rivaling that of the grace period itself, and
(2) User tasks can receive signals, which interfere with RCU CPU stall
warnings.

This commit therefore uses workqueues to drive the grace periods, so
that the user task need not do the awakening.  A subsequent commit
will remove the now-unnecessary code allowing for signals.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcu/tree.h
kernel/rcu/tree_exp.h
kernel/rcu/tree_trace.c