refperf: More closely synchronize reader start times
authorPaul E. McKenney <paulmck@kernel.org>
Tue, 26 May 2020 18:40:52 +0000 (11:40 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Mon, 29 Jun 2020 19:00:45 +0000 (12:00 -0700)
commit86e0da2bb8ed934d3dce5a337895f1118f59c087
treed0ab05f6bd4cdc3e1d29fd6d27a999e954219331
parentaf2789db13b8dc38d16e969f8c11b9468be42d46
refperf: More closely synchronize reader start times

Currently, readers are awakened individually.  On most systems, this
results in significant wakeup delay from one reader to the next, which
can result in the first and last reader having sole access to the
synchronization primitive in question.  If that synchronization primitive
involves shared memory, those readers will rack up a huge number of
operations in a very short time, causing large perturbations in the
results.

This commit therefore has the readers busy-wait after being awakened,
and uses a new n_started variable to synchronize their start times.

Cc: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
kernel/rcu/refperf.c