
On 1/3/19 5:22 AM, Riccardo Ravaioli wrote:
On Thu, 20 Dec 2018 at 15:39, Laine Stump <laine@redhat.com <mailto:laine@redhat.com>> wrote:
I think you're right. Each bus requires some amount of IO space, and I thought I recalled someone saying that all of the available IO space is exhausted after 7 or 8 buses. [...]
Laine,
Do you have by any chance a link to a page explaining this in more details? Thanks again! :)
No, sorry. There are mentions of it in bugzilla records (e.g. https://bugzilla.redhat.com/show_bug.cgi?id=1067777 ) but all the info I have is just recalled from email and irc conversations over the last 3-4 years. Basically the amount of IO address space is limited, and SeaBIOS allocates some minimum-sized chunk of that for each PCI controller that is probed and "seems to need IO address space for its devices". After 8 or so controllers, all the space is used up. You can avoid the IO address space limit if you're using a PCI Express based machinetype, *and* all PCIe devices, but you'll run up against different limits that need to be worked around in a different way - PCIe devices are required to be usable with no IO address space (and so QEMU specifically creates the PCIe controllers beyond pcie-root without any). But each PCIe controller only has a single slot (with 8 functions), each consumes a "bus number" and the bus number is an 8-bit value, so you're limited to 256 total (x8 if you don't need hotplug and don't mind manually assigning addresses).