diff options
author | Peter Xu <peterx@redhat.com> | 2018-05-02 18:47:20 +0800 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2018-05-15 20:24:27 +0200 |
commit | b411b844fb2e038c6ba92fd50fed3213a27c6445 (patch) | |
tree | 62a1cf5d1b36d66bdc16d97a93d50315e295077f /migration/migration.c | |
parent | b23c2ade250718fe77b51e116f95f3c34c8a4c24 (diff) |
migration: allow dst vm pause on postcopy
When there is IO error on the incoming channel (e.g., network down),
instead of bailing out immediately, we allow the dst vm to switch to the
new POSTCOPY_PAUSE state. Currently it is still simple - it waits the
new semaphore, until someone poke it for another attempt.
One note is that here on ram loading thread we cannot detect the
POSTCOPY_ACTIVE state, but we need to detect the more specific
POSTCOPY_INCOMING_RUNNING state, to make sure we have already loaded all
the device states.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20180502104740.12123-5-peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration/migration.c')
-rw-r--r-- | migration/migration.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/migration/migration.c b/migration/migration.c index 8392cf467d..4a7c02fd3c 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -159,6 +159,7 @@ MigrationIncomingState *migration_incoming_get_current(void) sizeof(struct PostCopyFD)); qemu_mutex_init(&mis_current.rp_mutex); qemu_event_init(&mis_current.main_thread_load_event, false); + qemu_sem_init(&mis_current.postcopy_pause_sem_dst, 0); init_dirty_bitmap_incoming_migration(); |