ia64: PV driver domains - ugly python hacks
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 8 Aug 2008 09:53:40 +0000 (10:53 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 8 Aug 2008 09:53:40 +0000 (10:53 +0100)
commit8a067f68b1e730524c21981e438587665fd95a6a
treebe985292bb9a3b2739d49f60fe6321d33cbcf274
parenta9c83dc7200c3705e8c6df15d29ceb30cf6f0a45
ia64: PV driver domains - ugly python hacks

x86 IOMMU support added a lot of assumptions about what PCI buses look
like and where to find bridge devices.  On ia64, we don't yet have
virtualization friendly IOMMUs, so for the moment, we just want to
keep "unsafe" PV PCI pass through working as well as it did in Xen
3.2. Looking at the code, it almost seems like x86 has thrown out
support for the old style driver domain.  Things that don't
necessarily work on every PCI compliant architecture:

      * You can't assume that just because there's a device at 01:01.0
        that there's also a bridge at 01:00.0 and blow-up when you
        don't find it.  On HP ia64 boxes, PCI root bridges are not
        necessarily exposed as a PCI device.  This pretty much means
        we can't call into any of the "FLR" code paths.
      * BAR alignment: it's hard to have BAR alignment when your page
        size is 16k.  This wasn't a requirement for previous PV driver
        domains, so I assume it's only for IOMMU support.

This is ugly, so I'm open to suggestions.  It seems that all of these
architecture checks could be replaced by checking some "iommu_present"
variable to test whether the extra requirements are necessary.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
tools/python/xen/xend/server/pciif.py