There is currently no easy way to monitor how many RCU callbacks are pending system-wide. The existing trace points provide per-event data but require active tracing, which makes them awkward for fleet-wide monitoring. Knowing the depth and stage of pending callbacks helps admins reason about RCU health, gives an indirect signal of memory held back by RCU, and is useful when tuning RCU parameters.
This series adds a debugfs file at: /sys/kernel/debug/rcu/pending_cbs that reports per-CPU pending callback counts with a "total" row. Patch 1 introduces the file with per-CPU columns for each segcblist segment (done, wait, next_ready, next) plus a "lazy" column. Patch 2 extends the file with a "kfree_rcu" column reporting objects queued in the batched kfree_rcu()/kvfree_rcu() path (CONFIG_KVFREE_RCU_BATCHED), which has its own per-CPU queues outside the main segmented callback list. Signed-off-by: Gustavo Luiz Duarte <[email protected]> --- Gustavo Luiz Duarte (2): rcu: Expose per-CPU segmented callback counts via debugfs rcu: Include kfree_rcu/kvfree_rcu batched counts in pending_cbs kernel/rcu/rcu.h | 1 + kernel/rcu/tree_stall.h | 72 +++++++++++++++++++++++++++++++++++++++++++++++++ mm/slab_common.c | 18 +++++++++++++ 3 files changed, 91 insertions(+) --- base-commit: 8ab992f815d6736b5c7a6f5fd7bfe7bc106bb3dc change-id: 20260318-rcu-pending-cbs-stats-f72f5ca03415 Best regards, -- Gustavo Luiz Duarte <[email protected]>

