[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v11 1/6] passthrough: don't migrate pirq when it is delivered through VT-d PI
On Fri, Mar 31, 2017 at 01:28:02PM +0800, Tian, Kevin wrote: >> From: Chao Gao >> Sent: Wednesday, March 29, 2017 1:12 PM >> >> When a vCPU migrated to another pCPU, pt irqs binded to this vCPU also >> needed migration. When VT-d PI is enabled, interrupt vector will be recorded >> to a main memory resident data-structure and a notification whose >> destination is decided by NDST is generated. NDST is properly adjusted >> during vCPU migration so pirq directly injected to guest needn't be migrated. >> >> This patch adds a indicator, @posted, to show whether the pt irq is delivered >> through VT-d PI. >> >> Signed-off-by: Chao Gao <chao.gao@xxxxxxxxx> >> >> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index >> 0282986..2d8de16 100644 >> --- a/xen/arch/x86/hvm/hvm.c >> +++ b/xen/arch/x86/hvm/hvm.c >> @@ -438,6 +438,9 @@ static int hvm_migrate_pirq(struct domain *d, struct >> hvm_pirq_dpci *pirq_dpci, >> struct vcpu *v = arg; >> >> if ( (pirq_dpci->flags & HVM_IRQ_DPCI_MACH_MSI) && >> + (pirq_dpci->flags & HVM_IRQ_DPCI_GUEST_MSI) && >> + /* Needn't migrate pirq if this pirq is delivered to guest >> directly.*/ >> + (!pirq_dpci->gmsi.posted) && >> (pirq_dpci->gmsi.dest_vcpu_id == v->vcpu_id) ) > >simply looking at above change it's more than what you intend to change. >Previously even w/o GUEST_MSI flag will fall into that path, but now >you limit it to only GUEST_MSI and irq remapping (i.e. changed the >behavior for both posted case and w/o GUEST_MSI case). I haven't looked >whether MACH_MASI always set with GUEST_MSI, but my gut-feeling >looks not correct here. Yes. It's a problem. I think the original code may be wrong for it acquires gmsi.dest_vcpu_id without checking 'flags' of pirq_dpci. Do we need to migrate pirq when its type is GUEST_PCI? Thanks Chao _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |