Message ID | 20210318223907.1344870-2-laurent@vivier.eu (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iotests: fix failures with non-PCI machines | expand |
On 3/18/21 11:39 PM, Laurent Vivier wrote: > Similarly to 5f629d943cb0 ("s390x: fix s390 virtio aliases"), > define the virtio aliases. > > This allows to start machines with virtio devices without > knowledge of the implementation type. > > For instance, we can use "-device virtio-scsi" on > m68k, s390x or PC, and the device will be +"respectively" > "virtio-scsi-device", "virtio-scsi-ccw" or "virtio-scsi-pci". > > This already exists for s390x and -ccw interfaces, adds them "add"? > for m68k and MMIO (-device) interfaces. > > Signed-off-by: Laurent Vivier <laurent@vivier.eu> > --- > softmmu/qdev-monitor.c | 46 +++++++++++++++++++++++++++--------------- > 1 file changed, 30 insertions(+), 16 deletions(-) > > diff --git a/softmmu/qdev-monitor.c b/softmmu/qdev-monitor.c > index 8dc656becca9..262d38b8c01e 100644 > --- a/softmmu/qdev-monitor.c > +++ b/softmmu/qdev-monitor.c > @@ -42,6 +42,8 @@ > #include "hw/qdev-properties.h" > #include "hw/clock.h" > > +#define QEMU_ARCH_NO_PCI (QEMU_ARCH_S390X | QEMU_ARCH_M68K) > + > /* > * Aliases were a bad idea from the start. Let's keep them > * from spreading further. > @@ -60,34 +62,46 @@ static const QDevAlias qdev_alias_table[] = { > { "ES1370", "es1370" }, /* -soundhw name */ > { "ich9-ahci", "ahci" }, > { "lsi53c895a", "lsi" }, > + { "virtio-9p-device", "virtio-9p", QEMU_ARCH_M68K }, > { "virtio-9p-ccw", "virtio-9p", QEMU_ARCH_S390X }, > - { "virtio-9p-pci", "virtio-9p", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, > + { "virtio-9p-pci", "virtio-9p", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, TIL QEMU_ARCH_NO_PCI :) > + { "virtio-balloon-device", "virtio-balloon", QEMU_ARCH_M68K }, > { "virtio-balloon-ccw", "virtio-balloon", QEMU_ARCH_S390X }, > - { "virtio-balloon-pci", "virtio-balloon", > - QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, > + { "virtio-balloon-pci", "virtio-balloon", QEMU_ARCH_ALL & > + ~QEMU_ARCH_NO_PCI }, > + { "virtio-blk-device", "virtio-blk", QEMU_ARCH_M68K }, > { "virtio-blk-ccw", "virtio-blk", QEMU_ARCH_S390X }, > - { "virtio-blk-pci", "virtio-blk", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, > + { "virtio-blk-pci", "virtio-blk", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, > { "virtio-gpu-ccw", "virtio-gpu", QEMU_ARCH_S390X }, > - { "virtio-gpu-pci", "virtio-gpu", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, > + { "virtio-gpu-device", "virtio-gpu", QEMU_ARCH_M68K }, > + { "virtio-gpu-pci", "virtio-gpu", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, > + { "virtio-input-host-device", "virtio-input-host", QEMU_ARCH_M68K }, > { "virtio-input-host-ccw", "virtio-input-host", QEMU_ARCH_S390X }, > - { "virtio-input-host-pci", "virtio-input-host", > - QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, > - { "virtio-iommu-pci", "virtio-iommu", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, > + { "virtio-input-host-pci", "virtio-input-host", QEMU_ARCH_ALL & > + ~QEMU_ARCH_NO_PCI }, > + { "virtio-iommu-pci", "virtio-iommu", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, > + { "virtio-keyboard-device", "virtio-keyboard", QEMU_ARCH_M68K }, > { "virtio-keyboard-ccw", "virtio-keyboard", QEMU_ARCH_S390X }, > - { "virtio-keyboard-pci", "virtio-keyboard", > - QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, > + { "virtio-keyboard-pci", "virtio-keyboard", QEMU_ARCH_ALL & > + ~QEMU_ARCH_NO_PCI }, > + { "virtio-mouse-device", "virtio-mouse", QEMU_ARCH_M68K }, > { "virtio-mouse-ccw", "virtio-mouse", QEMU_ARCH_S390X }, > - { "virtio-mouse-pci", "virtio-mouse", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, > + { "virtio-mouse-pci", "virtio-mouse", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, > + { "virtio-net-device", "virtio-net", QEMU_ARCH_M68K }, > { "virtio-net-ccw", "virtio-net", QEMU_ARCH_S390X }, > - { "virtio-net-pci", "virtio-net", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, > + { "virtio-net-pci", "virtio-net", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, > + { "virtio-rng-device", "virtio-rng", QEMU_ARCH_M68K }, > { "virtio-rng-ccw", "virtio-rng", QEMU_ARCH_S390X }, > - { "virtio-rng-pci", "virtio-rng", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, > + { "virtio-rng-pci", "virtio-rng", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, > + { "virtio-scsi-device", "virtio-scsi", QEMU_ARCH_M68K }, > { "virtio-scsi-ccw", "virtio-scsi", QEMU_ARCH_S390X }, > - { "virtio-scsi-pci", "virtio-scsi", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, > + { "virtio-scsi-pci", "virtio-scsi", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, > + { "virtio-serial-device", "virtio-serial", QEMU_ARCH_M68K }, > { "virtio-serial-ccw", "virtio-serial", QEMU_ARCH_S390X }, > - { "virtio-serial-pci", "virtio-serial", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, > + { "virtio-serial-pci", "virtio-serial", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI}, > + { "virtio-tablet-device", "virtio-tablet", QEMU_ARCH_M68K }, > { "virtio-tablet-ccw", "virtio-tablet", QEMU_ARCH_S390X }, > - { "virtio-tablet-pci", "virtio-tablet", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, > + { "virtio-tablet-pci", "virtio-tablet", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, > { } > }; This could be easier to split this patch in 2: 1/ QEMU_ARCH_S390X -> QEMU_ARCH_NO_PCI 2/ complete QEMU_ARCH_M68K aliases Regardless: Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
On 18/03/2021 23.39, Laurent Vivier wrote: > Similarly to 5f629d943cb0 ("s390x: fix s390 virtio aliases"), > define the virtio aliases. > > This allows to start machines with virtio devices without > knowledge of the implementation type. > > For instance, we can use "-device virtio-scsi" on > m68k, s390x or PC, and the device will be > "virtio-scsi-device", "virtio-scsi-ccw" or "virtio-scsi-pci". > > This already exists for s390x and -ccw interfaces, adds them > for m68k and MMIO (-device) interfaces. > > Signed-off-by: Laurent Vivier <laurent@vivier.eu> > --- > softmmu/qdev-monitor.c | 46 +++++++++++++++++++++++++++--------------- > 1 file changed, 30 insertions(+), 16 deletions(-) With the typo mentioned by Philippe fixed: Reviewed-by: Thomas Huth <thuth@redhat.com>
On Thu, 18 Mar 2021 23:39:04 +0100 Laurent Vivier <laurent@vivier.eu> wrote: > Similarly to 5f629d943cb0 ("s390x: fix s390 virtio aliases"), > define the virtio aliases. > > This allows to start machines with virtio devices without > knowledge of the implementation type. > > For instance, we can use "-device virtio-scsi" on > m68k, s390x or PC, and the device will be > "virtio-scsi-device", "virtio-scsi-ccw" or "virtio-scsi-pci". > > This already exists for s390x and -ccw interfaces, adds them > for m68k and MMIO (-device) interfaces. > > Signed-off-by: Laurent Vivier <laurent@vivier.eu> > --- > softmmu/qdev-monitor.c | 46 +++++++++++++++++++++++++++--------------- > 1 file changed, 30 insertions(+), 16 deletions(-) > > diff --git a/softmmu/qdev-monitor.c b/softmmu/qdev-monitor.c > index 8dc656becca9..262d38b8c01e 100644 > --- a/softmmu/qdev-monitor.c > +++ b/softmmu/qdev-monitor.c > @@ -42,6 +42,8 @@ > #include "hw/qdev-properties.h" > #include "hw/clock.h" > > +#define QEMU_ARCH_NO_PCI (QEMU_ARCH_S390X | QEMU_ARCH_M68K) The name of the #define is a tad misleading (we do have virtio-pci devices on s390x, unlike in 2012, we just don't want the aliases to point to them.) Maybe QEMU_ARCH_NONPCI_DEFAULT? > + > /* > * Aliases were a bad idea from the start. Let's keep them > * from spreading further. Otherwise, LGTM.
Le 19/03/2021 à 12:36, Cornelia Huck a écrit : > On Thu, 18 Mar 2021 23:39:04 +0100 > Laurent Vivier <laurent@vivier.eu> wrote: > >> Similarly to 5f629d943cb0 ("s390x: fix s390 virtio aliases"), >> define the virtio aliases. >> >> This allows to start machines with virtio devices without >> knowledge of the implementation type. >> >> For instance, we can use "-device virtio-scsi" on >> m68k, s390x or PC, and the device will be >> "virtio-scsi-device", "virtio-scsi-ccw" or "virtio-scsi-pci". >> >> This already exists for s390x and -ccw interfaces, adds them >> for m68k and MMIO (-device) interfaces. >> >> Signed-off-by: Laurent Vivier <laurent@vivier.eu> >> --- >> softmmu/qdev-monitor.c | 46 +++++++++++++++++++++++++++--------------- >> 1 file changed, 30 insertions(+), 16 deletions(-) >> >> diff --git a/softmmu/qdev-monitor.c b/softmmu/qdev-monitor.c >> index 8dc656becca9..262d38b8c01e 100644 >> --- a/softmmu/qdev-monitor.c >> +++ b/softmmu/qdev-monitor.c >> @@ -42,6 +42,8 @@ >> #include "hw/qdev-properties.h" >> #include "hw/clock.h" >> >> +#define QEMU_ARCH_NO_PCI (QEMU_ARCH_S390X | QEMU_ARCH_M68K) > > The name of the #define is a tad misleading (we do have virtio-pci > devices on s390x, unlike in 2012, we just don't want the aliases to > point to them.) Maybe QEMU_ARCH_NONPCI_DEFAULT? I have changed this patch to define QEMU_ARCH_VIRTIO_PCI with the list of archs with virtio-pci devices, and QEMU_ARCH_VIRTIO_CCW and then QEMU_ARCH_VIRTIO_MMIO > >> + >> /* >> * Aliases were a bad idea from the start. Let's keep them >> * from spreading further. > > Otherwise, LGTM. > Thanks, Laurent
diff --git a/softmmu/qdev-monitor.c b/softmmu/qdev-monitor.c index 8dc656becca9..262d38b8c01e 100644 --- a/softmmu/qdev-monitor.c +++ b/softmmu/qdev-monitor.c @@ -42,6 +42,8 @@ #include "hw/qdev-properties.h" #include "hw/clock.h" +#define QEMU_ARCH_NO_PCI (QEMU_ARCH_S390X | QEMU_ARCH_M68K) + /* * Aliases were a bad idea from the start. Let's keep them * from spreading further. @@ -60,34 +62,46 @@ static const QDevAlias qdev_alias_table[] = { { "ES1370", "es1370" }, /* -soundhw name */ { "ich9-ahci", "ahci" }, { "lsi53c895a", "lsi" }, + { "virtio-9p-device", "virtio-9p", QEMU_ARCH_M68K }, { "virtio-9p-ccw", "virtio-9p", QEMU_ARCH_S390X }, - { "virtio-9p-pci", "virtio-9p", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, + { "virtio-9p-pci", "virtio-9p", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, + { "virtio-balloon-device", "virtio-balloon", QEMU_ARCH_M68K }, { "virtio-balloon-ccw", "virtio-balloon", QEMU_ARCH_S390X }, - { "virtio-balloon-pci", "virtio-balloon", - QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, + { "virtio-balloon-pci", "virtio-balloon", QEMU_ARCH_ALL & + ~QEMU_ARCH_NO_PCI }, + { "virtio-blk-device", "virtio-blk", QEMU_ARCH_M68K }, { "virtio-blk-ccw", "virtio-blk", QEMU_ARCH_S390X }, - { "virtio-blk-pci", "virtio-blk", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, + { "virtio-blk-pci", "virtio-blk", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, { "virtio-gpu-ccw", "virtio-gpu", QEMU_ARCH_S390X }, - { "virtio-gpu-pci", "virtio-gpu", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, + { "virtio-gpu-device", "virtio-gpu", QEMU_ARCH_M68K }, + { "virtio-gpu-pci", "virtio-gpu", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, + { "virtio-input-host-device", "virtio-input-host", QEMU_ARCH_M68K }, { "virtio-input-host-ccw", "virtio-input-host", QEMU_ARCH_S390X }, - { "virtio-input-host-pci", "virtio-input-host", - QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, - { "virtio-iommu-pci", "virtio-iommu", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, + { "virtio-input-host-pci", "virtio-input-host", QEMU_ARCH_ALL & + ~QEMU_ARCH_NO_PCI }, + { "virtio-iommu-pci", "virtio-iommu", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, + { "virtio-keyboard-device", "virtio-keyboard", QEMU_ARCH_M68K }, { "virtio-keyboard-ccw", "virtio-keyboard", QEMU_ARCH_S390X }, - { "virtio-keyboard-pci", "virtio-keyboard", - QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, + { "virtio-keyboard-pci", "virtio-keyboard", QEMU_ARCH_ALL & + ~QEMU_ARCH_NO_PCI }, + { "virtio-mouse-device", "virtio-mouse", QEMU_ARCH_M68K }, { "virtio-mouse-ccw", "virtio-mouse", QEMU_ARCH_S390X }, - { "virtio-mouse-pci", "virtio-mouse", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, + { "virtio-mouse-pci", "virtio-mouse", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, + { "virtio-net-device", "virtio-net", QEMU_ARCH_M68K }, { "virtio-net-ccw", "virtio-net", QEMU_ARCH_S390X }, - { "virtio-net-pci", "virtio-net", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, + { "virtio-net-pci", "virtio-net", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, + { "virtio-rng-device", "virtio-rng", QEMU_ARCH_M68K }, { "virtio-rng-ccw", "virtio-rng", QEMU_ARCH_S390X }, - { "virtio-rng-pci", "virtio-rng", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, + { "virtio-rng-pci", "virtio-rng", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, + { "virtio-scsi-device", "virtio-scsi", QEMU_ARCH_M68K }, { "virtio-scsi-ccw", "virtio-scsi", QEMU_ARCH_S390X }, - { "virtio-scsi-pci", "virtio-scsi", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, + { "virtio-scsi-pci", "virtio-scsi", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, + { "virtio-serial-device", "virtio-serial", QEMU_ARCH_M68K }, { "virtio-serial-ccw", "virtio-serial", QEMU_ARCH_S390X }, - { "virtio-serial-pci", "virtio-serial", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, + { "virtio-serial-pci", "virtio-serial", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI}, + { "virtio-tablet-device", "virtio-tablet", QEMU_ARCH_M68K }, { "virtio-tablet-ccw", "virtio-tablet", QEMU_ARCH_S390X }, - { "virtio-tablet-pci", "virtio-tablet", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X }, + { "virtio-tablet-pci", "virtio-tablet", QEMU_ARCH_ALL & ~QEMU_ARCH_NO_PCI }, { } };
Similarly to 5f629d943cb0 ("s390x: fix s390 virtio aliases"), define the virtio aliases. This allows to start machines with virtio devices without knowledge of the implementation type. For instance, we can use "-device virtio-scsi" on m68k, s390x or PC, and the device will be "virtio-scsi-device", "virtio-scsi-ccw" or "virtio-scsi-pci". This already exists for s390x and -ccw interfaces, adds them for m68k and MMIO (-device) interfaces. Signed-off-by: Laurent Vivier <laurent@vivier.eu> --- softmmu/qdev-monitor.c | 46 +++++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 16 deletions(-)