[PATCH v2 00/23] vhost refactoring and fixes

Vladimir Sementsov-Ogievskiy posted 23 patches 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20251011232404.561024-1-vsementsov@yandex-team.ru
Maintainers: "Gonglei (Arei)" <arei.gonglei@huawei.com>, Zhenwei Pi <pizhenwei@bytedance.com>, "Michael S. Tsirkin" <mst@redhat.com>, Stefano Garzarella <sgarzare@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>, Raphael Norwitz <raphael@enfabrica.net>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Jason Wang <jasowang@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Fam Zheng <fam@euphon.net>, "Alex Bennée" <alex.bennee@linaro.org>, Eric Blake <eblake@redhat.com>, Markus Armbruster <armbru@redhat.com>
There is a newer version of this series
backends/cryptodev-vhost.c     |   9 +-
hw/block/trace-events          |  10 ++
hw/block/vhost-user-blk.c      |  20 ++-
hw/display/vhost-user-gpu.c    |  11 +-
hw/net/vhost_net.c             |  35 ++--
hw/scsi/vhost-scsi.c           |   1 -
hw/scsi/vhost-user-scsi.c      |   1 -
hw/virtio/trace-events         |  16 +-
hw/virtio/vdpa-dev.c           |   3 +-
hw/virtio/vhost-user-base.c    |   8 +-
hw/virtio/vhost-user.c         | 285 ++++++++++++++++++++++---------
hw/virtio/vhost.c              | 300 +++++++++++++++++----------------
hw/virtio/virtio-bus.c         |  18 +-
hw/virtio/virtio-hmp-cmds.c    |   2 -
hw/virtio/virtio-mmio.c        |  41 +----
hw/virtio/virtio-pci.c         |  34 +---
hw/virtio/virtio-qmp.c         |  12 +-
hw/virtio/virtio.c             |  48 +++---
include/hw/virtio/vhost-user.h |   3 +
include/hw/virtio/vhost.h      |  51 ++++--
include/hw/virtio/virtio-pci.h |   3 -
include/hw/virtio/virtio.h     |  16 +-
net/vhost-vdpa.c               |   7 +-
qapi/virtio.json               |   3 -
24 files changed, 525 insertions(+), 412 deletions(-)
[PATCH v2 00/23] vhost refactoring and fixes
Posted by Vladimir Sementsov-Ogievskiy 1 month ago
Hi all. That's rebased and updated first part of
  [PATCH 00/33] vhost-user-blk: live-backend local migration

v2:
01: rework
02: - rebaose on _ex features, more accurate
    - change in vhost_net_ack_features_ex()
    - add note to commit message
03: rename to vhost_user_has_protocol_feature,
    to follow existing vhost_user_set_protocol_features
04: rework to vhost-user only helper
05: add r-b by Philippe and Raphael
06: rebase on _ex features, make new helpers static inliners
07: add docstring
09: a-b by Raphael
10: rebase on address_space_map
11: fix double-free
13,14: r-b by Raphael
16: a-b by Raphael
17,18: r-b by Raphael
19: reworked
20: add r-b by Philippe and Raphael
21: - add r-b by Philippe and Raphael
    - fix indent
22: rename to _in/_out, add vdev ptr
23: rename to _in/_out, add dev ptr

Vladimir Sementsov-Ogievskiy (23):
  vhost-user: rework enabling vrings
  vhost: drop backend_features field
  vhost-user: introduce vhost_user_has_protocol_feature() helper
  vhost: move protocol_features to vhost_user
  vhost-user-gpu: drop code duplication
  vhost: make vhost_dev.features private
  virtio: move common part of _set_guest_notifier to generic code
  virtio: drop *_set_guest_notifier_fd_handler() helpers
  vhost-user: keep QIOChannelSocket for backend channel
  vhost: vhost_virtqueue_start(): fix failure path
  vhost: make vhost_memory_unmap() null-safe
  vhost: simplify calls to vhost_memory_unmap()
  vhost: move vrings mapping to the top of vhost_virtqueue_start()
  vhost: vhost_virtqueue_start(): drop extra local variables
  vhost: final refactoring of vhost vrings map/unmap
  vhost: simplify vhost_dev_init() error-path
  vhost: move busyloop timeout initialization to vhost_virtqueue_init()
  vhost: introduce check_memslots() helper
  vhost: vhost_dev_init(): simplify features initialization
  hw/virtio/virtio-bus: refactor virtio_bus_set_host_notifier()
  vhost-user: make trace events more readable
  vhost-user-blk: add some useful trace-points
  vhost: add some useful trace-points

 backends/cryptodev-vhost.c     |   9 +-
 hw/block/trace-events          |  10 ++
 hw/block/vhost-user-blk.c      |  20 ++-
 hw/display/vhost-user-gpu.c    |  11 +-
 hw/net/vhost_net.c             |  35 ++--
 hw/scsi/vhost-scsi.c           |   1 -
 hw/scsi/vhost-user-scsi.c      |   1 -
 hw/virtio/trace-events         |  16 +-
 hw/virtio/vdpa-dev.c           |   3 +-
 hw/virtio/vhost-user-base.c    |   8 +-
 hw/virtio/vhost-user.c         | 285 ++++++++++++++++++++++---------
 hw/virtio/vhost.c              | 300 +++++++++++++++++----------------
 hw/virtio/virtio-bus.c         |  18 +-
 hw/virtio/virtio-hmp-cmds.c    |   2 -
 hw/virtio/virtio-mmio.c        |  41 +----
 hw/virtio/virtio-pci.c         |  34 +---
 hw/virtio/virtio-qmp.c         |  12 +-
 hw/virtio/virtio.c             |  48 +++---
 include/hw/virtio/vhost-user.h |   3 +
 include/hw/virtio/vhost.h      |  51 ++++--
 include/hw/virtio/virtio-pci.h |   3 -
 include/hw/virtio/virtio.h     |  16 +-
 net/vhost-vdpa.c               |   7 +-
 qapi/virtio.json               |   3 -
 24 files changed, 525 insertions(+), 412 deletions(-)

-- 
2.48.1
Re: [PATCH v2 00/23] vhost refactoring and fixes
Posted by Daniil Tatianin 1 month ago
Hi!

For all patches:
Reviewed-by: Daniil Tatianin <d-tatianin@yandex-team.ru>

Thanks,
Daniil

On 10/12/25 2:23 AM, Vladimir Sementsov-Ogievskiy wrote:
> Hi all. That's rebased and updated first part of
>    [PATCH 00/33] vhost-user-blk: live-backend local migration
>
> v2:
> 01: rework
> 02: - rebaose on _ex features, more accurate
>      - change in vhost_net_ack_features_ex()
>      - add note to commit message
> 03: rename to vhost_user_has_protocol_feature,
>      to follow existing vhost_user_set_protocol_features
> 04: rework to vhost-user only helper
> 05: add r-b by Philippe and Raphael
> 06: rebase on _ex features, make new helpers static inliners
> 07: add docstring
> 09: a-b by Raphael
> 10: rebase on address_space_map
> 11: fix double-free
> 13,14: r-b by Raphael
> 16: a-b by Raphael
> 17,18: r-b by Raphael
> 19: reworked
> 20: add r-b by Philippe and Raphael
> 21: - add r-b by Philippe and Raphael
>      - fix indent
> 22: rename to _in/_out, add vdev ptr
> 23: rename to _in/_out, add dev ptr
>
> Vladimir Sementsov-Ogievskiy (23):
>    vhost-user: rework enabling vrings
>    vhost: drop backend_features field
>    vhost-user: introduce vhost_user_has_protocol_feature() helper
>    vhost: move protocol_features to vhost_user
>    vhost-user-gpu: drop code duplication
>    vhost: make vhost_dev.features private
>    virtio: move common part of _set_guest_notifier to generic code
>    virtio: drop *_set_guest_notifier_fd_handler() helpers
>    vhost-user: keep QIOChannelSocket for backend channel
>    vhost: vhost_virtqueue_start(): fix failure path
>    vhost: make vhost_memory_unmap() null-safe
>    vhost: simplify calls to vhost_memory_unmap()
>    vhost: move vrings mapping to the top of vhost_virtqueue_start()
>    vhost: vhost_virtqueue_start(): drop extra local variables
>    vhost: final refactoring of vhost vrings map/unmap
>    vhost: simplify vhost_dev_init() error-path
>    vhost: move busyloop timeout initialization to vhost_virtqueue_init()
>    vhost: introduce check_memslots() helper
>    vhost: vhost_dev_init(): simplify features initialization
>    hw/virtio/virtio-bus: refactor virtio_bus_set_host_notifier()
>    vhost-user: make trace events more readable
>    vhost-user-blk: add some useful trace-points
>    vhost: add some useful trace-points
>
>   backends/cryptodev-vhost.c     |   9 +-
>   hw/block/trace-events          |  10 ++
>   hw/block/vhost-user-blk.c      |  20 ++-
>   hw/display/vhost-user-gpu.c    |  11 +-
>   hw/net/vhost_net.c             |  35 ++--
>   hw/scsi/vhost-scsi.c           |   1 -
>   hw/scsi/vhost-user-scsi.c      |   1 -
>   hw/virtio/trace-events         |  16 +-
>   hw/virtio/vdpa-dev.c           |   3 +-
>   hw/virtio/vhost-user-base.c    |   8 +-
>   hw/virtio/vhost-user.c         | 285 ++++++++++++++++++++++---------
>   hw/virtio/vhost.c              | 300 +++++++++++++++++----------------
>   hw/virtio/virtio-bus.c         |  18 +-
>   hw/virtio/virtio-hmp-cmds.c    |   2 -
>   hw/virtio/virtio-mmio.c        |  41 +----
>   hw/virtio/virtio-pci.c         |  34 +---
>   hw/virtio/virtio-qmp.c         |  12 +-
>   hw/virtio/virtio.c             |  48 +++---
>   include/hw/virtio/vhost-user.h |   3 +
>   include/hw/virtio/vhost.h      |  51 ++++--
>   include/hw/virtio/virtio-pci.h |   3 -
>   include/hw/virtio/virtio.h     |  16 +-
>   net/vhost-vdpa.c               |   7 +-
>   qapi/virtio.json               |   3 -
>   24 files changed, 525 insertions(+), 412 deletions(-)
>