APIC virtualization is a new feature which can eliminate most of VM exit when vcpu handle a interrupt: APIC register virtualization: APIC read access doesn't cause APIC-access VM exits. APIC write becomes trap-like. Virtual interrupt delivery: Virtual interrupt delivery avoids KVM to inject vAPIC interrupts manually, which is fully taken care of by the hardware. Posted Interrupt: Posted Interrupt allows vAPICV interrupts to inject into guest directly without cause VM exit Please refer to Intel SDM volume 3, chapter 29 for more details. Changes v1 to v2: * Add Posted Interrupt support in this series patch. * Since there is a notifer hook in vAPIC EOI for PIT interrupt. So always Set PIT interrupt in eoi exit bitmap to force vmexit when EOI to interrupt. * Rebased on top of KVM upstream Yang Zhang (6): x86: PIT connects to pin 2 of IOAPIC x86, apicv: add APICv register virtualization support x86, apicv: add virtual interrupt delivery support x86, apicv: add virtual x2apic support x86: Enable ack interrupt on vmexit x86, apicv: Add Posted Interrupt supporting arch/x86/include/asm/kvm_host.h | 7 + arch/x86/include/asm/vmx.h | 17 ++ arch/x86/kernel/apic/io_apic.c | 138 +++++++++++++ arch/x86/kvm/irq.c | 44 ++++ arch/x86/kvm/lapic.c | 91 ++++++++- arch/x86/kvm/lapic.h | 23 ++ arch/x86/kvm/svm.c | 6 + arch/x86/kvm/vmx.c | 420 +++++++++++++++++++++++++++++++++++++-- arch/x86/kvm/x86.c | 18 ++- include/linux/kvm_host.h | 1 + virt/kvm/ioapic.c | 3 +- virt/kvm/kvm_main.c | 2 + 12 files changed, 749 insertions(+), 21 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html