aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2008-11-23 18:08:57 +0200
committerAvi Kivity <avi@redhat.com>2008-12-31 16:55:00 +0200
commitdf203ec9a77a7236cb90456664d714423b98a977 (patch)
treefc86d8072405aa5c196880fc0b328dacbd8d3a6e
parentKVM: ia64: Clean up vmm_ivt.S using tab to indent every line (diff)
downloadlinux-dev-df203ec9a77a7236cb90456664d714423b98a977.tar.xz
linux-dev-df203ec9a77a7236cb90456664d714423b98a977.zip
KVM: VMX: Conditionally request interrupt window after injecting irq
If we're injecting an interrupt, and another one is pending, request an interrupt window notification so we don't have excess latency on the second interrupt. This shouldn't happen in practice since an EOI will be issued, giving a second chance to request an interrupt window, but... Signed-off-by: Avi Kivity <avi@redhat.com>
-rw-r--r--arch/x86/kvm/vmx.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index f5958a7823f4..7ea485543cf8 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -3304,6 +3304,8 @@ static void vmx_intr_assist(struct kvm_vcpu *vcpu)
if (vcpu->arch.interrupt.pending) {
vmx_inject_irq(vcpu, vcpu->arch.interrupt.nr);
kvm_timer_intr_post(vcpu, vcpu->arch.interrupt.nr);
+ if (kvm_cpu_has_interrupt(vcpu))
+ enable_irq_window(vcpu);
}
}