]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commit - kernel/rcu/tree_exp.h
rcu: Make expedited grace periods recheck dyntick idle state
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 11 Oct 2016 13:09:59 +0000 (06:09 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 14 Nov 2016 18:46:31 +0000 (10:46 -0800)
commit0742ac3e2f9f4b8a3a394a270d8685078837662b
tree6dfbe100d17a13adb28bc6f068dfda0afab91a09
parentd0af39e89ec59fe7c92c4bcbc2d652ea4c0ee644
rcu: Make expedited grace periods recheck dyntick idle state

Expedited grace periods check dyntick-idle state, and avoid sending
IPIs to idle CPUs, including those running guest OSes, and, on NOHZ_FULL
kernels, nohz_full CPUs.  However, the kernel has been observed checking
a CPU while it was non-idle, but sending the IPI after it has gone
idle.  This commit therefore rechecks idle state immediately before
sending the IPI, refraining from IPIing CPUs that have since gone idle.

Reported-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcu/tree.h
kernel/rcu/tree_exp.h