This patch changes file-io from page-based io to vectored io. Current kernels just loop through the vectors page-by-page if not going O_DIRECT which produces the same result, but future kernels may be more intelligent about this.
In order to modify file-io to go O_DIRECT, not only should you create a new parameter for fileio, but you will also need to modify tio.c to make sure that all pages are allocated in-memory on exact page boundaries.
vector fileio patch
Logged In: YES
user_id=1866621
Originator: YES
I am going to follow up my original comment about going O_DIRECT. The O_DIRECT as implemented now can only map kmem_cache to user memory addresses it gives an EFAULT if trying to map to existing kmem_cache addresses, which is silly cause all it would need to do is forgo the mapping. Anyways that is the way it is and why there is block-io.