On 10.03.26 16:53, Markus Armbruster wrote:
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.
As discussed in v11, we don't want to require neither concrete property name
nor even the existence of such property, that why it was worded "may have an
option".
https://lore.kernel.org/qemu-devel/[email protected]/
+#
# 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:
--
Best regards,
Vladimir