qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v2 0/3] QIOChannel async_write & async_flush + MSG_ZEROCOPY + mul


From: Leonardo Bras
Subject: [PATCH v2 0/3] QIOChannel async_write & async_flush + MSG_ZEROCOPY + multifd
Date: Wed, 22 Sep 2021 02:03:37 -0300

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]