[PATCH v2 0/6] x86, apicv: Add APIC virtualizatin support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux