mbox series

[v8,0/7] virtio: cleanup vhost-user-generic and reduce c&p

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

Message

Alex Bennée Nov. 7, 2023, 6:07 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 while I was at it.

Changes
-------

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

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

 MAINTAINERS                                   |  13 +
 docs/system/devices/vhost-user-rng.rst        |   2 +
 docs/system/devices/vhost-user.rst            |  70 ++-
 ...{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 ++
 hw/virtio/vhost-user-base.c                   | 354 +++++++++++++++
 hw/virtio/vhost-user-device-pci.c             |  13 +-
 hw/virtio/vhost-user-device.c                 | 338 +--------------
 hw/virtio/vhost-user-gpio.c                   | 406 +-----------------
 hw/virtio/vhost-user-i2c.c                    | 272 +-----------
 hw/virtio/vhost-user-rng.c                    | 278 +-----------
 hw/virtio/vhost-user-snd-pci.c                |  75 ++++
 hw/virtio/vhost-user-snd.c                    |  67 +++
 hw/virtio/Kconfig                             |   5 +
 hw/virtio/meson.build                         |  23 +-
 18 files changed, 719 insertions(+), 1294 deletions(-)
 rename include/hw/virtio/{vhost-user-device.h => vhost-user-base.h} (71%)
 create mode 100644 include/hw/virtio/vhost-user-snd.h
 create mode 100644 hw/virtio/vhost-user-base.c
 create mode 100644 hw/virtio/vhost-user-snd-pci.c
 create mode 100644 hw/virtio/vhost-user-snd.c

Comments

Michael S. Tsirkin Nov. 7, 2023, 6:11 p.m. UTC | #1
On Tue, Nov 07, 2023 at 06:07:45PM +0000, Alex Bennée wrote:
> 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 while I was at it.
> 
> Changes
> -------
> 
> v8
>   - scrubbed errant Message-Id

did you pass this by checkpatch btw? there were some warnings on v6.

> 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
> 
> Manos Pitsidianakis (1):
>   hw/virtio: add vhost-user-snd and virtio-snd-pci devices
> 
>  MAINTAINERS                                   |  13 +
>  docs/system/devices/vhost-user-rng.rst        |   2 +
>  docs/system/devices/vhost-user.rst            |  70 ++-
>  ...{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 ++
>  hw/virtio/vhost-user-base.c                   | 354 +++++++++++++++
>  hw/virtio/vhost-user-device-pci.c             |  13 +-
>  hw/virtio/vhost-user-device.c                 | 338 +--------------
>  hw/virtio/vhost-user-gpio.c                   | 406 +-----------------
>  hw/virtio/vhost-user-i2c.c                    | 272 +-----------
>  hw/virtio/vhost-user-rng.c                    | 278 +-----------
>  hw/virtio/vhost-user-snd-pci.c                |  75 ++++
>  hw/virtio/vhost-user-snd.c                    |  67 +++
>  hw/virtio/Kconfig                             |   5 +
>  hw/virtio/meson.build                         |  23 +-
>  18 files changed, 719 insertions(+), 1294 deletions(-)
>  rename include/hw/virtio/{vhost-user-device.h => vhost-user-base.h} (71%)
>  create mode 100644 include/hw/virtio/vhost-user-snd.h
>  create mode 100644 hw/virtio/vhost-user-base.c
>  create mode 100644 hw/virtio/vhost-user-snd-pci.c
>  create mode 100644 hw/virtio/vhost-user-snd.c
> 
> -- 
> 2.39.2
Alex Bennée Nov. 7, 2023, 7:10 p.m. UTC | #2
"Michael S. Tsirkin" <mst@redhat.com> writes:

> On Tue, Nov 07, 2023 at 06:07:45PM +0000, Alex Bennée wrote:
>> 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 while I was at it.
>> 
>> Changes
>> -------
>> 
>> v8
>>   - scrubbed errant Message-Id
>
> did you pass this by checkpatch btw? there were some warnings on v6.

yes - its checkpatch clean:

  https://gitlab.com/stsquad/qemu/-/jobs/5480800819

>
>> 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
>> 
>> Manos Pitsidianakis (1):
>>   hw/virtio: add vhost-user-snd and virtio-snd-pci devices
>> 
>>  MAINTAINERS                                   |  13 +
>>  docs/system/devices/vhost-user-rng.rst        |   2 +
>>  docs/system/devices/vhost-user.rst            |  70 ++-
>>  ...{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 ++
>>  hw/virtio/vhost-user-base.c                   | 354 +++++++++++++++
>>  hw/virtio/vhost-user-device-pci.c             |  13 +-
>>  hw/virtio/vhost-user-device.c                 | 338 +--------------
>>  hw/virtio/vhost-user-gpio.c                   | 406 +-----------------
>>  hw/virtio/vhost-user-i2c.c                    | 272 +-----------
>>  hw/virtio/vhost-user-rng.c                    | 278 +-----------
>>  hw/virtio/vhost-user-snd-pci.c                |  75 ++++
>>  hw/virtio/vhost-user-snd.c                    |  67 +++
>>  hw/virtio/Kconfig                             |   5 +
>>  hw/virtio/meson.build                         |  23 +-
>>  18 files changed, 719 insertions(+), 1294 deletions(-)
>>  rename include/hw/virtio/{vhost-user-device.h => vhost-user-base.h} (71%)
>>  create mode 100644 include/hw/virtio/vhost-user-snd.h
>>  create mode 100644 hw/virtio/vhost-user-base.c
>>  create mode 100644 hw/virtio/vhost-user-snd-pci.c
>>  create mode 100644 hw/virtio/vhost-user-snd.c
>> 
>> -- 
>> 2.39.2