Hello Linus, When the merge window opens, please pull this RCU update.
The following changes since commit 86731a2a651e58953fc949573895f2fa6d456841: Linux 6.16-rc3 (2025-06-22 13:30:08 -0700) are available in the Git repository at: ssh://g...@gitolite.kernel.org/pub/scm/linux/kernel/git/rcu/linux.git tags/rcu.release.v6.17 for you to fetch changes up to cc1d1365f0f414f6522378867baa997642a7e6b2: Merge branches 'rcu-exp.23.07.2025', 'rcu.22.07.2025', 'torture-scripts.16.07.2025', 'srcu.19.07.2025', 'rcu.nocb.18.07.2025' and 'refscale.07.07.2025' into rcu.merge.23.07.2025 (2025-07-23 21:42:20 +0530) Please note that below patch, which was initially picked for RCU next testing has been removed, as it gave false positives with RCU torture test. https://lore.kernel.org/rcu/20250429134304.3824863-6-frede...@kernel.org/ ---------------------------------------------------------------- RCU pull request for v6.17 This pull request contains the following branches: rcu-exp.23.07.2025 - Protect against early RCU exp quiescent state reporting during exp grace period initialization. - Remove superfluous barrier in task unblock path. - Remove the CPU online quiescent state report optimization, which is error prone for certain scenarios. - Add warning for unexpected pending requested expedited quiescent state on dying CPU. rcu.22.07.2025 - Robustify rcu_is_cpu_rrupt_from_idle() by using more accurate indicators of the actual context tracking state of a CPU. - Handle ->defer_qs_iw_pending field data race. - Enable rcu_normal_wake_from_gp by default on systems with <= 16 CPUs. - Fix lockup in rcu_read_unlock() due to recursive irq_exit() calls. - Refactor expedited handling condition in rcu_read_unlock_special(). - Documentation updates for hotplug and GP init scan ordering, separation of rcu_state and rnp's gp_seq states, quiescent state reporting for offline CPUs. torture-scripts.16.07.2025 - Cleanup and improve scripts : remove superfluous warnings for disabled tests; better handling of kvm.sh --kconfig arg; suppress some confusing diagnostics; tolerate bad kvm.sh args; add new diagnostic for build output; fail allmodconfig testing on warnings. - Include RCU_TORTURE_TEST_CHK_RDR_STATE config for KCSAN kernels. - Disable default RCU-tasks and clocksource-wdog testing on arm64. - Add EXPERT Kconfig option for arm64 KCSAN runs. - Remove SRCU-lite testing. rcutorture.16.07.2025 - Start torture writer threads creation after reader threads to handle race in SRCU-P scenario. - Add SRCU down_read()/up_read() test. - Add diagnostics for delayed SRCU up_read(), unmatched up_read(), print number of up/down readers and the number of such readers which migrated to other CPU. - Ignore certain unsupported configurations for trivial RCU test. - Fix splats in RT kernels due to inaccurate checks for BH-disabled context. - Enable checks and logs to capture intentionally exercised unexpected scenarios (too short readers) for BUSTED test. - Remove SRCU-lite testing. srcu.19.07.2025 - Expedite SRCU-fast grace periods. - Remove SRCU-lite implementation. - Add guards for SRCU-fast readers. rcu.nocb.18.07.2025 - Dump NOCB group leader state on stall detection. - Robustify nocb_cb_kthread pointer accesses. - Fix delayed execution of hurry callbacks when LAZY_RCU is enabled. refscale.07.07.2025 - Fix multiplication overflow in "loops" and "nreaders" calculations. ---------------------------------------------------------------- Artem Sadovnikov (1): refscale: Check that nreaders and loops multiplication doesn't overflow Frederic Weisbecker (6): rcu/exp: Protect against early QS report rcu: Robustify rcu_is_cpu_rrupt_from_idle() rcu/nocb: Dump gp state even if rdp gp itself is not offloaded rcu/exp: Remove confusing needless full barrier on task unblock rcu/exp: Remove needless CPU up quiescent state report rcu/exp: Warn on QS requested on dying CPU Joel Fernandes (5): rcu: Fix rcu_read_unlock() deadloop due to IRQ work rcu: Refactor expedited handling check in rcu_read_unlock_special() rcu: Document GP init vs hotplug-scan ordering requirements rcu: Document separation of rcu_state and rnp's gp_seq rcu: Document concurrent quiescent state reporting for offline CPUs Neeraj Upadhyay (AMD) (1): Merge branches 'rcu-exp.23.07.2025', 'rcu.22.07.2025', 'torture-scripts.16.07.2025', 'srcu.19.07.2025', 'rcu.nocb.18.07.2025' and 'refscale.07.07.2025' into rcu.merge.23.07.2025 Paul E. McKenney (32): rcutorture: Print only one rtort_pipe_count splat rcutorture: Start rcu_torture_writer() after rcu_torture_reader() rcutorture: Make rcutorture_one_extend_check() account for hard IRQs rcutorture: Add tests for SRCU up/down reader primitives rcutorture: Pull rcu_torture_updown() loop body into new function rcutorture: Complain if an ->up_read() is delayed more than 10 seconds rcutorture: Check for ->up_read() without matching ->down_read() rcutorture: Check for no up/down readers at task level rcutorture: Print number of RCU up/down readers and migrations rcutorture: Drop redundant "insoftirq" parameters rcutorture: Make Trivial RCU ignore onoff_interval and shuffle_interval rcutorture: Make BUSTED scenario check and log readers torture: Suppress torture.sh "Zero time" messages for disabled tests torture: Permit multiple space characters in kvm.sh --kconfig argument torture: Make torture.sh KCSAN runs set CONFIG_RCU_TORTURE_TEST_CHK_RDR_STATE=y torture: Default --no-rcutasksflavors on arm64 torture: Default --no-clocksourcewd on arm64 rcu: Protect ->defer_qs_iw_pending from data race torture: Provide EXPERT Kconfig option for arm64 KCSAN torture.sh runs torture: Suppress "find" diagnostics from torture.sh --do-none run torture: Extract testid.txt generation to separate script torture: Add textid.txt file to --do-allmodconfig and --do-rcu-rust runs torture: Make torture.sh tolerate runs having bad kvm.sh arguments torture: Add "ERROR" diagnostic for testing kernel-build output torture: Make torture.sh --allmodconfig testing fail on warnings torture: Remove support for SRCU-lite rcutorture: Remove SRCU-lite scenarios rcutorture: Remove support for SRCU-lite srcu: Expedite SRCU-fast grace periods srcu: Remove SRCU-lite implementation checkpatch: Remove SRCU-lite deprecation srcu: Add guards for SRCU-fast readers Tze-nan Wu (1): rcu: Fix delayed execution of hurry callbacks Uladzislau Rezki (Sony) (2): rcu: Enable rcu_normal_wake_from_gp on small systems Documentation/kernel-parameters: Update rcu_normal_wake_from_gp doc Zqiang (2): rcutorture: Fix rcutorture_one_extend_check() splat in RT kernels rcu/nocb: Fix possible invalid rdp's->nocb_cb_kthread pointer access Documentation/RCU/Design/Data-Structures/Data-Structures.rst | 33 ++++++ Documentation/RCU/Design/Requirements/Requirements.rst | 128 +++++++++++++++++++++++ Documentation/admin-guide/kernel-parameters.txt | 3 +- include/linux/srcu.h | 54 ++-------- include/linux/srcutiny.h | 3 - include/linux/srcutree.h | 38 ------- kernel/rcu/rcutorture.c | 356 +++++++++++++++++++++++++++++++++++++++++++++++++++++----------- kernel/rcu/refscale.c | 42 ++------ kernel/rcu/srcutree.c | 2 + kernel/rcu/tree.c | 80 ++++++++++++--- kernel/rcu/tree.h | 13 ++- kernel/rcu/tree_exp.h | 59 ++--------- kernel/rcu/tree_nocb.h | 10 +- kernel/rcu/tree_plugin.h | 122 ++++++++++++++++++---- kernel/rcu/tree_stall.h | 3 +- scripts/checkpatch.pl | 2 - tools/testing/selftests/rcutorture/bin/kvm-build.sh | 2 +- tools/testing/selftests/rcutorture/bin/kvm.sh | 15 +-- tools/testing/selftests/rcutorture/bin/mktestid.sh | 29 ++++++ tools/testing/selftests/rcutorture/bin/torture.sh | 78 +++++++++++--- tools/testing/selftests/rcutorture/configs/rcu/BUSTED | 3 + tools/testing/selftests/rcutorture/configs/rcu/CFLIST | 1 - tools/testing/selftests/rcutorture/configs/rcu/SRCU-L | 10 -- tools/testing/selftests/rcutorture/configs/rcu/SRCU-L.boot | 3 - 24 files changed, 770 insertions(+), 319 deletions(-) create mode 100755 tools/testing/selftests/rcutorture/bin/mktestid.sh delete mode 100644 tools/testing/selftests/rcutorture/configs/rcu/SRCU-L delete mode 100644 tools/testing/selftests/rcutorture/configs/rcu/SRCU-L.boot