Gleb Natapov wrote on 2012-12-11: > Are you going to send the patch that removes non working PIT interrupt > redirection hack, or should I do it? Sure. I will 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. Best regards, Yang -- 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