[PATCH v2 00/24] migration: small cleanup series

Peter Xu posted 24 patches 1 week, 3 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260127185254.3954634-1-peterx@redhat.com
Maintainers: Hailiang Zhang <zhanghailiang@xfusion.com>, Peter Xu <peterx@redhat.com>, Fabiano Rosas <farosas@suse.de>, Markus Armbruster <armbru@redhat.com>
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(-)
[PATCH v2 00/24] migration: small cleanup series
Posted by Peter Xu 1 week, 3 days ago
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.

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(-)

-- 
2.50.1
Re: [PATCH v2 00/24] migration: small cleanup series
Posted by Lukas Straub 1 week ago
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(-)
>