Adds a new migration capability 'virtio-iterative' that will allow virtio devices, where supported, to iteratively migrate configuration changes that occur during the migration process.
This capability is added to the validated capabilities list to ensure both the source and destination support it before enabling. The capability defaults to off to maintain backward compatibility. To enable the capability via HMP: (qemu) migrate_set_capability virtio-iterative on To enable the capability via QMP: {"execute": "migrate-set-capabilities", "arguments": { "capabilities": [ { "capability": "virtio-iterative", "state": true } ] } } Signed-off-by: Jonah Palmer <jonah.pal...@oracle.com> --- migration/savevm.c | 1 + qapi/migration.json | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/migration/savevm.c b/migration/savevm.c index bb04a4520d..40a2189866 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -279,6 +279,7 @@ static bool should_validate_capability(int capability) switch (capability) { case MIGRATION_CAPABILITY_X_IGNORE_SHARED: case MIGRATION_CAPABILITY_MAPPED_RAM: + case MIGRATION_CAPABILITY_VIRTIO_ITERATIVE: return true; default: return false; diff --git a/qapi/migration.json b/qapi/migration.json index 4963f6ca12..8f042c3ba5 100644 --- a/qapi/migration.json +++ b/qapi/migration.json @@ -479,6 +479,11 @@ # each RAM page. Requires a migration URI that supports seeking, # such as a file. (since 9.0) # +# @virtio-iterative: Enable iterative migration for virtio devices, if +# the device supports it. When enabled, and where supported, virtio +# devices will track and migrate configuration changes that may +# occur during the migration process. (Since 10.1) +# # Features: # # @unstable: Members @x-colo and @x-ignore-shared are experimental. @@ -498,7 +503,7 @@ { 'name': 'x-ignore-shared', 'features': [ 'unstable' ] }, 'validate-uuid', 'background-snapshot', 'zero-copy-send', 'postcopy-preempt', 'switchover-ack', - 'dirty-limit', 'mapped-ram'] } + 'dirty-limit', 'mapped-ram', 'virtio-iterative'] } ## # @MigrationCapabilityStatus: -- 2.47.1