[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] VT-d: improve RMRR validity checking



On Wed, 2010-03-10 at 12:25 +0800, Weidong Han wrote:
> Alex Williamson wrote:
> > On Wed, 2010-03-10 at 11:28 +0800, Weidong Han wrote:
> >   
> >> Alex Williamson wrote:
> >>     
> >>> On Wed, 2010-03-10 at 10:40 +0800, Weidong Han wrote:
> >>>   
> >>>       
> >>>> Alex Williamson wrote:
> >>>>     
> >>>>         
> >>>>> I have a system with what I consider to be a valid DRHD that's getting
> >>>>> tripped up on this patch.  The problem is that the DRHD includes an
> >>>>> IOAPIC scope, where the IOAPIC is not materialized on the PCI bus.  I
> >>>>> think Xen is being overzealous in it's validity checking and that this
> >>>>> is a valid configuration.  What do others think?  Are IOAPICs a
> >>>>> special case that we can allow to be non-existent on the PCI bus?
> >>>>>   
> >>>>>       
> >>>>>           
> >>>> Yes, IOAPIC can be not pci-discoverable. IOAPICs are only reported in 
> >>>> the "Include_all" DRHD, and our patch won't check if the device is 
> >>>> pci-discoverable or not for the "Include_all" DRHD. So I think the patch 
> >>>> is no problem unless IOAPIC is not included in the "Include_all" DRHD. 
> >>>> Can you post your boot logs?
> >>>>     
> >>>>         
> >>> Weidong,
> >>>
> >>> That's a very subtle restriction, and I'm not sure how it works in
> >>> practice.  If I have a multi-IOH system, each with VT-d hardware, each
> >>> supporting interrupt remapping, each with one or more IOAPICs below
> >>> them, how can interrupt remapping work if we can only associate an
> >>> IOAPIC with the "include all" DRHD?  I'm confused.  Thanks,
> >>>   
> >>>       
> >> Each IOH will have one "include all" DRHD which reports IOAPICs for each 
> >> IOH.
> >>     
> >
> > Wouldn't that imply multiple PCI segments?  The configuration I'm
> > looking at has multiple IOHs, all on the same PCI segment.  By my
> > reading of the spec, we're only allowed to declare INCLUDE_PCI_ALL for
> > one DRHD within the segment.  Am I incorrect?  Thanks,
> >   
> 
> Currently multiple PCI segments are not supported in Xen yet. So you 
> encounter issue on multiple PCI segment system. We will support it after 
> xen 4.0.


Which is exactly why we have multiple IOHs on the *same* PCI segment on
this system.  How is it possible to support multiple IOHs, all on the
same PCI segment, each with VT-d hardware with interrupt remapping
support, each with one or more IOAPICs below them given the current
code?  We cannot list the IOAPICs only under the INCLUDE_PCI_ALL DRHD
because that wouldn't provide the right information in the right place
for interrupt remapping on the other DRHDs.  We cannot specify
INCLUDE_PCI_ALL on all of the DRHDs because the spec indicates we can
only have one INCLUDE_PCI_ALL DRHD per PCI segment (besides, we can't
have PCI sub-hierarchy scopes specified on INCLUDE_PCI_ALL DRHDs, which
means we'd have no way to associate PCI devices to a specific DRHD if
they all set this flag).

I'm inclined to believe the hardware actually works correctly if we
associate an IOAPIC to a non-INCLUDE_PCI_ALL DRHD, but this validity
checking code prevents Xen from even trying to use it.

Alex


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.