Allow cpr-reboot for vfio if the guest is in the suspended runstate. The guest drivers' suspend methods flush outstanding requests and re-initialize the devices, and thus there is no device state to save and restore. The user is responsible for suspending the guest before initiating cpr, such as by issuing guest-suspend-ram to the qemu guest agent.
Most of the patches in this series enhance migration notifiers so they can return an error status and message. The last few patches register a notifier for vfio that returns an error if the guest is not suspended. Changes in V3: * update to tip, add RB's * replace MigrationStatus with new enum MigrationEventType * simplify migrate_fd_connect error recovery * support vfio iommufd containers * add patches: migration: stop vm for cpr migration: update cpr-reboot description Steve Sistare (13): notify: pass error to notifier with return migration: remove error from notifier data migration: convert to NotifierWithReturn migration: MigrationEvent for notifiers migration: remove postcopy_after_devices migration: MigrationNotifyFunc migration: per-mode notifiers migration: refactor migrate_fd_connect failures migration: notifier error checking migration: stop vm for cpr vfio: register container for cpr vfio: allow cpr-reboot migration if suspended migration: update cpr-reboot description hw/net/virtio-net.c | 13 ++-- hw/vfio/common.c | 2 +- hw/vfio/container.c | 11 ++- hw/vfio/cpr.c | 39 +++++++++++ hw/vfio/iommufd.c | 6 ++ hw/vfio/meson.build | 1 + hw/vfio/migration.c | 15 ++-- hw/vfio/trace-events | 2 +- hw/virtio/vhost-user.c | 10 +-- hw/virtio/virtio-balloon.c | 3 +- include/hw/vfio/vfio-common.h | 5 +- include/hw/vfio/vfio-container-base.h | 1 + include/hw/virtio/virtio-net.h | 2 +- include/migration/misc.h | 31 ++++++-- include/qemu/notify.h | 8 ++- migration/migration.c | 128 +++++++++++++++++++++++----------- migration/migration.h | 2 - migration/postcopy-ram.c | 3 +- migration/postcopy-ram.h | 1 - migration/ram.c | 3 +- net/vhost-vdpa.c | 14 ++-- qapi/migration.json | 36 ++++++---- ui/spice-core.c | 17 +++-- util/notify.c | 5 +- 24 files changed, 244 insertions(+), 114 deletions(-) create mode 100644 hw/vfio/cpr.c -- 1.8.3.1