linux/drivers/kvm
Dor Laor c1150d8cf9 [PATCH] KVM: Improve interrupt response
The current interrupt injection mechanism might delay an interrupt under
the following circumstances:

 - if injection fails because the guest is not interruptible (rflags.IF clear,
   or after a 'mov ss' or 'sti' instruction).  Userspace can check rflags,
   but the other cases or not testable under the current API.
 - if injection fails because of a fault during delivery.  This probably
   never happens under normal guests.
 - if injection fails due to a physical interrupt causing a vmexit so that
   it can be handled by the host.

In all cases the guest proceeds without processing the interrupt, reducing
the interactive feel and interrupt throughput of the guest.

This patch fixes the situation by allowing userspace to request an exit
when the 'interrupt window' opens, so that it can re-inject the interrupt
at the right time.  Guest interactivity is very visibly improved.

Signed-off-by: Dor Laor <dor.laor@qumranet.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2007-01-05 23:55:22 -08:00
..
Kconfig [PATCH] KVM: Put KVM in a new Virtualization menu 2006-12-13 09:05:46 -08:00
kvm.h [PATCH] KVM: Improve interrupt response 2007-01-05 23:55:22 -08:00
kvm_main.c [PATCH] KVM: Improve interrupt response 2007-01-05 23:55:22 -08:00
kvm_svm.h [PATCH] KVM: Replace __x86_64__ with CONFIG_X86_64 2006-12-13 09:05:46 -08:00
kvm_vmx.h [PATCH] KVM: Replace __x86_64__ with CONFIG_X86_64 2006-12-13 09:05:46 -08:00
Makefile [PATCH] kvm: userspace interface 2006-12-10 09:57:22 -08:00
mmu.c [PATCH] kvm: fix GFP_KERNEL allocation in atomic section in kvm_dev_ioctl_create_vcpu() 2006-12-30 10:56:44 -08:00
paging_tmpl.h [PATCH] KVM: Simplify is_long_mode() 2006-12-30 10:56:44 -08:00
segment_descriptor.h [PATCH] kvm: userspace interface 2006-12-10 09:57:22 -08:00
svm.c [PATCH] KVM: Improve interrupt response 2007-01-05 23:55:22 -08:00
svm.h [PATCH] kvm: userspace interface 2006-12-10 09:57:22 -08:00
vmx.c [PATCH] KVM: Improve interrupt response 2007-01-05 23:55:22 -08:00
vmx.h [PATCH] KVM: Rename some msrs 2006-12-30 10:56:44 -08:00
x86_emulate.c [PATCH] KVM: Replace __x86_64__ with CONFIG_X86_64 2006-12-13 09:05:46 -08:00
x86_emulate.h [PATCH] KVM: Replace __x86_64__ with CONFIG_X86_64 2006-12-13 09:05:46 -08:00