summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/irqinit.c
diff options
context:
space:
mode:
authorWincy Van <fanwenyi0529@gmail.com>2017-04-28 07:13:58 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2017-07-26 18:57:45 +0200
commit210f84b0ca7743f3b2a9acfae81df668dbbb6a12 (patch)
treecbdb0e68d0a15c84d792bce7b1cc2ca6ba2fd50c /arch/x86/kernel/irqinit.c
parentKVM: x86: do mask out upper bits of PAE CR3 (diff)
downloadlinux-210f84b0ca7743f3b2a9acfae81df668dbbb6a12.tar.xz
linux-210f84b0ca7743f3b2a9acfae81df668dbbb6a12.zip
x86: irq: Define a global vector for nested posted interrupts
We are using the same vector for nested/non-nested posted interrupts delivery, this may cause interrupts latency in L1 since we can't kick the L2 vcpu out of vmx-nonroot mode. This patch introduces a new vector which is only for nested posted interrupts to solve the problems above. Signed-off-by: Wincy Van <fanwenyi0529@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kernel/irqinit.c')
-rw-r--r--arch/x86/kernel/irqinit.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kernel/irqinit.c b/arch/x86/kernel/irqinit.c
index 7468c6987547..c7fd18526c3e 100644
--- a/arch/x86/kernel/irqinit.c
+++ b/arch/x86/kernel/irqinit.c
@@ -150,6 +150,8 @@ static void __init apic_intr_init(void)
alloc_intr_gate(POSTED_INTR_VECTOR, kvm_posted_intr_ipi);
/* IPI for KVM to deliver interrupt to wake up tasks */
alloc_intr_gate(POSTED_INTR_WAKEUP_VECTOR, kvm_posted_intr_wakeup_ipi);
+ /* IPI for KVM to deliver nested posted interrupt */
+ alloc_intr_gate(POSTED_INTR_NESTED_VECTOR, kvm_posted_intr_nested_ipi);
#endif
/* IPI vectors for APIC spurious and error interrupts */