libaio documentation on use with direct devices says read and write offsets must be sector aligned e.g. multiples of 512 bytes for a typical SSD/HDD. Some of the info available on the web also says that the user space buffers used as source and destination also need to be aligned.
What are the alignment restrictions for the vector read and write functions when using a direct device? I assume that the disk side of the operation will still need to be sector aligned (it is after all talking to a block device under the covers). Can my scatter gather lists spread small chunks around to non-aligned targets in user space?
I am working on debian Jessie and have verified support for vector I/O in libaio.