Lukas Straub <[email protected]> writes: > The multifd threads still may access the colo cache, so release it > only after they terminate. > > Signed-off-by: Lukas Straub <[email protected]> > --- > migration/colo.c | 3 --- > migration/migration.c | 3 +++ > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/migration/colo.c b/migration/colo.c > index > 8dfd39b035c48590fcebeb20459f01fb37fb67d1..d3534d1a32ad82f02101ac092ebf818a0caee6f2 > 100644 > --- a/migration/colo.c > +++ b/migration/colo.c > @@ -947,7 +947,4 @@ void coroutine_fn colo_incoming_co(void) > /* Wait checkpoint incoming thread exit before free resource */ > qemu_thread_join(&th); > bql_lock(); > - > - /* We hold the global BQL, so it is safe here */ > - colo_release_ram_cache(); > } > diff --git a/migration/migration.c b/migration/migration.c > index > 5515be1bf305b40ba0b590136df18a53451872c5..9e3f73f27766196ea8673bf9a58c97d5b8b1672f > 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -454,6 +454,9 @@ void migration_incoming_state_destroy(void) > * BQL and retake unconditionally. > */ > assert(bql_locked()); > + if (migrate_colo()) { > + colo_release_ram_cache(); > + } > qemu_loadvm_state_cleanup(mis); > > if (mis->to_src_file) {
Reviewed-by: Fabiano Rosas <[email protected]>
