Browse Source

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>
master
Lukas Straub 5 months ago
committed by Fabiano Rosas
parent
commit
3639d94e16
  1. 1
      include/migration/colo.h
  2. 2
      migration/colo.c
  3. 9
      migration/migration.c
  4. 2
      migration/ram.c

1
include/migration/colo.h

@ -27,7 +27,6 @@ bool migration_in_colo_state(void);
/* loadvm */
int migration_incoming_enable_colo(Error **errp);
void migration_incoming_disable_colo(void);
bool migration_incoming_colo_enabled(void);
bool migration_incoming_in_colo_state(void);
COLOMode get_colo_mode(void);

2
migration/colo.c

@ -935,7 +935,7 @@ void coroutine_fn colo_incoming_co(void)
QemuThread th;
assert(bql_locked());
assert(migration_incoming_colo_enabled());
assert(migrate_colo());
qemu_thread_create(&th, MIGRATION_THREAD_DST_COLO,
colo_process_incoming_thread,

9
migration/migration.c

@ -605,11 +605,6 @@ int migrate_send_rp_req_pages(MigrationIncomingState *mis,
}
static bool migration_colo_enabled;
bool migration_incoming_colo_enabled(void)
{
return migration_colo_enabled;
}
void migration_incoming_disable_colo(void)
{
ram_block_discard_disable(false);
@ -739,7 +734,7 @@ static void process_incoming_migration_bh(void *opaque)
} else {
runstate_set(RUN_STATE_PAUSED);
}
} else if (migration_incoming_colo_enabled()) {
} else if (migrate_colo()) {
migration_incoming_disable_colo();
vm_start();
} else {
@ -807,7 +802,7 @@ process_incoming_migration_co(void *opaque)
goto fail;
}
if (migration_incoming_colo_enabled()) {
if (migrate_colo()) {
/* yield until COLO exit */
colo_incoming_co();
}

2
migration/ram.c

@ -4370,7 +4370,7 @@ static int ram_load_precopy(QEMUFile *f)
* speed of the migration, but it obviously reduce the downtime of
* back-up all SVM'S memory in COLO preparing stage.
*/
if (migration_incoming_colo_enabled()) {
if (migrate_colo()) {
if (migration_incoming_in_colo_state()) {
/* In COLO stage, put all pages into cache temporarily */
host = colo_cache_from_block_offset(block, addr, true);

Loading…
Cancel
Save