All of lore.kernel.org
 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 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.