Call MIG_EVENT_PRECOPY_SETUP earlier, before CPR starts. An early notifier
is needed for resetting vhost devices, as explained in the next patch.
Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
migration/migration.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/migration/migration.c b/migration/migration.c
index 2efe60a..49d1e7d 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -2259,7 +2259,14 @@ void qmp_migrate(const char *uri, bool has_channels,
stopped = true;
}
+ /* Notify before starting migration thread, and before starting cpr */
+ if (!resume_requested &&
+ migration_call_notifiers(s, MIG_EVENT_PRECOPY_SETUP, &local_err)) {
+ goto out;
+ }
+
if (cpr_state_save(cpr_channel, &local_err)) {
+ migration_call_notifiers(s, MIG_EVENT_PRECOPY_FAILED, NULL);
goto out;
}
@@ -4010,11 +4017,6 @@ void migration_connect(MigrationState *s, Error *error_in)
} else {
/* This is a fresh new migration */
rate_limit = migrate_max_bandwidth();
-
- /* Notify before starting migration thread */
- if (migration_call_notifiers(s, MIG_EVENT_PRECOPY_SETUP, &local_err)) {
- goto fail;
- }
}
migration_rate_set(rate_limit);
--
1.8.3.1