1) What's this
When the migration capability 'bypass-shared-memory'
is set, the shared memory will be bypassed when migration.
It is the key feature to enable several excellent features for
the qemu, such as qemu-local-migration, qemu-live-update,
extremely-fast-save-restore, vm-template, vm-fast-live-clone,
yet-another-post-copy-migration, etc..
Cc: Samuel Ortiz <address@hidden>
Cc: Sebastien Boeuf <address@hidden>
Cc: James O. D. Hunt <address@hidden>
Cc: Xu Wang <address@hidden>
Cc: Peng Tao <address@hidden>
Cc: Xiao Guangrong <address@hidden>
Cc: Xiao Guangrong <address@hidden>
Signed-off-by: Lai Jiangshan <address@hidden>
---
migration/migration.c | 13 +++++++++++++
migration/migration.h | 1 +
migration/ram.c | 26 +++++++++++++++++---------
qapi/migration.json | 8 +++++++-
4 files changed, 38 insertions(+), 10 deletions(-)
+++ b/qapi/migration.json
@@ -352,12 +352,17 @@
#
# @x-multifd: Use more than one fd for migration (since 2.11)
#
+# @bypass-shared-memory: the shared memory region will be bypassed on
migration.
+# This feature allows the memory region to be reused by new qemu(s)
+# or be migrated separately. (since 2.12)
+#
# Since: 1.2
##
{ 'enum': 'MigrationCapability',
'data': ['xbzrle', 'rdma-pin-all', 'auto-converge', 'zero-blocks',
'compress', 'events', 'postcopy-ram', 'x-colo', 'release-ram',
- 'block', 'return-path', 'pause-before-switchover', 'x-multifd' ] }
+ 'block', 'return-path', 'pause-before-switchover', 'x-multifd',
+ 'bypass-shared-memory'] }
##
# @MigrationCapabilityStatus:
@@ -412,6 +417,7 @@
# {"state": true, "capability": "events"},
# {"state": false, "capability": "postcopy-ram"},
# {"state": false, "capability": "x-colo"}
+# {"state": false, "capability": "bypass-shared-memory"}