srcu: Only accelerate on enqueue time
authorFrederic Weisbecker <frederic@kernel.org>
Tue, 3 Oct 2023 23:29:00 +0000 (01:29 +0200)
committerFrederic Weisbecker <frederic@kernel.org>
Fri, 13 Oct 2023 12:00:54 +0000 (14:00 +0200)
commit8a77f38bcd28d3c22ab7dd8eff3f299d43c00411
tree2a1b58c46820307e6efcb2ee2b402f3e990d57d9
parent4a8e65b0c348e42107c64381e692e282900be361
srcu: Only accelerate on enqueue time

Acceleration in SRCU happens on enqueue time for each new callback. This
operation is expected not to fail and therefore any similar attempt
from other places shouldn't find any remaining callbacks to accelerate.

Moreover accelerations performed beyond enqueue time are error prone
because rcu_seq_snap() then may return the snapshot for a new grace
period that is not going to be started.

Remove these dangerous and needless accelerations and introduce instead
assertions reporting leaking unaccelerated callbacks beyond enqueue
time.

Co-developed-by: Yong He <alexyonghe@tencent.com>
Signed-off-by: Yong He <alexyonghe@tencent.com>
Co-developed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Co-developed-by: Neeraj upadhyay <Neeraj.Upadhyay@amd.com>
Signed-off-by: Neeraj upadhyay <Neeraj.Upadhyay@amd.com>
Reviewed-by: Like Xu <likexu@tencent.com>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
kernel/rcu/srcutree.c