rcu: Get rid of synchronize_sched_expedited()'s polling loop
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 24 Jun 2015 21:20:08 +0000 (14:20 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 17 Jul 2015 21:58:48 +0000 (14:58 -0700)
commit385b73c06f6a733547d0a7714d0c4cb4c8788b88
treee3131e0f720dc99d764ea23c50c80dee1f05e796
parentd6ada2cf2f81dab8a231d0ef8fb5dec4f5ac8379
rcu: Get rid of synchronize_sched_expedited()'s polling loop

This commit gets rid of synchronize_sched_expedited()'s mutex_trylock()
polling loop in favor of a funnel-locking scheme based on the rcu_node
tree.  The work-done check is done at each level of the tree, allowing
high-contention situations to be resolved quickly with reasonable levels
of mutex contention.

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