Next patch will abstract the type of data being received by the channels, so do some cleanup now to remove references to pages and dependency on 'normal_num'.
Signed-off-by: Fabiano Rosas <faro...@suse.de> --- migration/multifd-zlib.c | 2 +- migration/multifd-zstd.c | 2 +- migration/multifd.c | 12 +++++++----- migration/multifd.h | 5 ++--- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/migration/multifd-zlib.c b/migration/multifd-zlib.c index fd94e79dd9..e019d2d74e 100644 --- a/migration/multifd-zlib.c +++ b/migration/multifd-zlib.c @@ -314,7 +314,7 @@ static MultiFDMethods multifd_zlib_ops = { .send_prepare = zlib_send_prepare, .recv_setup = zlib_recv_setup, .recv_cleanup = zlib_recv_cleanup, - .recv_pages = zlib_recv_pages + .recv_data = zlib_recv_pages }; static void multifd_zlib_register(void) diff --git a/migration/multifd-zstd.c b/migration/multifd-zstd.c index 238eebbf4b..0b8414df5b 100644 --- a/migration/multifd-zstd.c +++ b/migration/multifd-zstd.c @@ -305,7 +305,7 @@ static MultiFDMethods multifd_zstd_ops = { .send_prepare = zstd_send_prepare, .recv_setup = zstd_recv_setup, .recv_cleanup = zstd_recv_cleanup, - .recv_pages = zstd_recv_pages + .recv_data = zstd_recv_pages }; static void multifd_zstd_register(void) diff --git a/migration/multifd.c b/migration/multifd.c index 3476fac49f..c1381bdc21 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -130,7 +130,7 @@ static void nocomp_recv_cleanup(MultiFDRecvParams *p) } /** - * nocomp_recv_pages: read the data from the channel into actual pages + * nocomp_recv_data: read the data from the channel * * For no compression we just need to read things into the correct place. * @@ -139,7 +139,7 @@ static void nocomp_recv_cleanup(MultiFDRecvParams *p) * @p: Params for the channel that we are using * @errp: pointer to an error */ -static int nocomp_recv_pages(MultiFDRecvParams *p, Error **errp) +static int nocomp_recv_data(MultiFDRecvParams *p, Error **errp) { uint32_t flags = p->flags & MULTIFD_FLAG_COMPRESSION_MASK; @@ -161,7 +161,7 @@ static MultiFDMethods multifd_nocomp_ops = { .send_prepare = nocomp_send_prepare, .recv_setup = nocomp_recv_setup, .recv_cleanup = nocomp_recv_cleanup, - .recv_pages = nocomp_recv_pages + .recv_data = nocomp_recv_data }; static MultiFDMethods *multifd_ops[MULTIFD_COMPRESSION__MAX] = { @@ -1126,6 +1126,7 @@ static void *multifd_recv_thread(void *opaque) while (true) { uint32_t flags = 0; + bool has_data = false; p->normal_num = 0; if (p->quit) { @@ -1154,12 +1155,13 @@ static void *multifd_recv_thread(void *opaque) p->next_packet_size); p->total_normal_pages += p->normal_num; + has_data = !!p->normal_num; } qemu_mutex_unlock(&p->mutex); - if (p->normal_num) { - ret = multifd_recv_state->ops->recv_pages(p, &local_err); + if (has_data) { + ret = multifd_recv_state->ops->recv_data(p, &local_err); if (ret != 0) { break; } diff --git a/migration/multifd.h b/migration/multifd.h index 744b52762f..406d42dbae 100644 --- a/migration/multifd.h +++ b/migration/multifd.h @@ -203,11 +203,10 @@ typedef struct { int (*recv_setup)(MultiFDRecvParams *p, Error **errp); /* Cleanup for receiving side */ void (*recv_cleanup)(MultiFDRecvParams *p); - /* Read all pages */ - int (*recv_pages)(MultiFDRecvParams *p, Error **errp); + /* Read all data */ + int (*recv_data)(MultiFDRecvParams *p, Error **errp); } MultiFDMethods; void multifd_register_ops(int method, MultiFDMethods *ops); #endif - -- 2.35.3