[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(-)