On 22.01.19 14:01, Cornelia Huck wrote: > On Tue, 22 Jan 2019 13:51:31 +0100 > David Hildenbrand <da...@redhat.com> wrote: > >> Hotplugging of PCI bridges is right now pretty much broken. Coldplugging >> and hotplugging will assign wrong primary bus numbers in some scenarios. >> >> I base my knowledge on how this is supposed to work on >> http://www.science.unitn.it/~fiorella/guidelinux/tlk/node76.html >> >> I did a couple of tests, building whole hierarchies of bridges, both >> hot and coldplugged. "info pci" as well as the Linux guests showed >> what I was expecting. >> >> David Hildenbrand (2): >> s390x/pci: Fix primary bus number for PCI bridges >> s390x/pci: Fix hotplugging of PCI bridges >> >> hw/s390x/s390-pci-bus.c | 41 +++++++++++++++++++++++++++-------------- >> 1 file changed, 27 insertions(+), 14 deletions(-) >> > > I'll leave the actual review of this to folks familiar with how zPCI is > supposed to work :) > > Does the guest actually see anything of this? Consistency is good, and > not crashing even better, but I think all of the topology is invisible > on the guest side anyway... >
I am no PCI expert, but I think the guest is able to read/write these numbers via the configuration space. As far as I can see, on x86 the BIOS builds the topology. On Power/s390x this job is delegated to firmware / QEMU. There are quite some numbers in QEMU relying on these numbers to be correct: E.g. pci_secondary_bus_in_range() If the guest relies on the topology to be correct, things can go wrong. I have no idea how Linux guests actually use the topology. Also, the output of "info pci" will be wrong. Anyhow, this is the right thing to do, but I agree that Patch #1 might not be as critical as patch #2. -- Thanks, David / dhildenb