Vladimir Sementsov-Ogievskiy <[email protected]> writes:

> 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 supporting devices (no one at the moment).

for devices that support it (none at the moment).

>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
> Reviewed-by: Peter Xu <[email protected]>

[...]

> diff --git a/qapi/migration.json b/qapi/migration.json
> index f925e5541bf..2c8d85f5834 100644
> --- a/qapi/migration.json
> +++ b/qapi/migration.json
> @@ -828,7 +828,8 @@
>             'mode',
>             'zero-page-detection',
>             'direct-io',
> -           'cpr-exec-command'] }
> +           'cpr-exec-command',
> +           'local'] }
>  
>  ##
>  # @migrate-set-parameters:
> @@ -1004,6 +1005,15 @@
>  #     is @cpr-exec.  The first list element is the program's filename,
>  #     the remainder its arguments.  (Since 10.2)
>  #
> +# @local: Enable local migration feature for devices that support
> +#     it.  The feature is for local migration only and rely on the
> +#     channel support for passing file descriptors (it must be a UNIX
> +#     socket).  In general that means that backend state and its file
> +#     descriptors are passed to the destination in the migration
> +#     channel.  In general devices may have an option which in
> +#     conjunction with @local set to true enables the local-migration
> +#     feature for that device.  (Since 11.0)

This needs polish.  Let me try.

  # @local: Enable local migration for devices that support it.  Backend
  #     state and its file descriptors are then passed to the
  #     destination in the migration channel.  The migration channel
  #     must be a Unix domain socket.  Also needs to be enabled per
  #     device by setting device property "local" to true.

> +#
>  # Features:
>  #
>  # @unstable: Members @x-checkpoint-delay and
> @@ -1043,7 +1053,8 @@
>              '*mode': 'MigMode',
>              '*zero-page-detection': 'ZeroPageDetection',
>              '*direct-io': 'bool',
> -            '*cpr-exec-command': [ 'str' ]} }
> +            '*cpr-exec-command': [ 'str' ],
> +            '*local': 'bool' } }
>  
>  ##
>  # @query-migrate-parameters:


Reply via email to