@samitouri / QOSamiQemu / commits / 3639d94e16

colo: Replace migration_incoming_colo_enabled() with migrate_colo()

Since 121ccedc2b migration: block incoming colo when capability is disabled x-colo capability needs to be always enabled on the incoming side. So migration_incoming_colo_enabled() and migrate_colo() are equivalent with migrate_colo() being easier to reason about since it is always true during the whole migration. Reviewed-by: Fabiano Rosas <farosas@suse.de> Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Lukas Straub <lukasstraub2@web.de> Link: https://lore.kernel.org/qemu-devel/20260302-colo_unit_test_multifd-v11-4-d653fb3b1d80@web.de Signed-off-by: Fabiano Rosas <farosas@suse.de>

Lukas Straub committed Mar 2, 2026 at 12:43 UTC 3639d94e16c0a2e512a1204b54d606acba9b5171
4 files changed +4 -10
include/migration/colo.h
-1
@@ -27,7 +27,6 @@ bool migration_in_colo_state(void);
27 /* loadvm */
28 int migration_incoming_enable_colo(Error **errp);
29 void migration_incoming_disable_colo(void);
30 -bool migration_incoming_colo_enabled(void);
30 bool migration_incoming_in_colo_state(void);
31
32 COLOMode get_colo_mode(void);
migration/colo.c
+1 -1
@@ -935,7 +935,7 @@ void coroutine_fn colo_incoming_co(void)
935 QemuThread th;
936
937 assert(bql_locked());
938 - assert(migration_incoming_colo_enabled());
938 + assert(migrate_colo());
939
940 qemu_thread_create(&th, MIGRATION_THREAD_DST_COLO,
941 colo_process_incoming_thread,
migration/migration.c
+2 -7
@@ -605,11 +605,6 @@ int migrate_send_rp_req_pages(MigrationIncomingState *mis,
605 }
606
607 static bool migration_colo_enabled;
608 -bool migration_incoming_colo_enabled(void)
609 -{
610 - return migration_colo_enabled;
611 -}
612 -
608 void migration_incoming_disable_colo(void)
609 {
610 ram_block_discard_disable(false);
@@ -739,7 +734,7 @@ static void process_incoming_migration_bh(void *opaque)
734 } else {
735 runstate_set(RUN_STATE_PAUSED);
736 }
742 - } else if (migration_incoming_colo_enabled()) {
737 + } else if (migrate_colo()) {
738 migration_incoming_disable_colo();
739 vm_start();
740 } else {
@@ -807,7 +802,7 @@ process_incoming_migration_co(void *opaque)
802 goto fail;
803 }
804
810 - if (migration_incoming_colo_enabled()) {
805 + if (migrate_colo()) {
806 /* yield until COLO exit */
807 colo_incoming_co();
808 }
migration/ram.c
+1 -1
@@ -4370,7 +4370,7 @@ static int ram_load_precopy(QEMUFile *f)
4370 * speed of the migration, but it obviously reduce the downtime of
4371 * back-up all SVM'S memory in COLO preparing stage.
4372 */
4373 - if (migration_incoming_colo_enabled()) {
4373 + if (migrate_colo()) {
4374 if (migration_incoming_in_colo_state()) {
4375 /* In COLO stage, put all pages into cache temporarily */
4376 host = colo_cache_from_block_offset(block, addr, true);