|
From: | Avi Kivity |
Subject: | Re: [Qemu-devel] [PATCH][RFC] Linux AIO support when using O_DIRECT |
Date: | Mon, 23 Mar 2009 21:35:37 +0200 |
User-agent: | Thunderbird 2.0.0.21 (X11/20090320) |
Christoph Hellwig wrote:
On Mon, Mar 23, 2009 at 01:10:30PM -0500, Anthony Liguori wrote:I really dislike having so many APIs. I'd rather have an aio API that took byte accesses or have pread/pwrite always be emulated with a full sector read/writeI had patches to change the aio API to byte based access, and get rid of the read/write methods to only have the byte based pread/pwrite APIs, but thay got obsoleted by Avi's patch to kill the pread/pwrite ops. We could put in byte-based AIO without byte-based read/write, though. In my patches I put a flag into BlockDriverState whether we allow byte-based access to this instance or otherwise emulated it inthe block layer.
I like this approach. An additional flag could tell us what buffer alignment the format driver wants, so we can eliminate the alignment bounce from format driver code. Oh, and a flag to indicate we don't support vectors, so the generic layer will bounce and send us a length one iovec.
Note the align flag is in the device state, not the format driver, as it depends on the cache= settings.
-- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.
[Prev in Thread] | Current Thread | [Next in Thread] |