Hi Linus,
Once the merge window opens, please pull the following changes of RCU.
The following changes since commit 8f0b4cce4481fb22653697cced8d0d04027cb1e8:
Linux 6.19-rc1 (2025-12-14 16:05:07 +1200)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux.git
tags/rcu.release.v7.0
for you to fetch changes up to ed062c41dfda2de8d1712c91e089303dae013bb7:
Merge branch 'rcu-nocb.20260123a' (2026-01-23 11:15:36 -0800)
(As you may know, I'm switching away from my gmail, so while this
email is by my @kernel.org, all the commits for the PR are signed-off-by
my gmail, JFYI)
Regards,
Boqun
----------------------------------------------------------------
RCU changes for v7.0
RCU Tasks Trace:
Re-implement RCU tasks trace in term of SRCU-fast, not only more than 500 lines
of code are saved because of the reimplementation, a new set of API,
rcu_read_{,un}lock_tasks_trace(), becomes possible as well. Compared to the
previous rcu_read_{,un}lock_trace(), the new API avoid the task_struct accesses
thanks to the SRCU-fast semantics. As a result, the old
rcu_read{,un}lock_trace() API is now deprecated.
RCU Torture Test:
- Multiple improvements on kvm-series.sh (parallel run and progress showing
metrics)
- Add context checks to rcu_torture_timer().
- Make config2csv.sh properly handle comments in .boot files.
- Include commit discription in testid.txt.
Miscellaneous RCU changes:
- Reduce synchronize_rcu() latency by reporting GP kthread's CPU QS early.
- Use suitable gfp_flags for the init_srcu_struct_nodes().
- Fix rcu_read_unlock() deadloop due to softirq.
- Correctly compute probability to invoke ->exp_current() in rcutorture.
- Make expedited RCU CPU stall warnings detect stall-end races.
RCU nocb:
- Remove unnecessary WakeOvfIsDeferred wake path and callback overload
handling.
- Extract nocb_defer_wakeup_cancel() helper.
----------------------------------------------------------------
Boqun Feng (4):
Merge branch 'rcu-tasks-trace.20260101a'
Merge branch 'rcu-torture.20260104a' into rcu-next
Merge branch 'rcu-misc.20260111a'
Merge branch 'rcu-nocb.20260123a'
Joel Fernandes (6):
rcutorture: Prevent concurrent kvm.sh runs on same source tree
rcutorture: Add --kill-previous option to terminate previous kvm.sh runs
rcu: Reduce synchronize_rcu() latency by reporting GP kthread's CPU QS
early
rcu/nocb: Remove unnecessary WakeOvfIsDeferred wake path
rcu/nocb: Remove dead callback overload handling
rcu/nocb: Extract nocb_defer_wakeup_cancel() helper
Paul E. McKenney (17):
rcu: Re-implement RCU Tasks Trace in terms of SRCU-fast
context_tracking: Remove rcu_task_trace_heavyweight_{enter,exit}()
rcu: Clean up after the SRCU-fastification of RCU Tasks Trace
rcu: Move rcu_tasks_trace_srcu_struct out of #ifdef
CONFIG_TASKS_RCU_GENERIC
rcu: Add noinstr-fast rcu_read_{,un}lock_tasks_trace() APIs
rcu: Update Requirements.rst for RCU Tasks Trace
checkpatch: Deprecate rcu_read_{,un}lock_trace()
srcu: Create an rcu_tasks_trace_expedite_current() function
rcutorture: Test rcu_tasks_trace_expedite_current()
rcutorture: Add context checks to rcu_torture_timer()
torture: Parallelize kvm-series.sh guest-OS execution
torture: Make kvm-series.sh give build numbers and totals
torture: Make kvm-series.sh give run numbers and totals
torture: Make config2csv.sh properly handle comments in .boot files
torture: Include commit discription in testid.txt
rcu: Make expedited RCU CPU stall warnings detect stall-end races
rcutorture: Correctly compute probability to invoke ->exp_current()
Yao Kai (1):
rcu: Fix rcu_read_unlock() deadloop due to softirq
Zqiang (1):
srcu: Use suitable gfp_flags for the init_srcu_struct_nodes()
.../RCU/Design/Requirements/Requirements.rst | 12 +-
Documentation/admin-guide/kernel-parameters.txt | 15 -
include/linux/rcupdate.h | 31 +-
include/linux/rcupdate_trace.h | 166 ++++-
include/linux/sched.h | 6 +-
init/init_task.c | 3 -
kernel/context_tracking.c | 20 -
kernel/fork.c | 3 -
kernel/rcu/Kconfig | 43 +-
kernel/rcu/rcu.h | 9 -
kernel/rcu/rcuscale.c | 7 -
kernel/rcu/rcutorture.c | 10 +-
kernel/rcu/srcutree.c | 2 +-
kernel/rcu/tasks.h | 708 +--------------------
kernel/rcu/tree.c | 14 +-
kernel/rcu/tree.h | 5 +-
kernel/rcu/tree_exp.h | 7 +-
kernel/rcu/tree_nocb.h | 80 +--
kernel/rcu/tree_plugin.h | 15 +-
scripts/checkpatch.pl | 4 +-
tools/testing/selftests/rcutorture/.gitignore | 1 +
.../testing/selftests/rcutorture/bin/config2csv.sh | 2 +-
.../testing/selftests/rcutorture/bin/kvm-series.sh | 184 +++++-
tools/testing/selftests/rcutorture/bin/kvm.sh | 40 ++
tools/testing/selftests/rcutorture/bin/mktestid.sh | 2 +-
.../selftests/rcutorture/configs/rcu/TRACE01 | 1 -
.../selftests/rcutorture/configs/rcu/TRACE02 | 1 -
27 files changed, 459 insertions(+), 932 deletions(-)