rcu: Make synchronize_srcu_expedited() fast if running readers
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 26 Oct 2010 09:11:40 +0000 (02:11 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 30 Nov 2010 06:02:40 +0000 (22:02 -0800)
commit46fdb0937f26124700fc9fc80da4776330cc00d3
treece3bdf6c0379fdab8c72085f885402751fadea52
parentdb3a8920995484e5e9a0abaf3bad2c7311b163db
rcu: Make synchronize_srcu_expedited() fast if running readers

The synchronize_srcu_expedited() function is currently quick if there
are no active readers, but will delay a full jiffy if there are any.
If these readers leave their SRCU read-side critical sections quickly,
this is way too long to wait.  So this commit first waits ten microseconds,
and only then falls back to jiffy-at-a-time waiting.

Reported-by: Avi Kivity <avi@redhat.com>
Reported-by: Marcelo Tosatti <mtosatti@redhat.com>
Tested-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
init/Kconfig
kernel/srcu.c