[GIT PULL] RCU changes for v5.15

From: Paul E. McKenney
Date: Mon Aug 30 2021 - 00:17:14 EST


Hello, Linus,

Please pull the latest RCU git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git core-rcu.2021.08.28a
# HEAD: b770efc4608d24fb446b94e1087d9989425dd39b Merge branches 'doc.2021.07.20c', 'fixes.2021.08.06a', 'nocb.2021.07.20c', 'nolibc.2021.07.20c', 'tasks.2021.07.20c', 'torture.2021.07.27a' and 'torturescript.2021.07.27a' into HEAD

RCU changes for this cycle were:

o Documentation updates.

o Miscellaneous fixes.

o Offloaded-callbacks updates

o Updates to the nolibc library.

o Tasks-RCU updates.

o In-kernel torture-test updates.

o Torture-test scripting, perhaps most notably the pinning of
torture-test guest OSes so as to force differences in memory
latency. For example, in a two-socket system, a four-CPU guest
OS will have one pair of its CPUs pinned to threads in a single
core on one socket and the other pair pinned to threads in a
single core on the other socket. This approach proved able
to force race conditions that earlier testing missed. Some of
these race conditions are still being tracked down.

Thanx, Paul

----------------------------------------------------------------
Akira Yokosawa (2):
Documentation/RCU: Fix emphasis markers
Documentation/RCU: Fix nested inline markup

Bhaskar Chowdhury (1):
tools: include: nolibc: Fix a typo occured to occurred in the file nolibc.h

Frederic Weisbecker (4):
rcu/doc: Add a quick quiz to explain further why we need smp_mb__after_unlock_lock()
rcu/nocb: Start moving nocb code to its own plugin file
rcu/nocb: Remove NOCB deferred wakeup from rcutree_dead_cpu()
rcu: Explain why rcu_all_qs() is a stub in preemptible TREE RCU

Haocheng Xie (1):
docs: Fix a typo in Documentation/RCU/stallwarn.rst

Jiangong.Han (1):
rcuscale: Console output claims too few grace periods

Joel Fernandes (Google) (1):
rcu: Remove special bit at the bottom of the ->dynticks counter

Julian Wiedmann (1):
rculist: Unify documentation about missing list_empty_rcu()

Liu Song (2):
rcu: Remove useless "ret" update in rcu_gp_fqs_loop()
rcu: Use per_cpu_ptr to get the pointer of per_cpu variable

Mark Brown (1):
tools/nolibc: Implement msleep()

Paul E. McKenney (41):
doc: Update stallwarn.rst with recent changes
rcu-tasks: Add comments explaining task_struct strategy
rcu-tasks: Mark ->trc_reader_nesting data races
rcu-tasks: Mark ->trc_reader_special.b.need_qs data races
rcu-tasks: Fix synchronize_rcu_rude() typo in comment
torture: Add clocksource-watchdog testing to torture.sh
torture: Make torture.sh accept --do-all and --donone
torture: Enable KCSAN summaries over groups of torture-test runs
torture: Create KCSAN summaries for torture.sh runs
torture: Make kvm-recheck-scf.sh tolerate qemu-cmd comments
torture: Make kvm-recheck-lock.sh tolerate qemu-cmd comments
torture: Log more kvm-remote.sh information
torture: Protect kvm-remote.sh directory trees from /tmp reaping
torture: Make kvm-recheck.sh skip kcsan.sum for build-only runs
torture: Move parse-console.sh call to PATH-aware scripts
torture: Put kvm.sh batch-creation awk script into a temp file
refscale: Add measurement of clock readout
rcutorture: Preempt rather than block when testing task stalls
locktorture: Mark statistics data races
locktorture: Count lock readers
scftorture: Add RPC-like IPI tests
scftorture: Avoid NULL pointer exception on early exit
torture: Make kvm.sh select per-scenario affinity masks
torture: Don't redirect qemu-cmd comment lines
torture: Make kvm-test-1-run-qemu.sh apply affinity
rcutorture: Upgrade two-CPU scenarios to four CPUs
torture: Use numeric taskset argument in jitter.sh
torture: Consistently name "qemu*" test output files
torture: Make kvm-test-1-run-batch.sh select per-scenario affinity masks
torture: Don't use "test" command's "-a" argument
torture: Add timestamps to kvm-test-1-run-qemu.sh output
torture: Make kvm-test-1-run-qemu.sh check for reboot loops
rcu: Weaken ->dynticks accesses and updates
rcu: Mark accesses to ->rcu_read_lock_nesting
rcu: Start timing stall repetitions after warning complete
srcutiny: Mark read-side data races
rcu: Mark lockless ->qsmask read in rcu_check_boost_fail()
rcu: Make rcu_gp_init() and rcu_gp_fqs_loop noinline to conserve stack
rcu: Mark accesses in tree_stall.h
rcu: Print human-readable message for schedule() in RCU reader
Merge branches 'doc.2021.07.20c', 'fixes.2021.08.06a', 'nocb.2021.07.20c', 'nolibc.2021.07.20c', 'tasks.2021.07.20c', 'torture.2021.07.27a' and 'torturescript.2021.07.27a' into HEAD

Sebastian Andrzej Siewior (2):
rcu: Replace deprecated CPU-hotplug functions
torture: Replace deprecated CPU-hotplug functions.

Sergey Senozhatsky (2):
rcu/tree: Handle VM stoppage in stall detection
rcu: Do not disable GP stall detection in rcu_cpu_stall_reset()

Yanfei Xu (2):
rcu: Fix to include first blocked task in stall warning
rcu: Fix stall-warning deadlock due to non-release of rcu_node ->lock

Zhouyi Zhou (1):
rcu: Fix macro name CONFIG_TASKS_RCU_TRACE

.../Memory-Ordering/Tree-RCU-Memory-Ordering.rst | 29 +
.../RCU/Design/Requirements/Requirements.rst | 8 +-
Documentation/RCU/checklist.rst | 24 +-
Documentation/RCU/rcu_dereference.rst | 6 +-
Documentation/RCU/stallwarn.rst | 31 +-
include/linux/rculist.h | 35 +-
include/linux/rcupdate.h | 4 +-
include/linux/rcutiny.h | 3 -
include/linux/srcutiny.h | 8 +-
kernel/locking/locktorture.c | 25 +-
kernel/rcu/rcuscale.c | 4 +-
kernel/rcu/rcutorture.c | 7 +-
kernel/rcu/refscale.c | 36 +-
kernel/rcu/srcutiny.c | 2 +-
kernel/rcu/tasks.h | 36 +-
kernel/rcu/tree.c | 107 +-
kernel/rcu/tree_nocb.h | 1496 +++++++++++++++++++
kernel/rcu/tree_plugin.h | 1506 +-------------------
kernel/rcu/tree_stall.h | 111 +-
kernel/scftorture.c | 78 +-
kernel/sched/core.c | 11 +
kernel/torture.c | 6 +-
tools/include/nolibc/nolibc.h | 15 +-
tools/testing/selftests/rcutorture/bin/jitter.sh | 10 +-
.../selftests/rcutorture/bin/kcsan-collapse.sh | 2 +-
.../testing/selftests/rcutorture/bin/kvm-again.sh | 4 +-
.../selftests/rcutorture/bin/kvm-assign-cpus.sh | 106 ++
.../rcutorture/bin/kvm-get-cpus-script.sh | 88 ++
.../selftests/rcutorture/bin/kvm-recheck-lock.sh | 2 +-
.../selftests/rcutorture/bin/kvm-recheck-scf.sh | 2 +-
.../selftests/rcutorture/bin/kvm-recheck.sh | 5 +-
.../selftests/rcutorture/bin/kvm-remote-noreap.sh | 30 +
.../testing/selftests/rcutorture/bin/kvm-remote.sh | 20 +-
.../rcutorture/bin/kvm-test-1-run-batch.sh | 24 +
.../rcutorture/bin/kvm-test-1-run-qemu.sh | 49 +-
.../selftests/rcutorture/bin/kvm-test-1-run.sh | 2 +
tools/testing/selftests/rcutorture/bin/kvm.sh | 39 +-
tools/testing/selftests/rcutorture/bin/torture.sh | 37 +-
.../selftests/rcutorture/configs/rcu/RUDE01 | 2 +-
.../selftests/rcutorture/configs/rcu/TASKS01 | 2 +-
.../selftests/rcutorture/configs/rcu/TASKS03 | 2 +-
41 files changed, 2241 insertions(+), 1773 deletions(-)
create mode 100644 kernel/rcu/tree_nocb.h
create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-assign-cpus.sh
create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-get-cpus-script.sh
create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-remote-noreap.sh