From: "Alex Bennée" <alex.bennee@linaro.org>
To: qemu-devel@nongnu.org
Cc: slp@redhat.com, mst@redhat.com, marcandre.lureau@redhat.com,
stefanha@redhat.com, mathieu.poirier@linaro.org,
viresh.kumar@linaro.org, mark.cave-ayland@ilande.co.uk,
jasowang@redhat.com, "Alex Bennée" <alex.bennee@linaro.org>
Subject: [PATCH v3 for 7.2 00/21] virtio-gpio and various virtio cleanups
Date: Tue, 26 Jul 2022 20:21:29 +0100 [thread overview]
Message-ID: <20220726192150.2435175-1-alex.bennee@linaro.org> (raw)
Hi,
After much slogging through the vhost-user code I've gotten the
virtio-gpio device working again. The core change in pushing the
responsibility for VHOST_USER_F_PROTOCOL_FEATURES down to the
vhost-user layer (which knows it needs it). We still need to account
for that in virtio-gpio because the result of the negotiating protocol
features is the vrings start disabled so the stub needs to explicitly
enable them. I did consider pushing this behaviour explicitly into
vhost_dev_start but that would have required un-picking it from
vhost-net (which is the only other device which uses protocol features
AFAICT - but is a measure more complex in it's setup).
As last time there are a whole series of clean-ups and doc tweaks. I
don't know if any are trivial enough to sneak into later RCs but it
shouldn't be a problem to wait until the tree re-opens.
There is a remaining issue that a --enable-sanitizers build fails for
qos-test due to leaks. It shows up as a leak from:
Direct leak of 240 byte(s) in 1 object(s) allocated from:
#0 0x7fc5a3f2a037 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
#1 0x7fc5a2e5cda0 in g_malloc0 ../../../glib/gmem.c:136
#2 0x55ce773cc728 in virtio_device_realize ../../hw/virtio/virtio.c:3691
#3 0x55ce7784ed7e in device_set_realized ../../hw/core/qdev.c:553
#4 0x55ce77862d0c in property_set_bool ../../qom/object.c:2273
I'm not entirely sure what the allocation is because it gets inlined
in the virtio_device_realize call. Perhaps it's the QOM object itself
which is never gracefully torn down at the end of the test?
However when I attempted to bisect I found master was broken as well.
For example in my arm/aarch64-softmmu build we see 5 failures:
Summary of Failures:
3/48 qemu:qtest+qtest-aarch64 / qtest-aarch64/migration-test ERROR 96.15s killed by signal 6 SIGABRT
9/48 qemu:qtest+qtest-aarch64 / qtest-aarch64/qos-test ERROR 32.50s killed by signal 6 SIGABRT
11/48 qemu:qtest+qtest-arm / qtest-arm/qos-test ERROR 26.93s killed by signal 6 SIGABRT
20/48 qemu:qtest+qtest-aarch64 / qtest-aarch64/device-introspect-test ERROR 5.17s killed by signal 6 SIGABRT
45/48 qemu:qtest+qtest-arm / qtest-arm/device-introspect-test ERROR 4.97s killed by signal 6 SIGABRT
Of which the qos-tests are the only new ones. I suspect something must
be preventing the other stuff being exercised in our CI system.
Alex Bennée (19):
include/hw/virtio: more comment for VIRTIO_F_BAD_FEATURE
include/hw: document vhost_dev feature life-cycle
hw/virtio: fix some coding style issues
hw/virtio: log potentially buggy guest drivers
block/vhost-user-blk-server: don't expose
VHOST_USER_F_PROTOCOL_FEATURES
hw/virtio: incorporate backend features in features
hw/virtio: gracefully handle unset vhost_dev vdev
hw/virtio: handle un-configured shutdown in virtio-pci
hw/virtio: fix vhost_user_read tracepoint
hw/virtio: add some vhost-user trace events
tests/qtest: pass stdout/stderr down to subtests
tests/qtest: add a timeout for subprocess_run_one_test
tests/qtest: use qos_printf instead of g_test_message
tests/qtest: catch unhandled vhost-user messages
tests/qtest: plain g_assert for VHOST_USER_F_PROTOCOL_FEATURES
tests/qtest: add assert to catch bad features
tests/qtest: implement stub for VHOST_USER_GET_CONFIG
tests/qtest: add a get_features op to vhost-user-test
tests/qtest: enable tests for virtio-gpio
Viresh Kumar (2):
hw/virtio: add boilerplate for vhost-user-gpio device
hw/virtio: add vhost-user-gpio-pci boilerplate
include/hw/virtio/vhost-user-gpio.h | 35 +++
include/hw/virtio/vhost.h | 3 +
include/hw/virtio/virtio.h | 7 +-
tests/qtest/libqos/virtio-gpio.h | 35 +++
block/export/vhost-user-blk-server.c | 3 +-
hw/virtio/vhost-user-gpio-pci.c | 69 +++++
hw/virtio/vhost-user-gpio.c | 414 +++++++++++++++++++++++++++
hw/virtio/vhost-user.c | 20 +-
hw/virtio/vhost.c | 16 +-
hw/virtio/virtio-pci.c | 9 +-
hw/virtio/virtio.c | 7 +
tests/qtest/libqos/virtio-gpio.c | 171 +++++++++++
tests/qtest/libqos/virtio.c | 4 +-
tests/qtest/qos-test.c | 8 +-
tests/qtest/vhost-user-test.c | 172 +++++++++--
hw/virtio/Kconfig | 5 +
hw/virtio/meson.build | 2 +
hw/virtio/trace-events | 9 +
tests/qtest/libqos/meson.build | 1 +
19 files changed, 956 insertions(+), 34 deletions(-)
create mode 100644 include/hw/virtio/vhost-user-gpio.h
create mode 100644 tests/qtest/libqos/virtio-gpio.h
create mode 100644 hw/virtio/vhost-user-gpio-pci.c
create mode 100644 hw/virtio/vhost-user-gpio.c
create mode 100644 tests/qtest/libqos/virtio-gpio.c
--
2.30.2
next reply other threads:[~2022-07-26 19:28 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-26 19:21 Alex Bennée [this message]
2022-07-26 19:21 ` [PATCH v3 01/21] include/hw/virtio: more comment for VIRTIO_F_BAD_FEATURE Alex Bennée
2022-07-26 19:21 ` [PATCH v3 02/21] include/hw: document vhost_dev feature life-cycle Alex Bennée
2022-07-28 6:06 ` Jason Wang
2022-07-28 10:34 ` Alex Bennée
2022-07-26 19:21 ` [PATCH v3 03/21] hw/virtio: fix some coding style issues Alex Bennée
2022-07-28 6:07 ` Jason Wang
2022-07-26 19:21 ` [PATCH v3 04/21] hw/virtio: log potentially buggy guest drivers Alex Bennée
2022-07-28 6:09 ` Jason Wang
2022-07-26 19:21 ` [PATCH v3 05/21] block/vhost-user-blk-server: don't expose VHOST_USER_F_PROTOCOL_FEATURES Alex Bennée
2022-07-27 16:32 ` Kevin Wolf
2022-07-28 6:13 ` Jason Wang
2022-07-28 10:41 ` Alex Bennée
2022-07-26 19:21 ` [PATCH v3 06/21] hw/virtio: incorporate backend features in features Alex Bennée
2022-07-26 19:21 ` [PATCH v3 07/21] hw/virtio: gracefully handle unset vhost_dev vdev Alex Bennée
2022-07-26 19:21 ` [PATCH v3 08/21] hw/virtio: handle un-configured shutdown in virtio-pci Alex Bennée
2022-07-28 6:23 ` Jason Wang
2022-07-26 19:21 ` [PATCH v3 09/21] hw/virtio: fix vhost_user_read tracepoint Alex Bennée
2022-07-28 6:28 ` Jason Wang
2022-07-26 19:21 ` [PATCH v3 10/21] hw/virtio: add some vhost-user trace events Alex Bennée
2022-07-26 19:21 ` [PATCH v3 11/21] hw/virtio: add boilerplate for vhost-user-gpio device Alex Bennée
2022-07-26 19:21 ` [PATCH v3 12/21] hw/virtio: add vhost-user-gpio-pci boilerplate Alex Bennée
2022-07-26 19:21 ` [PATCH v3 13/21] tests/qtest: pass stdout/stderr down to subtests Alex Bennée
2022-07-26 19:21 ` [PATCH v3 14/21] tests/qtest: add a timeout for subprocess_run_one_test Alex Bennée
2022-07-27 6:24 ` Thomas Huth
2022-07-26 19:21 ` [PATCH v3 15/21] tests/qtest: use qos_printf instead of g_test_message Alex Bennée
2022-07-26 19:21 ` [PATCH v3 16/21] tests/qtest: catch unhandled vhost-user messages Alex Bennée
2022-07-26 19:21 ` [PATCH v3 17/21] tests/qtest: plain g_assert for VHOST_USER_F_PROTOCOL_FEATURES Alex Bennée
2022-07-26 19:21 ` [PATCH v3 18/21] tests/qtest: add assert to catch bad features Alex Bennée
2022-07-26 19:21 ` [PATCH v3 19/21] tests/qtest: implement stub for VHOST_USER_GET_CONFIG Alex Bennée
2022-07-26 19:21 ` [PATCH v3 20/21] tests/qtest: add a get_features op to vhost-user-test Alex Bennée
2022-07-26 19:21 ` [PATCH v3 21/21] tests/qtest: enable tests for virtio-gpio Alex Bennée
2022-07-26 19:46 ` [PATCH v3 for 7.2 00/21] virtio-gpio and various virtio cleanups Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220726192150.2435175-1-alex.bennee@linaro.org \
--to=alex.bennee@linaro.org \
--cc=jasowang@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=mathieu.poirier@linaro.org \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=slp@redhat.com \
--cc=stefanha@redhat.com \
--cc=viresh.kumar@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).