qemu/migration
Prasad Pandit 00f3fcef19 migration: refactor channel discovery mechanism
The various logical migration channels don't have a
standardized way of advertising themselves and their
connections may be seen out of order by the migration
destination. When a new connection arrives, the incoming
migration currently make use of heuristics to determine
which channel it belongs to.

The next few patches will need to change how the multifd
and postcopy capabilities interact and that affects the
channel discovery heuristic.

Refactor the channel discovery heuristic to make it less
opaque and simplify the subsequent patches.

Signed-off-by: Prasad Pandit <pjp@fedoraproject.org>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Message-ID: <20250411114534.3370816-3-ppandit@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
2025-05-02 11:09:36 -04:00
..
block-active.c migration/block-active: Remove global active flag 2025-02-06 14:26:51 +01:00
block-dirty-bitmap.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
channel-block.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
channel-block.h migration: introduce a QIOChannel impl for BlockDriverState VMState 2022-06-22 19:33:43 +01:00
channel.c migration: Fix hang after error in destination setup phase 2025-02-14 15:19:05 -03: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: Add MIG_CMD_SWITCHOVER_START and its load handler 2025-03-06 06:47:33 +01:00
cpr-transfer.c migration: cpr-transfer save and load 2025-01-29 11:43:05 -03:00
cpr.c migration: cpr_is_incoming 2025-03-14 09:29:19 -03: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/multifd: Device state transfer support - send side 2025-03-06 06:47:33 +01:00
migration-hmp-cmds.c migration: Add MIG_CMD_SWITCHOVER_START and its load handler 2025-03-06 06:47:33 +01: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: refactor channel discovery mechanism 2025-05-02 11:09:36 -04:00
migration.h migration: Add thread pool of optional load threads 2025-03-06 06:47:33 +01:00
multifd-device-state.c migration: Add save_live_complete_precopy_thread handler 2025-03-06 06:47:33 +01:00
multifd-nocomp.c Miscellaneous patches for 2025-04-24 2025-04-24 13:44:57 -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 include/system: Move exec/ramblock.h to system/ramblock.h 2025-04-23 14:08:26 -07: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: move macros to multifd header 2025-05-02 11:09:36 -04:00
multifd.h migration/multifd: move macros to multifd header 2025-05-02 11:09:36 -04:00
options.c migration: Fix latent bug in migrate_params_test_apply() 2025-05-02 11:09:36 -04:00
options.h migration: check RDMA and capabilities are compatible on both sides 2025-05-02 11:09:36 -04: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 include/system: Move exec/ramblock.h to system/ramblock.h 2025-04-23 14:08:26 -07:00
postcopy-ram.h migration/postcopy: Add postcopy-recover-setup phase 2024-06-21 09:47:59 -03:00
qemu-file.c cleanup: Drop pointless return at end of function 2025-04-24 09:33:42 +02:00
qemu-file.h migration/qemu-file: Define g_autoptr() cleanup function for QEMUFile 2025-03-06 06:47:34 +01:00
ram.c migration: Unfold control_save_page() 2025-05-02 11:09:36 -04:00
ram.h migration/ram: Move RAM_SAVE_FLAG* into ram.h 2025-01-09 17:38:15 -03:00
rdma.c migration: Unfold control_save_page() 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 page-vary: Move and rename qemu_target_page_bits_min 2025-04-23 15:04:57 -07:00
savevm.h migration: Add thread pool of optional load threads 2025-03-06 06:47:33 +01: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
target.c vfio: Introduce a new header file for external migration services 2025-04-25 09:01:37 +02: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/multifd: Terminate the TLS connection 2025-02-14 15:19:04 -03:00
tls.h migration/multifd: Terminate the TLS connection 2025-02-14 15:19:04 -03:00
trace-events migration: Add MIG_CMD_SWITCHOVER_START and its load handler 2025-03-06 06:47:33 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vmstate-types.c migration: cpr-transfer mode 2025-01-29 11:56:24 -03:00
vmstate.c qapi: Move include/qapi/qmp/ to include/qobject/ 2025-02-10 15:33:16 +01: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