diff mbox series

[v3,4/5] tests/qtest/vhost-user-blk-test: Temporary hack to get tests passing on aarch64

Message ID 20220210145254.157790-5-eric.auger@redhat.com
State New
Headers show
Series qtests/libqos: Allow PCI tests to be run with virt-machine | expand

Commit Message

Eric Auger Feb. 10, 2022, 2:52 p.m. UTC
When run on ARM, basic and indirect tests currently fail with the
following error:

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)

I noticed it worked when I set up MSI and I further reduced the
code to a simple guest_alloc() that removes the error. At the moment
I am not able to identify where ths issue is and this blocks the
whole pci/aarch64 enablement.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
---
 tests/qtest/vhost-user-blk-test.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Alex Bennée April 6, 2022, 5:34 p.m. UTC | #1
Eric Auger <eric.auger@redhat.com> writes:

> When run on ARM, basic and indirect tests currently fail with the
> following error:
>
> 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)
>
> I noticed it worked when I set up MSI and I further reduced the
> code to a simple guest_alloc() that removes the error. At the moment
> I am not able to identify where ths issue is and this blocks the
> whole pci/aarch64 enablement.
>
> Signed-off-by: Eric Auger <eric.auger@redhat.com>

Hi Eric,

I sent a RFC patch which I think avoids the need for this hack:

  Subject: [RFC PATCH] tests/qtest: properly initialise the vring used idx
  Date: Wed,  6 Apr 2022 18:33:56 +0100
  Message-Id: <20220406173356.1891500-1-alex.bennee@linaro.org>
Eric Auger April 7, 2022, 8:36 a.m. UTC | #2
Hi Alex,

On 4/6/22 7:34 PM, Alex Bennée wrote:
> Eric Auger <eric.auger@redhat.com> writes:
>
>> When run on ARM, basic and indirect tests currently fail with the
>> following error:
>>
>> 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)
>>
>> I noticed it worked when I set up MSI and I further reduced the
>> code to a simple guest_alloc() that removes the error. At the moment
>> I am not able to identify where ths issue is and this blocks the
>> whole pci/aarch64 enablement.
>>
>> Signed-off-by: Eric Auger <eric.auger@redhat.com>
> Hi Eric,
>
> I sent a RFC patch which I think avoids the need for this hack:
>
>   Subject: [RFC PATCH] tests/qtest: properly initialise the vring used idx
>   Date: Wed,  6 Apr 2022 18:33:56 +0100
>   Message-Id: <20220406173356.1891500-1-alex.bennee@linaro.org>
>
Indeed this fixes my issue! Many thanks for the debug & fix.

I will respin with your R-b's.

Eric
diff mbox series

Patch

diff --git a/tests/qtest/vhost-user-blk-test.c b/tests/qtest/vhost-user-blk-test.c
index 1316aae0fa..cf8057fb57 100644
--- a/tests/qtest/vhost-user-blk-test.c
+++ b/tests/qtest/vhost-user-blk-test.c
@@ -225,6 +225,9 @@  static QVirtQueue *test_basic(QVirtioDevice *dev, QGuestAllocator *alloc)
     QTestState *qts = global_qtest;
     QVirtQueue *vq;
 
+    /* temporary hack to let the test pass on aarch64 */
+    guest_alloc(alloc, 4);
+
     features = qvirtio_get_features(dev);
     features = features & ~(QVIRTIO_F_BAD_FEATURE |
                     (1u << VIRTIO_RING_F_INDIRECT_DESC) |
@@ -469,6 +472,9 @@  static void indirect(void *obj, void *u_data, QGuestAllocator *t_alloc)
     char *data;
     QTestState *qts = global_qtest;
 
+    /* temporary hack to let the test pass on aarch64 */
+    guest_alloc(t_alloc, 4);
+
     features = qvirtio_get_features(dev);
     g_assert_cmphex(features & (1u << VIRTIO_RING_F_INDIRECT_DESC), !=, 0);
     features = features & ~(QVIRTIO_F_BAD_FEATURE |