KVM: Don't spin on virt instruction faults during reboot
authorAvi Kivity <avi@redhat.com>
Thu, 2 Dec 2010 15:52:50 +0000 (17:52 +0200)
committerAvi Kivity <avi@redhat.com>
Wed, 12 Jan 2011 09:30:18 +0000 (11:30 +0200)
commitb7c4145ba2eb0717db0ddac1b5f7f48012189c53
tree9b259970f56451ecb0f5d84ecd81d67386f63224
parent4cc703100b1fd97c71804e2fa5c9c377c5b37dc5
KVM: Don't spin on virt instruction faults during reboot

Since vmx blocks INIT signals, we disable virtualization extensions during
reboot.  This leads to virtualization instructions faulting; we trap these
faults and spin while the reboot continues.

Unfortunately spinning on a non-preemptible kernel may block a task that
reboot depends on; this causes the reboot to hang.

Fix by skipping over the instruction and hoping for the best.

Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/include/asm/kvm_host.h
virt/kvm/kvm_main.c