]> git.baikalelectronics.ru Git - 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)
commit6172a0ffc9e62f81a3fce5ad55a42b8c3a3c5c41
tree2b353e5078dbf4b377b776924771983cb70fbb77
parent7ff370bb32d7506bb6f1c1959ef0f657ad5ad776
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