On Fri, Dec 02, 2016 at 04:17:50PM +1100, Benjamin Herrenschmidt wrote: > On Fri, 2016-12-02 at 15:18 +1100, David Gibson wrote: > > But if you pass through multiple groups, things get weird. On q35, > > you'd generally expect physically separate (different slot) devices to > > appear under separate root complexes. Whereas on pseries they'll > > appear as siblings on a virtual bus (which makes no physical sense for > > point-to-point PCI-E). > > It's also somewhat broken if they aren't in the same iommu domain > because the way we pass the iommu buid is via the parent node, so > a given iommu domain must reside below a common parent and not share > it.
Uh.. I don't entirely follow you. From the host point of view there are multiple iommu groups (PEs), but from the guest point of view there's only one. On the guest side iommu granularity is always per-vPHB. > > I suppose we could try treating all devices on pseries as though they > > were chipset builtin devices on q35, which will appear on the root > > PCI-E bus without root complex. But I suspect that's likely to cause > > trouble with hotplug, and it will certainly need different address > > allocation from libvirt. > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Description: PGP signature