
On 07/23/2013 11:17 AM, Daniel P. Berrange wrote:
On Tue, Jul 23, 2013 at 10:44:55AM -0400, Laine Stump wrote:
This controller is implicit on q35 machinetypes. It provides 31 PCIe (*not* PCI) slots as controller 0.
Currently there are no devices that can connect to pcie-root. For a usable q35 system, we still need to add a "dmi-to-pci-bridge" pci controller, which can connect to pcie-root, and provides pci slots. Presumably you have another patch which auto-adds a 'dmi-to-pci-bridge' device when we see a q35 machine, so that auto-PCI address assignment still works ? If we relied on the user to add that device, then legacy apps will not work against a QEMU which defaults to q35, since they'll be adding PCI devices but not know that they need to add this bridge.
Yes, that is in the works, although it may not be finished today. The idea is that when you try to get a slot for a PCI device and you only have pcie slots, we would add a dmi-to-pci-bridge (which provides pci slots that *can't* be hot-plugged) on a pcie slot, then a pci-bridge (which provides hot-pluggable pci slots) on the dmi-to-pci-bridge. After that, all devices that required a hot-pluggable pci slot would automatically be directed to the pci-bridge. (Thinking more about it, I guess I do need to *always* add them even when there are no devices, to allow for hot-plugging later (since we can't hot-plug a dmi-to-pci-bridge or a pci-bridge). Fortunately that makes it simpler).