Hello!
00:04:0 is VFIO passthrough, and i put everything to bus#0 by hands,
for MSI-X to work. I
could also leave devices at bus#2, just in
this case i don't get MSI-X, and this, for example, makes vhost-net unable to use
irqfds (or
it cannot initialize at all, again, i
already don't remember), because this requires per-event irqs.
Just tested Q35 machine on x86-64, and retested the same on ARM64. Sorry, but please
ignore what i said before about MSI-X.
Everything works fine, MSI-X is OK on bus#2 after the bridge, and this was either some old
bug in old qemu, or i was simply doing
something crappy and wrong.
So, i don't care anymore about this bridge complex on PCIe bus, it does not make my
living any worse. If libvirt strictly
distinguishes between PCI and PCIe, let it just be there.
And, to complete the testing, i've just migrated the Q35 machine and the bridge also
breaks down. 'lspci -v' starts reporting
"Unknown header type: 7f" for the bridge and for all devices behind it (and all
devices fail). But it just means it should be fixed
in qemu.
Kind regards,
Pavel Fedin
Expert Engineer
Samsung Electronics Research center Russia