[GIT PULL rcu-tasks-trace] 50x speedup for synchronize_rcu_tasks_trace()

From: Paul E. McKenney
Date: Tue Sep 22 2020 - 12:25:52 EST


Hello, Alexei,

This pull request contains eight commits that speed up RCU Tasks Trace
grace periods by a factor of 50, fix a few race conditions exposed
by this speedup, and clean up a couple of minor issues. These have
been exposed to 0day and -next testing, and have passed well over 1,000
hours of rcutorture testing, some of which has contained ad-hoc changes
to further increase race probabilities. So they should be solid!
(Famous last words...)

I would normally have sent this series up through -tip, but as we
discussed, going up through the BFP and networking trees provides the
needed exposure to real-world testing of these changes. Please note
that the first patch is already in mainline, but given identical SHA-1
commit IDs, git should have no problem figuring this out. I will also
be retaining these commits in -rcu in order to continue exposing them
to rcutorture testing, but again the identical SHA-1 commit IDs will
make everything work out.

The fact that these commits will reside in multiple trees is of course
what motivates inclusion of the otherwise unrelated minor-issue cleanups.
Including these cleanups allows all the various trees to keep synchronized
SHA-1 commit IDs. And so, without further ado:

The following changes since commit 9123e3a74ec7b934a4a099e98af6a61c2f80bbf5:

Linux 5.9-rc1 (2020-08-16 13:04:57 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rtt-speedup.2020.09.16a

for you to fetch changes up to f747c7e15d7bc71a967a94ceda686cf2460b69e8:

rcu-tasks: Enclose task-list scan in rcu_read_lock() (2020-09-16 16:32:38 -0700)

----------------------------------------------------------------
Paul E. McKenney (8):
rcu-tasks: Prevent complaints of unused show_rcu_tasks_classic_gp_kthread()
rcu-tasks: Mark variables static
rcu-tasks: Use more aggressive polling for RCU Tasks Trace
rcu-tasks: Selectively enable more RCU Tasks Trace IPIs
rcu-tasks: Shorten per-grace-period sleep for RCU Tasks Trace
rcu-tasks: Fix grace-period/unlock race in RCU Tasks Trace
rcu-tasks: Fix low-probability task_struct leak
rcu-tasks: Enclose task-list scan in rcu_read_lock()

include/linux/rcupdate_trace.h | 4 +++
kernel/rcu/tasks.h | 55 ++++++++++++++++++++++++++++++++----------
2 files changed, 46 insertions(+), 13 deletions(-)