qemu-cr16/migration
Li Zhijian 0b5bf4ea76 migration: Fix transition to COLO state from precopy
Commit 4881411136 ("migration: Always set DEVICE state") set a new DEVICE
state before completed during migration, which broke the original transition
to COLO. The migration flow for precopy has changed to:
active -> pre-switchover -> device -> completed.

This patch updates the transition state to ensure that the Pre-COLO
state corresponds to DEVICE state correctly.

Cc: qemu-stable <qemu-stable@nongnu.org>
Fixes: 4881411136 ("migration: Always set DEVICE state")
Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Zhang Chen <zhangckid@gmail.com>
Tested-by: Zhang Chen <zhangckid@gmail.com>
Link: https://lore.kernel.org/r/20251104013606.1937764-1-lizhijian@fujitsu.com
Signed-off-by: Peter Xu <peterx@redhat.com>
2025-11-21 10:33:21 -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: Fix transition to COLO state from precopy 2025-11-21 10:33:21 -05:00
migration.h migration: Introduce POSTCOPY_DEVICE state 2025-11-03 16:04:10 -05: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 migration: Fix cache_init()'s "Failed to allocate" error messages 2021-02-08 11:19:51 +00:00
page_cache.h migration: Clean up signed vs. unsigned XBZRLE cache-size 2021-02-08 11:19:51 +00:00
postcopy-ram.c migration: Introduce POSTCOPY_DEVICE state 2025-11-03 16:04:10 -05:00
postcopy-ram.h migration: Introduce postcopy incoming setup and cleanup functions 2025-11-03 16:04:10 -05: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: Check ntohll() availability with meson 2025-11-18 19:59:36 +01:00
rdma.h migration: Unfold control_save_page() 2025-05-02 11:09:36 -04:00
savevm.c migration: Introduce POSTCOPY_DEVICE state 2025-11-03 16:04:10 -05:00
savevm.h migration: Introduce POSTCOPY_DEVICE state 2025-11-03 16:04:10 -05:00
socket.c qio: Provide accessor around QIONetListener->sioc 2025-11-13 10:54:44 -06: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: Introduce POSTCOPY_DEVICE state 2025-11-03 16:04:10 -05:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
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