qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/11] migration: Make multifd use only one write on the send path
@ 2021-11-19 16:58 Juan Quintela
  2021-11-19 16:58 ` [PATCH 01/11] migration: Remove is_zero_range() Juan Quintela
                   ` (8 more replies)
  0 siblings, 9 replies; 17+ messages in thread
From: Juan Quintela @ 2021-11-19 16:58 UTC (permalink / raw)
  To: qemu-devel
  Cc: Marc-André Lureau, Juan Quintela, Dr. David Alan Gilbert,
	Leonardo Bras Soares Passos

Hi

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 (11):
  migration: Remove is_zero_range()
  dump: Remove is_zero_page()
  multifd: Fill offset and block for reception
  multifd: Make zstd compression method not use iovs
  multifd: Make zlib compression method not use iovs
  migration: 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
  migration: Use multifd before we check for the zero page

 migration/multifd.h      | 10 ++++---
 dump/dump.c              | 10 +------
 migration/multifd-zlib.c | 40 ++++++++------------------
 migration/multifd-zstd.c | 41 ++++++++------------------
 migration/multifd.c      | 62 ++++++++++++++++++----------------------
 migration/ram.c          | 31 +++++++++-----------
 6 files changed, 72 insertions(+), 122 deletions(-)

-- 
2.33.1




^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2021-11-22  9:33 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-19 16:58 [PATCH 00/11] migration: Make multifd use only one write on the send path Juan Quintela
2021-11-19 16:58 ` [PATCH 01/11] migration: Remove is_zero_range() Juan Quintela
2021-11-20 12:24   ` Richard Henderson
2021-11-19 16:58 ` [PATCH 02/11] dump: Remove is_zero_page() Juan Quintela
2021-11-20 12:25   ` Richard Henderson
2021-11-21 19:30   ` Marc-André Lureau
2021-11-19 16:58 ` [PATCH 03/11] multifd: Fill offset and block for reception Juan Quintela
2021-11-20 12:26   ` Richard Henderson
2021-11-22  9:26     ` Juan Quintela
2021-11-19 16:58 ` [PATCH 04/11] multifd: Make zstd compression method not use iovs Juan Quintela
2021-11-19 16:58 ` [PATCH 05/11] multifd: Make zlib " Juan Quintela
2021-11-19 16:58 ` [PATCH 06/11] migration: Move iov from pages to params Juan Quintela
2021-11-20 12:31   ` Richard Henderson
2021-11-22  9:31     ` Juan Quintela
2021-11-19 16:58 ` [PATCH 07/11] multifd: Make zlib use iov's Juan Quintela
2021-11-19 16:59 ` [PATCH 08/11] multifd: Make zstd " Juan Quintela
2021-11-19 16:59 ` [PATCH 09/11] multifd: Remove send_write() method Juan Quintela

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).