From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gleb Natapov Subject: Re: [PATCH v10 0/7] KVM: VMX: Add Posted Interrupt supporting Date: Sun, 14 Apr 2013 12:40:00 +0300 Message-ID: <20130414094000.GH17919@redhat.com> References: <1365679516-13125-1-git-send-email-yang.z.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: kvm@vger.kernel.org, mtosatti@redhat.com, xiantao.zhang@intel.com, jun.nakajima@intel.com To: Yang Zhang Return-path: Received: from mx1.redhat.com ([209.132.183.28]:12740 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750931Ab3DNKYG (ORCPT ); Sun, 14 Apr 2013 06:24:06 -0400 Content-Disposition: inline In-Reply-To: <1365679516-13125-1-git-send-email-yang.z.zhang@intel.com> Sender: kvm-owner@vger.kernel.org List-ID: On Thu, Apr 11, 2013 at 07:25:09PM +0800, Yang Zhang wrote: > From: Yang Zhang > > 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 > 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.