Re: [Qemu-devel] [PATCH][RFC] Linux AIO support when using O_DIRECT

Christoph Hellwig
2009-03-23T17:29:37Z

On Mon, Mar 23, 2009 at 12:14:58PM -0500, Anthony Liguori wrote:
> I'd like to see the O_DIRECT bounce buffering removed in favor of the
> DMA API bouncing. Once that happens, raw_read and raw_pread can
> disappear. block-raw-posix becomes much simpler.

See my vectored I/O patches for doing the bounce buffering at the
optimal place for the aio path. Note that from my reading of the
qcow/qcow2 code they might send down unaligned requests, which is
something the dma api would not help with.

For the buffered I/O path we will always have to do some sort of buffering
due to all the partition header reading / etc. And given how that part
isn't performance critical my preference would be to keep doing it in
bdrv_pread/write and guarantee the lowlevel drivers proper alignment.

> We would drop the signaling stuff and have the thread pool use an fd to
> signal. The big problem with that right now is that it'll cause a
> performance regression for certain platforms until we have the IO thread
> in place.

Talking about signaling, does anyone remember why the Linux signalfd/
eventfd support is only in kvm but not in upstream qemu?