[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 10/34] migration/multifd: Rename p->num_packets and clean it up
From: |
peterx |
Subject: |
[PULL 10/34] migration/multifd: Rename p->num_packets and clean it up |
Date: |
Thu, 8 Feb 2024 11:05:04 +0800 |
From: Peter Xu <peterx@redhat.com>
This field, no matter whether on src or dest, is only used for debugging
purpose.
They can even be removed already, unless it still more or less provide some
accounting on "how many packets are sent/recved for this thread". The
other more important one is called packet_num, which is embeded in the
multifd packet headers (MultiFDPacket_t).
So let's keep them for now, but make them much easier to understand, by
doing below:
- Rename both of them to packets_sent / packets_recved, the old
name (num_packets) are waaay too confusing when we already have
MultiFDPacket_t.packets_num.
- Avoid worrying on the "initial packet": we know we will send it, that's
good enough. The accounting won't matter a great deal to start with 0 or
with 1.
- Move them to where we send/recv the packets. They're:
- multifd_send_fill_packet() for senders.
- multifd_recv_unfill_packet() for receivers.
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: 20240202102857.110210-10-peterx@redhat.com">https://lore.kernel.org/r/20240202102857.110210-10-peterx@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>
---
migration/multifd.h | 6 +++---
migration/multifd.c | 13 +++++--------
2 files changed, 8 insertions(+), 11 deletions(-)
diff --git a/migration/multifd.h b/migration/multifd.h
index 08f26ef3fe..2e4ad0dc56 100644
--- a/migration/multifd.h
+++ b/migration/multifd.h
@@ -124,7 +124,7 @@ typedef struct {
/* size of the next packet that contains pages */
uint32_t next_packet_size;
/* packets sent through this channel */
- uint64_t num_packets;
+ uint64_t packets_sent;
/* non zero pages sent through this channel */
uint64_t total_normal_pages;
/* buffers to send */
@@ -174,8 +174,8 @@ typedef struct {
MultiFDPacket_t *packet;
/* size of the next packet that contains pages */
uint32_t next_packet_size;
- /* packets sent through this channel */
- uint64_t num_packets;
+ /* packets received through this channel */
+ uint64_t packets_recved;
/* ramblock */
RAMBlock *block;
/* ramblock host address */
diff --git a/migration/multifd.c b/migration/multifd.c
index 518f9de723..eca76e2c18 100644
--- a/migration/multifd.c
+++ b/migration/multifd.c
@@ -288,6 +288,8 @@ static void multifd_send_fill_packet(MultiFDSendParams *p)
packet->offset[i] = cpu_to_be64(temp);
}
+
+ p->packets_sent++;
}
static int multifd_recv_unfill_packet(MultiFDRecvParams *p, Error **errp)
@@ -335,6 +337,7 @@ static int multifd_recv_unfill_packet(MultiFDRecvParams *p,
Error **errp)
p->next_packet_size = be32_to_cpu(packet->next_packet_size);
p->packet_num = be64_to_cpu(packet->packet_num);
+ p->packets_recved++;
if (p->normal_num == 0) {
return 0;
@@ -688,8 +691,6 @@ static void *multifd_send_thread(void *opaque)
ret = -1;
goto out;
}
- /* initial packet */
- p->num_packets = 1;
while (true) {
qemu_sem_post(&multifd_send_state->channels_ready);
@@ -719,7 +720,6 @@ static void *multifd_send_thread(void *opaque)
}
multifd_send_fill_packet(p);
- p->num_packets++;
p->total_normal_pages += pages->num;
trace_multifd_send(p->id, packet_num, pages->num, p->flags,
p->next_packet_size);
@@ -787,7 +787,7 @@ out:
rcu_unregister_thread();
migration_threads_remove(thread);
- trace_multifd_send_thread_end(p->id, p->num_packets,
p->total_normal_pages);
+ trace_multifd_send_thread_end(p->id, p->packets_sent,
p->total_normal_pages);
return NULL;
}
@@ -1124,7 +1124,6 @@ static void *multifd_recv_thread(void *opaque)
p->flags &= ~MULTIFD_FLAG_SYNC;
trace_multifd_recv(p->id, p->packet_num, p->normal_num, flags,
p->next_packet_size);
- p->num_packets++;
p->total_normal_pages += p->normal_num;
qemu_mutex_unlock(&p->mutex);
@@ -1150,7 +1149,7 @@ static void *multifd_recv_thread(void *opaque)
qemu_mutex_unlock(&p->mutex);
rcu_unregister_thread();
- trace_multifd_recv_thread_end(p->id, p->num_packets,
p->total_normal_pages);
+ trace_multifd_recv_thread_end(p->id, p->packets_recved,
p->total_normal_pages);
return NULL;
}
@@ -1252,8 +1251,6 @@ void multifd_recv_new_channel(QIOChannel *ioc, Error
**errp)
}
p->c = ioc;
object_ref(OBJECT(ioc));
- /* initial packet */
- p->num_packets = 1;
p->running = true;
qemu_thread_create(&p->thread, p->name, multifd_recv_thread, p,
--
2.43.0
- [PULL 01/34] migration: prevent migration when VM has poisoned memory, (continued)
- [PULL 01/34] migration: prevent migration when VM has poisoned memory, peterx, 2024/02/07
- [PULL 02/34] migration/multifd: Drop stale comment for multifd zero copy, peterx, 2024/02/07
- [PULL 03/34] migration/multifd: multifd_send_kick_main(), peterx, 2024/02/07
- [PULL 05/34] migration/multifd: Postpone reset of MultiFDPages_t, peterx, 2024/02/07
- [PULL 06/34] migration/multifd: Drop MultiFDSendParams.normal[] array, peterx, 2024/02/07
- [PULL 07/34] migration/multifd: Separate SYNC request with normal jobs, peterx, 2024/02/07
- [PULL 04/34] migration/multifd: Drop MultiFDSendParams.quit, cleanup error paths, peterx, 2024/02/07
- [PULL 08/34] migration/multifd: Simplify locking in sender thread, peterx, 2024/02/07
- [PULL 09/34] migration/multifd: Drop pages->num check in sender thread, peterx, 2024/02/07
- [PULL 13/34] migration/multifd: multifd_send_prepare_header(), peterx, 2024/02/07
- [PULL 10/34] migration/multifd: Rename p->num_packets and clean it up,
peterx <=
- [PULL 20/34] migration/multifd: Cleanup multifd_save_cleanup(), peterx, 2024/02/07
- [PULL 21/34] migration/multifd: Cleanup multifd_load_cleanup(), peterx, 2024/02/07
- [PULL 11/34] migration/multifd: Move total_normal_pages accounting, peterx, 2024/02/07
- [PULL 12/34] migration/multifd: Move trace_multifd_send|recv(), peterx, 2024/02/07
- [PULL 14/34] migration/multifd: Move header prepare/fill into send_prepare(), peterx, 2024/02/07
- [PULL 15/34] migration/multifd: Forbid spurious wakeups, peterx, 2024/02/07
- [PULL 17/34] migration/multifd: Change retval of multifd_queue_page(), peterx, 2024/02/07
- [PULL 19/34] migration/multifd: Rewrite multifd_queue_page(), peterx, 2024/02/07
- [PULL 22/34] migration/multifd: Stick with send/recv on function names, peterx, 2024/02/07
- [PULL 25/34] migration: Fix logic of channels and transport compatibility check, peterx, 2024/02/07