[GIT PULL] RCU changes for v7.1

From: Joel Fernandes

Date: Tue Mar 31 2026 - 13:47:48 EST


Hi Linus,

Once the merge window opens, please pull the following RCU changes for v7.1.

The following changes since commit 7aaa8047eafd0bd628065b15757d9b48c5f9c07d:

Linux 7.0-rc6 (2026-03-29 15:40:00 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux.git tags/rcu.2026.03.31a

for you to fetch changes up to 95c7d025cc8c3c6c41206e2a18332eb04878b7ef:

rcutorture: Test call_srcu() with preemption disabled and not (2026-03-30 15:48:14 -0400)

----------------------------------------------------------------
RCU changes for v7.1

NOCB CPU management:

- Consolidate rcu_nocb_cpu_offload() and rcu_nocb_cpu_deoffload() to reduce
code duplication.
- Extract nocb_bypass_needs_flush() helper to reduce duplication in NOCB
bypass path.

rcutorture/torture infrastructure:

- Add NOCB01 config for RCU_LAZY torture testing.
- Add NOCB02 config for NOCB poll mode testing.
- Add TRIVIAL-PREEMPT config for textbook-style preemptible RCU torture.
- Test call_srcu() with preemption both disabled and enabled.
- Remove kvm-check-branches.sh in favor of kvm-series.sh.
- Make hangs more visible in torture.sh output.
- Add informative message for tests without a recheck file.
- Fix numeric test comparison in srcu_lockdep.sh.
- Use torture_shutdown_init() in refscale and rcuscale instead of open-coded
shutdown functions.
- Fix modulo-zero error in torture_hrtimeout_ns().

SRCU:

- Fix SRCU read flavor macro comments.
- Fix s/they disables/they disable/ typo in srcu_read_unlock_fast().

RCU Tasks:

- Document that RCU Tasks Trace grace periods now imply RCU grace periods.
- Remove unnecessary smp_store_release() in cblist_init_generic().

RCU stall:

- Add BOOTPARAM_RCU_STALL_PANIC Kconfig option to allow triggering a kernel
panic on RCU stall via kernel boot parameter.

----------------------------------------------------------------
Gustavo Luiz Duarte (1):
rcu: Add BOOTPARAM_RCU_STALL_PANIC Kconfig option

Joel Fernandes (4):
rcutorture: Add NOCB01 config for RCU_LAZY torture testing
rcutorture: Add NOCB02 config for nocb poll mode testing
rcu/nocb: Consolidate rcu_nocb_cpu_offload/deoffload functions
rcu/nocb: Extract nocb_bypass_needs_flush() to reduce duplication

Paul E. McKenney (12):
rcutorture: Add a textbook-style trivial preemptible RCU
kvm-check-branches.sh: Remove in favor of kvm-series.sh
torture: Make hangs more visible in torture.sh output
torture: Print informative message for test without recheck file
rcutorture: Fix numeric "test" comparison in srcu_lockdep.sh
refscale: Ditch ref_scale_shutdown in favor of torture_shutdown_init()
rcuscale: Ditch rcu_scale_shutdown in favor of torture_shutdown_init()
srcu: Fix SRCU read flavor macro comments
srcu: Fix s/they disables/they disable/ typo in srcu_read_unlock_fast()
rcu-tasks: Document that RCU Tasks Trace grace periods now imply RCU grace periods
torture: Avoid modulo-zero error in torture_hrtimeout_ns()
rcutorture: Test call_srcu() with preemption disabled and not

Zqiang (1):
rcu-tasks: Remove unnecessary smp_store_release() in cblist_init_generic()

.../RCU/Design/Requirements/Requirements.rst | 7 ++
include/linux/rcupdate.h | 9 +-
include/linux/sched.h | 4 +
include/linux/srcu.h | 4 +-
include/linux/srcutree.h | 2 +-
kernel/rcu/Kconfig.debug | 35 ++++++
kernel/rcu/rcu.h | 4 +
kernel/rcu/rcuscale.c | 78 ++++--------
kernel/rcu/rcutorture.c | 64 +++++++++-
kernel/rcu/refscale.c | 51 +++-----
kernel/rcu/tasks.h | 6 +-
kernel/rcu/tree_nocb.h | 137 ++++++++++++---------
kernel/rcu/tree_stall.h | 2 +-
kernel/rcu/update.c | 22 ++++
kernel/torture.c | 2 +-
.../selftests/rcutorture/bin/kvm-check-branches.sh | 102 ---------------
.../selftests/rcutorture/bin/kvm-recheck.sh | 9 +-
.../selftests/rcutorture/bin/parse-console.sh | 1 -
.../selftests/rcutorture/bin/srcu_lockdep.sh | 6 +-
.../selftests/rcutorture/configs/rcu/NOCB01 | 21 ++++
.../selftests/rcutorture/configs/rcu/NOCB01.boot | 2 +
.../selftests/rcutorture/configs/rcu/NOCB02 | 20 +++
.../selftests/rcutorture/configs/rcu/NOCB02.boot | 3 +
.../rcutorture/configs/rcu/TRIVIAL-PREEMPT | 12 ++
.../rcutorture/configs/rcu/TRIVIAL-PREEMPT.boot | 3 +
.../rcutorture/configs/rcuscale/ver_functions.sh | 2 +-
.../rcutorture/configs/refscale/ver_functions.sh | 2 +-
27 files changed, 334 insertions(+), 276 deletions(-)
delete mode 100755 tools/testing/selftests/rcutorture/bin/kvm-check-branches.sh
create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/NOCB01
create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/NOCB01.boot
create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/NOCB02
create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/NOCB02.boot
create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL-PREEMPT
create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL-PREEMPT.boot

--
Joel Fernandes