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 :|


Reply via email to