Re: [PATCH v1] migration/multifd: correct multifd_send_thread to trace the flags

2023-03-16 Thread Juan Quintela
Wei Wang  wrote:
> The p->flags could be updated via the send_prepare callback, e.g. OR-ed
> with MULTIFD_FLAG_ZLIB via zlib_send_prepare. Assign p->flags to the
> local "flags" before the send_prepare callback could only get partial of
> p->flags. Fix it by moving the assignment of p->flags to the local flags
> after the callback, so that the correct flags can be traced.
>
> Fixes: ab7cbb0b9a3b ("multifd: Make no compression operations into its own 
> structure")
> Signed-off-by: Wei Wang 


Reviewed-by: Juan Quintela 

Good catch.  Thanks.
queued.




[PATCH v1] migration/multifd: correct multifd_send_thread to trace the flags

2023-03-09 Thread Wei Wang
The p->flags could be updated via the send_prepare callback, e.g. OR-ed
with MULTIFD_FLAG_ZLIB via zlib_send_prepare. Assign p->flags to the
local "flags" before the send_prepare callback could only get partial of
p->flags. Fix it by moving the assignment of p->flags to the local flags
after the callback, so that the correct flags can be traced.

Fixes: ab7cbb0b9a3b ("multifd: Make no compression operations into its own 
structure")
Signed-off-by: Wei Wang 
---
 migration/multifd.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/migration/multifd.c b/migration/multifd.c
index 5e85c3ea9b..cbc0dfe39b 100644
--- a/migration/multifd.c
+++ b/migration/multifd.c
@@ -677,7 +677,7 @@ static void *multifd_send_thread(void *opaque)
 
 if (p->pending_job) {
 uint64_t packet_num = p->packet_num;
-uint32_t flags = p->flags;
+uint32_t flags;
 p->normal_num = 0;
 
 if (use_zero_copy_send) {
@@ -699,6 +699,7 @@ static void *multifd_send_thread(void *opaque)
 }
 }
 multifd_send_fill_packet(p);
+flags = p->flags;
 p->flags = 0;
 p->num_packets++;
 p->total_normal_pages += p->normal_num;
-- 
2.27.0