On Tue, 27 Jan 2026 13:52:30 -0500
Peter Xu <peterx@redhat.com> wrote:
> CI: https://gitlab.com/peterx/qemu/-/pipelines/2289719627
>
> v1: https://lore.kernel.org/r/20260121223336.3381912-1-peterx@redhat.com
>
> This is the v2 of the small cleanup series. It used to be only for COLO,
> but now for some other things too around dumping vmstates.
>
> The small series growed a little bit, because I wanted to try Fabiano's
> request to deduplicate qemu_save_device_state() and precopy's similar
> version to dump non-iterable devices.
>
> Changelog skipped, as too many things added. Old patches should almost the
> same with R-bs collected, though. I still touched up some small things,
> though (where I dropped the R-bs).
>
> This should pass the new COLO unit test too, I hope I didn't overlook
> something once more. Please anyone let me know if it fails.
>
> Comments welcomed, thanks.
This now works well in my testing:
Tested-by: Lukas Straub <lukasstraub2@web.de>
>
> Peter Xu (24):
> migration: Introduce qemu_savevm_send_* helpers
> migration: Use qemu_savevm_send_header() in qemu_save_device_state()
> migration: Remove one migration_in_colo_state() occurance
> migration/savevm: Remove SaveStateEntry.is_ram
> migration/colo: Unwrap qemu_savevm_live_state()
> migration: Remove call to send switchover start event in colo/savevm
> colo: Forbid VM resume during checkpointing
> migration/colo: Use the RAM iterable helper directly
> migration/colo: Document qemu_fflush(fb)
> migration: Drop iterable_only in qemu_savevm_state_complete_precopy
> migration: Drop qemu_file_set_error() when save non-iterable fails
> migration/colo: Send device states without copying buffer
> migration/postcopy: Send device states without copying buffer
> migration: Introduce qemu_savevm_state_end()
> migration: Provide helper for save vm description
> migration: Split qemu_savevm_state_complete_precopy_non_iterable()
> migration: qemu_savevm_state_complete_precopy() take MigrationState*
> migration: Cleanup error propagates in qemu_savevm_state_setup()
> migration: Refactor qemu_savevm_state_setup()
> migration: Introduce qemu_savevm_state_active()
> migration/bg-snapshot: Cleanup error paths
> migration: Make qemu_savevm_state_non_iterable() take errp
> migration: Simplify qemu_save_device_state()
> migration/colo/xen: Use generic helpers in qemu_save_device_state()
>
> migration/savevm.h | 18 +--
> migration/colo.c | 16 ++-
> migration/migration.c | 48 +++----
> migration/savevm.c | 312 ++++++++++++++++++++++--------------------
> monitor/qmp-cmds.c | 3 +
> 5 files changed, 213 insertions(+), 184 deletions(-)
>