[GIT PULL] RCU changes for v5.16

From: Paul E. McKenney
Date: Mon Nov 01 2021 - 19:25:24 EST


Hello, Linus,

Please pull the latest RCU git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git tags/rcu.2021.11.01a
# HEAD: dd1277d2ad95e7f0de1b79c70fdfe635d9df0f80 Merge branches 'fixes.2021.10.07a', 'scftorture.2021.09.16a', 'tasks.2021.09.15a', 'torture.2021.09.13b' and 'torturescript.2021.09.16a' into HEAD

RCU changes for this cycle were:

o Miscellaneous fixes.

o Torture-test updates for smp_call_function(), most notably
improved checking of module parameters.

o Tasks-trace RCU updates that fix a number of rare but important
race-condition bugs.

o Other torture-test updates, most notably better checking of
module parameters. In addition, rcutorture may once again be
run on CONFIG_PREEMPT_RT kernels.

o Torture-test scripting updates, most notably specifying the new
CONFIG_KCSAN_STRICT kconfig option rather than maintaining an
ever-changing list of individual KCSAN kconfig options.

As noted by Stephen Rothwell, this pull request conflicts with commit
9b3c4ab3045e ("sched,rcu: Rework try_invoke_on_locked_down_task()")
from the -tip tree, which is now in mainline. Stephen's suggested
conflict-resolution patch [1] works and has been heavily tested.
An example merge commit based on his approach (lightly tested, but
with identical diffs) may be found at branch rcu-merge.2021.11.01a in
the -rcu tree.

Thanx, Paul

[1] https://lore.kernel.org/all/20211012154828.312f870f@xxxxxxxxxxxxxxxx/

----------------------------------------------------------------
Juri Lelli (2):
rcu: Make rcu_normal_after_boot writable again
rcu: Make rcu update module parameters world-readable

Neeraj Upadhyay (7):
rcu: Fix existing exp request check in sync_sched_exp_online_cleanup()
rcu-tasks: Fix s/rcu_add_holdout/trc_add_holdout/ typo in comment
rcu-tasks: Correct firstreport usage in check_all_holdout_tasks_trace
rcu-tasks: Correct comparisons for CPU numbers in show_stalled_task_trace
rcu-tasks: Clarify read side section info for rcu_tasks_rude GP primitives
rcu-tasks: Fix read-side primitives comment for call_rcu_tasks_trace
rcu-tasks: Fix IPI failure handling in trc_wait_for_one_reader

Paul E. McKenney (33):
torture: Apply CONFIG_KCSAN_STRICT to kvm.sh --kcsan argument
rcu: Mark accesses to rcu_state.n_force_qs
rcu-nocb: Fix a couple of tree_nocb code-style nits
rcu: Eliminate rcu_implicit_dynticks_qs() local variable rnhqp
rcu: Eliminate rcu_implicit_dynticks_qs() local variable ruqp
doc: Add another stall-warning root cause in stallwarn.rst
rcu: Comment rcu_gp_init() code waiting for CPU-hotplug operations
rcu: Move rcu_dynticks_eqs_online() to rcu_cpu_starting()
rcu: Simplify rcu_report_dead() call to rcu_report_exp_rdp()
rcu: Make rcutree_dying_cpu() use its "cpu" parameter
rcu-tasks: Wait for trc_read_check_handler() IPIs
rcutorture: Suppressing read-exit testing is not an error
rcutorture: Warn on individual rcu_torture_init() error conditions
locktorture: Warn on individual lock_torture_init() error conditions
refscale: Warn on individual ref_scale_init() error conditions
rcuscale: Warn on individual rcu_scale_init() error conditions
rcutorture: Don't cpuhp_remove_state() if cpuhp_setup_state() failed
torture: Make torture.sh print the number of files to be compressed
rcu-tasks: Simplify trc_read_check_handler() atomic operations
rcu-tasks: Add trc_inspect_reader() checks for exiting critical section
rcu-tasks: Remove second argument of rcu_read_unlock_trace_special()
rcu-tasks: Fix s/instruction/instructions/ typo in comment
rcu-tasks: Move RTGS_WAIT_CBS to beginning of rcu_tasks_kthread() loop
rcu-tasks: Update comments to cond_resched_tasks_rcu_qs()
scftorture: Allow zero weight to exclude an smp_call_function*() category
scftorture: Shut down if nonsensical arguments given
scftorture: Account for weight_resched when checking for all zeroes
scftorture: Count reschedule IPIs
scftorture: Warn on individual scf_torture_init() error conditions
tools/rcu: Add an extract-stall script
torture: Allot 1G of memory for scftorture runs
torture: Make kvm-remote.sh print size of downloaded tarball
Merge branches 'fixes.2021.10.07a', 'scftorture.2021.09.16a', 'tasks.2021.09.15a', 'torture.2021.09.13b' and 'torturescript.2021.09.16a' into HEAD

Peter Zijlstra (2):
rcu: Always inline rcu_dynticks_task*_{enter,exit}()
rcu: Fix rcu_dynticks_curr_cpu_in_eqs() vs noinstr

Scott Wood (1):
rcutorture: Avoid problematic critical section nesting on PREEMPT_RT

Waiman Long (1):
rcu: Avoid unneeded function call in rcu_read_unlock()

Zhouyi Zhou (1):
rcu: Fix undefined Kconfig macros

.../Memory-Ordering/Tree-RCU-Memory-Ordering.rst | 69 ++++++-------
Documentation/RCU/stallwarn.rst | 10 ++
arch/sh/configs/sdk7786_defconfig | 1 -
arch/xtensa/configs/nommu_kc705_defconfig | 1 -
include/linux/rcupdate.h | 3 +-
include/linux/rcupdate_trace.h | 5 +-
include/linux/torture.h | 8 ++
kernel/locking/locktorture.c | 14 +--
kernel/rcu/rcuscale.c | 10 +-
kernel/rcu/rcutorture.c | 86 ++++++++++------
kernel/rcu/refscale.c | 6 +-
kernel/rcu/tasks.h | 109 ++++++++++-----------
kernel/rcu/tree.c | 36 +++----
kernel/rcu/tree_exp.h | 3 +-
kernel/rcu/tree_nocb.h | 2 +-
kernel/rcu/tree_plugin.h | 11 +--
kernel/rcu/update.c | 8 +-
kernel/scftorture.c | 43 ++++----
tools/rcu/extract-stall.sh | 34 +++++++
.../testing/selftests/rcutorture/bin/kvm-remote.sh | 1 +
tools/testing/selftests/rcutorture/bin/kvm.sh | 2 +-
tools/testing/selftests/rcutorture/bin/torture.sh | 11 ++-
22 files changed, 273 insertions(+), 200 deletions(-)
create mode 100644 tools/rcu/extract-stall.sh