All of lore.kernel.org
 help / color / mirror / Atom feed
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(-)



      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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.