qemu-cr16/hw
Steve Sistare a87e64519b cpr: reboot mode
Add the cpr-reboot migration mode.  Usage:

$ qemu-system-$arch -monitor stdio ...
QEMU 8.1.50 monitor - type 'help' for more information
(qemu) migrate_set_capability x-ignore-shared on
(qemu) migrate_set_parameter mode cpr-reboot
(qemu) migrate -d file:vm.state
(qemu) info status
VM status: paused (postmigrate)
(qemu) quit

$ qemu-system-$arch -monitor stdio -incoming defer ...
QEMU 8.1.50 monitor - type 'help' for more information
(qemu) migrate_set_capability x-ignore-shared on
(qemu) migrate_set_parameter mode cpr-reboot
(qemu) migrate_incoming file:vm.state
(qemu) info status
VM status: running

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.  To avoid saving guest RAM to the
file, the memory backend must be shared, and the @x-ignore-shared migration
capability must be set.  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>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <1698263069-406971-6-git-send-email-steven.sistare@oracle.com>
2023-11-01 16:13:59 +01:00
..
9pfs
acpi virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
adc
alpha
arm hw/arm: Avoid using 'first_cpu' when first ARM CPU is reachable 2023-10-27 12:50:12 +01:00
audio
avr
block virtio-blk: remove batch notification BH 2023-10-31 15:42:17 +01:00
char
core cpr: reboot mode 2023-11-01 16:13:59 +01:00
cpu
cris
cxl
display migration: Use vmstate_register_any() for vmware_vga 2023-11-01 16:13:58 +01:00
dma
gpio
hppa
hyperv
i2c migration: Use vmstate_register_any() 2023-11-01 16:13:58 +01:00
i386 * Fix global variable shadowing in test code 2023-10-30 08:08:18 +09:00
ide migration: Use vmstate_register_any() for isa-ide 2023-11-01 16:13:58 +01:00
input migration: Use vmstate_register_any() 2023-11-01 16:13:58 +01:00
intc migration: Hack to maintain backwards compatibility for ppc 2023-11-01 16:13:58 +01:00
ipack
ipmi hw/ipmi: Don't call vmstate_register() from instance_init() functions 2023-11-01 16:13:58 +01:00
isa virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
loongarch
m68k
mem
microblaze
mips virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
misc misc/led: LED state is set opposite of what is expected 2023-10-27 12:51:17 +01:00
net migration: Use vmstate_register_any() 2023-11-01 16:13:58 +01:00
nios2
nubus
nvme
nvram migration: Use vmstate_register_any() for eeprom93xx 2023-11-01 16:13:58 +01:00
openrisc
pci migration: Use vmstate_register_any() 2023-11-01 16:13:58 +01:00
pci-bridge
pci-host
pcmcia hw/pcmcia/pxa2xx: Inline pxa2xx_pcmcia_init() 2023-10-27 12:48:57 +01:00
ppc migration: Hack to maintain backwards compatibility for ppc 2023-11-01 16:13:58 +01:00
rdma
remote
riscv
rtc
rx
s390x hw/s390x/s390-stattrib: Don't call register_savevm_live() during instance_init() 2023-11-01 16:13:58 +01:00
scsi cpr: relax vhost migration blockers 2023-11-01 16:13:59 +01:00
sd hw/sd/pxa2xx: Do not open-code sysbus_create_simple() 2023-10-27 12:48:57 +01:00
sensor
sh4
smbios
sparc
sparc64
ssi
timer migration: Use vmstate_register_any() 2023-11-01 16:13:58 +01:00
tpm
tricore
ufs hw/ufs: Modify lu.c to share codes with SCSI subsystem 2023-10-30 10:28:04 +09:00
usb
vfio
virtio cpr: relax vhost migration blockers 2023-11-01 16:13:59 +01:00
watchdog
xen
xenpv
xtensa
Kconfig
meson.build