On Thu, Apr 11, 2013 at 07:25:09PM +0800, Yang Zhang wrote: > From: Yang Zhang <yang.z.zhang@xxxxxxxxx> > > The follwoing patches are adding the Posted Interrupt supporting to KVM: > The first patch enables the feature 'acknowledge interrupt on vmexit'.Since > it is required by Posted interrupt, we need to enable it firstly. > > And the subsequent patches are adding the posted interrupt supporting: > Posted Interrupt allows APIC interrupts to inject into guest directly > without any vmexit. > > - When delivering a interrupt to guest, if target vcpu is running, > update Posted-interrupt requests bitmap and send a notification event > to the vcpu. Then the vcpu will handle this interrupt automatically, > without any software involvemnt. > > - If target vcpu is not running or there already a notification event > pending in the vcpu, do nothing. The interrupt will be handled by > next vm entry > Reviewed-by: Gleb Natapov <gleb@xxxxxxxxxx> > Changes from v9 to v10: > * Only check kvm_apic_hw_enable() in vcpu_sacn_ioapic(). > * Remove repeated tracing in __apic_accept_irq(). > * Rebase on top of KVM upstream + RTC eoi tracking patch. > > Changes from v8 to v9: > * Add tracing in PI case when deliver interrupt. > * Scan ioapic when updating SPIV register. > * Rebase on top of KVM upstream + RTC eoi tracking patch. > > Changes from v7 to v8: > * Remove unused memeber 'on' from struct pi_desc. > * Register a dummy function to sync_pir_to_irr is apicv is disabled. > * Minor fixup. > * Rebase on top of KVM upstream + RTC eoi tracking patch. > > Yang Zhang (7): > KVM: VMX: Enable acknowledge interupt on vmexit > KVM: VMX: Register a new IPI for posted interrupt > KVM: VMX: Check the posted interrupt capability > KVM: Call common update function when ioapic entry changed. > KVM: Set TMR when programming ioapic entry > KVM: VMX: Add the algorithm of deliver posted interrupt > KVM: VMX: Use posted interrupt to deliver virtual interrupt > > arch/ia64/kvm/lapic.h | 6 - > arch/x86/include/asm/entry_arch.h | 4 + > arch/x86/include/asm/hardirq.h | 3 + > arch/x86/include/asm/hw_irq.h | 1 + > arch/x86/include/asm/irq_vectors.h | 5 + > arch/x86/include/asm/kvm_host.h | 3 + > arch/x86/include/asm/vmx.h | 4 + > arch/x86/kernel/entry_64.S | 5 + > arch/x86/kernel/irq.c | 22 ++++ > arch/x86/kernel/irqinit.c | 4 + > arch/x86/kvm/lapic.c | 58 +++++++--- > arch/x86/kvm/lapic.h | 2 + > arch/x86/kvm/svm.c | 12 ++ > arch/x86/kvm/vmx.c | 207 +++++++++++++++++++++++++++++++----- > arch/x86/kvm/x86.c | 19 +++- > include/linux/kvm_host.h | 4 +- > virt/kvm/ioapic.c | 32 ++++-- > virt/kvm/ioapic.h | 7 +- > virt/kvm/irq_comm.c | 4 +- > virt/kvm/kvm_main.c | 5 +- > 20 files changed, 333 insertions(+), 74 deletions(-) -- 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