qemu-cr16/migration
Peter Xu 26f65c01ed migration: Do not try to start VM if disk activation fails
If a rare split brain happens (e.g. dest QEMU started running somehow,
taking shared drive locks), src QEMU may not be able to activate the
drives anymore.  In this case, src QEMU shouldn't start the VM or it might
crash the block layer later with something like:

Meanwhile, src QEMU cannot try to continue either even if dest QEMU can
release the drive locks (e.g. by QMP "stop").  Because as long as dest QEMU
started running, it means dest QEMU's RAM is the only version that is
consistent with current status of the shared storage.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20251103183301.3840862-3-jmarcin@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>
2025-11-03 16:04:10 -05:00
..
block-active.c migration/block-active: Remove global active flag 2025-02-06 14:26:51 +01:00
block-dirty-bitmap.c migration: Rename save_live_complete_precopy to save_complete 2025-07-11 10:37:36 -03:00
channel-block.c migration: add FEATURE_SEEKABLE to QIOChannelBlock 2025-11-03 16:04:09 -05:00
channel-block.h migration: introduce a QIOChannel impl for BlockDriverState VMState 2022-06-22 19:33:43 +01:00
channel.c migration: Properly wait on G_IO_IN when peeking messages 2025-11-03 16:04:10 -05:00
channel.h migration: check magic value for deciding the mapping of channels 2023-02-06 19:22:57 +01:00
colo-failover.c migration/colo: Improve an x-colo-lost-heartbeat error message 2023-02-23 14:10:17 +01:00
colo-stubs.c migration/colo: make colo_incoming_co() return void 2024-05-22 17:34:31 -03:00
colo.c migration: Update qemu_file_get_return_path() docs and remove dead checks 2025-10-03 09:48:02 -04:00
cpr-exec.c migration/cpr: Fix UAF in cpr_exec_cb() when execvp() fails 2025-11-03 16:04:09 -05:00
cpr-transfer.c migration: Support fd-based socket address in cpr_transfer_input 2025-06-23 16:03:59 -04:00
cpr.c migration/cpr: Fix coverity report in cpr_exec_persist_state() 2025-11-03 16:04:09 -05:00
cpu-throttle.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
dirtyrate.c include/system: Move exec/ramblock.h to system/ramblock.h 2025-04-23 14:08:26 -07:00
dirtyrate.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
exec.c migration: simplify exec migration functions 2024-03-04 07:12:40 +01:00
exec.h migration: convert exec backend to accept MigrateAddress. 2023-11-02 11:35:04 +01:00
fd.c migration: Allow pipes to keep working for fd migrations 2024-11-25 16:21:55 -05:00
fd.h migration: Revert mapped-ram multifd support to fd: URI 2024-03-22 12:12:08 -04:00
file.c include/system: Move exec/ramblock.h to system/ramblock.h 2025-04-23 14:08:26 -07:00
file.h migration/multifd: Pass in MultiFDPages_t to file_write_ramblock_iov 2024-09-03 16:24:35 -03:00
global_state.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
meson.build migration: cpr-exec save and load 2025-10-03 09:48:02 -04:00
migration-hmp-cmds.c migration/cpr: Document obscure usage of g_autofree when parse str 2025-11-03 16:04:10 -05:00
migration-stats.c migration: migration_rate_limit_reset() don't need the QEMUFile 2023-10-31 08:44:33 +01:00
migration-stats.h migration: Remove transferred atomic counter 2023-10-31 08:44:33 +01:00
migration.c migration: Do not try to start VM if disk activation fails 2025-11-03 16:04:10 -05:00
migration.h migration/postcopy: Push blocktime start/end into page req mutex 2025-07-11 10:37:37 -03:00
multifd-device-state.c migration: Rename save_live_complete_precopy_thread to save_complete_precopy_thread 2025-07-11 10:37:39 -03:00
multifd-nocomp.c migration: enable multifd and postcopy together 2025-05-20 11:26:32 -04:00
multifd-qatzip.c include/system: Move exec/ramblock.h to system/ramblock.h 2025-04-23 14:08:26 -07:00
multifd-qpl.c include/system: Move exec/ramblock.h to system/ramblock.h 2025-04-23 14:08:26 -07:00
multifd-uadk.c include/system: Move exec/ramblock.h to system/ramblock.h 2025-04-23 14:08:26 -07:00
multifd-zero-page.c migration: write zero pages when postcopy enabled 2025-05-20 11:26:32 -04:00
multifd-zlib.c include/system: Move exec/ramblock.h to system/ramblock.h 2025-04-23 14:08:26 -07:00
multifd-zstd.c include/system: Move exec/ramblock.h to system/ramblock.h 2025-04-23 14:08:26 -07:00
multifd.c migration/multifd/tls: Cleanup BYE message processing on sender side 2025-10-03 09:48:02 -04:00
multifd.h migration/multifd: move macros to multifd header 2025-05-02 11:09:36 -04:00
options.c migration: mapped-ram: handle zero pages 2025-11-03 16:04:09 -05:00
options.h migration/savevm: Add a compatibility check for capabilities 2025-11-03 16:04:09 -05:00
page_cache.c
page_cache.h
postcopy-ram.c migration: push Error **errp into ram_postcopy_incoming_init() 2025-10-03 09:48:02 -04:00
postcopy-ram.h migration: push Error **errp into ram_postcopy_incoming_init() 2025-10-03 09:48:02 -04:00
qemu-file.c io: Add qio_channel_wait_cond() helper 2025-11-03 16:04:10 -05:00
qemu-file.h migration: qemu_file_set_blocking(): add errp parameter 2025-09-19 12:46:07 +01:00
ram.c migration: mapped-ram: handle zero pages 2025-11-03 16:04:09 -05:00
ram.h migration: push Error **errp into loadvm_process_enable_colo() 2025-10-03 09:48:02 -04:00
rdma.c migration/rdma: Remove qemu_rdma_broken_ipv6_kernel 2025-05-02 11:09:36 -04:00
rdma.h migration: Unfold control_save_page() 2025-05-02 11:09:36 -04:00
savevm.c migration: Flush migration channel after sending data of CMD_PACKAGED 2025-11-03 16:04:10 -05:00
savevm.h migration: push Error **errp into qemu_loadvm_state_main() 2025-10-03 09:48:02 -04:00
socket.c migration: Remove unused socket_send_channel_create_sync 2024-10-08 15:28:55 -04:00
socket.h migration: Remove unused socket_send_channel_create_sync 2024-10-08 15:28:55 -04:00
threadinfo.c migration/multifd: Protect accesses to migration_threads 2023-07-26 10:55:56 +02:00
threadinfo.h migration/multifd: Protect accesses to migration_threads 2023-07-26 10:55:56 +02:00
tls.c migration: activate TLS thread safety workaround 2025-07-22 19:39:30 -03:00
tls.h migration/multifd: Terminate the TLS connection 2025-02-14 15:19:04 -03:00
trace-events migration: cpr-exec mode 2025-10-03 09:48:02 -04:00
trace.h
vfio-stub.c migration/vfio: compile only once 2025-09-02 17:57:05 +02:00
vfio.c migration/vfio: compile only once 2025-09-02 17:57:05 +02:00
vmstate-types.c migration: cpr-exec mode 2025-10-03 09:48:02 -04:00
vmstate.c migration: vmsd errp handlers: return bool 2025-11-03 16:04:10 -05:00
xbzrle.c migration/xbzrle: Use i386 host/cpuinfo.h 2023-05-23 16:51:18 -07:00
xbzrle.h migration/xbzrle: Use i386 host/cpuinfo.h 2023-05-23 16:51:18 -07:00
yank_functions.c migration/yank: Use channel features 2024-01-29 11:02:12 +08:00
yank_functions.h migration: Move the yank unregister of channel_close out 2021-07-26 12:45:03 +01:00