aboutsummaryrefslogtreecommitdiff
path: root/migration
diff options
context:
space:
mode:
authorPeter Xu <peterx@redhat.com>2017-05-31 18:35:34 +0800
committerJuan Quintela <quintela@redhat.com>2017-06-13 11:00:44 +0200
commit0425dc976212a38961f0469003074d1df65a61f2 (patch)
treeb73328109daa8fd07ccb813c81975534de1ecc7c /migration
parent9bba618f18b1a60a3f2668db82b453f6cd9467c0 (diff)
migration: isolate return path on src
There are some places that binded "return path" with postcopy. Let's be prepared for its usage even without postcopy. This patch mainly did this on source side. Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration')
-rw-r--r--migration/migration.c11
-rw-r--r--migration/trace-events4
2 files changed, 8 insertions, 7 deletions
diff --git a/migration/migration.c b/migration/migration.c
index fc95acbde6..9dfa19abe1 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1857,13 +1857,12 @@ static void migration_completion(MigrationState *s, int current_active_state,
* cleaning everything else up (since if there are no failures
* it will wait for the destination to send it's status in
* a SHUT command).
- * Postcopy opens rp if enabled (even if it's not avtivated)
*/
- if (migrate_postcopy_ram()) {
+ if (s->rp_state.from_dst_file) {
int rp_error;
- trace_migration_completion_postcopy_end_before_rp();
+ trace_migration_return_path_end_before();
rp_error = await_return_path_close_on_source(s);
- trace_migration_completion_postcopy_end_after_rp(rp_error);
+ trace_migration_return_path_end_after(rp_error);
if (rp_error) {
goto fail_invalidate;
}
@@ -1938,13 +1937,15 @@ static void *migration_thread(void *opaque)
qemu_savevm_state_header(s->to_dst_file);
- if (migrate_postcopy_ram()) {
+ if (s->to_dst_file) {
/* Now tell the dest that it should open its end so it can reply */
qemu_savevm_send_open_return_path(s->to_dst_file);
/* And do a ping that will make stuff easier to debug */
qemu_savevm_send_ping(s->to_dst_file, 1);
+ }
+ if (migrate_postcopy_ram()) {
/*
* Tell the destination that we *might* want to do postcopy later;
* if the other end can't do postcopy it should fail now, nice and
diff --git a/migration/trace-events b/migration/trace-events
index 5b8ccf301c..38345be9c3 100644
--- a/migration/trace-events
+++ b/migration/trace-events
@@ -88,8 +88,8 @@ migrate_send_rp_message(int msg_type, uint16_t len) "%d: len %d"
migration_completion_file_err(void) ""
migration_completion_postcopy_end(void) ""
migration_completion_postcopy_end_after_complete(void) ""
-migration_completion_postcopy_end_before_rp(void) ""
-migration_completion_postcopy_end_after_rp(int rp_error) "%d"
+migration_return_path_end_before(void) ""
+migration_return_path_end_after(int rp_error) "%d"
migration_thread_after_loop(void) ""
migration_thread_file_err(void) ""
migration_thread_setup_complete(void) ""