
在 2018/7/26 下午7:00, Andrea Bolognani 写道:
> How does the pci-bridge controller show up in the guest, if at all? Qemu hides pci-bridge devices and just exposes pci devices to the guest. In above example, indeed, qemu will generate a pci-bridge device and it will be existing in pci topology. But the guest can't see it. This is very special. Yeah, that's kinda problematic as it violates the principle of least surprise... If s390 guests can only see a flat PCI topology, then we should find a way to reject bridges altogether instead of allowing the user to create them (or even create them automatically) only for them not to show up in the guest. If we reject bridges, there would be only one pci bus that maximum 32 pci devices could be plugged to. This kind of limitation is more problematic IMO. I see how that would be pretty limiting.
From the test cases I see a zpci devices, with its own uid and fid, is created for the pci-bridge as well... Is that intentional?
Firstly pci bridge can be auto-generated if a pci device is to be plugged to non-existing pci bus. IIUC, pci-bridge is treated as a controller device in libvirt. So I think, it's pretty readable not only in libvirt xml but also in qtree, if we assign zpci device for it. Otherwise address type of pci-bridge is pci type but has no uid and fid. Isn't it odd? Of course, we could avoid assigning a zpci device to pci-bridge. Actually my old patch did in this way.