On Tue, Jul 19, 2011 at 10:20:34PM -0600, Eric Blake wrote: > Required for a coming patch where iohelper will operate on O_DIRECT > fds. There, the user-space memory must be aligned to file system > boundaries (at least 512, but using page-aligned works better, and > some file systems prefer 64k). Made tougher by the fact that > VIR_ALLOC won't work on void *, but posix_memalign won't work on > char * and isn't available everywhere. > > This patch makes some simplifying assumptions - namely, output > to an O_DIRECT fd will only be attempted on an empty seekable > file (hence, no need to worry about preserving existing data > on a partial block, and ftruncate will work to undo the effects > of having to round up the size of the last block written), and > input from an O_DIRECT fd will only be attempted on a complete > seekable file with the only possible short read at EOF. > > * configure.ac (AC_CHECK_FUNCS_ONCE): Check for posix_memalign. > * src/util/iohelper.c (runIO): Use aligned memory, and handle > quirks of O_DIRECT on last write. > --- > > v2: merge patch 6 and 15 of v1. > Sorry, I didn't add a testsuite of this yet, but agree that > it would be a nice project > > configure.ac | 6 ++-- > src/util/iohelper.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++-- > 2 files changed, 52 insertions(+), 6 deletions(-) ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list