]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
rcu: Clear .exp_hint only when deferred quiescent state has been reported
authorLai Jiangshan <laijs@linux.alibaba.com>
Fri, 1 Nov 2019 11:06:22 +0000 (04:06 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Fri, 24 Jan 2020 18:27:33 +0000 (10:27 -0800)
commit2eeba5838fd8c5e19bb91e25624116936348e7af
tree2b353e5078dbf4b377b776924771983cb70fbb77
parentc130d2dc93cd03323494d82dbe7b5fb0d101ab62
rcu: Clear .exp_hint only when deferred quiescent state has been reported

Currently, the .exp_hint flag is cleared in rcu_read_unlock_special(),
which works, but which can also prevent subsequent rcu_read_unlock() calls
from helping expedite the quiescent state needed by an ongoing expedited
RCU grace period.  This commit therefore defers clearing of .exp_hint
from rcu_read_unlock_special() to rcu_preempt_deferred_qs_irqrestore(),
thus ensuring that intervening calls to rcu_read_unlock() have a chance
to help end the expedited grace period.

Signed-off-by: Lai Jiangshan <laijs@linux.alibaba.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
kernel/rcu/tree_plugin.h