qemu-block
[Top][All Lists]
Advanced

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

Re: [PATCH v2] linux-aio: add IO_CMD_FDSYNC command support


From: Prasad Pandit
Subject: Re: [PATCH v2] linux-aio: add IO_CMD_FDSYNC command support
Date: Tue, 12 Mar 2024 19:07:04 +0530

Hello,

On Tue, 12 Mar 2024 at 15:15, Kevin Wolf <kwolf@redhat.com> wrote:
> Am 11.03.2024 um 20:36 hat Stefan Hajnoczi geschrieben:
> > > > That can be avoided with a variable that keeps track of whether -EINVAL 
> > > > was seen before and skips Linux AIO in that
> > > > case.
> > > >
> > > > Fallback should be very rare, so I don't think it needs to be optimized:
> You're right. I missed that io_submit() returns failure only if the
> first request in the queue is invalid, and returns a "short submission"
> for errors in later entries.

===
+bool laio_has_fdsync(int fd)
+{
+    AioContext *ctx = qemu_get_current_aio_context();
+    struct qemu_laiocb cb = {
+        .co         = qemu_coroutine_self(),
+        .ctx        = aio_get_linux_aio(ctx),
+    };
+    struct iocb *iocbs[] = {&cb.iocb, NULL};
+
+    /* check if host kernel supports IO_CMD_FDSYNC */
+    io_prep_fdsync(&cb.iocb, fd);
+    int ret = io_submit(cb.ctx->ctx, 1, iocbs);
+
+    return ret != -EINVAL;
+}
===

To confirm:
* Do we need a revised patch V3? I'm testing one with the above
function to check if IO_CMD_FDSYNC is supported. If it returns true we
call laio_co_submit(..., QEMU_AIO_FLUSH, ), else fallback to
thread-pool.

Thank you.
---
  - Prasad




reply via email to

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