Hi Peter, On 2025-06-13 10:07, Peter Xu wrote: > Now after merging the precopy and postcopy version of complete() hook, > rename the precopy version from save_live_complete_precopy() to > save_complete(). > > Dropping the "live" when at it, because it's in most cases not live when > happening (in precopy). > > No functional change intended. > > Signed-off-by: Peter Xu <pet...@redhat.com> > --- > include/migration/register.h | 4 ++-- > hw/ppc/spapr.c | 2 +- > hw/s390x/s390-stattrib.c | 2 +- > hw/vfio/migration.c | 2 +- > migration/block-dirty-bitmap.c | 2 +- > migration/ram.c | 2 +- > migration/savevm.c | 8 ++++---- > 7 files changed, 11 insertions(+), 11 deletions(-) > > diff --git a/include/migration/register.h b/include/migration/register.h > index e022195785..0510534515 100644 > --- a/include/migration/register.h > +++ b/include/migration/register.h > @@ -78,7 +78,7 @@ typedef struct SaveVMHandlers { > void (*save_cleanup)(void *opaque); > > /** > - * @save_live_complete_precopy > + * @save_complete > * > * Transmits the last section for the device containing any > * remaining data at the end phase of migration. > @@ -95,7 +95,7 @@ typedef struct SaveVMHandlers { > * > * Returns zero to indicate success and negative for error > */ > - int (*save_live_complete_precopy)(QEMUFile *f, void *opaque); > + int (*save_complete)(QEMUFile *f, void *opaque); > > /** > * @save_live_complete_precopy_thread (invoked in a separate thread) > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index 702f774cda..c5d30f2ebd 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -2518,7 +2518,7 @@ static void htab_save_cleanup(void *opaque) > static SaveVMHandlers savevm_htab_handlers = { > .save_setup = htab_save_setup, > .save_live_iterate = htab_save_iterate, > - .save_live_complete_precopy = htab_save_complete, > + .save_complete = htab_save_complete, > .save_cleanup = htab_save_cleanup, > .load_state = htab_load, > }; > diff --git a/hw/s390x/s390-stattrib.c b/hw/s390x/s390-stattrib.c > index f74cf32636..13a678a803 100644 > --- a/hw/s390x/s390-stattrib.c > +++ b/hw/s390x/s390-stattrib.c > @@ -338,7 +338,7 @@ static const TypeInfo qemu_s390_stattrib_info = { > static SaveVMHandlers savevm_s390_stattrib_handlers = { > .save_setup = cmma_save_setup, > .save_live_iterate = cmma_save_iterate, > - .save_live_complete_precopy = cmma_save_complete, > + .save_complete = cmma_save_complete, > .state_pending_exact = cmma_state_pending, > .state_pending_estimate = cmma_state_pending, > .save_cleanup = cmma_save_cleanup, > diff --git a/hw/vfio/migration.c b/hw/vfio/migration.c > index b76697bd1a..33a71f8999 100644 > --- a/hw/vfio/migration.c > +++ b/hw/vfio/migration.c > @@ -824,7 +824,7 @@ static const SaveVMHandlers savevm_vfio_handlers = { > .state_pending_exact = vfio_state_pending_exact, > .is_active_iterate = vfio_is_active_iterate, > .save_live_iterate = vfio_save_iterate, > - .save_live_complete_precopy = vfio_save_complete_precopy, > + .save_complete = vfio_save_complete_precopy, > .save_state = vfio_save_state, > .load_setup = vfio_load_setup, > .load_cleanup = vfio_load_cleanup, > diff --git a/migration/block-dirty-bitmap.c b/migration/block-dirty-bitmap.c > index 6ee3c32a76..a061aad817 100644 > --- a/migration/block-dirty-bitmap.c > +++ b/migration/block-dirty-bitmap.c > @@ -1248,7 +1248,7 @@ static bool dirty_bitmap_has_postcopy(void *opaque) > > static SaveVMHandlers savevm_dirty_bitmap_handlers = { > .save_setup = dirty_bitmap_save_setup, > - .save_live_complete_precopy = dirty_bitmap_save_complete, > + .save_complete = dirty_bitmap_save_complete, > .has_postcopy = dirty_bitmap_has_postcopy, > .state_pending_exact = dirty_bitmap_state_pending, > .state_pending_estimate = dirty_bitmap_state_pending, > diff --git a/migration/ram.c b/migration/ram.c > index 8b43b9e1e8..ed380ac86f 100644 > --- a/migration/ram.c > +++ b/migration/ram.c > @@ -4545,7 +4545,7 @@ void postcopy_preempt_shutdown_file(MigrationState *s) > static SaveVMHandlers savevm_ram_handlers = { > .save_setup = ram_save_setup, > .save_live_iterate = ram_save_iterate, > - .save_live_complete_precopy = ram_save_complete, > + .save_complete = ram_save_complete, > .has_postcopy = ram_has_postcopy, > .state_pending_exact = ram_state_pending_exact, > .state_pending_estimate = ram_state_pending_estimate, > diff --git a/migration/savevm.c b/migration/savevm.c > index 3e20f8608a..454e914b56 100644 > --- a/migration/savevm.c > +++ b/migration/savevm.c > @@ -1496,7 +1496,7 @@ void qemu_savevm_state_complete_postcopy(QEMUFile *f) > int ret; > > QTAILQ_FOREACH(se, &savevm_state.handlers, entry) { > - if (!se->ops || !se->ops->save_live_complete_precopy) { > + if (!se->ops || !se->ops->save_complete) { > continue; > } > if (se->ops->is_active) { > @@ -1509,7 +1509,7 @@ void qemu_savevm_state_complete_postcopy(QEMUFile *f) > qemu_put_byte(f, QEMU_VM_SECTION_END); > qemu_put_be32(f, se->section_id); > > - ret = se->ops->save_live_complete_precopy(f, se->opaque); > + ret = se->ops->save_complete(f, se->opaque); > trace_savevm_section_end(se->idstr, se->section_id, ret); > save_section_footer(f, se); > if (ret < 0) { > @@ -1583,7 +1583,7 @@ int > qemu_savevm_state_complete_precopy_iterable(QEMUFile *f, bool in_postcopy) > if (!se->ops || > (in_postcopy && se->ops->has_postcopy && > se->ops->has_postcopy(se->opaque)) || > - !se->ops->save_live_complete_precopy) { > + !se->ops->save_complete) { > continue; > } > > @@ -1598,7 +1598,7 @@ int > qemu_savevm_state_complete_precopy_iterable(QEMUFile *f, bool in_postcopy) > > save_section_header(f, se, QEMU_VM_SECTION_END); > > - ret = se->ops->save_live_complete_precopy(f, se->opaque); > + ret = se->ops->save_complete(f, se->opaque); > trace_savevm_section_end(se->idstr, se->section_id, ret); > save_section_footer(f, se); > if (ret < 0) { > -- > 2.49.0 >
There are still mentions of 'save_live_complete_precopy' in: include/migration/register.h:100 * parallel with @save_live_complete_precopy handlers. docs/devel/migration/vfio.rst:78 * A ``save_live_complete_precopy`` function that sets the VFIO device in docs/devel/migration/vfio.rst:198 .save_live_complete_precopy() is called for each active device docs/devel/migration/vfio.rst:200 .save_live_complete_precopy() until docs/devel/migration/main.rst:511 - A ``save_live_complete_precopy`` function that must transmit the Also, should we also drop "live" from 'save_live_complete_precopy_thread' as well? IIUC they are called together with (now) 'save_complete()' during precopy. Best regards Juraj Marcin