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>