On Fri, Jul 10, 2026 at 10:17:58PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> We are going to implement local-migration feature: some devices will be
> able to transfer open file descriptors through migration stream (which
> must UNIX domain socket for that purpose). This allows to transfer the
> whole backend state without reconnecting and restarting the backend
> service. For example, virtio-net will migrate its attached TAP netdev,
> together with its connected file descriptors.
>
> In this commit we introduce a migration parameter, which enables
> the feature for devices that support it (none at the moment).
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
> Acked-by: Markus Armbruster <[email protected]>
> Acked-by: Peter Xu <[email protected]>
> Reviewed-by: Ben Chaney <[email protected]>
> ---
> include/migration/misc.h | 2 ++
> migration/options.c | 18 +++++++++++++++++-
> qapi/migration.json | 12 ++++++++++--
> 3 files changed, 29 insertions(+), 3 deletions(-)
> diff --git a/qapi/migration.json b/qapi/migration.json
> index 66bd900465a..03bdf19f3a6 100644
> --- a/qapi/migration.json
> +++ b/qapi/migration.json
> @@ -830,7 +830,8 @@
> 'zero-page-detection',
> 'direct-io',
> { 'name': 'x-rdma-chunk-size', 'features': [ 'unstable' ] },
> - 'cpr-exec-command'] }
> + 'cpr-exec-command',
> + 'local'] }
>
> ##
> # @migrate-set-parameters:
> @@ -1012,6 +1013,12 @@
> # Must be set to the same value on both source and destination
> # before migration starts. (Since 11.1)
> #
> +# @local: Enable local migration for devices that support it. Backend
> +# state and its file descriptors can then be passed to the
> +# destination in the migration channel. The migration channel
> +# must be a Unix domain socket. Usually needs to be enabled per
> +# device. (Since 11.2)
What happens when this is enabled and there are devices which
don't support it ?
What happens when this is enabled and a device on the src
does not support it but a device on the (newer) QEMU dest
does support it ? How does the mgmt app know which devices
support it ?
Can we document the semantics in these cases.
> +#
> # Features:
> #
> # @unstable: Members @x-checkpoint-delay, @x-rdma-chunk-size, and
> @@ -1053,7 +1060,8 @@
> '*direct-io': 'bool',
> '*x-rdma-chunk-size': { 'type': 'uint64',
> 'features': [ 'unstable' ] },
> - '*cpr-exec-command': [ 'str' ]} }
> + '*cpr-exec-command': [ 'str' ],
> + '*local': 'bool' } }
>
> ##
> # @query-migrate-parameters:
> --
> 2.43.0
>
With regards,
Daniel
--
|: https://berrange.com ~~ https://hachyderm.io/@berrange :|
|: https://libvirt.org ~~ https://entangle-photo.org :|
|: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|