[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH V9 09/46] cpr: reboot mode
|
From: |
Steve Sistare |
|
Subject: |
[PATCH V9 09/46] cpr: reboot mode |
|
Date: |
Tue, 26 Jul 2022 09:10:06 -0700 |
Add the cpr-reboot migration mode. Usage:
qemu-system-$arch -migrate-mode-enable cpr-reboot ...
migrate_set_parameter mode cpr-reboot
migrate -d file:<filename>
... poll for runstate postmigrate ...
quit
qemu-system-$arch -migrate-mode-enable cpr-reboot ... -incoming defer
migrate_set_parameter mode cpr-reboot
migrate_incoming file:<filename>
In this mode, the migrate command saves state to a file, allowing one
to quit qemu, reboot to an updated kernel, and restart an updated version
of qemu. The caller must specify a migration URI that writes to and reads
from a file. Unlike normal mode, the use of certain local storage options
does not block the migration, but the caller must not modify guest block
devices between the quit and restart. The guest RAM memory-backend must
be shared, and the @x-ignore-shared migration capability must be set,
to avoid saving it to the file. Guest RAM must be non-volatile across
reboot, such as by backing it with a dax device, but this is not enforced.
The restarted qemu arguments must match those used to initially start qemu,
plus the -incoming option.
Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
qapi/migration.json | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/qapi/migration.json b/qapi/migration.json
index 931c492..55f0479 100644
--- a/qapi/migration.json
+++ b/qapi/migration.json
@@ -572,10 +572,24 @@
#
# @normal: the original form of migration.
#
+# @cpr-reboot: The migrate command saves state to a file, allowing one to
+# quit qemu, reboot to an updated kernel, and restart an updated
+# version of qemu. The caller must specify a migration URI
+# that writes to and reads from a file. Unlike normal mode,
+# the use of certain local storage options does not block the
+# migration, but the caller must not modify guest block devices
+# between the quit and restart. The guest RAM memory-backend
+# must be shared, and the @x-ignore-shared migration capability
+# must be set, to avoid saving it to the file. Guest RAM must
+# be non-volatile across reboot, such as by backing it with
+# a dax device, but this is not enforced. The restarted qemu
+# arguments must match those used to initially start qemu, plus
+# the -incoming option.
+#
# Since: 7.1
##
{ 'enum': 'MigMode',
- 'data': [ 'normal' ] }
+ 'data': [ 'normal', 'cpr-reboot' ] }
##
# @BitmapMigrationBitmapAliasTransform:
--
1.8.3.1
- [PATCH V9 40/46] python/machine: QEMUMachine full_args, (continued)
- [PATCH V9 40/46] python/machine: QEMUMachine full_args, Steve Sistare, 2022/07/26
- [PATCH V9 17/46] migration: check mode in notifiers, Steve Sistare, 2022/07/26
- [PATCH V9 45/46] migration: notifier error reporting, Steve Sistare, 2022/07/26
- [PATCH V9 36/46] chardev: cpr framework, Steve Sistare, 2022/07/26
- [PATCH V9 41/46] python/machine: QEMUMachine reopen_qmp_connection, Steve Sistare, 2022/07/26
- [PATCH V9 43/46] vl: start on wakeup request, Steve Sistare, 2022/07/26
- [PATCH V9 44/46] migration: fix suspended runstate, Steve Sistare, 2022/07/26
- [PATCH V9 42/46] tests/avocado: add cpr regression test, Steve Sistare, 2022/07/26
- [PATCH V9 46/46] vfio: allow cpr-reboot migration if suspended, Steve Sistare, 2022/07/26
- [PATCH V9 23/46] cpr: add exec-mode blockers, Steve Sistare, 2022/07/26
- [PATCH V9 09/46] cpr: reboot mode,
Steve Sistare <=
- [PATCH V9 31/46] vfio-pci: cpr part 1 (fd and dma), Steve Sistare, 2022/07/26
- [PATCH V9 39/46] chardev: cpr for sockets, Steve Sistare, 2022/07/26
- [PATCH V9 15/46] migration: cpr-exec-args parameter, Steve Sistare, 2022/07/26