Re: [kvm-devel] [PATCH 1/3] Refactor AIO interface to allow other AIO implementations

Anthony Liguori
2008-04-17T19:41:32Z

Daniel P. Berrange wrote:
> On Thu, Apr 17, 2008 at 02:26:50PM -0500, Anthony Liguori wrote:
>
>> Posix AIO, especially as used by QEMU, is not very efficient for disk IO.
>> This patch introduces an AIO abstract to allow multiple AIO implements to be
>> used. We can't simply replace posix-aio by linux-aio because linux-aio only
>> works on some filesystems and only with files opened with O_DIRECT.
>>
>> This patch adds a command line option (-aio) to select the AIO implementation
>> to be used. It avoids code motion to allow for easy review. The next patch
>> separates out the posix-aio implementation.
>>
>
> This is not a very pleasant user experiance. They can not & should not be
> expected to figure out which AIO impl works with their particular filesystem.
> If the linux-aio impl doesn't work in some cases, then the code should detect
> these and automatically fallback to posix-aio. The user should not have to
> use a -aio flag to make it work.
>

Those cases aren't always discoverable. Linux-aio just falls back to
using synchronous IO. It's pretty terrible. We need a new AIO
interface for Linux (and yes, we're working on this). Once we have
something better, we'll change that to be the default and things will
Just Work for most users.

Regards,

Anthony Liguori

> Dan.
>