On Fri, Mar 07, 2025 at 11:16:29PM +0100, Kevin Wolf wrote:
> 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.
Looks good!
Stefan
>
> 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
>