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: "Avihai Horon" <avihaih@nvidia.com>,
	"Cédric Le Goater" <clg@redhat.com>,
	peterx@redhat.com, "Alex Williamson" <alex.williamson@redhat.com>
Subject: Re: [PATCH v3 5/8] migration: Drop migration_is_idle()
Date: Tue, 29 Oct 2024 16:07:07 -0300	[thread overview]
Message-ID: <87ttcubuec.fsf@suse.de> (raw)
In-Reply-To: <20241024213056.1395400-6-peterx@redhat.com>

Peter Xu <peterx@redhat.com> writes:

> Now with the current migration_is_running(), it will report exactly the
> opposite of what will be reported by migration_is_idle().
>
> Drop migration_is_idle(), instead use "!migration_is_running()" which
> should be identical on functionality.
>
> In reality, most of the idle check is inverted, so it's even easier to
> write with "migrate_is_running()" check.
>
> Signed-off-by: Peter Xu <peterx@redhat.com>
> ---
>  include/migration/misc.h |  1 -
>  hw/virtio/virtio-mem.c   |  2 +-
>  migration/migration.c    | 21 +--------------------
>  migration/ram.c          |  2 +-
>  system/qdev-monitor.c    |  4 ++--
>  5 files changed, 5 insertions(+), 25 deletions(-)
>
> diff --git a/include/migration/misc.h b/include/migration/misc.h
> index 86ef160f19..804eb23c06 100644
> --- a/include/migration/misc.h
> +++ b/include/migration/misc.h
> @@ -53,7 +53,6 @@ void dump_vmstate_json_to_file(FILE *out_fp);
>  void migration_object_init(void);
>  void migration_shutdown(void);
>  
> -bool migration_is_idle(void);
>  bool migration_is_active(void);
>  bool migration_is_device(void);
>  bool migration_is_running(void);
> diff --git a/hw/virtio/virtio-mem.c b/hw/virtio/virtio-mem.c
> index ae1e81d7ba..80ada89551 100644
> --- a/hw/virtio/virtio-mem.c
> +++ b/hw/virtio/virtio-mem.c
> @@ -188,7 +188,7 @@ static bool virtio_mem_is_busy(void)
>       * after plugging them) until we're running on the destination (as we didn't
>       * migrate these blocks when they were unplugged).
>       */
> -    return migration_in_incoming_postcopy() || !migration_is_idle();
> +    return migration_in_incoming_postcopy() || migration_is_running();
>  }
>  
>  typedef int (*virtio_mem_range_cb)(VirtIOMEM *vmem, void *arg,
> diff --git a/migration/migration.c b/migration/migration.c
> index 3365195def..f86c709699 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -1636,25 +1636,6 @@ bool migration_in_bg_snapshot(void)
>      return migrate_background_snapshot() && migration_is_running();
>  }
>  
> -bool migration_is_idle(void)
> -{
> -    MigrationState *s = current_migration;
> -
> -    if (!s) {
> -        return true;
> -    }
> -
> -    switch (s->state) {
> -    case MIGRATION_STATUS_NONE:
> -    case MIGRATION_STATUS_CANCELLED:
> -    case MIGRATION_STATUS_COMPLETED:
> -    case MIGRATION_STATUS_FAILED:
> -        return true;
> -    default:
> -        return false;
> -    }
> -}
> -
>  bool migration_is_active(void)
>  {
>      MigrationState *s = current_migration;
> @@ -1733,7 +1714,7 @@ static bool is_busy(Error **reasonp, Error **errp)
>      ERRP_GUARD();
>  
>      /* Snapshots are similar to migrations, so check RUN_STATE_SAVE_VM too. */
> -    if (runstate_check(RUN_STATE_SAVE_VM) || !migration_is_idle()) {
> +    if (runstate_check(RUN_STATE_SAVE_VM) || migration_is_running()) {
>          error_propagate_prepend(errp, *reasonp,
>                                  "disallowing migration blocker "
>                                  "(migration/snapshot in progress) for: ");
> diff --git a/migration/ram.c b/migration/ram.c
> index 5646a0b882..504b48d584 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -4498,7 +4498,7 @@ static void ram_mig_ram_block_resized(RAMBlockNotifier *n, void *host,
>          return;
>      }
>  
> -    if (!migration_is_idle()) {
> +    if (migration_is_running()) {
>          /*
>           * Precopy code on the source cannot deal with the size of RAM blocks
>           * changing at random points in time - especially after sending the
> diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c
> index 1310f35c9f..83fa684475 100644
> --- a/system/qdev-monitor.c
> +++ b/system/qdev-monitor.c
> @@ -686,7 +686,7 @@ DeviceState *qdev_device_add_from_qdict(const QDict *opts,
>          return NULL;
>      }
>  
> -    if (!migration_is_idle()) {
> +    if (migration_is_running()) {
>          error_setg(errp, "device_add not allowed while migrating");
>          return NULL;
>      }
> @@ -935,7 +935,7 @@ void qdev_unplug(DeviceState *dev, Error **errp)
>          return;
>      }
>  
> -    if (!migration_is_idle() && !dev->allow_unplug_during_migration) {
> +    if (migration_is_running() && !dev->allow_unplug_during_migration) {
>          error_setg(errp, "device_del not allowed while migrating");
>          return;
>      }

Good.

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


  parent reply	other threads:[~2024-10-29 19:07 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-24 21:30 [PATCH v3 0/8] Migration: Make misc.h helpers available for whole VM lifecycle Peter Xu
2024-10-24 21:30 ` [PATCH v3 1/8] migration: Take migration object refcount earlier for threads Peter Xu
2024-10-25  8:36   ` Cédric Le Goater
2024-10-29 18:48   ` Fabiano Rosas
2024-10-24 21:30 ` [PATCH v3 2/8] migration: Unexport dirty_bitmap_mig_init() Peter Xu
2024-10-29 18:48   ` Fabiano Rosas
2024-10-24 21:30 ` [PATCH v3 3/8] migration: Unexport ram_mig_init() Peter Xu
2024-10-25  8:36   ` Cédric Le Goater
2024-10-29 18:49   ` Fabiano Rosas
2024-10-24 21:30 ` [PATCH v3 4/8] migration: Drop migration_is_setup_or_active() Peter Xu
2024-10-25  8:59   ` Cédric Le Goater
2024-10-29 19:04   ` Fabiano Rosas
2024-10-24 21:30 ` [PATCH v3 5/8] migration: Drop migration_is_idle() Peter Xu
2024-10-25 12:39   ` Cédric Le Goater
2024-10-29 19:07   ` Fabiano Rosas [this message]
2024-10-24 21:30 ` [PATCH v3 6/8] migration: Drop migration_is_device() Peter Xu
2024-10-24 21:30 ` [PATCH v3 7/8] migration: Unexport migration_is_active() Peter Xu
2024-10-28  7:43   ` Avihai Horon
2024-10-28 15:45     ` Peter Xu
2024-10-28 16:41       ` Avihai Horon
2024-10-28 16:58         ` Peter Xu
2024-10-28 17:20           ` Avihai Horon
2024-10-28 19:06             ` Peter Xu
2024-10-30 14:39               ` Avihai Horon
2024-10-30 14:43                 ` Peter Xu
2024-10-24 21:30 ` [PATCH v3 8/8] migration: Protect updates to current_migration with a mutex Peter Xu
2024-10-25 12:50   ` Cédric Le Goater
2024-10-28 15:50     ` Peter Xu
2024-11-04 15:26       ` Cédric Le Goater
2024-10-29 20:22 ` [PATCH v3 0/8] Migration: Make misc.h helpers available for whole VM lifecycle Peter Xu

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=87ttcubuec.fsf@suse.de \
    --to=farosas@suse.de \
    --cc=alex.williamson@redhat.com \
    --cc=avihaih@nvidia.com \
    --cc=clg@redhat.com \
    --cc=peterx@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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.