This flag can be used to restart post-copy migration once it failed
because of a broken connection.

Signed-off-by: Jiri Denemark <jdene...@redhat.com>
---
 include/libvirt/libvirt-domain.h | 5 +++++
 src/libvirt-domain.c             | 6 ++++++
 2 files changed, 11 insertions(+)

diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
index 34b8adc2bf..aee2b49114 100644
--- a/include/libvirt/libvirt-domain.h
+++ b/include/libvirt/libvirt-domain.h
@@ -1084,6 +1084,11 @@ typedef enum {
       */
     VIR_MIGRATE_NON_SHARED_SYNCHRONOUS_WRITES = (1 << 18),
 
+    /* Resume migration which failed in post-copy phase.
+     *
+     * Since: 8.4.0
+     */
+    VIR_MIGRATE_POSTCOPY_RESUME = (1 << 19),
 } virDomainMigrateFlags;
 
 
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index 2e39687e27..41ba4aa39c 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -9762,6 +9762,12 @@ virDomainMigrateGetMaxSpeed(virDomainPtr domain,
  * in such case. Because of this, libvirt will refuse to cancel post-copy
  * migration via virDomainAbortJob.
  *
+ * Failed post-copy migration can be recovered once the cause for the failure
+ * (e.g., a network issue) is resolved by repeating the migration with an
+ * additional VIR_MIGRATE_POSTCOPY_RESUME flag. This will recreate the
+ * connection and resume migration from the point where it failed. This step
+ * can be repeated in case the migration breaks again.
+ *
  * The following domain life cycle events are emitted during post-copy
  * migration:
  *  VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY (on the source) -- migration entered
-- 
2.35.1

Reply via email to