[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] RE: co-assignment needs for PCI devices
Jan Beulich wrote: > c/s 18046 adds the requirement to co-assign PCI devices behind > bridges/ PCIe functions on the same device when the (perhaps > individual) device/ function intended to be assigned doesn't support > FLR and doesn't sit on bus 0. For non-IOMMU environments (which are > insecure anyway) this > could be considered a regression, since passing through individual > devices/ functions didn't know such a restriction earlier. Yes, this may not proper for the non-IOMMU case. I planned to fix it, but haven't done that yet... I'd appreciate anybody who can help to do that. :-) We need to consider IOMMU case, non-IOMMU case and 'hybrid case'(namely, the xen parameter iommu=on,no-pv). > Also, being not really knowledgeable about all the differences between > PCIe and PCI, I'd appreciate some clarification on why on PCIe it is > possible and correct to do a secondary bus reset when targeting just > the (PCIe) functions of a single device - to me this seems to imply > that there's a one-device-per-non-root-bus restriction there. According to VT-d spec (section 3.6.1: Identifying Origination of DMA Requests), PCI devices behind the same uppermost PCI/PCI-X bridge must be co-assigned to the same guest. PCIe devices have not such a constraint. FLR (Functional Level Reset) is used to quiesce an assigned device when we destroy a guest or we detach the device from the guest. If a PCIe device has no standard FLR capability, we'll try to use SecondaryBusReset as a way to do FLR. Unluckily, SecondaryBusReset resets all the devices behind the bridge, so for a multi-function PCIe device without FLR capability, we require they have to be co-assigned to the same guest -- certainly this is only for iommu case and for non-iommu case this requirement may be not proper and we shoud fix it... Thanks, -- Dexuan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |