[PATCH v11 00/19] migration/cpr: support vhost-vsock devices

Andrey Drobyshev posted 19 patches 3 weeks ago
There is a newer version of this series
backends/hostmem-memfd.c                        |   5 +-
backends/hostmem-shm.c                          |   5 +-
backends/iommufd.c                              |   4 +-
hw/vfio/container-legacy.c                      |   7 +-
hw/vfio/cpr-legacy.c                            |  29 ++-
hw/vfio/cpr.c                                   |   6 +-
hw/vfio/pci.c                                   |   5 +-
hw/virtio/vhost-kernel.c                        |   6 +
hw/virtio/vhost-vsock.c                         | 193 +++++++++++++++++--
hw/virtio/vhost.c                               |  98 ++++++++--
include/hw/vfio/vfio-cpr.h                      |   7 +-
include/hw/virtio/vhost-backend.h               |   2 +
include/hw/virtio/vhost-vsock.h                 |   1 +
include/hw/virtio/vhost.h                       |  69 +++++++
include/migration/cpr.h                         |   2 +-
migration/cpr.c                                 |  64 ++++---
migration/options.c                             |  13 ++
system/physmem.c                                |   5 +-
tests/functional/x86_64/meson.build             |   2 +
tests/functional/x86_64/test_vhost_vsock_cpr.py | 245 ++++++++++++++++++++++++
tests/qtest/migration/cpr-tests.c               | 133 ++++++++++++-
tests/unit/meson.build                          |   1 +
tests/unit/test-cpr.c                           |  98 ++++++++++
23 files changed, 919 insertions(+), 81 deletions(-)
[PATCH v11 00/19] migration/cpr: support vhost-vsock devices
Posted by Andrey Drobyshev 3 weeks ago
v10 -> v11:

  * Patch 15:
    - track the ownership with a new 'owner' flag in struct vhost_dev and
      release it in vhost_dev_cleanup() only if it's set, so that a device
      whose SET_OWNER failed doesn't release the ownership of another one
      sharing the FD.

  * Patch 16 (NEW):
    - release the ownership on exit as well, so that the source can take
      the device back if the target dies on a load error after post_load().

v10: https://lore.kernel.org/qemu-devel/20261001-up-vsock-vhost-v5-v10-0-8c094843e98b@virtuozzo.com

Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
---
Andrey Drobyshev (19):
      migration/cpr: forbid saving duplicate CprFds into hash table
      tests/unit: add test for duplicate keys in CPR FD table
      migration: forbid snapshots in CPR migration modes
      migration: forbid snapshots under Xen
      tests/qtest/migration: add test for snapshot rejection in CPR modes
      vhost-vsock: block CPR migration modes
      vhost: add vhost_reset_owner op
      vhost-vsock: don't reset connections during CPR
      vhost-vsock: fix FD leak in realize()
      vhost-vsock: preserve vhost FD during CPR
      vhost: factor out vhost_dev_init_backend()
      vhost: make vhost_dev_cleanup() safe on a partially initialized device
      vhost: add vhost_dev_set_owner() / vhost_dev_reset_owner() helpers
      vhost: add vhost_dev_is_initialized() helper
      vhost: release ownership in vhost_dev_cleanup()
      vhost: release ownership on exit
      vhost-vsock: hand off device ownership across CPR
      tests/qtest/migration: add vhost-vsock tests for cpr-transfer and cpr-exec
      tests/functional: add vhost-vsock CPR test with a live guest

 backends/hostmem-memfd.c                        |   5 +-
 backends/hostmem-shm.c                          |   5 +-
 backends/iommufd.c                              |   4 +-
 hw/vfio/container-legacy.c                      |   7 +-
 hw/vfio/cpr-legacy.c                            |  29 ++-
 hw/vfio/cpr.c                                   |   6 +-
 hw/vfio/pci.c                                   |   5 +-
 hw/virtio/vhost-kernel.c                        |   6 +
 hw/virtio/vhost-vsock.c                         | 193 +++++++++++++++++--
 hw/virtio/vhost.c                               |  98 ++++++++--
 include/hw/vfio/vfio-cpr.h                      |   7 +-
 include/hw/virtio/vhost-backend.h               |   2 +
 include/hw/virtio/vhost-vsock.h                 |   1 +
 include/hw/virtio/vhost.h                       |  69 +++++++
 include/migration/cpr.h                         |   2 +-
 migration/cpr.c                                 |  64 ++++---
 migration/options.c                             |  13 ++
 system/physmem.c                                |   5 +-
 tests/functional/x86_64/meson.build             |   2 +
 tests/functional/x86_64/test_vhost_vsock_cpr.py | 245 ++++++++++++++++++++++++
 tests/qtest/migration/cpr-tests.c               | 133 ++++++++++++-
 tests/unit/meson.build                          |   1 +
 tests/unit/test-cpr.c                           |  98 ++++++++++
 23 files changed, 919 insertions(+), 81 deletions(-)
---
base-commit: f7ada39edacaa5c26b30e98b94017b0b2ccbcf94
change-id: 20260908-up-vsock-vhost-v5-c781b39f1c1a

Best regards,
--  
Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>