On Wed, Jul 27, 2011 at 09:52:51PM +0200, Frediano Ziglio wrote: > > > > Yes! Not at kernel level :-)
In that case we have a bad error handling problem somewhere in qemu. the IOCB_CMD_FDSYNC aio opcode will always return EINVAL currently, and we really should have cought that somewhere in qemu. > Thanks. I'll try to port misaligned access to Linux AIO. Also I'll add some > comments on code to avoid somebody do the same mistache I did. It's direct I/O code in general that doesn't handle misaligned access. Given that we should never get misaligned I/O from guests I just didn't bother duplicating the read-modify-write code for that code path as well. > Mainly however -k qemu-img and aio=native in blockdev options are silently > ignored if nocache is not enabled. Maybe we should indeed error out instead. Care to prepare a patch for that? > Also I notice that combining XFS, Linux AIO, O_DIRECT and O_DSYNC give > impressive performance but currently there is no way to specify all that > flags together cause nocache enable O_DIRECT while O_DSYNC is enabled with > writethrough. Indeed. This has come up a few times, and actually is a mostly trivial task. Maybe we should give up waiting for -blockdev and separate cache mode settings and allow a nocache-writethrough or similar mode now? It's going to be around 10 lines of code + documentation.