From: Peter Xu <[email protected]> COLO caches all device states in a buffer channel `fb'. Add some comments explaining the flush, that (1) it's the `fb' not the main channel, (2) on what it updates.
Signed-off-by: Peter Xu <[email protected]> Reviewed-by: Fabiano Rosas <[email protected]> Tested-by: Lukas Straub <[email protected]> Link: https://lore.kernel.org/qemu-devel/[email protected] Signed-off-by: Fabiano Rosas <[email protected]> --- migration/colo.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index f92803dd29..1b94e0f0ee 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -472,12 +472,14 @@ static int colo_do_checkpoint_transaction(MigrationState *s, qemu_savevm_state_complete_precopy_iterable(s->to_dst_file, false); qemu_put_byte(s->to_dst_file, QEMU_VM_EOF); - qemu_fflush(fb); - /* * We need the size of the VMstate data in Secondary side, * With which we can decide how much data should be read. + * + * Flush the qemufile cache to make sure both bioc->usage and + * bioc->data contains the latest info. */ + qemu_fflush(fb); colo_send_message_value(s->to_dst_file, COLO_MESSAGE_VMSTATE_SIZE, bioc->usage, &local_err); if (local_err) { -- 2.51.0
