[PATCH 07/20] migration: rename qemu_update_position to qemu_file_credit_transfer

Daniel P. Berrangé posted 20 patches 3 years, 1 month ago
There is a newer version of this series
[PATCH 07/20] migration: rename qemu_update_position to qemu_file_credit_transfer
Posted by Daniel P. Berrangé 3 years, 1 month ago
The qemu_update_position method name gives the misleading impression
that it is changing the current file offset. Most of the files are
just streams, however, so there's no concept of a file offset in the
general case.

What this method is actually used for is to report on the number of
bytes that have been transferred out of band from the main I/O methods.
This new name better reflects this purpose.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 migration/qemu-file.c | 4 ++--
 migration/qemu-file.h | 8 +++++++-
 migration/ram.c       | 2 +-
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/migration/qemu-file.c b/migration/qemu-file.c
index 664ac77067..9a7f715e17 100644
--- a/migration/qemu-file.c
+++ b/migration/qemu-file.c
@@ -319,7 +319,7 @@ size_t ram_control_save_page(QEMUFile *f, ram_addr_t block_offset,
         if (ret != RAM_SAVE_CONTROL_DELAYED &&
             ret != RAM_SAVE_CONTROL_NOT_SUPP) {
             if (bytes_sent && *bytes_sent > 0) {
-                qemu_update_position(f, *bytes_sent);
+                qemu_file_credit_transfer(f, *bytes_sent);
             } else if (ret < 0) {
                 qemu_file_set_error(f, ret);
             }
@@ -374,7 +374,7 @@ static ssize_t qemu_fill_buffer(QEMUFile *f)
     return len;
 }
 
-void qemu_update_position(QEMUFile *f, size_t size)
+void qemu_file_credit_transfer(QEMUFile *f, size_t size)
 {
     f->total_transferred += size;
 }
diff --git a/migration/qemu-file.h b/migration/qemu-file.h
index febc961aa9..81f6fd7db8 100644
--- a/migration/qemu-file.h
+++ b/migration/qemu-file.h
@@ -186,7 +186,13 @@ int qemu_put_qemu_file(QEMUFile *f_des, QEMUFile *f_src);
  */
 int qemu_peek_byte(QEMUFile *f, int offset);
 void qemu_file_skip(QEMUFile *f, int size);
-void qemu_update_position(QEMUFile *f, size_t size);
+/*
+ * qemu_file_credit_transfer:
+ *
+ * Report on a number of bytes that have been transferred
+ * out of band from the main file object I/O methods.
+ */
+void qemu_file_credit_transfer(QEMUFile *f, size_t size);
 void qemu_file_reset_rate_limit(QEMUFile *f);
 void qemu_file_update_transfer(QEMUFile *f, int64_t len);
 void qemu_file_set_rate_limit(QEMUFile *f, int64_t new_rate);
diff --git a/migration/ram.c b/migration/ram.c
index 89082716d6..bf321e1e72 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -2301,7 +2301,7 @@ void acct_update_position(QEMUFile *f, size_t size, bool zero)
     } else {
         ram_counters.normal += pages;
         ram_transferred_add(size);
-        qemu_update_position(f, size);
+        qemu_file_credit_transfer(f, size);
     }
 }
 
-- 
2.36.1


Re: [PATCH 07/20] migration: rename qemu_update_position to qemu_file_credit_transfer
Posted by Peter Maydell 3 years, 1 month ago
On Tue, 24 May 2022 at 12:46, Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> The qemu_update_position method name gives the misleading impression
> that it is changing the current file offset. Most of the files are
> just streams, however, so there's no concept of a file offset in the
> general case.
>
> What this method is actually used for is to report on the number of
> bytes that have been transferred out of band from the main I/O methods.
> This new name better reflects this purpose.
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>

>  int qemu_peek_byte(QEMUFile *f, int offset);
>  void qemu_file_skip(QEMUFile *f, int size);
> -void qemu_update_position(QEMUFile *f, size_t size);
> +/*
> + * qemu_file_credit_transfer:
> + *
> + * Report on a number of bytes that have been transferred
> + * out of band from the main file object I/O methods.
> + */
> +void qemu_file_credit_transfer(QEMUFile *f, size_t size);
>  void qemu_file_reset_rate_limit(QEMUFile *f);
>  void qemu_file_update_transfer(QEMUFile *f, int64_t len);
>  void qemu_file_set_rate_limit(QEMUFile *f, int64_t new_rate);

What's the difference between "credit transfer" and "update
transfer" ? The latter also seems to just be adding a number
to a count of bytes-transferred...

-- PMM
Re: [PATCH 07/20] migration: rename qemu_update_position to qemu_file_credit_transfer
Posted by Daniel P. Berrangé 3 years, 1 month ago
On Thu, Jun 09, 2022 at 01:56:00PM +0100, Peter Maydell wrote:
> On Tue, 24 May 2022 at 12:46, Daniel P. Berrangé <berrange@redhat.com> wrote:
> >
> > The qemu_update_position method name gives the misleading impression
> > that it is changing the current file offset. Most of the files are
> > just streams, however, so there's no concept of a file offset in the
> > general case.
> >
> > What this method is actually used for is to report on the number of
> > bytes that have been transferred out of band from the main I/O methods.
> > This new name better reflects this purpose.
> >
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> 
> >  int qemu_peek_byte(QEMUFile *f, int offset);
> >  void qemu_file_skip(QEMUFile *f, int size);
> > -void qemu_update_position(QEMUFile *f, size_t size);
> > +/*
> > + * qemu_file_credit_transfer:
> > + *
> > + * Report on a number of bytes that have been transferred
> > + * out of band from the main file object I/O methods.
> > + */
> > +void qemu_file_credit_transfer(QEMUFile *f, size_t size);
> >  void qemu_file_reset_rate_limit(QEMUFile *f);
> >  void qemu_file_update_transfer(QEMUFile *f, int64_t len);
> >  void qemu_file_set_rate_limit(QEMUFile *f, int64_t new_rate);
> 
> What's the difference between "credit transfer" and "update
> transfer" ? The latter also seems to just be adding a number
> to a count of bytes-transferred...

The other method is merely related to the rate limiting, and so
probably ought to have 'rate_limit' included in its name too.

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


Re: [PATCH 07/20] migration: rename qemu_update_position to qemu_file_credit_transfer
Posted by Dr. David Alan Gilbert 3 years, 1 month ago
* Daniel P. Berrangé (berrange@redhat.com) wrote:
> On Thu, Jun 09, 2022 at 01:56:00PM +0100, Peter Maydell wrote:
> > On Tue, 24 May 2022 at 12:46, Daniel P. Berrangé <berrange@redhat.com> wrote:
> > >
> > > The qemu_update_position method name gives the misleading impression
> > > that it is changing the current file offset. Most of the files are
> > > just streams, however, so there's no concept of a file offset in the
> > > general case.
> > >
> > > What this method is actually used for is to report on the number of
> > > bytes that have been transferred out of band from the main I/O methods.
> > > This new name better reflects this purpose.
> > >
> > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > 
> > >  int qemu_peek_byte(QEMUFile *f, int offset);
> > >  void qemu_file_skip(QEMUFile *f, int size);
> > > -void qemu_update_position(QEMUFile *f, size_t size);
> > > +/*
> > > + * qemu_file_credit_transfer:
> > > + *
> > > + * Report on a number of bytes that have been transferred
> > > + * out of band from the main file object I/O methods.
> > > + */
> > > +void qemu_file_credit_transfer(QEMUFile *f, size_t size);
> > >  void qemu_file_reset_rate_limit(QEMUFile *f);
> > >  void qemu_file_update_transfer(QEMUFile *f, int64_t len);
> > >  void qemu_file_set_rate_limit(QEMUFile *f, int64_t new_rate);
> > 
> > What's the difference between "credit transfer" and "update
> > transfer" ? The latter also seems to just be adding a number
> > to a count of bytes-transferred...
> 
> The other method is merely related to the rate limiting, and so
> probably ought to have 'rate_limit' included in its name too.

Bleh that's messy; I see update_transfer is used in the multifd case
as well, so makes sense for stats only and not a position in a stream
that only makes sense for a single fd.
(But now doesn't make any sense any more with these changes either)

Dave

> With regards,
> Daniel
> -- 
> |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
> 
-- 
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Re: [PATCH 07/20] migration: rename qemu_update_position to qemu_file_credit_transfer
Posted by Dr. David Alan Gilbert 3 years, 1 month ago
* Daniel P. Berrangé (berrange@redhat.com) wrote:
> The qemu_update_position method name gives the misleading impression
> that it is changing the current file offset. Most of the files are
> just streams, however, so there's no concept of a file offset in the
> general case.
> 
> What this method is actually used for is to report on the number of
> bytes that have been transferred out of band from the main I/O methods.
> This new name better reflects this purpose.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
>  migration/qemu-file.c | 4 ++--
>  migration/qemu-file.h | 8 +++++++-
>  migration/ram.c       | 2 +-
>  3 files changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/migration/qemu-file.c b/migration/qemu-file.c
> index 664ac77067..9a7f715e17 100644
> --- a/migration/qemu-file.c
> +++ b/migration/qemu-file.c
> @@ -319,7 +319,7 @@ size_t ram_control_save_page(QEMUFile *f, ram_addr_t block_offset,
>          if (ret != RAM_SAVE_CONTROL_DELAYED &&
>              ret != RAM_SAVE_CONTROL_NOT_SUPP) {
>              if (bytes_sent && *bytes_sent > 0) {
> -                qemu_update_position(f, *bytes_sent);
> +                qemu_file_credit_transfer(f, *bytes_sent);
>              } else if (ret < 0) {
>                  qemu_file_set_error(f, ret);
>              }
> @@ -374,7 +374,7 @@ static ssize_t qemu_fill_buffer(QEMUFile *f)
>      return len;
>  }
>  
> -void qemu_update_position(QEMUFile *f, size_t size)
> +void qemu_file_credit_transfer(QEMUFile *f, size_t size)
>  {
>      f->total_transferred += size;
>  }
> diff --git a/migration/qemu-file.h b/migration/qemu-file.h
> index febc961aa9..81f6fd7db8 100644
> --- a/migration/qemu-file.h
> +++ b/migration/qemu-file.h
> @@ -186,7 +186,13 @@ int qemu_put_qemu_file(QEMUFile *f_des, QEMUFile *f_src);
>   */
>  int qemu_peek_byte(QEMUFile *f, int offset);
>  void qemu_file_skip(QEMUFile *f, int size);
> -void qemu_update_position(QEMUFile *f, size_t size);
> +/*
> + * qemu_file_credit_transfer:
> + *
> + * Report on a number of bytes that have been transferred
> + * out of band from the main file object I/O methods.
> + */
> +void qemu_file_credit_transfer(QEMUFile *f, size_t size);
>  void qemu_file_reset_rate_limit(QEMUFile *f);
>  void qemu_file_update_transfer(QEMUFile *f, int64_t len);
>  void qemu_file_set_rate_limit(QEMUFile *f, int64_t new_rate);
> diff --git a/migration/ram.c b/migration/ram.c
> index 89082716d6..bf321e1e72 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -2301,7 +2301,7 @@ void acct_update_position(QEMUFile *f, size_t size, bool zero)
>      } else {
>          ram_counters.normal += pages;
>          ram_transferred_add(size);
> -        qemu_update_position(f, size);
> +        qemu_file_credit_transfer(f, size);
>      }
>  }
>  
> -- 
> 2.36.1
> 
-- 
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK