Markus Armbruster <arm...@redhat.com> writes: > Fabiano Rosas <faro...@suse.de> writes: > >> Add a capability that allows the management layer to delegate to QEMU >> the decision of whether to pause a VM and perform a non-live >> migration. Depending on the type of migration being performed, this >> could bring performance benefits. >> >> Note that the capability is enabled by default but at this moment no >> migration scheme is making use of it. > > This sounds as if the capability has no effect unless the "migration > scheme" (whatever that may be) opts into using it. Am I confused? >
What I mean here is that this capability is implemented and functional, but I'm not retroactively enabling any existing migration code to use auto-pause. Otherwise people would start seeing their guests being paused before migraton in scenarios they never used to pause. By "migration scheme" I mean types of migration. Or modes of operation. Or exclusive parameters. Anything that is different enough from what exists today that we would consider a different type of migration. Anything that allow us to break backward compatibility (because it never existed before to begin with). E.g. this series introduces the fixed-ram migration. That never existed before. So from the moment we enable that code to use this capability, it will always do auto-pause, unless the management layer wants to avoid it. >> Signed-off-by: Fabiano Rosas <faro...@suse.de> > > [...] > >> diff --git a/qapi/migration.json b/qapi/migration.json >> index db3df12d6c..74f12adc0e 100644 >> --- a/qapi/migration.json >> +++ b/qapi/migration.json >> @@ -523,6 +523,10 @@ >> # and can result in more stable read performance. Requires KVM >> # with accelerator property "dirty-ring-size" set. (Since 8.1) >> # >> +# @auto-pause: If enabled, allows QEMU to decide whether to pause the >> +# VM before migration for an optimal migration performance. >> +# Enabled by default. (since 8.1) > > If this needs an opt-in to take effect, it should be documented. > Someting like this perhaps? # @auto-pause: If enabled, allows QEMU to decide whether to pause the VM # before migration for an optimal migration performance. Enabled by # default. New migration code needs to opt-in at # migration_should_pause(), otherwise this behaves as if # disabled. (since 8.2) >> +# >> # Features: >> # >> # @unstable: Members @x-colo and @x-ignore-shared are experimental. >> @@ -539,7 +543,7 @@ >> { 'name': 'x-ignore-shared', 'features': [ 'unstable' ] }, >> 'validate-uuid', 'background-snapshot', >> 'zero-copy-send', 'postcopy-preempt', 'switchover-ack', >> - 'dirty-limit'] } >> + 'dirty-limit', 'auto-pause'] } >> >> ## >> # @MigrationCapabilityStatus: