[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 0/5] qtests/libqos: Allow PCI tests to be run with virt-machin
From: |
Eric Auger |
Subject: |
[PATCH v3 0/5] qtests/libqos: Allow PCI tests to be run with virt-machine |
Date: |
Thu, 10 Feb 2022 15:52:49 +0100 |
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.
Also I have some trouble with 2 of the vhost-user-blk-tests. I am
obliged to hack them in "tests/qtest/vhost-user-blk-test: Temporary
hack to get tests passing on aarch64". Looks like a memory
allocation issue, which at first sight seems unrelated to the
aarch64 pci libqos enablement but we are never sure. Calling for
help on this issue, if some vhost-user specialists can dedicate
some cycles on this. Otherwise I will try my best to further debug.
To reproduce the issue, revert the above hack and run
QTEST_QEMU_STORAGE_DAEMON_BINARY=build/storage-daemon/qemu-storage-daemon
QTEST_QEMU_BINARY=build/aarch64-softmmu/qemu-system-aarch64
build/tests/qtest/qos-test
you should get:
ERROR:../tests/qtest/libqos/virtio.c:224:qvirtio_wait_used_elem:
assertion failed (got_desc_idx == desc_idx): (50331648 == 0)
Bail out! ERROR:../tests/qtest/libqos/virtio.c:224: qvirtio_wait_used_elem:
assertion failed (got_desc_idx == desc_idx): (50331648 == 0)
Best Regards
Eric
This series can be found at:
https://github.com/eauger/qemu/tree/libqos-pci-arm-v3
History
v2 -> v3:
- force -cpu=max along with aarch64/virt
- reduced the vhost-user-block-pci issue workaround to a
single guest_alloc() instead of enabling MSIs. Call for
help on this specific issue. The 2 tests which fail otherwise
are: test_basic and indirect.
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 (5):
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: Temporary hack to get tests passing
on aarch64
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 | 19 ++-
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 | 16 ++
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, 394 insertions(+), 36 deletions(-)
create mode 100644 tests/qtest/libqos/generic-pcihost.c
create mode 100644 tests/qtest/libqos/generic-pcihost.h
--
2.26.3
- [PATCH v3 0/5] qtests/libqos: Allow PCI tests to be run with virt-machine,
Eric Auger <=
- [PATCH v3 1/5] tests/qtest/vhost-user-test.c: Use vhostforce=on, Eric Auger, 2022/02/10
- [PATCH v3 2/5] tests/qtest/libqos/pci: Introduce pio_limit, Eric Auger, 2022/02/10
- [PATCH v3 5/5] tests/qtest/libqos: Add generic pci host bridge in arm-virt machine, Eric Auger, 2022/02/10
- [PATCH v3 4/5] tests/qtest/vhost-user-blk-test: Temporary hack to get tests passing on aarch64, Eric Auger, 2022/02/10
- [PATCH v3 3/5] tests/qtest/libqos: Skip hotplug tests if pci root bus is not hotpluggable, Eric Auger, 2022/02/10