]> git.ipfire.org Git - thirdparty/linux.git/commit
rcu/nocb: Remove dead callback overload handling
authorJoel Fernandes <joelagnelf@nvidia.com>
Fri, 23 Jan 2026 14:30:22 +0000 (09:30 -0500)
committerBoqun Feng <boqun.feng@gmail.com>
Fri, 23 Jan 2026 19:12:25 +0000 (11:12 -0800)
commitb11c1efa7ffedbb3e880d31370d2cb37394ef9f4
treef0ee134a5e8f8af7e4c26882d913d00883f7011c
parentd92eca60fea944b2e9272603308a0fde8b6ae447
rcu/nocb: Remove dead callback overload handling

During callback overload (exceeding qhimark), the NOCB code attempts
opportunistic advancement via rcu_advance_cbs_nowake(). Analysis shows
this code path is practically unreachable and serves no useful purpose.

Testing with 300,000 callback floods showed:
- 30 overload conditions triggered
- 0 advancements actually occurred

While a theoretical window exists where this code could execute (e.g.,
vCPU preemption between gp_seq update and rcu_nocb_gp_cleanup()), even
if it did, the advancement would be redundant. The rcuog kthread must
still run to wake the rcuoc callback thread - we would just be
duplicating work that rcuog will perform when it finally gets to run.

Since this path provides no meaningful benefit and extensive testing
confirms it is never useful, remove it entirely.

Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
kernel/rcu/tree_nocb.h