All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fabiano Rosas <farosas@suse.de>
To: Peter Xu <peterx@redhat.com>, qemu-devel@nongnu.org
Cc: Juraj Marcin <jmarcin@redhat.com>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Prasad Pandit <ppandit@redhat.com>,
	peterx@redhat.com
Subject: Re: [PATCH 5/5] migration: Rename MIG_EVENT_PRECOPY_* to MIG_EVENT_*
Date: Fri, 23 Jan 2026 10:02:43 -0300	[thread overview]
Message-ID: <87y0loiirw.fsf@suse.de> (raw)
In-Reply-To: <20260122230331.3543312-6-peterx@redhat.com>

Peter Xu <peterx@redhat.com> writes:

> All three events are shared between precopy and postcopy, rather than
> precopy specific.
>
> For example, both precopy and postcopy will go through a SETUP process.
>
> Meanwhile, both FAILED and DONE notifiers will be notified for either
> precopy or postcopy on completions / failures.
>
> Rename them to make them match what they do, and shorter.
>
> Signed-off-by: Peter Xu <peterx@redhat.com>
> ---
>  include/migration/misc.h | 14 +++++++-------
>  hw/intc/arm_gicv3_kvm.c  |  2 +-
>  hw/net/virtio-net.c      |  4 ++--
>  hw/vfio/cpr-legacy.c     |  2 +-
>  hw/vfio/cpr.c            |  8 ++++----
>  hw/vfio/migration.c      |  4 ++--
>  migration/cpr-exec.c     |  6 +++---
>  migration/migration.c    |  8 ++++----
>  net/vhost-vdpa.c         |  4 ++--
>  ui/spice-core.c          |  6 +++---
>  10 files changed, 29 insertions(+), 29 deletions(-)
>
> diff --git a/include/migration/misc.h b/include/migration/misc.h
> index b002466e10..766de998cb 100644
> --- a/include/migration/misc.h
> +++ b/include/migration/misc.h
> @@ -60,10 +60,10 @@ bool migration_is_running(void);
>  bool migration_thread_is_self(void);
>  
>  typedef enum MigrationEventType {
> -    MIG_EVENT_PRECOPY_SETUP,
> -    MIG_EVENT_PRECOPY_DONE,
> -    MIG_EVENT_PRECOPY_FAILED,
> +    MIG_EVENT_SETUP,
>      MIG_EVENT_POSTCOPY_START,
> +    MIG_EVENT_DONE,
> +    MIG_EVENT_FAILED,
>      MIG_EVENT_MAX
>  } MigrationEventType;
>  
> @@ -73,7 +73,7 @@ typedef struct MigrationEvent {
>  
>  /*
>   * A MigrationNotifyFunc may return an error code and an Error object,
> - * but only when @e->type is MIG_EVENT_PRECOPY_SETUP.  The code is an int
> + * but only when @e->type is MIG_EVENT_SETUP.  The code is an int
>   * to allow for different failure modes and recovery actions.
>   */
>  typedef int (*MigrationNotifyFunc)(NotifierWithReturn *notify,
> @@ -83,9 +83,9 @@ typedef int (*MigrationNotifyFunc)(NotifierWithReturn *notify,
>   * Register the notifier @notify to be called when a migration event occurs
>   * for MIG_MODE_NORMAL, as specified by the MigrationEvent passed to @func.
>   * Notifiers may receive events in any of the following orders:
> - *    - MIG_EVENT_PRECOPY_SETUP -> MIG_EVENT_PRECOPY_DONE
> - *    - MIG_EVENT_PRECOPY_SETUP -> MIG_EVENT_PRECOPY_FAILED
> - *    - MIG_EVENT_PRECOPY_FAILED
> + *    - MIG_EVENT_SETUP -> MIG_EVENT_DONE
> + *    - MIG_EVENT_SETUP -> MIG_EVENT_FAILED
> + *    - MIG_EVENT_FAILED
>   */
>  void migration_add_notifier(NotifierWithReturn *notify,
>                              MigrationNotifyFunc func);
> diff --git a/hw/intc/arm_gicv3_kvm.c b/hw/intc/arm_gicv3_kvm.c
> index 6f311e37ef..fddeefa26f 100644
> --- a/hw/intc/arm_gicv3_kvm.c
> +++ b/hw/intc/arm_gicv3_kvm.c
> @@ -774,7 +774,7 @@ static void vm_change_state_handler(void *opaque, bool running,
>  static int kvm_arm_gicv3_notifier(NotifierWithReturn *notifier,
>                                    MigrationEvent *e, Error **errp)
>  {
> -    if (e->type == MIG_EVENT_PRECOPY_DONE) {
> +    if (e->type == MIG_EVENT_DONE) {
>          GICv3State *s = container_of(notifier, GICv3State, cpr_notifier);
>          return kvm_device_access(s->dev_fd, KVM_DEV_ARM_VGIC_GRP_CTRL,
>                                   KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES,
> diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
> index 317f1ad23b..3e2dc30da6 100644
> --- a/hw/net/virtio-net.c
> +++ b/hw/net/virtio-net.c
> @@ -3786,7 +3786,7 @@ static void virtio_net_handle_migration_primary(VirtIONet *n, MigrationEvent *e)
>  
>      should_be_hidden = qatomic_read(&n->failover_primary_hidden);
>  
> -    if (e->type == MIG_EVENT_PRECOPY_SETUP && !should_be_hidden) {
> +    if (e->type == MIG_EVENT_SETUP && !should_be_hidden) {
>          if (failover_unplug_primary(n, dev)) {
>              vmstate_unregister(VMSTATE_IF(dev), qdev_get_vmsd(dev), dev);
>              qapi_event_send_unplug_primary(dev->id);
> @@ -3794,7 +3794,7 @@ static void virtio_net_handle_migration_primary(VirtIONet *n, MigrationEvent *e)
>          } else {
>              warn_report("couldn't unplug primary device");
>          }
> -    } else if (e->type == MIG_EVENT_PRECOPY_FAILED) {
> +    } else if (e->type == MIG_EVENT_FAILED) {
>          /* We already unplugged the device let's plug it back */
>          if (!failover_replug_primary(n, dev, &err)) {
>              if (err) {
> diff --git a/hw/vfio/cpr-legacy.c b/hw/vfio/cpr-legacy.c
> index 7c03ddb961..033a546c30 100644
> --- a/hw/vfio/cpr-legacy.c
> +++ b/hw/vfio/cpr-legacy.c
> @@ -137,7 +137,7 @@ static int vfio_cpr_fail_notifier(NotifierWithReturn *notifier,
>          container_of(notifier, VFIOLegacyContainer, cpr.transfer_notifier);
>      VFIOContainer *bcontainer = VFIO_IOMMU(container);
>  
> -    if (e->type != MIG_EVENT_PRECOPY_FAILED) {
> +    if (e->type != MIG_EVENT_FAILED) {
>          return 0;
>      }
>  
> diff --git a/hw/vfio/cpr.c b/hw/vfio/cpr.c
> index 998230d271..ffa4f8e099 100644
> --- a/hw/vfio/cpr.c
> +++ b/hw/vfio/cpr.c
> @@ -18,7 +18,7 @@
>  int vfio_cpr_reboot_notifier(NotifierWithReturn *notifier,
>                               MigrationEvent *e, Error **errp)
>  {
> -    if (e->type == MIG_EVENT_PRECOPY_SETUP &&
> +    if (e->type == MIG_EVENT_SETUP &&
>          !runstate_check(RUN_STATE_SUSPENDED) && !vm_get_suspended()) {
>  
>          error_setg(errp,
> @@ -186,7 +186,7 @@ static int vfio_cpr_kvm_close_notifier(NotifierWithReturn *notifier,
>                                         MigrationEvent *e,
>                                         Error **errp)
>  {
> -    if (e->type == MIG_EVENT_PRECOPY_DONE) {
> +    if (e->type == MIG_EVENT_DONE) {
>          vfio_kvm_device_close();
>      }
>      return 0;
> @@ -272,9 +272,9 @@ static int vfio_cpr_pci_notifier(NotifierWithReturn *notifier,
>      VFIOPCIDevice *vdev =
>          container_of(notifier, VFIOPCIDevice, cpr.transfer_notifier);
>  
> -    if (e->type == MIG_EVENT_PRECOPY_SETUP) {
> +    if (e->type == MIG_EVENT_SETUP) {
>          return vfio_cpr_set_msi_virq(vdev, errp, false);
> -    } else if (e->type == MIG_EVENT_PRECOPY_FAILED) {
> +    } else if (e->type == MIG_EVENT_FAILED) {
>          return vfio_cpr_set_msi_virq(vdev, errp, true);
>      }
>      return 0;
> diff --git a/hw/vfio/migration.c b/hw/vfio/migration.c
> index f857dc25ed..76a902b79c 100644
> --- a/hw/vfio/migration.c
> +++ b/hw/vfio/migration.c
> @@ -917,10 +917,10 @@ static int vfio_migration_state_notifier(NotifierWithReturn *notifier,
>  
>      trace_vfio_migration_state_notifier(vbasedev->name, e->type);
>  
> -    if (e->type == MIG_EVENT_PRECOPY_FAILED) {
> +    if (e->type == MIG_EVENT_FAILED) {
>          /*
>           * MigrationNotifyFunc may not return an error code and an Error
> -         * object for MIG_EVENT_PRECOPY_FAILED. Hence, report the error
> +         * object for MIG_EVENT_FAILED. Hence, report the error
>           * locally and ignore the errp argument.
>           */
>          ret = vfio_migration_set_state_or_reset(vbasedev,
> diff --git a/migration/cpr-exec.c b/migration/cpr-exec.c
> index da287d8031..18a71828c3 100644
> --- a/migration/cpr-exec.c
> +++ b/migration/cpr-exec.c
> @@ -164,7 +164,7 @@ static void cpr_exec_cb(void *opaque)
>      err = NULL;
>  
>      /* Note, we can go from state COMPLETED to FAILED */
> -    migration_call_notifiers(s, MIG_EVENT_PRECOPY_FAILED, NULL);
> +    migration_call_notifiers(s, MIG_EVENT_FAILED, NULL);
>  
>      if (!migration_block_activate(&err)) {
>          /* error was already reported */
> @@ -182,12 +182,12 @@ static int cpr_exec_notifier(NotifierWithReturn *notifier, MigrationEvent *e,
>  {
>      MigrationState *s = migrate_get_current();
>  
> -    if (e->type == MIG_EVENT_PRECOPY_DONE) {
> +    if (e->type == MIG_EVENT_DONE) {
>          QEMUBH *cpr_exec_bh = qemu_bh_new(cpr_exec_cb, NULL);
>          assert(s->state == MIGRATION_STATUS_COMPLETED);
>          qemu_bh_schedule(cpr_exec_bh);
>          qemu_notify_event();
> -    } else if (e->type == MIG_EVENT_PRECOPY_FAILED) {
> +    } else if (e->type == MIG_EVENT_FAILED) {
>          cpr_exec_unpersist_state();
>      }
>      return 0;
> diff --git a/migration/migration.c b/migration/migration.c
> index 5bef14ea99..7ba37afb27 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -1540,7 +1540,7 @@ static void migration_cleanup(MigrationState *s)
>       * migration completed successfully.
>       */
>      if (!migration_has_failed(s)) {
> -        migration_call_notifiers(s, MIG_EVENT_PRECOPY_DONE, NULL);
> +        migration_call_notifiers(s, MIG_EVENT_DONE, NULL);
>      }
>  
>      yank_unregister_instance(MIGRATION_YANK_INSTANCE);
> @@ -1720,7 +1720,7 @@ int migration_call_notifiers(MigrationState *s, MigrationEventType type,
>          notifier = (NotifierWithReturn *)elem->data;
>          ret = notifier->notify(notifier, &e, errp);
>          if (ret) {
> -            assert(type == MIG_EVENT_PRECOPY_SETUP);
> +            assert(type == MIG_EVENT_SETUP);
>              return ret;
>          }
>      }
> @@ -3598,7 +3598,7 @@ static void migration_iteration_finish(MigrationState *s)
>           * Notify FAILED before starting VM, so that devices can invoke
>           * necessary fallbacks before vCPUs run again.
>           */
> -        migration_call_notifiers(s, MIG_EVENT_PRECOPY_FAILED, NULL);
> +        migration_call_notifiers(s, MIG_EVENT_FAILED, NULL);
>  
>          if (runstate_is_live(s->vm_old_state)) {
>              if (!runstate_check(RUN_STATE_SHUTDOWN)) {
> @@ -4064,7 +4064,7 @@ void migration_connect(MigrationState *s, Error *error_in)
>          rate_limit = migrate_max_bandwidth();
>  
>          /* Notify before starting migration thread */
> -        if (migration_call_notifiers(s, MIG_EVENT_PRECOPY_SETUP, &local_err)) {
> +        if (migration_call_notifiers(s, MIG_EVENT_SETUP, &local_err)) {
>              goto fail;
>          }
>      }
> diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
> index 74d26a9497..f4b1f0e9e0 100644
> --- a/net/vhost-vdpa.c
> +++ b/net/vhost-vdpa.c
> @@ -378,9 +378,9 @@ static int vdpa_net_migration_state_notifier(NotifierWithReturn *notifier,
>  {
>      VhostVDPAState *s = container_of(notifier, VhostVDPAState, migration_state);
>  
> -    if (e->type == MIG_EVENT_PRECOPY_SETUP) {
> +    if (e->type == MIG_EVENT_SETUP) {
>          vhost_vdpa_net_log_global_enable(s, true);
> -    } else if (e->type == MIG_EVENT_PRECOPY_FAILED) {
> +    } else if (e->type == MIG_EVENT_FAILED) {
>          vhost_vdpa_net_log_global_enable(s, false);
>      }
>      return 0;
> diff --git a/ui/spice-core.c b/ui/spice-core.c
> index ce3c2954e3..ee13ecc4a5 100644
> --- a/ui/spice-core.c
> +++ b/ui/spice-core.c
> @@ -583,13 +583,13 @@ static int migration_state_notifier(NotifierWithReturn *notifier,
>          return 0;
>      }
>  
> -    if (e->type == MIG_EVENT_PRECOPY_SETUP) {
> +    if (e->type == MIG_EVENT_SETUP) {
>          spice_server_migrate_start(spice_server);
> -    } else if (e->type == MIG_EVENT_PRECOPY_DONE ||
> +    } else if (e->type == MIG_EVENT_DONE ||
>                 e->type == MIG_EVENT_POSTCOPY_START) {
>          spice_server_migrate_end(spice_server, true);
>          spice_have_target_host = false;
> -    } else if (e->type == MIG_EVENT_PRECOPY_FAILED) {
> +    } else if (e->type == MIG_EVENT_FAILED) {
>          spice_server_migrate_end(spice_server, false);
>          spice_have_target_host = false;
>      }

Reviewed-by: Fabiano Rosas <farosas@suse.de>


  reply	other threads:[~2026-01-23 13:06 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-22 23:03 [PATCH 0/5] migration: Notifier fixes for 11.0 Peter Xu
2026-01-22 23:03 ` [PATCH 1/5] migration: Add a tracepoint for invoking migration notifiers Peter Xu
2026-01-23 12:25   ` Fabiano Rosas
2026-01-22 23:03 ` [PATCH 2/5] migration: Fix double notification of DONE/FAIL for postcopy Peter Xu
2026-01-23 12:52   ` Fabiano Rosas
2026-01-23 12:54     ` Fabiano Rosas
2026-01-23 14:58     ` Peter Xu
2026-01-22 23:03 ` [PATCH 3/5] migration: Notify migration FAILED before starting VM Peter Xu
2026-01-23 12:59   ` Fabiano Rosas
2026-01-23 15:40     ` Peter Xu
2026-01-23 17:36       ` Fabiano Rosas
2026-01-26 15:21         ` Peter Xu
2026-01-26 19:20           ` Fabiano Rosas
2026-01-22 23:03 ` [PATCH 4/5] migration: Drop explicit block activation in postcopy fail path Peter Xu
2026-01-23 12:59   ` Fabiano Rosas
2026-01-22 23:03 ` [PATCH 5/5] migration: Rename MIG_EVENT_PRECOPY_* to MIG_EVENT_* Peter Xu
2026-01-23 13:02   ` Fabiano Rosas [this message]
2026-01-26 15:58 ` [PATCH 0/5] migration: Notifier fixes for 11.0 Stefan Hajnoczi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y0loiirw.fsf@suse.de \
    --to=farosas@suse.de \
    --cc=jmarcin@redhat.com \
    --cc=peterx@redhat.com \
    --cc=ppandit@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.