Skip to content

Commit

Permalink
migration: isolate return path on src
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-by: Juan Quintela <[email protected]>
Signed-off-by: Juan Quintela <[email protected]>
  • Loading branch information
xzpeter authored and Juan Quintela committed Jun 13, 2017
1 parent 9bba618 commit 0425dc9
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 7 deletions.
11 changes: 6 additions & 5 deletions migration/migration.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions migration/trace-events
Original file line number Diff line number Diff line change
Expand Up @@ -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) ""
Expand Down

0 comments on commit 0425dc9

Please sign in to comment.