linux-stable/arch/x86/kvm
Avi Kivity 577bdc4966 KVM: Avoid instruction emulation when event delivery is pending
When an event (such as an interrupt) is injected, and the stack is
shadowed (and therefore write protected), the guest will exit.  The
current code will see that the stack is shadowed and emulate a few
instructions, each time postponing the injection.  Eventually the
injection may succeed, but at that time the guest may be unwilling
to accept the interrupt (for example, the TPR may have changed).

This occurs every once in a while during a Windows 2008 boot.

Fix by unshadowing the fault address if the fault was due to an event
injection.

Signed-off-by: Avi Kivity <avi@qumranet.com>
2008-07-27 11:34:10 +03:00
..
i8254.c KVM: only abort guest entry if timer count goes from 0->1 2008-07-20 12:42:32 +03:00
i8254.h KVM: Add reset support for in kernel PIT 2008-04-27 12:00:23 +03:00
i8259.c KVM: check injected pic irq within valid pic irqs 2008-07-20 12:42:39 +03:00
irq.c KVM: migrate PIT timer 2008-06-06 21:25:51 +03:00
irq.h KVM: check injected pic irq within valid pic irqs 2008-07-20 12:42:39 +03:00
Kconfig KVM: Add kvm trace userspace interface 2008-04-27 12:01:22 +03:00
kvm_svm.h KVM: SVM: allocate the MSR permission map per VCPU 2008-04-27 11:53:21 +03:00
lapic.c KVM: only abort guest entry if timer count goes from 0->1 2008-07-20 12:42:32 +03:00
lapic.h KVM: add statics were possible, function definition in lapic.h 2008-07-20 12:40:46 +03:00
Makefile KVM: Add coalesced MMIO support (x86 part) 2008-07-20 12:42:31 +03:00
mmu.c KVM: Avoid instruction emulation when event delivery is pending 2008-07-27 11:34:10 +03:00
mmu.h KVM: MMU: Fix false flooding when a pte points to page table 2008-07-20 12:40:50 +03:00
paging_tmpl.h KVM: MMU: Optimize prefetch_page() 2008-07-20 12:42:28 +03:00
svm.c KVM: Avoid instruction emulation when event delivery is pending 2008-07-27 11:34:10 +03:00
svm.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
tss.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
vmx.c KVM: Avoid instruction emulation when event delivery is pending 2008-07-27 11:34:10 +03:00
vmx.h KVM: VMX: Enable NMI with in-kernel irqchip 2008-07-20 12:42:26 +03:00
x86.c KVM: task switch: use seg regs provided by subarch instead of reading from GDT 2008-07-27 11:34:09 +03:00
x86_emulate.c KVM: x86 emulator: emulate clflush 2008-07-20 12:42:40 +03:00