All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH  v2 00/15] virtio-gpio and various virtio cleanups
@ 2022-05-24 15:40 Alex Bennée
  2022-05-24 15:40 ` [PATCH v2 01/15] contrib/vhost-user-blk: fix 32 bit build and enable Alex Bennée
                   ` (15 more replies)
  0 siblings, 16 replies; 34+ messages in thread
From: Alex Bennée @ 2022-05-24 15:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: slp, mst, marcandre.lureau, stefanha, mathieu.poirier,
	viresh.kumar, Alex Bennée

Hi,

This series ostensibly adds virtio-user-gpio stubs to the build for
use with an external vhost-user daemon. We've been testing it with our
rust daemons from:

  https://github.com/rust-vmm/vhost-device

Getting the test enabled took some doing most likely because the need
for CONFIG support exercised additional paths in the code that were
not used for the simpler virtio-net tests. As a result the series has
a number of cleanup and documentation patches.

The final thing that needed fixing was the ensuring that
VHOST_USER_F_PROTOCOL_FEATURES didn't get squashed in the negotiation
process. This was the hardest thing to track down as we store the
feature bits in several places variously as:

  in VirtIODevice as:
    uint64_t guest_features;
    uint64_t host_features;
    uint64_t backend_features;

 in vhost_dev as:
    uint64_t features;
    uint64_t acked_features;
    uint64_t backend_features;

and a number of the other device structures also have various features
fields along with get/set function handlers. It wasn't super clear
what the flow through this structures was meant to be but I'm fairly
sure there is unnecessary duplication in there somewhere. We could
certainly do with some docstrings to make the point of each field
clear.

Going forward I wonder if having a fake vhost-user daemon is
sustainable in the long term. Maybe it would be better to spawn real
vhost-user daemons in a test mode so we don't end up duplicating the
whole protocol?

Anyway please review.

Alex Bennée (13):
  contrib/vhost-user-blk: fix 32 bit build and enable
  include/hw/virtio: more comment for VIRTIO_F_BAD_FEATURE
  include/hw/virtio: document vhost_get_features
  include/hw/virtio: document vhost_ack_features
  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: use g_autofree for test_server_create_chr
  tests/qtest: plain g_assert for VHOST_USER_F_PROTOCOL_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

 meson.build                             |   2 +-
 include/hw/virtio/vhost-user-gpio.h     |  35 +++
 include/hw/virtio/vhost.h               |  21 ++
 include/hw/virtio/virtio.h              |   7 +-
 tests/qtest/libqos/virtio-gpio.h        |  35 +++
 contrib/vhost-user-blk/vhost-user-blk.c |   6 +-
 hw/virtio/vhost-user-gpio-pci.c         |  69 +++++
 hw/virtio/vhost-user-gpio.c             | 357 ++++++++++++++++++++++++
 tests/qtest/libqos/virtio-gpio.c        | 171 ++++++++++++
 tests/qtest/libqos/virtio.c             |   2 +-
 tests/qtest/qos-test.c                  |   8 +-
 tests/qtest/vhost-user-test.c           | 179 ++++++++++--
 contrib/vhost-user-blk/meson.build      |   3 +-
 hw/virtio/Kconfig                       |   5 +
 hw/virtio/meson.build                   |   2 +
 tests/qtest/libqos/meson.build          |   1 +
 16 files changed, 872 insertions(+), 31 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] 34+ messages in thread

end of thread, other threads:[~2022-07-07 16:50 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-24 15:40 [PATCH v2 00/15] virtio-gpio and various virtio cleanups Alex Bennée
2022-05-24 15:40 ` [PATCH v2 01/15] contrib/vhost-user-blk: fix 32 bit build and enable Alex Bennée
2022-05-25 16:03   ` Stefan Hajnoczi
2022-05-31  4:29   ` Raphael Norwitz
2022-05-24 15:40 ` [PATCH v2 02/15] include/hw/virtio: more comment for VIRTIO_F_BAD_FEATURE Alex Bennée
2022-05-25 16:04   ` Stefan Hajnoczi
2022-05-24 15:40 ` [PATCH v2 03/15] include/hw/virtio: document vhost_get_features Alex Bennée
2022-05-25 16:06   ` Stefan Hajnoczi
2022-05-24 15:40 ` [PATCH v2 04/15] include/hw/virtio: document vhost_ack_features Alex Bennée
2022-05-25 16:11   ` Stefan Hajnoczi
2022-05-24 15:40 ` [PATCH v2 05/15] hw/virtio: add boilerplate for vhost-user-gpio device Alex Bennée
2022-06-10  8:37   ` Vincent Whitchurch
2022-07-06 13:37     ` Alex Bennée
2022-05-24 15:40 ` [PATCH v2 06/15] hw/virtio: add vhost-user-gpio-pci boilerplate Alex Bennée
2022-05-24 15:40 ` [PATCH v2 07/15] tests/qtest: pass stdout/stderr down to subtests Alex Bennée
2022-05-24 15:43   ` Thomas Huth
2022-05-24 15:40 ` [PATCH v2 08/15] tests/qtest: add a timeout for subprocess_run_one_test Alex Bennée
2022-05-24 15:46   ` Thomas Huth
2022-05-24 15:40 ` [PATCH v2 09/15] tests/qtest: use qos_printf instead of g_test_message Alex Bennée
2022-05-24 15:40 ` [PATCH v2 10/15] tests/qtest: catch unhandled vhost-user messages Alex Bennée
2022-05-24 15:40 ` [PATCH v2 11/15] tests/qtest: use g_autofree for test_server_create_chr Alex Bennée
2022-05-24 15:40 ` [PATCH v2 12/15] tests/qtest: plain g_assert for VHOST_USER_F_PROTOCOL_FEATURES Alex Bennée
2022-06-02 16:26   ` Thomas Huth
2022-05-24 15:40 ` [PATCH v2 13/15] tests/qtest: implement stub for VHOST_USER_GET_CONFIG Alex Bennée
2022-05-24 15:40 ` [PATCH v2 14/15] tests/qtest: add a get_features op to vhost-user-test Alex Bennée
2022-05-24 15:40 ` [PATCH v2 15/15] tests/qtest: enable tests for virtio-gpio Alex Bennée
2022-05-25 16:17   ` Stefan Hajnoczi
2022-05-25 22:35     ` Alex Bennée
2022-05-26  8:06       ` Stefan Hajnoczi
2022-05-25 16:14 ` [PATCH v2 00/15] virtio-gpio and various virtio cleanups Stefan Hajnoczi
2022-07-07 13:38   ` Alex Bennée
2022-07-07 14:03     ` Stefan Hajnoczi
2022-07-07 15:20       ` Alex Bennée
2022-07-07 16:43         ` Stefan Hajnoczi

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.