On Tue, 18 Jul 2017 16:24:46 +0200 Cornelia Huck <coh...@redhat.com> wrote:
> Next try of the zPCI detangling, taking cpu models into account. > > The goal of this is twofold: > - Being able to disable PCI support in a build completely, as for v1. > - Properly fencing off PCI if the relevant facility bit is not provided. > > The second one leads to an interesting usability problem: -device help > still shows the various pci devices, but you cannot add them if the > cpu model does not include zpci, due to the phb not being instantiated. > The user is presented with > > qemu-system-s390x: -device virtio-rng-pci: No 'PCI' bus found for device > 'virtio-rng-pci' > > ...which is not very helpful, as it does not point to the root cause (no > zpci in the cpu model, and therefore no pci at all). Not sure how one can > communicate this root cause, ideas welcome. An idea on how to improve this would still be welcome :) > > A cross-check with the zpci documentation would also be good, as it is > not public. > > Changes v1->v2: > - add hw/s390x/s390-pci-stub.c to get rid of the ifdeffery > - use the cpumodel to decide whether the guest can use pci instructions or > not; also use this in the sclp and ioinst code > > Branch in git: > > git://github.com/cohuck/qemu no-zpci-cpumodel I've updated this with the various feedback I got, but probably will not have time to do more until next week. > > Cornelia Huck (9): > kvm: remove hard dependency on pci > s390x/pci: add stubs > s390x: chsc nt2 events are pci-only > s390x/pci: do not advertise pci on non-pci builds > s390x/ccw: create s390 phb conditionally > s390x/sclp: properly guard pci-specific functions > s390x/pci: fence off instructions for non-pci > s390x/kvm: msi route fixup for non-pci > s390x: refine pci dependencies > > default-configs/s390x-softmmu.mak | 2 +- > hw/pci/pci-stub.c | 12 ++++++ > hw/s390x/Makefile.objs | 3 +- > hw/s390x/s390-pci-bus.c | 4 +- > hw/s390x/s390-pci-bus.h | 4 +- > hw/s390x/s390-pci-stub.c | 74 ++++++++++++++++++++++++++++++++ > hw/s390x/s390-virtio-ccw.c | 12 +++--- > hw/s390x/sclp.c | 19 +++++++-- > target/s390x/ioinst.c | 16 +++++++ > target/s390x/kvm.c | 89 > +++++++++++++++++++++++++++------------ > 10 files changed, 193 insertions(+), 42 deletions(-) > create mode 100644 hw/s390x/s390-pci-stub.c >