All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 for 7.2 00/21] virtio-gpio and various virtio cleanups
@ 2022-07-26 19:21 Alex Bennée
  2022-07-26 19:21 ` [PATCH v3 01/21] include/hw/virtio: more comment for VIRTIO_F_BAD_FEATURE Alex Bennée
                   ` (21 more replies)
  0 siblings, 22 replies; 33+ messages in thread
From: Alex Bennée @ 2022-07-26 19:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: slp, mst, marcandre.lureau, stefanha, mathieu.poirier,
	viresh.kumar, mark.cave-ayland, jasowang, Alex Bennée

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



^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2022-07-28 10:53 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-26 19:21 [PATCH v3 for 7.2 00/21] virtio-gpio and various virtio cleanups Alex Bennée
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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.