rcuperf: Add ability to performance-test call_rcu() and friends
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 17 Apr 2017 19:47:10 +0000 (12:47 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 8 Jun 2017 15:25:26 +0000 (08:25 -0700)
commit881ed593a323c832c2e9383effeb6a0c99859210
tree62f22ce214370289c82952fcb3bdc08e52cd76f6
parente28371c891db29c892d85322ea27ad997cc50f72
rcuperf: Add ability to performance-test call_rcu() and friends

This commit upgrades rcuperf so that it can do performance testing on
asynchronous grace-period primitives such as call_srcu().  There is
a new rcuperf.gp_async module parameter that specifies this new behavior,
with the pre-existing rcuperf.gp_exp testing expedited grace periods such as
synchronize_rcu_expedited, and with the default being to test synchronous
non-expedited grace periods such as synchronize_rcu().

There is also a new rcuperf.gp_async_max module parameter that specifies
the maximum number of outstanding callbacks per writer kthread, defaulting
to 1,000.  When this limit is exceeded, the writer thread invokes the
appropriate flavor of rcu_barrier() to wait for callbacks to drain.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
[ paulmck: Removed the redundant initialization noted by Arnd Bergmann. ]
Documentation/admin-guide/kernel-parameters.txt
kernel/rcu/rcuperf.c