rcu: Make expedited grace period use direct call on last leaf
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 24 Apr 2018 18:03:39 +0000 (11:03 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 25 Jun 2018 18:25:41 +0000 (11:25 -0700)
commit5257514d8885b2ebc11bf359ea1527282b47a5fd
tree7c39cb001d70f457cf4873ce2b00cec9001e0bdf
parentce397d215ccd07b8ae3f71db689aedb85d56ab40
rcu: Make expedited grace period use direct call on last leaf

During expedited grace-period initialization, a work item is scheduled
for each leaf rcu_node structure.  However, that initialization code
is itself (normally) executing from a workqueue, so one of the leaf
rcu_node structures could just as well be handled by that pre-existing
workqueue, and with less overhead.  This commit therefore uses a
shiny new rcu_is_leaf_node() macro to execute the last leaf rcu_node
structure's initialization directly from the pre-existing workqueue.

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