Are you going to send the patch that removes non working PIT interrupt redirection hack, or should I do it? On Mon, Dec 10, 2012 at 03:20:37PM +0800, Yang Zhang wrote: > From: Yang Zhang <yang.z.zhang@xxxxxxxxx> > > 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. > > Please refer to Intel SDM volume 3, chapter 29 for more details. > > Changes v4 to v5: > * Set eoi exit bitmap when an interrupt has notifier registered. > * Use request to track ioapic entry's modification. > * Rebased on top of KVM upstream. > > Changes v3 to v4: > * use one option to control both register virtualization and virtual interrupt > delivery. > * Update eoi exit bitmap when programing ioapic or programing apic's id/dfr/ldr. > * Rebased on top of KVM upstream. > > Changes v2 to v3: > * Drop Posted Interrupt patch from v3. > According Gleb's suggestion, we will use global vector for all VCPUs as notification > event vector. So we will rewrite the Posted Interrupt patch. And resend it later. > * Use TMR to set the eoi exiting bitmap. We only want to set eoi exiting bitmap for > those interrupt which is level trigger or has notifier in EOI write path. So TMR is > enough to distinguish the interrupt trigger mode. > * Simplify some code according Gleb's comments. > * rebased on top of KVM upstream. > > 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 (3): > x86, apicv: add APICv register virtualization support > x86, apicv: add virtual interrupt delivery support > x86, apicv: add virtual x2apic support > > arch/ia64/kvm/lapic.h | 6 ++ > arch/x86/include/asm/kvm_host.h | 5 + > arch/x86/include/asm/vmx.h | 13 +++ > arch/x86/kvm/irq.c | 76 ++++++++++++---- > arch/x86/kvm/lapic.c | 114 +++++++++++++++++++++-- > arch/x86/kvm/lapic.h | 11 +++ > arch/x86/kvm/svm.c | 25 +++++ > arch/x86/kvm/vmx.c | 191 +++++++++++++++++++++++++++++++++++++-- > arch/x86/kvm/x86.c | 18 +++-- > include/linux/kvm_host.h | 2 + > virt/kvm/ioapic.c | 35 +++++++ > virt/kvm/ioapic.h | 1 + > virt/kvm/irq_comm.c | 18 ++++ > 13 files changed, 474 insertions(+), 41 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 -- Gleb. -- 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