mbox series

[v9,00/11] virtio: cleanup vhost-user-generic and reduce c&p + vhost-user-input

Message ID 20240104210945.1223134-1-alex.bennee@linaro.org
Headers show
Series virtio: cleanup vhost-user-generic and reduce c&p + vhost-user-input | expand

Message

Alex Bennée Jan. 4, 2024, 9:09 p.m. UTC
A lot of our vhost-user stubs are large chunks of boilerplate that do
(mostly) the same thing. This series continues the cleanups by
splitting the vhost-user-base and vhost-user-generic implementations.
After adding a new vq_size property the rng, gpio and i2c vhost-user
devices become simple specialisations of the common base defining the
ID, number of queues and potentially the config handling.

I've also added Manos' vhost-user-sound and Leo's vhost-user-input
stubs which are based on the same base.

Changes
-------

v9
  - re-base and fix conflicts
  - add Leo's vhost-user-input series

v8
  - scrubbed errant Message-Id

v7
  - various review comments
  - move to async teardown (fixes CI failure)

v6
  - re-base to current master
  - make vhost-user-device abstract
  - mention abstractness in docs

v5
  - addressing comments and tags
  - improved the docs

v4
  - dropped the F_TRANSPORT work for another series
  - added vhost-user-sound

Alex Bennée (6):
  virtio: split into vhost-user-base and vhost-user-device
  hw/virtio: convert vhost-user-base to async shutdown
  hw/virtio: derive vhost-user-rng from vhost-user-base
  hw/virtio: derive vhost-user-gpio from vhost-user-base
  hw/virtio: derive vhost-user-i2c from vhost-user-base
  docs/system: add a basic enumeration of vhost-user devices

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

Manos Pitsidianakis (1):
  hw/virtio: add vhost-user-snd and virtio-snd-pci devices

 MAINTAINERS                                   |  16 +-
 docs/system/device-emulation.rst              |   1 +
 docs/system/devices/vhost-user-input.rst      |  45 ++
 docs/system/devices/vhost-user-rng.rst        |   2 +
 docs/system/devices/vhost-user.rst            |  72 +++-
 ...{vhost-user-device.h => vhost-user-base.h} |  21 +-
 include/hw/virtio/vhost-user-gpio.h           |  25 +-
 include/hw/virtio/vhost-user-i2c.h            |  14 +-
 include/hw/virtio/vhost-user-rng.h            |  13 +-
 include/hw/virtio/vhost-user-snd.h            |  24 ++
 include/hw/virtio/virtio-input.h              |   6 +-
 hw/input/vhost-user-input.c                   | 136 ------
 hw/virtio/vhost-user-base.c                   | 371 ++++++++++++++++
 hw/virtio/vhost-user-device-pci.c             |  13 +-
 hw/virtio/vhost-user-device.c                 | 338 +--------------
 hw/virtio/vhost-user-gpio.c                   | 407 +-----------------
 hw/virtio/vhost-user-i2c.c                    | 272 +-----------
 hw/virtio/vhost-user-input-pci.c              |   3 -
 hw/virtio/vhost-user-input.c                  |  58 +++
 hw/virtio/vhost-user-rng.c                    | 294 +------------
 hw/virtio/vhost-user-snd-pci.c                |  75 ++++
 hw/virtio/vhost-user-snd.c                    |  67 +++
 hw/input/meson.build                          |   1 -
 hw/virtio/Kconfig                             |   5 +
 hw/virtio/meson.build                         |  27 +-
 25 files changed, 850 insertions(+), 1456 deletions(-)
 create mode 100644 docs/system/devices/vhost-user-input.rst
 rename include/hw/virtio/{vhost-user-device.h => vhost-user-base.h} (71%)
 create mode 100644 include/hw/virtio/vhost-user-snd.h
 delete mode 100644 hw/input/vhost-user-input.c
 create mode 100644 hw/virtio/vhost-user-base.c
 create mode 100644 hw/virtio/vhost-user-input.c
 create mode 100644 hw/virtio/vhost-user-snd-pci.c
 create mode 100644 hw/virtio/vhost-user-snd.c

Comments

Alex Bennée Jan. 10, 2024, 10:55 a.m. UTC | #1
Alex Bennée <alex.bennee@linaro.org> writes:

> A lot of our vhost-user stubs are large chunks of boilerplate that do
> (mostly) the same thing. This series continues the cleanups by
> splitting the vhost-user-base and vhost-user-generic implementations.
> After adding a new vq_size property the rng, gpio and i2c vhost-user
> devices become simple specialisations of the common base defining the
> ID, number of queues and potentially the config handling.
>
> I've also added Manos' vhost-user-sound and Leo's vhost-user-input
> stubs which are based on the same base.

Ping MST,

Are you waiting for anything else before pulling this into your queue?

>
> Changes
> -------
>
> v9
>   - re-base and fix conflicts
>   - add Leo's vhost-user-input series
>
> v8
>   - scrubbed errant Message-Id
>
> v7
>   - various review comments
>   - move to async teardown (fixes CI failure)
>
> v6
>   - re-base to current master
>   - make vhost-user-device abstract
>   - mention abstractness in docs
>
> v5
>   - addressing comments and tags
>   - improved the docs
>
> v4
>   - dropped the F_TRANSPORT work for another series
>   - added vhost-user-sound
>
> Alex Bennée (6):
>   virtio: split into vhost-user-base and vhost-user-device
>   hw/virtio: convert vhost-user-base to async shutdown
>   hw/virtio: derive vhost-user-rng from vhost-user-base
>   hw/virtio: derive vhost-user-gpio from vhost-user-base
>   hw/virtio: derive vhost-user-i2c from vhost-user-base
>   docs/system: add a basic enumeration of vhost-user devices
>
> 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
>
> Manos Pitsidianakis (1):
>   hw/virtio: add vhost-user-snd and virtio-snd-pci devices
>
>  MAINTAINERS                                   |  16 +-
>  docs/system/device-emulation.rst              |   1 +
>  docs/system/devices/vhost-user-input.rst      |  45 ++
>  docs/system/devices/vhost-user-rng.rst        |   2 +
>  docs/system/devices/vhost-user.rst            |  72 +++-
>  ...{vhost-user-device.h => vhost-user-base.h} |  21 +-
>  include/hw/virtio/vhost-user-gpio.h           |  25 +-
>  include/hw/virtio/vhost-user-i2c.h            |  14 +-
>  include/hw/virtio/vhost-user-rng.h            |  13 +-
>  include/hw/virtio/vhost-user-snd.h            |  24 ++
>  include/hw/virtio/virtio-input.h              |   6 +-
>  hw/input/vhost-user-input.c                   | 136 ------
>  hw/virtio/vhost-user-base.c                   | 371 ++++++++++++++++
>  hw/virtio/vhost-user-device-pci.c             |  13 +-
>  hw/virtio/vhost-user-device.c                 | 338 +--------------
>  hw/virtio/vhost-user-gpio.c                   | 407 +-----------------
>  hw/virtio/vhost-user-i2c.c                    | 272 +-----------
>  hw/virtio/vhost-user-input-pci.c              |   3 -
>  hw/virtio/vhost-user-input.c                  |  58 +++
>  hw/virtio/vhost-user-rng.c                    | 294 +------------
>  hw/virtio/vhost-user-snd-pci.c                |  75 ++++
>  hw/virtio/vhost-user-snd.c                    |  67 +++
>  hw/input/meson.build                          |   1 -
>  hw/virtio/Kconfig                             |   5 +
>  hw/virtio/meson.build                         |  27 +-
>  25 files changed, 850 insertions(+), 1456 deletions(-)
>  create mode 100644 docs/system/devices/vhost-user-input.rst
>  rename include/hw/virtio/{vhost-user-device.h => vhost-user-base.h} (71%)
>  create mode 100644 include/hw/virtio/vhost-user-snd.h
>  delete mode 100644 hw/input/vhost-user-input.c
>  create mode 100644 hw/virtio/vhost-user-base.c
>  create mode 100644 hw/virtio/vhost-user-input.c
>  create mode 100644 hw/virtio/vhost-user-snd-pci.c
>  create mode 100644 hw/virtio/vhost-user-snd.c
Michael S. Tsirkin Jan. 10, 2024, 4:12 p.m. UTC | #2
On Wed, Jan 10, 2024 at 10:55:11AM +0000, Alex Bennée wrote:
> Alex Bennée <alex.bennee@linaro.org> writes:
> 
> > A lot of our vhost-user stubs are large chunks of boilerplate that do
> > (mostly) the same thing. This series continues the cleanups by
> > splitting the vhost-user-base and vhost-user-generic implementations.
> > After adding a new vq_size property the rng, gpio and i2c vhost-user
> > devices become simple specialisations of the common base defining the
> > ID, number of queues and potentially the config handling.
> >
> > I've also added Manos' vhost-user-sound and Leo's vhost-user-input
> > stubs which are based on the same base.
> 
> Ping MST,
> 
> Are you waiting for anything else before pulling this into your queue?

Tagged, thanks!

> >
> > Changes
> > -------
> >
> > v9
> >   - re-base and fix conflicts
> >   - add Leo's vhost-user-input series
> >
> > v8
> >   - scrubbed errant Message-Id
> >
> > v7
> >   - various review comments
> >   - move to async teardown (fixes CI failure)
> >
> > v6
> >   - re-base to current master
> >   - make vhost-user-device abstract
> >   - mention abstractness in docs
> >
> > v5
> >   - addressing comments and tags
> >   - improved the docs
> >
> > v4
> >   - dropped the F_TRANSPORT work for another series
> >   - added vhost-user-sound
> >
> > Alex Bennée (6):
> >   virtio: split into vhost-user-base and vhost-user-device
> >   hw/virtio: convert vhost-user-base to async shutdown
> >   hw/virtio: derive vhost-user-rng from vhost-user-base
> >   hw/virtio: derive vhost-user-gpio from vhost-user-base
> >   hw/virtio: derive vhost-user-i2c from vhost-user-base
> >   docs/system: add a basic enumeration of vhost-user devices
> >
> > 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
> >
> > Manos Pitsidianakis (1):
> >   hw/virtio: add vhost-user-snd and virtio-snd-pci devices
> >
> >  MAINTAINERS                                   |  16 +-
> >  docs/system/device-emulation.rst              |   1 +
> >  docs/system/devices/vhost-user-input.rst      |  45 ++
> >  docs/system/devices/vhost-user-rng.rst        |   2 +
> >  docs/system/devices/vhost-user.rst            |  72 +++-
> >  ...{vhost-user-device.h => vhost-user-base.h} |  21 +-
> >  include/hw/virtio/vhost-user-gpio.h           |  25 +-
> >  include/hw/virtio/vhost-user-i2c.h            |  14 +-
> >  include/hw/virtio/vhost-user-rng.h            |  13 +-
> >  include/hw/virtio/vhost-user-snd.h            |  24 ++
> >  include/hw/virtio/virtio-input.h              |   6 +-
> >  hw/input/vhost-user-input.c                   | 136 ------
> >  hw/virtio/vhost-user-base.c                   | 371 ++++++++++++++++
> >  hw/virtio/vhost-user-device-pci.c             |  13 +-
> >  hw/virtio/vhost-user-device.c                 | 338 +--------------
> >  hw/virtio/vhost-user-gpio.c                   | 407 +-----------------
> >  hw/virtio/vhost-user-i2c.c                    | 272 +-----------
> >  hw/virtio/vhost-user-input-pci.c              |   3 -
> >  hw/virtio/vhost-user-input.c                  |  58 +++
> >  hw/virtio/vhost-user-rng.c                    | 294 +------------
> >  hw/virtio/vhost-user-snd-pci.c                |  75 ++++
> >  hw/virtio/vhost-user-snd.c                    |  67 +++
> >  hw/input/meson.build                          |   1 -
> >  hw/virtio/Kconfig                             |   5 +
> >  hw/virtio/meson.build                         |  27 +-
> >  25 files changed, 850 insertions(+), 1456 deletions(-)
> >  create mode 100644 docs/system/devices/vhost-user-input.rst
> >  rename include/hw/virtio/{vhost-user-device.h => vhost-user-base.h} (71%)
> >  create mode 100644 include/hw/virtio/vhost-user-snd.h
> >  delete mode 100644 hw/input/vhost-user-input.c
> >  create mode 100644 hw/virtio/vhost-user-base.c
> >  create mode 100644 hw/virtio/vhost-user-input.c
> >  create mode 100644 hw/virtio/vhost-user-snd-pci.c
> >  create mode 100644 hw/virtio/vhost-user-snd.c
> 
> -- 
> Alex Bennée
> Virtualisation Tech Lead @ Linaro