From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: Re: Re: APIC rework Date: Tue, 24 Nov 2009 15:35:22 -0800 Message-ID: <4B0C6DBA.8060100@goop.org> References: <706158FABBBA044BAD4FE898A02E4BC201CD3207E0@pdsmsx503.ccr.corp.intel.com> <706158FABBBA044BAD4FE898A02E4BC201CD3A074E@pdsmsx503.ccr.corp.intel.com> <20091124194401.GA29566@phenom.dumpdata.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20091124194401.GA29566@phenom.dumpdata.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Konrad Rzeszutek Wilk Cc: Xen-devel , "Han, Weidong" , Keir Fraser , "Zhang, Xiantao" , "Jiang, Yunhong" List-Id: xen-devel@lists.xenproject.org On 11/24/09 11:44, Konrad Rzeszutek Wilk wrote: >> At least dom0 parses this info from DSDT, so we can't have the assuption whether it is used or not, I think. And I also agree to add a new physdev_op to handle this case, and it should be better way to go. >> Based on this idea, I worked out the patch, attached! In this patch, we introduced a new physdev_op PHYSDEVOP_setup_gsi for each GSI setup, and each domain can require to map each GSI in this case. >> In addition, I believe it is very safe to port the hypervisor patch to xen-3.4-x tree and keeps pv_ops dom0 running on it, since no logic is changed. BTW, I also tested apic and non-apic cases, they works fine after applying the patches. >> > But I don't think you tested PCI front and PCI back. > > Mainly these lines worry me (can you inline the patch next time too, please): > (Inline+attach, or an inline attachment rather than plain inline, is best. Plain inline with quoted-printable encoding is awkward to deal with.) > + map_irq.domid = DOMID_SELF; > + map_irq.type = MAP_PIRQ_TYPE_GSI; > + map_irq.index = gsi; > + map_irq.pirq = irq; > + rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq); > > For PCI passthrough to work, the domid needs to be for the guest domain, while > in this case it is set to Dom0. > > There is already a method of extracting the domain id for PCI devices passed to > the guest. Look in the 'xen_create_msi_irq' function. > Hm, I'm not very keen on having xen_create_msi_irq do its own traversal of xenstore; it should take the domid as a parameter and its caller can do the walk if necessary. The direct call makes too much of a direct dependency between two otherwise unrelated subsystems. J