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>
Reviewed-by: Peter Krempa <pkre...@redhat.com>
Reviewed-by: Pavel Hrdina <phrd...@redhat.com>
---

Notes:
    Version 2:
    - no change

 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 caf99d41bc..e7020f19cc 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.5.0
+     */
+    VIR_MIGRATE_POSTCOPY_RESUME = (1 << 19),
 } virDomainMigrateFlags;
 
 
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index b9f1d73d5a..5141174728 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -9775,6 +9775,12 @@ virDomainMigrateGetMaxSpeed(virDomainPtr domain,
  * 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