diff options
| author | Dr. David Alan Gilbert | 2018-03-12 18:21:06 +0100 |
|---|---|---|
| committer | Michael S. Tsirkin | 2018-03-20 04:03:28 +0100 |
| commit | 6864a7b5aced6d8d9b287b92db8d7a996ea2e8a3 (patch) | |
| tree | 84755be6b91f51835ef5ad85247ba0c7e045617b /migration | |
| parent | vhost+postcopy: Register shared ufd with postcopy (diff) | |
| download | qemu-6864a7b5aced6d8d9b287b92db8d7a996ea2e8a3.tar.gz qemu-6864a7b5aced6d8d9b287b92db8d7a996ea2e8a3.tar.xz qemu-6864a7b5aced6d8d9b287b92db8d7a996ea2e8a3.zip | |
vhost+postcopy: Transmit 'listen' to slave
Notify the vhost-user slave on reception of the 'postcopy-listen'
event from the source.
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'migration')
| -rw-r--r-- | migration/postcopy-ram.h | 1 | ||||
| -rw-r--r-- | migration/savevm.c | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/migration/postcopy-ram.h b/migration/postcopy-ram.h index f21eef6702..c8ced3470b 100644 --- a/migration/postcopy-ram.h +++ b/migration/postcopy-ram.h @@ -131,6 +131,7 @@ void postcopy_infrastructure_init(void); enum PostcopyNotifyReason { POSTCOPY_NOTIFY_PROBE = 0, POSTCOPY_NOTIFY_INBOUND_ADVISE, + POSTCOPY_NOTIFY_INBOUND_LISTEN, }; struct PostcopyNotifyData { diff --git a/migration/savevm.c b/migration/savevm.c index 1f2bf12a28..305c3ceaf5 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1618,6 +1618,8 @@ static int loadvm_postcopy_handle_listen(MigrationIncomingState *mis) { PostcopyState ps = postcopy_state_set(POSTCOPY_INCOMING_LISTENING); trace_loadvm_postcopy_handle_listen(); + Error *local_err = NULL; + if (ps != POSTCOPY_INCOMING_ADVISE && ps != POSTCOPY_INCOMING_DISCARD) { error_report("CMD_POSTCOPY_LISTEN in wrong postcopy state (%d)", ps); return -1; @@ -1643,6 +1645,11 @@ static int loadvm_postcopy_handle_listen(MigrationIncomingState *mis) } } + if (postcopy_notify(POSTCOPY_NOTIFY_INBOUND_LISTEN, &local_err)) { + error_report_err(local_err); + return -1; + } + if (mis->have_listen_thread) { error_report("CMD_POSTCOPY_RAM_LISTEN already has a listen thread"); return -1; |
