qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/4] virtio: Refactor vhost input stub
@ 2023-11-13  1:16 Leo Yan
  2023-11-13  1:16 ` [PATCH v1 1/4] hw/virtio: Support set_config() callback in vhost-user-base Leo Yan
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Leo Yan @ 2023-11-13  1:16 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alex Bennée, Michael S . Tsirkin, Gerd Hoffmann,
	Marc-André Lureau, Manos Pitsidianakis, Leo Yan

This series is to refactor vhost stub vhost-user-input.

Since vhost input stub requires set_config() callback for communication
event configurations between the backend and the guest, patch 01 is a
preparison for support set_config() callback in vhost-user-base.

The patch 02 is to add documentation for vhost-user-input.

The patch 03 is to move virtio input stub from the input folder to the
virtio folder.

The patch 04 derives vhost-user-input from vhost-user-base.  We reuse
the common code from vhhost-user-base as possible and the input stub is
simplized significantly.

This patch set has been tested with the backend daemon:

  # ./build/contrib/vhost-user-input/vhost-user-input \
		     -p /dev/input/event20 -s /tmp/input.sock

The series is based on "[PATCH v8 0/7] virtio: cleanup
vhost-user-generic and reduce c&p" which introduces vhost-user-base.
Based-on: <20231107180752.3458672-1-alex.bennee@linaro.org>


Leo Yan (4):
  hw/virtio: Support set_config() callback in vhost-user-base
  docs/system: Add vhost-user-input documentation
  hw/virtio: Move vhost-user-input into virtio folder
  hw/virtio: derive vhost-user-input from vhost-user-base

 docs/system/devices/vhost-user-input.rst |  44 ++++++++
 docs/system/devices/vhost-user.rst       |   2 +-
 hw/input/meson.build                     |   1 -
 hw/input/vhost-user-input.c              | 136 -----------------------
 hw/virtio/meson.build                    |   4 +-
 hw/virtio/vhost-user-base.c              |  17 +++
 hw/virtio/vhost-user-input-pci.c         |   3 -
 hw/virtio/vhost-user-input.c             |  58 ++++++++++
 include/hw/virtio/virtio-input.h         |   6 +-
 9 files changed, 126 insertions(+), 145 deletions(-)
 create mode 100644 docs/system/devices/vhost-user-input.rst
 delete mode 100644 hw/input/vhost-user-input.c
 create mode 100644 hw/virtio/vhost-user-input.c

-- 
2.34.1



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

* [PATCH v1 1/4] hw/virtio: Support set_config() callback in vhost-user-base
  2023-11-13  1:16 [PATCH v1 0/4] virtio: Refactor vhost input stub Leo Yan
@ 2023-11-13  1:16 ` Leo Yan
  2023-11-13  1:16 ` [PATCH v1 2/4] docs/system: Add vhost-user-input documentation Leo Yan
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Leo Yan @ 2023-11-13  1:16 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alex Bennée, Michael S . Tsirkin, Gerd Hoffmann,
	Marc-André Lureau, Manos Pitsidianakis, Leo Yan

The Virtio input device invokes set_config() callback for retrieving
the event configuration info, but the callback is not supported in
vhost-user-base.

This patch adds support set_config() callback in vhost-user-base.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
---
 hw/virtio/vhost-user-base.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/hw/virtio/vhost-user-base.c b/hw/virtio/vhost-user-base.c
index 78cfa9a5bb..a83167191e 100644
--- a/hw/virtio/vhost-user-base.c
+++ b/hw/virtio/vhost-user-base.c
@@ -140,6 +140,22 @@ static void vub_get_config(VirtIODevice *vdev, uint8_t *config)
     }
 }
 
+static void vub_set_config(VirtIODevice *vdev, const uint8_t *config_data)
+{
+    VHostUserBase *vub = VHOST_USER_BASE(vdev);
+    int ret;
+
+    g_assert(vub->config_size && vub->vhost_user.supports_config == true);
+
+    ret = vhost_dev_set_config(&vub->vhost_dev, config_data,
+                               0, vub->config_size,
+                               VHOST_SET_CONFIG_TYPE_FRONTEND);
+    if (ret) {
+        error_report("vhost guest set device config space failed: %d", ret);
+        return;
+    }
+}
+
 /*
  * When the daemon signals an update to the config we just need to
  * signal the guest as we re-read the config on demand above.
@@ -337,6 +353,7 @@ static void vub_class_init(ObjectClass *klass, void *data)
     vdc->unrealize = vub_device_unrealize;
     vdc->get_features = vub_get_features;
     vdc->get_config = vub_get_config;
+    vdc->set_config = vub_set_config;
     vdc->set_status = vub_set_status;
 }
 
-- 
2.34.1



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

* [PATCH v1 2/4] docs/system: Add vhost-user-input documentation
  2023-11-13  1:16 [PATCH v1 0/4] virtio: Refactor vhost input stub Leo Yan
  2023-11-13  1:16 ` [PATCH v1 1/4] hw/virtio: Support set_config() callback in vhost-user-base Leo Yan
@ 2023-11-13  1:16 ` Leo Yan
  2023-11-13  1:33   ` Leo Yan
  2023-11-13  1:16 ` [PATCH v1 3/4] hw/virtio: Move vhost-user-input into virtio folder Leo Yan
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Leo Yan @ 2023-11-13  1:16 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alex Bennée, Michael S . Tsirkin, Gerd Hoffmann,
	Marc-André Lureau, Manos Pitsidianakis, Leo Yan

This adds basic documentation for vhost-user-input.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
---
 docs/system/devices/vhost-user-input.rst | 44 ++++++++++++++++++++++++
 docs/system/devices/vhost-user.rst       |  2 +-
 2 files changed, 45 insertions(+), 1 deletion(-)
 create mode 100644 docs/system/devices/vhost-user-input.rst

diff --git a/docs/system/devices/vhost-user-input.rst b/docs/system/devices/vhost-user-input.rst
new file mode 100644
index 0000000000..601282e658
--- /dev/null
+++ b/docs/system/devices/vhost-user-input.rst
@@ -0,0 +1,44 @@
+.. _vhost_user_rng:
+
+QEMU vhost-user-input - Input emulation
+=======================================
+
+This document describes the setup and usage of the Virtio input device.
+The Virtio input device is a paravirtualized device for input events.
+
+Description
+-----------
+
+The vhost-user-input device implementation was designed to work with a daemon
+polling on input devices and passes input events to the guest.
+
+QEMU provides a backend implementation in contrib/vhost-user-input.
+
+Linux kernel support
+--------------------
+
+Virtio input requires a guest Linux kernel built with the
+``CONFIG_VIRTIO_INPUT`` option.
+
+Examples
+--------
+
+The backend daemon should be started first:
+
+::
+
+  host# vhost-user-input --socket-path=input.sock	\
+      --evdev-path=/dev/input/event17
+
+The QEMU invocation needs to create a chardev socket to communicate with the
+backend daemon and share memory with the guest over a memfd.
+
+::
+
+  host# qemu-system								\
+      -chardev socket,path=/tmp/input.sock,id=mouse0				\
+      -device vhost-user-input-pci,chardev=mouse0				\
+      -m 4096 									\
+      -object memory-backend-file,id=mem,size=4G,mem-path=/dev/shm,share=on	\
+      -numa node,memdev=mem							\
+      ...
diff --git a/docs/system/devices/vhost-user.rst b/docs/system/devices/vhost-user.rst
index c6afc4836f..75b40f08c6 100644
--- a/docs/system/devices/vhost-user.rst
+++ b/docs/system/devices/vhost-user.rst
@@ -42,7 +42,7 @@ platform details for what sort of virtio bus to use.
     - See https://github.com/rust-vmm/vhost-device
   * - vhost-user-input
     - Generic input driver
-    - See contrib/vhost-user-input
+    - :ref:`vhost_user_input`
   * - vhost-user-rng
     - Entropy driver
     - :ref:`vhost_user_rng`
-- 
2.34.1



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

* [PATCH v1 3/4] hw/virtio: Move vhost-user-input into virtio folder
  2023-11-13  1:16 [PATCH v1 0/4] virtio: Refactor vhost input stub Leo Yan
  2023-11-13  1:16 ` [PATCH v1 1/4] hw/virtio: Support set_config() callback in vhost-user-base Leo Yan
  2023-11-13  1:16 ` [PATCH v1 2/4] docs/system: Add vhost-user-input documentation Leo Yan
@ 2023-11-13  1:16 ` Leo Yan
  2023-11-13  7:24   ` Manos Pitsidianakis
  2023-11-13  1:16 ` [PATCH v1 4/4] hw/virtio: derive vhost-user-input from vhost-user-base Leo Yan
  2023-11-13  6:29 ` [PATCH v1 0/4] virtio: Refactor vhost input stub Michael S. Tsirkin
  4 siblings, 1 reply; 10+ messages in thread
From: Leo Yan @ 2023-11-13  1:16 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alex Bennée, Michael S . Tsirkin, Gerd Hoffmann,
	Marc-André Lureau, Manos Pitsidianakis, Leo Yan

vhost-user-input is in the input folder.  On the other hand, the folder
'hw/virtio' maintains other virtio stubs (e.g. I2C, RNG, GPIO, etc).

This patch moves vhost-user-input into the virtio folder for better code
organization.  No functionality change.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
---
 hw/input/meson.build                    | 1 -
 hw/virtio/meson.build                   | 4 +++-
 hw/{input => virtio}/vhost-user-input.c | 0
 3 files changed, 3 insertions(+), 2 deletions(-)
 rename hw/{input => virtio}/vhost-user-input.c (100%)

diff --git a/hw/input/meson.build b/hw/input/meson.build
index 640556bbbc..3cc8ab85f0 100644
--- a/hw/input/meson.build
+++ b/hw/input/meson.build
@@ -11,7 +11,6 @@ system_ss.add(when: 'CONFIG_TSC2005', if_true: files('tsc2005.c'))
 system_ss.add(when: 'CONFIG_VIRTIO_INPUT', if_true: files('virtio-input.c'))
 system_ss.add(when: 'CONFIG_VIRTIO_INPUT', if_true: files('virtio-input-hid.c'))
 system_ss.add(when: 'CONFIG_VIRTIO_INPUT_HOST', if_true: files('virtio-input-host.c'))
-system_ss.add(when: 'CONFIG_VHOST_USER_INPUT', if_true: files('vhost-user-input.c'))
 
 system_ss.add(when: 'CONFIG_PXA2XX', if_true: files('pxa2xx_keypad.c'))
 system_ss.add(when: 'CONFIG_TSC210X', if_true: files('tsc210x.c'))
diff --git a/hw/virtio/meson.build b/hw/virtio/meson.build
index 118d4d4da7..c924afcafc 100644
--- a/hw/virtio/meson.build
+++ b/hw/virtio/meson.build
@@ -25,6 +25,7 @@ if have_vhost
     system_virtio_ss.add(when: 'CONFIG_VHOST_USER_I2C', if_true: files('vhost-user-i2c.c'))
     system_virtio_ss.add(when: 'CONFIG_VHOST_USER_RNG', if_true: files('vhost-user-rng.c'))
     system_virtio_ss.add(when: 'CONFIG_VHOST_USER_SND', if_true: files('vhost-user-snd.c'))
+    system_virtio_ss.add(when: 'CONFIG_VHOST_USER_INPUT', if_true: files('vhost-user-input.c'))
 
     # PCI Stubs
     system_virtio_ss.add(when: 'CONFIG_VIRTIO_PCI', if_true: files('vhost-user-device-pci.c'))
@@ -36,6 +37,8 @@ if have_vhost
                          if_true: files('vhost-user-rng-pci.c'))
     system_virtio_ss.add(when: ['CONFIG_VIRTIO_PCI', 'CONFIG_VHOST_USER_SND'],
                          if_true: files('vhost-user-snd-pci.c'))
+    system_virtio_ss.add(when: ['CONFIG_VIRTIO_PCI', 'CONFIG_VHOST_USER_INPUT'],
+                         if_true: files('vhost-user-input-pci.c'))
   endif
   if have_vhost_vdpa
     system_virtio_ss.add(files('vhost-vdpa.c'))
@@ -59,7 +62,6 @@ virtio_pci_ss = ss.source_set()
 virtio_pci_ss.add(when: 'CONFIG_VHOST_VSOCK', if_true: files('vhost-vsock-pci.c'))
 virtio_pci_ss.add(when: 'CONFIG_VHOST_USER_VSOCK', if_true: files('vhost-user-vsock-pci.c'))
 virtio_pci_ss.add(when: 'CONFIG_VHOST_USER_BLK', if_true: files('vhost-user-blk-pci.c'))
-virtio_pci_ss.add(when: 'CONFIG_VHOST_USER_INPUT', if_true: files('vhost-user-input-pci.c'))
 virtio_pci_ss.add(when: 'CONFIG_VHOST_USER_SCSI', if_true: files('vhost-user-scsi-pci.c'))
 virtio_pci_ss.add(when: 'CONFIG_VHOST_SCSI', if_true: files('vhost-scsi-pci.c'))
 virtio_pci_ss.add(when: 'CONFIG_VHOST_USER_FS', if_true: files('vhost-user-fs-pci.c'))
diff --git a/hw/input/vhost-user-input.c b/hw/virtio/vhost-user-input.c
similarity index 100%
rename from hw/input/vhost-user-input.c
rename to hw/virtio/vhost-user-input.c
-- 
2.34.1



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

* [PATCH v1 4/4] hw/virtio: derive vhost-user-input from vhost-user-base
  2023-11-13  1:16 [PATCH v1 0/4] virtio: Refactor vhost input stub Leo Yan
                   ` (2 preceding siblings ...)
  2023-11-13  1:16 ` [PATCH v1 3/4] hw/virtio: Move vhost-user-input into virtio folder Leo Yan
@ 2023-11-13  1:16 ` Leo Yan
  2023-11-13  6:29 ` [PATCH v1 0/4] virtio: Refactor vhost input stub Michael S. Tsirkin
  4 siblings, 0 replies; 10+ messages in thread
From: Leo Yan @ 2023-11-13  1:16 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alex Bennée, Michael S . Tsirkin, Gerd Hoffmann,
	Marc-André Lureau, Manos Pitsidianakis, Leo Yan

This patch derives vhost-user-input from vhost-user-base class, so make
the input stub as a simpler boilerplate wrapper.

With the refactoring, vhost-user-input adds the property 'chardev', this
leads to conflict with the vhost-user-input-pci adds the same property.
To resolve the error, remove the duplicate property from
vhost-user-input-pci.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
---
 hw/virtio/vhost-user-input-pci.c |   3 -
 hw/virtio/vhost-user-input.c     | 114 +++++--------------------------
 include/hw/virtio/virtio-input.h |   6 +-
 3 files changed, 21 insertions(+), 102 deletions(-)

diff --git a/hw/virtio/vhost-user-input-pci.c b/hw/virtio/vhost-user-input-pci.c
index b858898a36..3f4761ce88 100644
--- a/hw/virtio/vhost-user-input-pci.c
+++ b/hw/virtio/vhost-user-input-pci.c
@@ -30,9 +30,6 @@ static void vhost_user_input_pci_instance_init(Object *obj)
 
     virtio_instance_init_common(obj, &dev->vhi, sizeof(dev->vhi),
                                 TYPE_VHOST_USER_INPUT);
-
-    object_property_add_alias(obj, "chardev",
-                              OBJECT(&dev->vhi), "chardev");
 }
 
 static const VirtioPCIDeviceTypeInfo vhost_user_input_pci_info = {
diff --git a/hw/virtio/vhost-user-input.c b/hw/virtio/vhost-user-input.c
index 4ee3542106..bedec0468c 100644
--- a/hw/virtio/vhost-user-input.c
+++ b/hw/virtio/vhost-user-input.c
@@ -5,83 +5,25 @@
  */
 
 #include "qemu/osdep.h"
-#include "qemu/error-report.h"
-#include "qapi/error.h"
-
 #include "hw/virtio/virtio-input.h"
 
-static int vhost_input_config_change(struct vhost_dev *dev)
-{
-    error_report("vhost-user-input: unhandled backend config change");
-    return -1;
-}
-
-static const VhostDevConfigOps config_ops = {
-    .vhost_dev_config_notifier = vhost_input_config_change,
+static Property vinput_properties[] = {
+    DEFINE_PROP_CHR("chardev", VHostUserBase, chardev),
+    DEFINE_PROP_END_OF_LIST(),
 };
 
-static void vhost_input_realize(DeviceState *dev, Error **errp)
+static void vinput_realize(DeviceState *dev, Error **errp)
 {
-    VHostUserInput *vhi = VHOST_USER_INPUT(dev);
-    VirtIOInput *vinput = VIRTIO_INPUT(dev);
-    VirtIODevice *vdev = VIRTIO_DEVICE(dev);
+    VHostUserBase *vub = VHOST_USER_BASE(dev);
+    VHostUserBaseClass *vubc = VHOST_USER_BASE_GET_CLASS(dev);
 
-    vhost_dev_set_config_notifier(&vhi->vhost->dev, &config_ops);
-    vinput->cfg_size = sizeof_field(virtio_input_config, u);
-    if (vhost_user_backend_dev_init(vhi->vhost, vdev, 2, errp) == -1) {
-        return;
-    }
-}
+    /* Fixed for input device */
+    vub->virtio_id = VIRTIO_ID_INPUT;
+    vub->num_vqs = 2;
+    vub->vq_size = 4;
+    vub->config_size = sizeof(virtio_input_config);
 
-static void vhost_input_change_active(VirtIOInput *vinput)
-{
-    VHostUserInput *vhi = VHOST_USER_INPUT(vinput);
-
-    if (vinput->active) {
-        vhost_user_backend_start(vhi->vhost);
-    } else {
-        vhost_user_backend_stop(vhi->vhost);
-    }
-}
-
-static void vhost_input_get_config(VirtIODevice *vdev, uint8_t *config_data)
-{
-    VirtIOInput *vinput = VIRTIO_INPUT(vdev);
-    VHostUserInput *vhi = VHOST_USER_INPUT(vdev);
-    Error *local_err = NULL;
-    int ret;
-
-    memset(config_data, 0, vinput->cfg_size);
-
-    ret = vhost_dev_get_config(&vhi->vhost->dev, config_data, vinput->cfg_size,
-                               &local_err);
-    if (ret) {
-        error_report_err(local_err);
-        return;
-    }
-}
-
-static void vhost_input_set_config(VirtIODevice *vdev,
-                                   const uint8_t *config_data)
-{
-    VHostUserInput *vhi = VHOST_USER_INPUT(vdev);
-    int ret;
-
-    ret = vhost_dev_set_config(&vhi->vhost->dev, config_data,
-                               0, sizeof(virtio_input_config),
-                               VHOST_SET_CONFIG_TYPE_FRONTEND);
-    if (ret) {
-        error_report("vhost-user-input: set device config space failed");
-        return;
-    }
-
-    virtio_notify_config(vdev);
-}
-
-static struct vhost_dev *vhost_input_get_vhost(VirtIODevice *vdev)
-{
-    VHostUserInput *vhi = VHOST_USER_INPUT(vdev);
-    return &vhi->vhost->dev;
+    vubc->parent_realize(dev, errp);
 }
 
 static const VMStateDescription vmstate_vhost_input = {
@@ -91,40 +33,20 @@ static const VMStateDescription vmstate_vhost_input = {
 
 static void vhost_input_class_init(ObjectClass *klass, void *data)
 {
-    VirtIOInputClass *vic = VIRTIO_INPUT_CLASS(klass);
-    VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass);
+    VHostUserBaseClass *vubc = VHOST_USER_BASE_CLASS(klass);
     DeviceClass *dc = DEVICE_CLASS(klass);
 
     dc->vmsd = &vmstate_vhost_input;
-    vdc->get_config = vhost_input_get_config;
-    vdc->set_config = vhost_input_set_config;
-    vdc->get_vhost = vhost_input_get_vhost;
-    vic->realize = vhost_input_realize;
-    vic->change_active = vhost_input_change_active;
-}
-
-static void vhost_input_init(Object *obj)
-{
-    VHostUserInput *vhi = VHOST_USER_INPUT(obj);
-
-    vhi->vhost = VHOST_USER_BACKEND(object_new(TYPE_VHOST_USER_BACKEND));
-    object_property_add_alias(obj, "chardev",
-                              OBJECT(vhi->vhost), "chardev");
-}
-
-static void vhost_input_finalize(Object *obj)
-{
-    VHostUserInput *vhi = VHOST_USER_INPUT(obj);
-
-    object_unref(OBJECT(vhi->vhost));
+    device_class_set_props(dc, vinput_properties);
+    device_class_set_parent_realize(dc, vinput_realize,
+                                    &vubc->parent_realize);
+    set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
 }
 
 static const TypeInfo vhost_input_info = {
     .name          = TYPE_VHOST_USER_INPUT,
-    .parent        = TYPE_VIRTIO_INPUT,
+    .parent        = TYPE_VHOST_USER_BASE,
     .instance_size = sizeof(VHostUserInput),
-    .instance_init = vhost_input_init,
-    .instance_finalize = vhost_input_finalize,
     .class_init    = vhost_input_class_init,
 };
 
diff --git a/include/hw/virtio/virtio-input.h b/include/hw/virtio/virtio-input.h
index a6c9703644..e69c0aeca3 100644
--- a/include/hw/virtio/virtio-input.h
+++ b/include/hw/virtio/virtio-input.h
@@ -1,6 +1,8 @@
 #ifndef QEMU_VIRTIO_INPUT_H
 #define QEMU_VIRTIO_INPUT_H
 
+#include "hw/virtio/vhost-user.h"
+#include "hw/virtio/vhost-user-base.h"
 #include "ui/input.h"
 #include "sysemu/vhost-user-backend.h"
 
@@ -97,9 +99,7 @@ struct VirtIOInputHost {
 };
 
 struct VHostUserInput {
-    VirtIOInput                       parent_obj;
-
-    VhostUserBackend                  *vhost;
+    VHostUserBase parent_obj;
 };
 
 void virtio_input_send(VirtIOInput *vinput, virtio_input_event *event);
-- 
2.34.1



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

* Re: [PATCH v1 2/4] docs/system: Add vhost-user-input documentation
  2023-11-13  1:16 ` [PATCH v1 2/4] docs/system: Add vhost-user-input documentation Leo Yan
@ 2023-11-13  1:33   ` Leo Yan
  0 siblings, 0 replies; 10+ messages in thread
From: Leo Yan @ 2023-11-13  1:33 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alex Bennée, Michael S . Tsirkin, Gerd Hoffmann,
	Marc-André Lureau, Manos Pitsidianakis

On Mon, Nov 13, 2023 at 09:16:40AM +0800, Leo Yan wrote:
> This adds basic documentation for vhost-user-input.
> 
> Signed-off-by: Leo Yan <leo.yan@linaro.org>
> ---
>  docs/system/devices/vhost-user-input.rst | 44 ++++++++++++++++++++++++
>  docs/system/devices/vhost-user.rst       |  2 +-
>  2 files changed, 45 insertions(+), 1 deletion(-)
>  create mode 100644 docs/system/devices/vhost-user-input.rst
> 
> diff --git a/docs/system/devices/vhost-user-input.rst b/docs/system/devices/vhost-user-input.rst
> new file mode 100644
> index 0000000000..601282e658
> --- /dev/null
> +++ b/docs/system/devices/vhost-user-input.rst
> @@ -0,0 +1,44 @@
> +.. _vhost_user_rng:

Ouch, a typo: s/_vhost_user_rng/_vhost_user_input

Anyway, I will wait a bit for review before send new patch set.

Thanks,
Leo


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

* Re: [PATCH v1 0/4] virtio: Refactor vhost input stub
  2023-11-13  1:16 [PATCH v1 0/4] virtio: Refactor vhost input stub Leo Yan
                   ` (3 preceding siblings ...)
  2023-11-13  1:16 ` [PATCH v1 4/4] hw/virtio: derive vhost-user-input from vhost-user-base Leo Yan
@ 2023-11-13  6:29 ` Michael S. Tsirkin
  2023-11-13 19:05   ` Leo Yan
  4 siblings, 1 reply; 10+ messages in thread
From: Michael S. Tsirkin @ 2023-11-13  6:29 UTC (permalink / raw)
  To: Leo Yan
  Cc: qemu-devel, Alex Bennée, Gerd Hoffmann,
	Marc-André Lureau, Manos Pitsidianakis

On Mon, Nov 13, 2023 at 09:16:38AM +0800, Leo Yan wrote:
> This series is to refactor vhost stub vhost-user-input.
> 
> Since vhost input stub requires set_config() callback for communication
> event configurations between the backend and the guest, patch 01 is a
> preparison for support set_config() callback in vhost-user-base.
> 
> The patch 02 is to add documentation for vhost-user-input.
> 
> The patch 03 is to move virtio input stub from the input folder to the
> virtio folder.
> 
> The patch 04 derives vhost-user-input from vhost-user-base.  We reuse
> the common code from vhhost-user-base as possible and the input stub is
> simplized significantly.
> 
> This patch set has been tested with the backend daemon:
> 
>   # ./build/contrib/vhost-user-input/vhost-user-input \
> 		     -p /dev/input/event20 -s /tmp/input.sock
> 
> The series is based on "[PATCH v8 0/7] virtio: cleanup
> vhost-user-generic and reduce c&p" which introduces vhost-user-base.
> Based-on: <20231107180752.3458672-1-alex.bennee@linaro.org>


That patchset is deferred until after the release, so this one
will be, too. I have tagged it, to help make sure it's not
lost pls ping me after the release.

> 
> Leo Yan (4):
>   hw/virtio: Support set_config() callback in vhost-user-base
>   docs/system: Add vhost-user-input documentation
>   hw/virtio: Move vhost-user-input into virtio folder
>   hw/virtio: derive vhost-user-input from vhost-user-base
> 
>  docs/system/devices/vhost-user-input.rst |  44 ++++++++
>  docs/system/devices/vhost-user.rst       |   2 +-
>  hw/input/meson.build                     |   1 -
>  hw/input/vhost-user-input.c              | 136 -----------------------
>  hw/virtio/meson.build                    |   4 +-
>  hw/virtio/vhost-user-base.c              |  17 +++
>  hw/virtio/vhost-user-input-pci.c         |   3 -
>  hw/virtio/vhost-user-input.c             |  58 ++++++++++
>  include/hw/virtio/virtio-input.h         |   6 +-
>  9 files changed, 126 insertions(+), 145 deletions(-)
>  create mode 100644 docs/system/devices/vhost-user-input.rst
>  delete mode 100644 hw/input/vhost-user-input.c
>  create mode 100644 hw/virtio/vhost-user-input.c
> 
> -- 
> 2.34.1



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

* Re: [PATCH v1 3/4] hw/virtio: Move vhost-user-input into virtio folder
  2023-11-13  1:16 ` [PATCH v1 3/4] hw/virtio: Move vhost-user-input into virtio folder Leo Yan
@ 2023-11-13  7:24   ` Manos Pitsidianakis
  2023-11-13 17:48     ` Leo Yan
  0 siblings, 1 reply; 10+ messages in thread
From: Manos Pitsidianakis @ 2023-11-13  7:24 UTC (permalink / raw)
  To: Leo Yan, qemu-devel
  Cc: Alex Benné e, Michael S . Tsirkin, Gerd Hoffmann,
	Marc-André Lureau, Manos Pitsidianakis, Leo Yan

Hello Leo,

On Mon, 13 Nov 2023 03:16, Leo Yan <leo.yan@linaro.org> wrote:
>vhost-user-input is in the input folder.  On the other hand, the folder
>'hw/virtio' maintains other virtio stubs (e.g. I2C, RNG, GPIO, etc).
>
>This patch moves vhost-user-input into the virtio folder for better code
>organization.  No functionality change.
>
>Signed-off-by: Leo Yan <leo.yan@linaro.org>

Make sure MAINTAINERS is updated as well, it points to hw/input:

  virtio-input
  M: Gerd Hoffmann <kraxel@redhat.com>
  S: Odd Fixes
  F: hw/input/vhost-user-input.c
  F: hw/input/virtio-input*.c
  F: include/hw/virtio/virtio-input.h
  F: contrib/vhost-user-input/*


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

* Re: [PATCH v1 3/4] hw/virtio: Move vhost-user-input into virtio folder
  2023-11-13  7:24   ` Manos Pitsidianakis
@ 2023-11-13 17:48     ` Leo Yan
  0 siblings, 0 replies; 10+ messages in thread
From: Leo Yan @ 2023-11-13 17:48 UTC (permalink / raw)
  To: Manos Pitsidianakis
  Cc: qemu-devel, Alex Benné e, Michael S . Tsirkin, Gerd Hoffmann,
	Marc-André Lureau

Hi Manos,

On Mon, Nov 13, 2023 at 09:24:09AM +0200, Manos Pitsidianakis wrote:
> Hello Leo,
> 
> On Mon, 13 Nov 2023 03:16, Leo Yan <leo.yan@linaro.org> wrote:
> > vhost-user-input is in the input folder.  On the other hand, the folder
> > 'hw/virtio' maintains other virtio stubs (e.g. I2C, RNG, GPIO, etc).
> > 
> > This patch moves vhost-user-input into the virtio folder for better code
> > organization.  No functionality change.
> > 
> > Signed-off-by: Leo Yan <leo.yan@linaro.org>
> 
> Make sure MAINTAINERS is updated as well, it points to hw/input:

You are right, will update in next spin.

Thanks for pointing out this and review!

Leo


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

* Re: [PATCH v1 0/4] virtio: Refactor vhost input stub
  2023-11-13  6:29 ` [PATCH v1 0/4] virtio: Refactor vhost input stub Michael S. Tsirkin
@ 2023-11-13 19:05   ` Leo Yan
  0 siblings, 0 replies; 10+ messages in thread
From: Leo Yan @ 2023-11-13 19:05 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: qemu-devel, Alex Bennée, Gerd Hoffmann,
	Marc-André Lureau, Manos Pitsidianakis

Hi Michael,

On Mon, Nov 13, 2023 at 01:29:49AM -0500, Michael S. Tsirkin wrote:

[...]

> > The series is based on "[PATCH v8 0/7] virtio: cleanup
> > vhost-user-generic and reduce c&p" which introduces vhost-user-base.
> > Based-on: <20231107180752.3458672-1-alex.bennee@linaro.org>
> 
> 
> That patchset is deferred until after the release, so this one
> will be, too. I have tagged it, to help make sure it's not
> lost pls ping me after the release.

Just remind, I have sent v2.

And will monitor mailing list for the release.

Thanks,
Leo


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

end of thread, other threads:[~2023-11-13 19:06 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-13  1:16 [PATCH v1 0/4] virtio: Refactor vhost input stub Leo Yan
2023-11-13  1:16 ` [PATCH v1 1/4] hw/virtio: Support set_config() callback in vhost-user-base Leo Yan
2023-11-13  1:16 ` [PATCH v1 2/4] docs/system: Add vhost-user-input documentation Leo Yan
2023-11-13  1:33   ` Leo Yan
2023-11-13  1:16 ` [PATCH v1 3/4] hw/virtio: Move vhost-user-input into virtio folder Leo Yan
2023-11-13  7:24   ` Manos Pitsidianakis
2023-11-13 17:48     ` Leo Yan
2023-11-13  1:16 ` [PATCH v1 4/4] hw/virtio: derive vhost-user-input from vhost-user-base Leo Yan
2023-11-13  6:29 ` [PATCH v1 0/4] virtio: Refactor vhost input stub Michael S. Tsirkin
2023-11-13 19:05   ` Leo Yan

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).