This command forces a running VM into a migrate-incoming state. When using guest-assisted migration (for confidential guests), the target must be started so that its auxiliary vcpu is running the migration helper; after it is ready we can start receiving the incoming migration connection.
Signed-off-by: Dov Murik <dovmu...@linux.vnet.ibm.com> --- qapi/migration.json | 26 ++++++++++++++++++++++++++ migration/migration.c | 5 +++++ 2 files changed, 31 insertions(+) diff --git a/qapi/migration.json b/qapi/migration.json index 6e5943fbb4..c7361e0038 100644 --- a/qapi/migration.json +++ b/qapi/migration.json @@ -1569,6 +1569,32 @@ ## { 'command': 'migrate-incoming', 'data': {'uri': 'str' } } +## +# @start-migrate-incoming: +# +# Force start an incoming migration even in a running VM. This is used by the +# target VM in guest-assisted migration of a confidential guest. +# +# @uri: The Uniform Resource Identifier identifying the source or +# address to listen on +# +# Returns: nothing on success +# +# Since: 6.0 +# +# Notes: +# +# The uri format is the same as the -incoming command-line option. +# +# Example: +# +# -> { "execute": "start-migrate-incoming", +# "arguments": { "uri": "tcp::4446" } } +# <- { "return": {} } +# +## +{ 'command': 'start-migrate-incoming', 'data': {'uri': 'str' } } + ## # @xen-save-devices-state: # diff --git a/migration/migration.c b/migration/migration.c index 7ec25bd006..4729b89bef 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -2098,6 +2098,11 @@ void qmp_migrate_incoming(const char *uri, Error **errp) once = false; } +void qmp_start_migrate_incoming(const char *uri, Error **errp) +{ + qemu_start_incoming_migration(uri, errp); +} + void qmp_migrate_recover(const char *uri, Error **errp) { MigrationIncomingState *mis = migration_incoming_get_current(); -- 2.20.1