aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-10-26 05:11:40 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-11-30 01:02:40 -0500
commit46fdb0937f26124700fc9fc80da4776330cc00d3 (patch)
treece3bdf6c0379fdab8c72085f885402751fadea52 /init
parentdb3a8920995484e5e9a0abaf3bad2c7311b163db (diff)
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>
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig15
1 files changed, 15 insertions, 0 deletions
diff --git a/init/Kconfig b/init/Kconfig
index 929adf6cb6b4..35518243c4bd 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -488,6 +488,21 @@ config RCU_BOOST_DELAY
488 488
489 Accept the default if unsure. 489 Accept the default if unsure.
490 490
491config SRCU_SYNCHRONIZE_DELAY
492 int "Microseconds to delay before waiting for readers"
493 range 0 20
494 default 10
495 help
496 This option controls how long SRCU delays before entering its
497 loop waiting on SRCU readers. The purpose of this loop is
498 to avoid the unconditional context-switch penalty that would
499 otherwise be incurred if there was an active SRCU reader,
500 in a manner similar to adaptive locking schemes. This should
501 be set to be a bit longer than the common-case SRCU read-side
502 critical-section overhead.
503
504 Accept the default if unsure.
505
491endmenu # "RCU Subsystem" 506endmenu # "RCU Subsystem"
492 507
493config IKCONFIG 508config IKCONFIG