rcu/exp: Warn on QS requested on dying CPU
authorFrederic Weisbecker <frederic@kernel.org>
Tue, 29 Apr 2025 13:43:03 +0000 (15:43 +0200)
committerNeeraj Upadhyay (AMD) <neeraj.upadhyay@kernel.org>
Tue, 8 Jul 2025 17:51:13 +0000 (23:21 +0530)
commitfc39760cd0f432cd399a209c43dcb887fffdb6dc
tree8c1888031c24a736efa0011688ff4d21bd29e464
parentbf0a57445d3fddfb47046aeccf4f5cb938a4e996
rcu/exp: Warn on QS requested on dying CPU

It is not possible to send an IPI to a dying CPU that has passed the
CPUHP_TEARDOWN_CPU stage. Remaining unhandled IPIs are handled later at
CPUHP_AP_SMPCFD_DYING stage by stop machine. This is the last
opportunity for RCU exp handler to request an expedited quiescent state.
And the upcoming final context switch between stop machine and idle must
have reported the requested context switch.

Therefore, it should not be possible to observe a pending requested
expedited quiescent state when RCU finally stops watching the outgoing
CPU. Once IPIs aren't possible anymore, the QS for the target CPU will
be reported on its behalf by the RCU exp kworker.

Provide an assertion to verify those expectations.

Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com>
Signed-off-by: Neeraj Upadhyay (AMD) <neeraj.upadhyay@kernel.org>
kernel/rcu/tree.c