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

Avi Kivity
2009-03-23T19:57:39Z

Anthony Liguori wrote:
> Avi Kivity wrote:
>>
>> Instead of introducing yet another layer of indirection, you could
>> add block-raw-linux-aio, which would be registered before
>> block-raw-posix (which is realy block-raw-threadpool...), and resist
>> a ->probe() if caching is enabled.
>
> block-raw-posix needs a major overhaul. That's why I'm not even
> considering committing the patch as is.

That would suggest block-raw-linux-aio-bork-bork-bork.c even more, no?

>
> 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.

They aren't really related... note that DMA API requests are likely to
be aligned anyway, since the guest generates them with the expectation
that alignent is required. We need to align at a lower level so we can
take care of non-dma-api callers (mostly qemu internal).

>
> 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.

Well, let's merge this after the iothread?

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.