aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElena Ufimtseva <elena.ufimtseva@oracle.com>2023-10-11 11:43:57 -0700
committerJuan Quintela <quintela@redhat.com>2023-10-17 09:25:13 +0200
commit68b6e000484c6df34d5cd097e5ae94e9612f5df7 (patch)
tree0eac1158d0ab6ac49f1f255560e1a2a3cf89c3f5
parent60c7981aa3e84eb6d926fd4f7bb4aca4d2edf7cc (diff)
downloadqemu-68b6e000484c6df34d5cd097e5ae94e9612f5df7.zip
qemu-68b6e000484c6df34d5cd097e5ae94e9612f5df7.tar.gz
qemu-68b6e000484c6df34d5cd097e5ae94e9612f5df7.tar.bz2
multifd: fix counters in multifd_send_thread
Previous commit cbec7eb76879d419e7dbf531ee2506ec0722e825 "migration/multifd: Compute transferred bytes correctly" removed accounting for packet_len in non-rdma case, but the next_packet_size only accounts for pages, not for the header packet (normal_pages * PAGE_SIZE) that is being sent as iov[0]. The packet_len part should be added to account for the size of MultiFDPacket and the array of the offsets. Signed-off-by: Elena Ufimtseva <elena.ufimtseva@oracle.com> Reviewed-by: Fabiano Rosas <farosas@suse.de> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com> Message-ID: <20231011184358.97349-4-elena.ufimtseva@oracle.com>
-rw-r--r--migration/multifd.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/migration/multifd.c b/migration/multifd.c
index 0f6b203..e6e0013 100644
--- a/migration/multifd.c
+++ b/migration/multifd.c
@@ -714,8 +714,6 @@ static void *multifd_send_thread(void *opaque)
if (ret != 0) {
break;
}
- stat64_add(&mig_stats.multifd_bytes, p->packet_len);
- stat64_add(&mig_stats.transferred, p->packet_len);
} else {
/* Send header using the same writev call */
p->iov[0].iov_len = p->packet_len;
@@ -728,8 +726,10 @@ static void *multifd_send_thread(void *opaque)
break;
}
- stat64_add(&mig_stats.multifd_bytes, p->next_packet_size);
- stat64_add(&mig_stats.transferred, p->next_packet_size);
+ stat64_add(&mig_stats.multifd_bytes,
+ p->next_packet_size + p->packet_len);
+ stat64_add(&mig_stats.transferred,
+ p->next_packet_size + p->packet_len);
qemu_mutex_lock(&p->mutex);
p->pending_job--;
qemu_mutex_unlock(&p->mutex);