|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] [PATCH 3/5] push down vector linearization to posix-aio-compat.c |
Date: | Sun, 29 Mar 2009 16:01:26 -0500 |
User-agent: | Thunderbird 2.0.0.21 (X11/20090320) |
Christoph Hellwig wrote:
Make all AIO requests vectored and defer linearization until the actual I/O thread. This prepares for using native preadv/pwritev. Also enables asynchronous direct I/O by handling that case in the I/O thread. Win32 support is untested and uncompiled. Then again I can't even find a know to turn on win32 aio support.
It compiles for win32 but it breaks at this patch. Win32 doesn't actually support AIO. The code that's in #ifdefs has been dead for a long time. I just committed a patch to remove it to avoid future confusion. For the future, you can build/test win32 entirely in fedora by using the mingw32 packages and wine.
This bug is not limited to win32 though. It has to do with having a backend disk format that does not provide a proper aio implement (which suggests your new brv_aio_{readv,writev}_em at fault). You can reproduce on a normal Linux build by converting an existing image to a format like vmdk and then testing with that. It's not 100% reliable but 9 times out of 10 I don't get past the grub loader with this patch applied.
Regards, Anthony Liguori
Qcow and qcow2 propably want to be adopted to directly deal with multi-segment requests, but that can be implemented later. Signed-off-by: Christoph Hellwig <address@hidden>
[Prev in Thread] | Current Thread | [Next in Thread] |