entry/kvm: Explicitly flush pending rcuog wakeup before last rescheduling point
authorFrederic Weisbecker <frederic@kernel.org>
Sun, 31 Jan 2021 23:05:48 +0000 (00:05 +0100)
committerIngo Molnar <mingo@kernel.org>
Wed, 17 Feb 2021 13:12:43 +0000 (14:12 +0100)
commit4ae7dc97f726ea95c58ac58af71cc034ad22d7de
treeebd8b482fb64fbe9adc8767532909487eb311f29
parent47b8ff194c1fd73d58dc339b597d466fe48c8958
entry/kvm: Explicitly flush pending rcuog wakeup before last rescheduling point

Following the idle loop model, cleanly check for pending rcuog wakeup
before the last rescheduling point upon resuming to guest mode. This
way we can avoid to do it from rcu_user_enter() with the last resort
self-IPI hack that enforces rescheduling.

Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/20210131230548.32970-6-frederic@kernel.org
arch/x86/kvm/x86.c
include/linux/entry-kvm.h
kernel/rcu/tree.c
kernel/rcu/tree_plugin.h