KVM: ensure async PF event wakes up vcpu from halt
authorGleb Natapov <gleb@redhat.com>
Thu, 3 May 2012 08:36:39 +0000 (11:36 +0300)
committerAvi Kivity <avi@redhat.com>
Sun, 6 May 2012 11:56:54 +0000 (14:56 +0300)
commita4fa16353108431e7cfdfc3ecf683bac21b50755
treea6d8b41f8873b8d7bfe30c33d08e71a11d19b173
parent95f714727436836bb46236ce2bcd8ee8f9274aed
KVM: ensure async PF event wakes up vcpu from halt

If vcpu executes hlt instruction while async PF is waiting to be delivered
vcpu can block and deliver async PF only after another even wakes it
up. This happens because kvm_check_async_pf_completion() will remove
completion event from vcpu->async_pf.done before entering kvm_vcpu_block()
and this will make kvm_arch_vcpu_runnable() return false. The solution
is to make vcpu runnable when processing completion.

Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/x86.c