On Mon, May 26, 2025 at 10:03:55AM +0200, Markus Armbruster wrote: > > diff --git a/qapi/migration.json b/qapi/migration.json > > index bb2487dbc6..5bd8f0f1b2 100644 > > --- a/qapi/migration.json > > +++ b/qapi/migration.json > > @@ -1638,6 +1638,10 @@ > ## > # @migrate: > # > # Migrates the current running guest to another Virtual Machine. > # > # @uri: the Uniform Resource Identifier of the destination VM > # > # @channels: list of migration stream channels with each stream in the > # list connected to a destination interface endpoint. > # > # @detach: this argument exists only for compatibility reasons and is > # ignored by QEMU > > # > > # @resume: resume one paused migration, default "off". (since 3.0) > > Unrelated to this patch, but here goes anyway. What happens if I pass > @uri and @channels with I "resume": true, and they differ from the ones > passed originally?
I can answer this one - "resume" was designed to work always with new channels/URI passed in. It was currently only used for postcopy to resume a paused postcopy migration where the old URI/channels stopped working already. The doc is indeed not obvious to show that, and can be confusing. If anyone thinks worthwhile, I can send a patch to touch it up: diff --git a/qapi/migration.json b/qapi/migration.json index 8b9c53595c..a4c9272e8b 100644 --- a/qapi/migration.json +++ b/qapi/migration.json @@ -1658,7 +1658,10 @@ # @detach: this argument exists only for compatibility reasons and is # ignored by QEMU # -# @resume: resume one paused migration, default "off". (since 3.0) +# @resume: when set, resume one paused postcopy migration, using the new +# URI/channels specified to replace the old/broken channels. The user +# should make sure the migration is in "postcopy-paused" state before +# the resume request. Default "off". (since 3.0) # # Since: 0.14 # Thanks, -- Peter Xu