v6 -> v7:
* Patch 9:
- cleanup closed vhostfd here rather than in #14;
- add !cpr_incoming guard before saving CPR fd;
* Patch 14:
- remove closed vhostfd cleanup (moved to #9);
- lift !cpr_incoming guard before saving CPR fd - not needed with an
early return;
* Patches 15-16 (NEW):
- add qtests running cpr-transfer/cpr-exec with a vhost-vsock-pci
device attached;
- add functional test with a live guest doing host<->guest vsock
transfers across a series of CPR migrations.
v6:
https://lore.kernel.org/qemu-devel/[email protected]
Signed-off-by: Andrey Drobyshev <[email protected]>
---
Andrey Drobyshev (16):
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
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-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 | 17 +-
hw/vfio/cpr-legacy.c | 10 +-
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 | 57 ++++--
include/hw/vfio/vfio-cpr.h | 6 +-
include/hw/virtio/vhost-backend.h | 2 +
include/hw/virtio/vhost-vsock.h | 1 +
include/hw/virtio/vhost.h | 61 ++++++
include/migration/cpr.h | 2 +-
migration/cpr.c | 55 ++++--
migration/options.c | 7 +
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 | 129 ++++++++++++-
tests/unit/meson.build | 1 +
tests/unit/test-cpr.c | 98 ++++++++++
23 files changed, 846 insertions(+), 76 deletions(-)
---
base-commit: 5f664cd37aec17e8145aa117d8da68f507edc8f1
change-id: 20260908-up-vsock-vhost-v5-c781b39f1c1a
Best regards,
--
Andrey Drobyshev <[email protected]>