Changes since v2 - I have taken over this patch set since Steve retired - Added comments to explain the order of events - Remove redundant reversion to cleanup git history - Inclusion of virtio and stub fixes
Tap and vhost devices can be preserved during cpr-transfer using traditional live migration methods, wherein the management layer creates new interfaces for the target and fiddles with 'ip link' to deactivate the old interface and activate the new. However, CPR can simply send the file descriptors to new QEMU, with no special management actions required. The user enables this behavior by specifing '-netdev tap,cpr=on'. The default is cpr=off. Signed-off-by: Ben Chaney <[email protected]> --- Steve Sistare (8): migration: stop vm earlier for cpr migration: cpr setup notifier vhost: reset vhost devices for cpr cpr: delete all fds tap: common return label tap: cpr support tap: postload fix for cpr tap: cpr fixes hw/net/virtio-net.c | 26 +++++++ hw/vfio/device.c | 2 +- hw/virtio/vhost-backend.c | 6 ++ hw/virtio/vhost.c | 32 +++++++++ include/hw/virtio/vhost-backend.h | 1 + include/hw/virtio/vhost.h | 1 + include/migration/cpr.h | 3 +- include/net/tap.h | 1 + io/channel-socket.c | 4 +- migration/cpr.c | 24 +++++-- migration/migration.c | 69 ++++++++++++++---- net/tap-win32.c | 5 ++ net/tap.c | 147 +++++++++++++++++++++++++++++--------- qapi/net.json | 5 +- stubs/cpr.c | 8 +++ stubs/meson.build | 1 + 16 files changed, 279 insertions(+), 56 deletions(-) --- base-commit: 9febfa94b69b7146582c48a868bd2330ac45037f change-id: 20251203-cpr-tap-04fd811ace03 Best regards, -- Ben Chaney <[email protected]>
