From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Leonardo Bras <leobras@redhat.com>,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
Peter Xu <peterx@redhat.com>
Subject: Re: [PATCH 00/23] Migration: Transmit and detect zero pages in the multifd threads
Date: Wed, 24 Nov 2021 10:59:15 +0100 [thread overview]
Message-ID: <875yshho24.fsf@secure.mitica> (raw)
In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> (Juan Quintela's message of "Tue, 23 Nov 2021 18:50:50 +0100")
Juan Quintela <quintela@redhat.com> wrote:
> Hi
Nack myself.
For some reasons my mail server decided to only sent part of the series.
Sorry, Juan.
>
> Since Friday version:
> - More cleanups on the code
> - Remove repeated calls to qemu_target_page_size()
> - Establish normal pages and zero pages
> - detect zero pages on the multifd threads
> - send zero pages through the multifd channels.
> - reviews by Richard addressed.
>
> It pases migration-test, so it should be perfect O:+)
>
> ToDo for next version:
> - check the version changes
> I need that 6.2 is out to check for 7.0.
> This code don't exist at all due to that reason.
> - Send measurements of the differences
>
> Please, review.
>
> [
>
> Friday version that just created a single writev instead of
> write+writev.
>
> ]
>
> Right now, multifd does a write() for the header and a writev() for
> each group of pages. Simplify it so we send the header as another
> member of the IOV.
>
> Once there, I got several simplifications:
> * is_zero_range() was used only once, just use its body.
> * same with is_zero_page().
> * Be consintent and use offset insed the ramblock everywhere.
> * Now that we have the offsets of the ramblock, we can drop the iov.
> * Now that nothing uses iov's except NOCOMP method, move the iovs
> from pages to methods.
> * Now we can use iov's with a single field for zlib/zstd.
> * send_write() method is the same in all the implementaitons, so use
> it directly.
> * Now, we can use a single writev() to write everything.
>
> ToDo: Move zero page detection to the multifd thrteads.
>
> With RAM in the Terabytes size, the detection of the zero page takes
> too much time on the main thread.
>
> Last patch on the series removes the detection of zero pages in the
> main thread for multifd. In the next series post, I will add how to
> detect the zero pages and send them on multifd channels.
>
> Please review.
>
> Later, Juan.
>
> Juan Quintela (23):
> multifd: Delete useless operation
> migration: Never call twice qemu_target_page_size()
> multifd: Rename used field to num
> multifd: Add missing documention
> multifd: The variable is only used inside the loop
> multifd: remove used parameter from send_prepare() method
> multifd: remove used parameter from send_recv_pages() method
> multifd: Fill offset and block for reception
> multifd: Make zstd compression method not use iovs
> multifd: Make zlib compression method not use iovs
> multifd: Move iov from pages to params
> multifd: Make zlib use iov's
> multifd: Make zstd use iov's
> multifd: Remove send_write() method
> multifd: Use a single writev on the send side
> multifd: Unfold "used" variable by its value
> multifd: Use normal pages array on the send side
> multifd: Use normal pages array on the recv side
> multifd: recv side only needs the RAMBlock host address
> multifd: Rename pages_used to normal_pages
> multifd: Support for zero pages transmission
> multifd: Zero pages transmission
> migration: Use multifd before we check for the zero page
>
> migration/multifd.h | 52 +++++++---
> migration/migration.c | 7 +-
> migration/multifd-zlib.c | 71 +++++--------
> migration/multifd-zstd.c | 70 +++++--------
> migration/multifd.c | 214 +++++++++++++++++++++++----------------
> migration/ram.c | 22 ++--
> migration/savevm.c | 5 +-
> migration/trace-events | 4 +-
> 8 files changed, 231 insertions(+), 214 deletions(-)
prev parent reply other threads:[~2021-11-24 10:05 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-23 17:50 [PATCH 00/23] Migration: Transmit and detect zero pages in the multifd threads Juan Quintela
2021-11-23 17:50 ` [PATCH 01/23] multifd: Delete useless operation Juan Quintela
2021-11-23 17:50 ` [PATCH 02/23] migration: Never call twice qemu_target_page_size() Juan Quintela
2021-11-23 17:50 ` [PATCH 03/23] multifd: Rename used field to num Juan Quintela
2021-11-23 17:50 ` [PATCH 04/23] multifd: Add missing documention Juan Quintela
2021-11-23 17:50 ` [PATCH 05/23] multifd: The variable is only used inside the loop Juan Quintela
2021-11-23 17:50 ` [PATCH 06/23] multifd: remove used parameter from send_prepare() method Juan Quintela
2021-11-23 17:50 ` [PATCH 07/23] multifd: remove used parameter from send_recv_pages() method Juan Quintela
2021-11-23 17:50 ` [PATCH 08/23] multifd: Fill offset and block for reception Juan Quintela
2021-11-23 17:50 ` [PATCH 09/23] multifd: Make zstd compression method not use iovs Juan Quintela
2021-11-23 17:51 ` [PATCH 10/23] multifd: Make zlib " Juan Quintela
2021-11-23 17:51 ` [PATCH 11/23] multifd: Move iov from pages to params Juan Quintela
2021-11-23 17:51 ` [PATCH 12/23] multifd: Make zlib use iov's Juan Quintela
2021-11-23 17:51 ` [PATCH 13/23] multifd: Make zstd " Juan Quintela
2021-11-23 17:51 ` [PATCH 14/23] multifd: Remove send_write() method Juan Quintela
2021-11-23 17:51 ` [PATCH 15/23] multifd: Use a single writev on the send side Juan Quintela
2021-11-23 17:51 ` [PATCH 16/23] multifd: Unfold "used" variable by its value Juan Quintela
2021-11-23 17:51 ` [PATCH 17/23] multifd: Use normal pages array on the send side Juan Quintela
2021-11-24 9:59 ` Juan Quintela [this message]
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=875yshho24.fsf@secure.mitica \
--to=quintela@redhat.com \
--cc=dgilbert@redhat.com \
--cc=leobras@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
/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).