Message ID | 20220118203833.316741-1-eric.auger@redhat.com |
---|---|
Headers | show |
Series | qtests/libqos: Allow PCI tests to be run with virt-machine | expand |
On Tue, Jan 18, 2022 at 09:38:27PM +0100, Eric Auger wrote: > Up to now the virt-machine node only contains a virtio-mmio > driver node but no driver that eventually produces any pci-bus > interface. > > Hence, PCI libqos tests cannot be run with aarch64 binary. > > This series brings the pieces needed to be able to run PCI tests > with the aarch64 binary: a generic-pcihost driver node gets > instantiated by the machine. This later contains a pci-bus-generic > driver which produces a pci-bus interface. Then all tests > consuming the pci-bus interface can be run with the libqos arm > virt machine. > > One of the first goal was to be able to run the virtio-iommu-pci > tests as the virtio-iommu was initially targetting ARM and it > was awkard to be run the test with the pc machine. This is now > possible. > > Only the tests doing hotplug cannot be run yet as hotplug is > not possible on the root bus. This will be dealt with separately > by adding a root port to the object tree. > > Best Regards > > Eric > > This series can be found at: > https://github.com/eauger/qemu/tree/libqos-pci-arm-v2 > > History I dropped this due to make check failures. Pls make sure to make and test all targets. Thanks! > v1 -> v2: > - copyright updated to 2022 > - QPCIBusARM renamed into QGenericPCIBus > - QGenericPCIHost declarations and definitions moved in the same > place as the generic pci implementation > - rename pci-arm.c/h in generic-pcihost.c/h and remove any ref to > ARM there > - remove qos_node_produces_opts, qpci_new_arm, qpci_free_arm > - ecam_alloc_ptr now is a field of QGenericPCIBus and not QPCIBus > - new libqos_init to create generic-pcihost driver that contains > pci-bus-generic > - QGenericPCIHost moved in the same place as the generic pci > bindings > - collected Thomas A-b/R-b > > > Eric Auger (6): > tests/qtest/vhost-user-test.c: Use vhostforce=on > tests/qtest/libqos/pci: Introduce pio_limit > tests/qtest/libqos: Skip hotplug tests if pci root bus is not > hotpluggable > tests/qtest/vhost-user-blk-test: Setup MSIx to avoid error on aarch64 > tests/qtest/vhost-user-blk-test: Factorize vq setup code > tests/qtest/libqos: Add generic pci host bridge in arm-virt machine > > tests/qtest/e1000e-test.c | 6 + > tests/qtest/libqos/arm-virt-machine.c | 18 +- > tests/qtest/libqos/generic-pcihost.c | 231 ++++++++++++++++++++++++++ > tests/qtest/libqos/generic-pcihost.h | 54 ++++++ > tests/qtest/libqos/meson.build | 1 + > tests/qtest/libqos/pci-pc.c | 1 + > tests/qtest/libqos/pci-spapr.c | 1 + > tests/qtest/libqos/pci.c | 78 +++++---- > tests/qtest/libqos/pci.h | 6 +- > tests/qtest/vhost-user-blk-test.c | 39 ++++- > tests/qtest/vhost-user-test.c | 2 +- > tests/qtest/virtio-blk-test.c | 5 + > tests/qtest/virtio-net-test.c | 5 + > tests/qtest/virtio-rng-test.c | 5 + > 14 files changed, 408 insertions(+), 44 deletions(-) > create mode 100644 tests/qtest/libqos/generic-pcihost.c > create mode 100644 tests/qtest/libqos/generic-pcihost.h > > -- > 2.26.3
Hi Michael, On 2/5/22 2:43 AM, Michael S. Tsirkin wrote: > On Tue, Jan 18, 2022 at 09:38:27PM +0100, Eric Auger wrote: >> Up to now the virt-machine node only contains a virtio-mmio >> driver node but no driver that eventually produces any pci-bus >> interface. >> >> Hence, PCI libqos tests cannot be run with aarch64 binary. >> >> This series brings the pieces needed to be able to run PCI tests >> with the aarch64 binary: a generic-pcihost driver node gets >> instantiated by the machine. This later contains a pci-bus-generic >> driver which produces a pci-bus interface. Then all tests >> consuming the pci-bus interface can be run with the libqos arm >> virt machine. >> >> One of the first goal was to be able to run the virtio-iommu-pci >> tests as the virtio-iommu was initially targetting ARM and it >> was awkard to be run the test with the pc machine. This is now >> possible. >> >> Only the tests doing hotplug cannot be run yet as hotplug is >> not possible on the root bus. This will be dealt with separately >> by adding a root port to the object tree. >> >> Best Regards >> >> Eric >> >> This series can be found at: >> https://github.com/eauger/qemu/tree/libqos-pci-arm-v2 >> >> History > > I dropped this due to make check failures. Pls make sure > to make and test all targets. Thanks! Sorry for the inconvenience. qos-test now is failing on aarch64 and definitively it was passing when I submitted the patches (ie. with above branch). I bisected and d9afe24c29a0 ("hw/arm/virt: Disable highmem devices that don't fit in the PA range") recenly applied upstream changed the way the test behave and now is causing /aarch64/virt/generic-pcihost/pci-bus-generic/pci-bus/megasas/megasas-tests/dcmd/pd-get-info/fuzz to fail. This is due to the fact GPA is limited to 32b and the device seems to require high ECAM. I will fix that. Thanks Eric > >> v1 -> v2: >> - copyright updated to 2022 >> - QPCIBusARM renamed into QGenericPCIBus >> - QGenericPCIHost declarations and definitions moved in the same >> place as the generic pci implementation >> - rename pci-arm.c/h in generic-pcihost.c/h and remove any ref to >> ARM there >> - remove qos_node_produces_opts, qpci_new_arm, qpci_free_arm >> - ecam_alloc_ptr now is a field of QGenericPCIBus and not QPCIBus >> - new libqos_init to create generic-pcihost driver that contains >> pci-bus-generic >> - QGenericPCIHost moved in the same place as the generic pci >> bindings >> - collected Thomas A-b/R-b >> >> >> Eric Auger (6): >> tests/qtest/vhost-user-test.c: Use vhostforce=on >> tests/qtest/libqos/pci: Introduce pio_limit >> tests/qtest/libqos: Skip hotplug tests if pci root bus is not >> hotpluggable >> tests/qtest/vhost-user-blk-test: Setup MSIx to avoid error on aarch64 >> tests/qtest/vhost-user-blk-test: Factorize vq setup code >> tests/qtest/libqos: Add generic pci host bridge in arm-virt machine >> >> tests/qtest/e1000e-test.c | 6 + >> tests/qtest/libqos/arm-virt-machine.c | 18 +- >> tests/qtest/libqos/generic-pcihost.c | 231 ++++++++++++++++++++++++++ >> tests/qtest/libqos/generic-pcihost.h | 54 ++++++ >> tests/qtest/libqos/meson.build | 1 + >> tests/qtest/libqos/pci-pc.c | 1 + >> tests/qtest/libqos/pci-spapr.c | 1 + >> tests/qtest/libqos/pci.c | 78 +++++---- >> tests/qtest/libqos/pci.h | 6 +- >> tests/qtest/vhost-user-blk-test.c | 39 ++++- >> tests/qtest/vhost-user-test.c | 2 +- >> tests/qtest/virtio-blk-test.c | 5 + >> tests/qtest/virtio-net-test.c | 5 + >> tests/qtest/virtio-rng-test.c | 5 + >> 14 files changed, 408 insertions(+), 44 deletions(-) >> create mode 100644 tests/qtest/libqos/generic-pcihost.c >> create mode 100644 tests/qtest/libqos/generic-pcihost.h >> >> -- >> 2.26.3