]> git.baikalelectronics.ru Git - kernel.git/commit
rcu: Make offline-CPU checking allow for indefinite delays
authorPaul E. McKenney <paul.mckenney@linaro.org>
Wed, 1 Aug 2012 21:29:20 +0000 (14:29 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sun, 23 Sep 2012 14:42:50 +0000 (07:42 -0700)
commit05044e16f3417e8a4b01fa5fa8f6168f1ee65185
treef65ef1af700610b9e3e59545d2bf13e4cac33876
parent0bb319e86dfee65c588134c39f76a274f8b97840
rcu: Make offline-CPU checking allow for indefinite delays

The rcu_implicit_offline_qs() function implicitly assumed that execution
would progress predictably when interrupts are disabled, which is of course
not guaranteed when running on a hypervisor.  Furthermore, this function
is short, and is called from one place only in a short function.

This commit therefore ensures that the timing is checked before
checking the condition, which guarantees correct behavior even given
indefinite delays.  It also inlines rcu_implicit_offline_qs() into
rcu_implicit_dynticks_qs().

Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
kernel/rcutree.c