qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] QIOChannel async_write & async_flush + MSG_ZEROCOPY + multifd
@ 2021-09-22  5:03 Leonardo Bras
  2021-09-22  5:03 ` [PATCH v2 1/3] QIOCHannel: Add io_async_writev & io_async_flush callbacks Leonardo Bras
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Leonardo Bras @ 2021-09-22  5:03 UTC (permalink / raw)
  To: Daniel P. Berrangé, Juan Quintela, Dr. David Alan Gilbert,
	Peter Xu, Jason Wang
  Cc: Leonardo Bras, qemu-devel

This patch series intends to enable MSG_ZEROCOPY in QIOChannel, and make
use of it for multifd migration performance improvement.

Patch #1 creates new callbacks for QIOChannel, allowing the implementation
of asynchronous writing.

Patch #2 implements async_write and async_flush on QIOChannelSocket,

Patch #3 Makes use of async_write + async_flush to enable MSG_ZEROCOPY
for migration using multifd nocomp. 


Results:
So far, the resource usage of __sys_sendmsg() reduced 15 times, and the
overall migration took 13-18% less time, based in synthetic workload.

The objective is to reduce migration time in hosts with heavy cpu usage.

---
Changes since v1:
- Reimplemented the patchset using async_write + async_flush approach.
- Implemented a flush to be able to tell whenever all data was written.

Leonardo Bras (3):
  QIOCHannel: Add io_async_writev & io_async_flush callbacks
  QIOChannelSocket: Implement io_async_write & io_async_flush
  multifd: Send using asynchronous write on nocomp to send RAM pages.

 include/io/channel-socket.h |   2 +
 include/io/channel.h        |  93 +++++++++++++++++++----
 io/channel-socket.c         | 145 ++++++++++++++++++++++++++++++++++--
 io/channel.c                |  66 ++++++++++++----
 migration/multifd.c         |   3 +-
 5 files changed, 271 insertions(+), 38 deletions(-)

-- 
2.33.0



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

end of thread, other threads:[~2021-09-22 22:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-09-22  5:03 [PATCH v2 0/3] QIOChannel async_write & async_flush + MSG_ZEROCOPY + multifd Leonardo Bras
2021-09-22  5:03 ` [PATCH v2 1/3] QIOCHannel: Add io_async_writev & io_async_flush callbacks Leonardo Bras
2021-09-22  5:03 ` [PATCH v2 2/3] QIOChannelSocket: Implement io_async_write & io_async_flush Leonardo Bras
2021-09-22  5:03 ` [PATCH v2 3/3] multifd: Send using asynchronous write on nocomp to send RAM pages Leonardo Bras
2021-09-22 22:28 ` [PATCH v2 0/3] QIOChannel async_write & async_flush + MSG_ZEROCOPY + multifd Leonardo Bras Soares Passos

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