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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to