]> git.baikalelectronics.ru Git - kernel.git/commit
srcu: Specify auto-expedite holdoff time
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 25 Apr 2017 21:03:11 +0000 (14:03 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 26 Apr 2017 23:32:17 +0000 (16:32 -0700)
commite35981ddd60d926ec92758bf17fb9464c3983612
tree88b0caa1cd8bfa66e6a4b00ad21108f03369eb03
parente7c2383845eb761ce5c1475ca1ea2e3708dfa4e7
srcu: Specify auto-expedite holdoff time

On small systems, in the absence of readers, expedited SRCU grace
periods can complete in less than a microsecond.  This means that an
eight-CPU system can have all CPUs doing synchronize_srcu() in a tight
loop and almost always expedite.  This might actually be desirable in
some situations, but in general it is a good way to needlessly burn
CPU cycles.  And in those situations where it is desirable, your friend
is the function synchronize_srcu_expedited().

For other situations, this commit adds a kernel parameter that specifies
a holdoff between completing the last SRCU grace period and auto-expediting
the next.  If the next grace period starts before the holdoff expires,
auto-expediting is disabled.  The holdoff is 50 microseconds by default,
and can be tuned to the desired number of nanoseconds.  A value of zero
disables auto-expediting.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Tested-by: Mike Galbraith <efault@gmx.de>
Documentation/admin-guide/kernel-parameters.txt
include/linux/srcutree.h
kernel/rcu/srcutree.c