qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] block: Improve writethrough performance
@ 2025-03-07 22:16 Kevin Wolf
  2025-03-07 22:16 ` [PATCH 1/5] file-posix: Support FUA writes Kevin Wolf
                   ` (5 more replies)
  0 siblings, 6 replies; 14+ messages in thread
From: Kevin Wolf @ 2025-03-07 22:16 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, stefanha, pbonzini, afaria, hreitz, qemu-devel

Write requests in writethrough mode mean that QEMU sends a separate
flush request (i.e. fdatasync) after each completed write request.
This is unnecessary overhead when we can just pass a flag for the write
request that gives us the desired FUA semantics.

Unfortunately, this made a problem in the adaptive polling algorithm
apparent that would result in a performance regression in some cases
with FUA support in file-posix. Therefore, adaptive polling is changed
in this series, too, to avoid the regression.

Kevin Wolf (5):
  file-posix: Support FUA writes
  block/io: Ignore FUA with cache.no-flush=on
  aio: Create AioPolledEvent
  aio-posix: Factor out adjust_polling_time()
  aio-posix: Separate AioPolledEvent per AioHandler

 include/block/aio.h     |  5 ++-
 include/block/raw-aio.h |  8 +++-
 util/aio-posix.h        |  1 +
 block/file-posix.c      | 26 ++++++++----
 block/io.c              |  4 ++
 block/io_uring.c        | 13 +++---
 block/linux-aio.c       | 24 +++++++++--
 util/aio-posix.c        | 94 ++++++++++++++++++++++++++---------------
 util/async.c            |  1 -
 meson.build             |  4 ++
 10 files changed, 125 insertions(+), 55 deletions(-)

-- 
2.48.1



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

end of thread, other threads:[~2025-03-11  2:19 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-07 22:16 [PATCH 0/5] block: Improve writethrough performance Kevin Wolf
2025-03-07 22:16 ` [PATCH 1/5] file-posix: Support FUA writes Kevin Wolf
2025-03-10 10:41   ` Stefan Hajnoczi
2025-03-07 22:16 ` [PATCH 2/5] block/io: Ignore FUA with cache.no-flush=on Kevin Wolf
2025-03-10 10:42   ` Stefan Hajnoczi
2025-03-07 22:16 ` [PATCH 3/5] aio: Create AioPolledEvent Kevin Wolf
2025-03-10 10:55   ` Stefan Hajnoczi
2025-03-07 22:16 ` [PATCH 4/5] aio-posix: Factor out adjust_polling_time() Kevin Wolf
2025-03-10 10:55   ` Stefan Hajnoczi
2025-03-07 22:16 ` [PATCH 5/5] aio-posix: Separate AioPolledEvent per AioHandler Kevin Wolf
2025-03-10 10:55   ` Stefan Hajnoczi
2025-03-10 11:11     ` Kevin Wolf
2025-03-11  2:18       ` Stefan Hajnoczi
2025-03-10 10:55 ` [PATCH 0/5] block: Improve writethrough performance Stefan Hajnoczi

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