All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Edmondson <david.edmondson@oracle.com>
To: Juan Quintela <quintela@redhat.com>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [PATCH 3/3] migration: Make multifd_bytes atomic
Date: Thu, 02 Mar 2023 11:52:11 +0000	[thread overview]
Message-ID: <m28rgf1ic1.fsf@oracle.com> (raw)
In-Reply-To: <20230301124026.2930-4-quintela@redhat.com>


On Wednesday, 2023-03-01 at 13:40:26 +01, Juan Quintela wrote:
> In the spirit of:
>
> commit 394d323bc3451e4d07f13341cb8817fac8dfbadd
> Author: Peter Xu <peterx@redhat.com>
> Date:   Tue Oct 11 17:55:51 2022 -0400
>
>     migration: Use atomic ops properly for page accountings
>
> Signed-off-by: Juan Quintela <quintela@redhat.com>

Reviewed-by: David Edmondson <david.edmondson@oracle.com>

> ---
>  migration/ram.h       | 2 +-
>  migration/migration.c | 4 ++--
>  migration/multifd.c   | 4 ++--
>  3 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/migration/ram.h b/migration/ram.h
> index ca9adcb2ad..41fcec73ba 100644
> --- a/migration/ram.h
> +++ b/migration/ram.h
> @@ -45,11 +45,11 @@ typedef struct {
>      Stat64 duplicate;
>      Stat64 normal;
>      Stat64 postcopy_bytes;
> +    Stat64 multifd_bytes;
>      int64_t remaining;
>      int64_t dirty_pages_rate;
>      int64_t dirty_sync_count;
>      int64_t postcopy_requests;
> -    uint64_t multifd_bytes;
>      uint64_t precopy_bytes;
>      uint64_t downtime_bytes;
>      uint64_t dirty_sync_missed_zero_copy;
> diff --git a/migration/migration.c b/migration/migration.c
> index 923f4762f4..ca52c8aab3 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -1153,7 +1153,7 @@ static void populate_ram_info(MigrationInfo *info, MigrationState *s)
>              ram_counters.dirty_sync_missed_zero_copy;
>      info->ram->postcopy_requests = ram_counters.postcopy_requests;
>      info->ram->page_size = page_size;
> -    info->ram->multifd_bytes = ram_counters.multifd_bytes;
> +    info->ram->multifd_bytes = stat64_get(&ram_counters.multifd_bytes);
>      info->ram->pages_per_second = s->pages_per_second;
>      info->ram->precopy_bytes = ram_counters.precopy_bytes;
>      info->ram->downtime_bytes = ram_counters.downtime_bytes;
> @@ -3774,7 +3774,7 @@ static MigThrError migration_detect_error(MigrationState *s)
>  static uint64_t migration_total_bytes(MigrationState *s)
>  {
>      return qemu_file_total_transferred(s->to_dst_file) +
> -        ram_counters.multifd_bytes;
> +        stat64_get(&ram_counters.multifd_bytes);
>  }
>  
>  static void migration_calculate_complete(MigrationState *s)
> diff --git a/migration/multifd.c b/migration/multifd.c
> index f558169e37..91552d33bf 100644
> --- a/migration/multifd.c
> +++ b/migration/multifd.c
> @@ -432,9 +432,9 @@ static int multifd_send_pages(QEMUFile *f)
>      p->pages = pages;
>      transferred = ((uint64_t) pages->num) * p->page_size + p->packet_len;
>      qemu_file_acct_rate_limit(f, transferred);
> -    ram_counters.multifd_bytes += transferred;
>      qemu_mutex_unlock(&p->mutex);
>      stat64_add(&ram_counters.transferred, transferred);
> +    stat64_add(&ram_counters.multifd_bytes, transferred);
>      qemu_sem_post(&p->sem);
>  
>      return 1;
> @@ -627,9 +627,9 @@ int multifd_send_sync_main(QEMUFile *f)
>          p->flags |= MULTIFD_FLAG_SYNC;
>          p->pending_job++;
>          qemu_file_acct_rate_limit(f, p->packet_len);
> -        ram_counters.multifd_bytes += p->packet_len;
>          qemu_mutex_unlock(&p->mutex);
>          stat64_add(&ram_counters.transferred, p->packet_len);
> +        stat64_add(&ram_counters.multifd_bytes, p->packet_len);
>          qemu_sem_post(&p->sem);
>      }
>      for (i = 0; i < migrate_multifd_channels(); i++) {
-- 
I can't explain, you would not understand. This is not how I am.


      reply	other threads:[~2023-03-02 11:53 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-01 12:40 [PATCH 0/3] Migration: Make more ram_counters atomic Juan Quintela
2023-03-01 12:40 ` [PATCH 1/3] migration: Merge ram_counters and ram_atomic_counters Juan Quintela
2023-03-02 11:48   ` David Edmondson
2023-03-01 12:40 ` [PATCH 2/3] migration: Update atomic stats out of the mutex Juan Quintela
2023-03-02 11:51   ` David Edmondson
2023-03-01 12:40 ` [PATCH 3/3] migration: Make multifd_bytes atomic Juan Quintela
2023-03-02 11:52   ` David Edmondson [this message]

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=m28rgf1ic1.fsf@oracle.com \
    --to=david.edmondson@oracle.com \
    --cc=dgilbert@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@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.