[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v5 00/12] Add support for io_uring
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-block] [PATCH v5 00/12] Add support for io_uring |
Date: |
Sat, 22 Jun 2019 16:13:12 +0100 |
On Tue, Jun 11, 2019 at 10:57 AM Stefan Hajnoczi <address@hidden> wrote:
> On Mon, Jun 10, 2019 at 07:18:53PM +0530, Aarushi Mehta wrote:
> > This patch series adds support for the newly developed io_uring Linux AIO
> > interface. Linux io_uring is faster than Linux's AIO asynchronous I/O code,
> > offers efficient buffered asynchronous I/O support, the ability to do I/O
> > without performing a system call via polled I/O, and other efficiency
> > enhancements.
> >
> > Testing it requires a host kernel (5.1+) and the liburing library.
> > Use the option -drive aio=io_uring to enable it.
> >
> > v5:
> > - Adds completion polling
> > - Extends qemu-io
> > - Adds qemu-iotest
>
> Flush is not hooked up. Please use the io_uring IOURING_OP_FSYNC that
> you've already written and connect it to file-posix.c.
IOURING_OP_FSYNC is in fact synchronous. This means io_uring_enter()
blocks until this operation completes. This is not desirable since
the AIO engine should not block the QEMU thread it's running from for
a long time (e.g. network file system that is not responding).
I think it's best *not* to use io_uring for fsync. Instead we can
continue to use the thread pool, just like Linux AIO.
Stefan
- [Qemu-block] [PATCH v5 10/12] block/io_uring: adds userspace completion polling, (continued)