From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Juan Quintela <quintela@redhat.com>
Cc: Leonardo Bras <leobras@redhat.com>,
qemu-devel@nongnu.org, Peter Xu <peterx@redhat.com>
Subject: Re: [PATCH v3 10/23] multifd: Make zlib compression method not use iovs
Date: Mon, 29 Nov 2021 17:30:00 +0000 [thread overview]
Message-ID: <YaUOGC2BuBwoA7h+@work-vm> (raw)
In-Reply-To: <20211124100617.19786-11-quintela@redhat.com>
* Juan Quintela (quintela@redhat.com) wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
> migration/multifd-zlib.c | 17 +++++++++--------
> 1 file changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/migration/multifd-zlib.c b/migration/multifd-zlib.c
> index e85ef8824d..da6201704c 100644
> --- a/migration/multifd-zlib.c
> +++ b/migration/multifd-zlib.c
> @@ -13,6 +13,7 @@
> #include "qemu/osdep.h"
> #include <zlib.h>
> #include "qemu/rcu.h"
> +#include "exec/ramblock.h"
> #include "exec/target_page.h"
> #include "qapi/error.h"
> #include "migration.h"
> @@ -98,8 +99,8 @@ static void zlib_send_cleanup(MultiFDSendParams *p, Error **errp)
> */
> static int zlib_send_prepare(MultiFDSendParams *p, Error **errp)
> {
> - struct iovec *iov = p->pages->iov;
> struct zlib_data *z = p->data;
> + size_t page_size = qemu_target_page_size();
> z_stream *zs = &z->zs;
> uint32_t out_size = 0;
> int ret;
> @@ -113,8 +114,8 @@ static int zlib_send_prepare(MultiFDSendParams *p, Error **errp)
> flush = Z_SYNC_FLUSH;
> }
>
> - zs->avail_in = iov[i].iov_len;
> - zs->next_in = iov[i].iov_base;
> + zs->avail_in = page_size;
> + zs->next_in = p->pages->block->host + p->pages->offset[i];
>
> zs->avail_out = available;
> zs->next_out = z->zbuff + out_size;
> @@ -235,6 +236,7 @@ static void zlib_recv_cleanup(MultiFDRecvParams *p)
> static int zlib_recv_pages(MultiFDRecvParams *p, Error **errp)
> {
> struct zlib_data *z = p->data;
> + size_t page_size = qemu_target_page_size();
> z_stream *zs = &z->zs;
> uint32_t in_size = p->next_packet_size;
> /* we measure the change of total_out */
> @@ -259,7 +261,6 @@ static int zlib_recv_pages(MultiFDRecvParams *p, Error **errp)
> zs->next_in = z->zbuff;
>
> for (i = 0; i < p->pages->num; i++) {
> - struct iovec *iov = &p->pages->iov[i];
> int flush = Z_NO_FLUSH;
> unsigned long start = zs->total_out;
>
> @@ -267,8 +268,8 @@ static int zlib_recv_pages(MultiFDRecvParams *p, Error **errp)
> flush = Z_SYNC_FLUSH;
> }
>
> - zs->avail_out = iov->iov_len;
> - zs->next_out = iov->iov_base;
> + zs->avail_out = page_size;
> + zs->next_out = p->pages->block->host + p->pages->offset[i];
>
> /*
> * Welcome to inflate semantics
> @@ -281,8 +282,8 @@ static int zlib_recv_pages(MultiFDRecvParams *p, Error **errp)
> do {
> ret = inflate(zs, flush);
> } while (ret == Z_OK && zs->avail_in
> - && (zs->total_out - start) < iov->iov_len);
> - if (ret == Z_OK && (zs->total_out - start) < iov->iov_len) {
> + && (zs->total_out - start) < page_size);
> + if (ret == Z_OK && (zs->total_out - start) < page_size) {
> error_setg(errp, "multifd %d: inflate generated too few output",
> p->id);
> return -1;
> --
> 2.33.1
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2021-11-29 17:34 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-24 10:05 [PATCH v3 00/23] Migration: Transmit and detect zero pages in the multifd threads Juan Quintela
2021-11-24 10:05 ` [PATCH v3 01/23] multifd: Delete useless operation Juan Quintela
2021-11-24 18:48 ` Dr. David Alan Gilbert
2021-11-25 7:24 ` Juan Quintela
2021-11-25 19:46 ` Dr. David Alan Gilbert
2021-11-26 9:39 ` Juan Quintela
2021-11-24 10:05 ` [PATCH v3 02/23] migration: Never call twice qemu_target_page_size() Juan Quintela
2021-11-24 18:52 ` Dr. David Alan Gilbert
2021-11-25 7:26 ` Juan Quintela
2021-11-24 10:05 ` [PATCH v3 03/23] multifd: Rename used field to num Juan Quintela
2021-11-24 19:37 ` Dr. David Alan Gilbert
2021-11-25 7:28 ` Juan Quintela
2021-11-25 18:30 ` Dr. David Alan Gilbert
2021-12-13 9:34 ` Zheng Chuan via
2021-12-13 15:17 ` Dr. David Alan Gilbert
2021-11-24 10:05 ` [PATCH v3 04/23] multifd: Add missing documention Juan Quintela
2021-11-25 18:38 ` Dr. David Alan Gilbert
2021-11-26 9:34 ` Juan Quintela
2021-11-24 10:05 ` [PATCH v3 05/23] multifd: The variable is only used inside the loop Juan Quintela
2021-11-25 18:40 ` Dr. David Alan Gilbert
2021-11-24 10:06 ` [PATCH v3 06/23] multifd: remove used parameter from send_prepare() method Juan Quintela
2021-11-25 18:51 ` Dr. David Alan Gilbert
2021-11-24 10:06 ` [PATCH v3 07/23] multifd: remove used parameter from send_recv_pages() method Juan Quintela
2021-11-25 18:53 ` Dr. David Alan Gilbert
2021-11-24 10:06 ` [PATCH v3 08/23] multifd: Fill offset and block for reception Juan Quintela
2021-11-25 19:41 ` Dr. David Alan Gilbert
2021-11-24 10:06 ` [PATCH v3 09/23] multifd: Make zstd compression method not use iovs Juan Quintela
2021-11-29 17:16 ` Dr. David Alan Gilbert
2021-11-24 10:06 ` [PATCH v3 10/23] multifd: Make zlib " Juan Quintela
2021-11-29 17:30 ` Dr. David Alan Gilbert [this message]
2021-11-24 10:06 ` [PATCH v3 11/23] multifd: Move iov from pages to params Juan Quintela
2021-11-29 17:52 ` Dr. David Alan Gilbert
2021-11-24 10:06 ` [PATCH v3 12/23] multifd: Make zlib use iov's Juan Quintela
2021-11-29 18:01 ` Dr. David Alan Gilbert
2021-11-29 18:21 ` Juan Quintela
2021-11-24 10:06 ` [PATCH v3 13/23] multifd: Make zstd " Juan Quintela
2021-11-29 18:03 ` Dr. David Alan Gilbert
2021-11-24 10:06 ` [PATCH v3 14/23] multifd: Remove send_write() method Juan Quintela
2021-11-29 18:19 ` Dr. David Alan Gilbert
2021-11-24 10:06 ` [PATCH v3 15/23] multifd: Use a single writev on the send side Juan Quintela
2021-11-29 18:35 ` Dr. David Alan Gilbert
2021-11-24 10:06 ` [PATCH v3 16/23] multifd: Unfold "used" variable by its value Juan Quintela
2021-11-30 10:45 ` Dr. David Alan Gilbert
2021-11-24 10:06 ` [PATCH v3 17/23] multifd: Use normal pages array on the send side Juan Quintela
2021-11-30 10:50 ` Dr. David Alan Gilbert
2021-11-30 12:01 ` Juan Quintela
2021-12-01 10:59 ` Dr. David Alan Gilbert
2021-11-24 10:06 ` [PATCH v3 18/23] multifd: Use normal pages array on the recv side Juan Quintela
2021-12-07 7:11 ` Peter Xu
2021-12-10 10:41 ` Juan Quintela
2021-11-24 10:06 ` [PATCH v3 19/23] multifd: recv side only needs the RAMBlock host address Juan Quintela
2021-12-01 18:56 ` Dr. David Alan Gilbert
2021-11-24 10:06 ` [PATCH v3 20/23] multifd: Rename pages_used to normal_pages Juan Quintela
2021-12-01 19:00 ` Dr. David Alan Gilbert
2021-11-24 10:06 ` [PATCH v3 21/23] multifd: Support for zero pages transmission Juan Quintela
2021-12-02 11:36 ` Dr. David Alan Gilbert
2021-12-02 12:08 ` Juan Quintela
2021-12-02 16:16 ` Dr. David Alan Gilbert
2021-12-02 16:19 ` Juan Quintela
2021-12-02 16:46 ` Dr. David Alan Gilbert
2021-12-02 16:52 ` Juan Quintela
2021-11-24 10:06 ` [PATCH v3 22/23] multifd: Zero " Juan Quintela
2021-12-02 16:42 ` Dr. David Alan Gilbert
2021-12-02 16:49 ` Juan Quintela
2021-11-24 10:06 ` [PATCH v3 23/23] migration: Use multifd before we check for the zero page Juan Quintela
2021-12-02 17:11 ` Dr. David Alan Gilbert
2021-12-02 17:38 ` Juan Quintela
2021-12-02 17:49 ` Dr. David Alan Gilbert
2021-12-07 7:30 ` Peter Xu
2021-12-13 9:03 ` Juan Quintela
2021-12-15 1:39 ` Peter Xu
2021-11-24 10:24 ` [PATCH v3 00/23] Migration: Transmit and detect zero pages in the multifd threads Peter Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YaUOGC2BuBwoA7h+@work-vm \
--to=dgilbert@redhat.com \
--cc=leobras@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).