[PATCH 0/7] Allow call_{s,}rcu() from NMI and BPF environments
From: Paul E. McKenney
Date: Fri Sep 18 2026 - 20:35:37 EST
Hello!
This series enables call_rcu() and call_srcu() to be invoked in NMI
handlers and from BPF programs attached to these functions. The
individual patches are as follows:
1. Make call_rcu() safe to call from any context, courtesy of
Puranjay Mohan.
2. Make Tiny call_rcu() safe to call from any context, courtesy of
Puranjay Mohan.
3. Make call_srcu() safe to call from any context, courtesy of
Puranjay Mohan.
4. Make Tiny call_srcu() safe to call from any context, courtesy
of Puranjay Mohan.
5. Disable fragile readers during overload testing.
6. Exercise ->call() from NMI context, courtesy of Puranjay Mohan.
7. Add a call_srcu() re-entry reproducer, courtesy of Puranjay Mohan.
Thanx, Paul
------------------------------------------------------------------------
b/Documentation/admin-guide/kernel-parameters.txt | 7
b/include/linux/srcutiny.h | 12 -
b/include/linux/srcutree.h | 4
b/kernel/rcu/Kconfig | 6
b/kernel/rcu/rcu.h | 11 +
b/kernel/rcu/rcutorture.c | 8
b/kernel/rcu/srcutiny.c | 93 ++++++++-
b/kernel/rcu/srcutree.c | 170 ++++++++++++++++-
b/kernel/rcu/tiny.c | 127 ++++++++++--
b/kernel/rcu/tree.c | 131 ++++++++++++-
b/kernel/rcu/tree.h | 6
b/tools/testing/selftests/bpf/prog_tests/rcu_reentry.c | 93 +++++++++
b/tools/testing/selftests/bpf/progs/rcu_reentry.c | 51 +++++
kernel/rcu/rcu.h | 3
kernel/rcu/rcutorture.c | 150 ++++++++++++++-
kernel/rcu/tree.c | 2
16 files changed, 824 insertions(+), 50 deletions(-)