Leonardo Brás <leob...@redhat.com> wrote: > On Mon, 2023-05-15 at 21:56 +0200, Juan Quintela wrote: >> That is the moment we know we have transferred something. >> >> Signed-off-by: Juan Quintela <quint...@redhat.com> >> Reviewed-by: Cédric Le Goater <c...@kaod.org> >> --- >> migration/qemu-file.c | 7 +++---- >> 1 file changed, 3 insertions(+), 4 deletions(-) >> >> diff --git a/migration/qemu-file.c b/migration/qemu-file.c >> index 4bc875b452..956bd2a580 100644 >> --- a/migration/qemu-file.c >> +++ b/migration/qemu-file.c >> @@ -302,7 +302,9 @@ void qemu_fflush(QEMUFile *f) >> &local_error) < 0) { >> qemu_file_set_error_obj(f, -EIO, local_error); >> } else { >> - f->total_transferred += iov_size(f->iov, f->iovcnt); >> + uint64_t size = iov_size(f->iov, f->iovcnt); >> + qemu_file_acct_rate_limit(f, size); >> + f->total_transferred += size; >> } >> >> qemu_iovec_release_ram(f); >> @@ -519,7 +521,6 @@ void qemu_put_buffer_async(QEMUFile *f, const uint8_t >> *buf, size_t size, >> return; >> } >> >> - f->rate_limit_used += size; >> add_to_iovec(f, buf, size, may_free); >> } >> >> @@ -537,7 +538,6 @@ void qemu_put_buffer(QEMUFile *f, const uint8_t *buf, >> size_t size) >> l = size; >> } >> memcpy(f->buf + f->buf_index, buf, l); >> - f->rate_limit_used += l; >> add_buf_to_iovec(f, l); >> if (qemu_file_get_error(f)) { >> break; >> @@ -554,7 +554,6 @@ void qemu_put_byte(QEMUFile *f, int v) >> } >> >> f->buf[f->buf_index] = v; >> - f->rate_limit_used++; >> add_buf_to_iovec(f, 1); >> } >> > > If we are counting transferred data at fflush, it makes sense to increase > rate- > limit accounting at the same place. It may be less granular, but is more > efficient.
Yeap, the whole point is that in my next series, rate_limit_used dissapear, we just use transferred for both things(*). Later, Juan. *: It is a bit more complicated than that, but we go from three counters to a single counter.