On 02/27/2012 04:08 PM, Myklebust, Trond wrote: > On Mon, 2012-02-27 at 15:19 -0600, Dave Kleikamp wrote: >> This patch implements the read_iter and write_iter file operations which >> allow kernel code to initiate directIO. This allows the loop device to >> read and write directly to the server, bypassing the page cache. >> >> Signed-off-by: Dave Kleikamp <dave.kleikamp@xxxxxxxxxx> >> Cc: Zach Brown <zab@xxxxxxxxx> >> Cc: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx> >> Cc: linux-nfs@xxxxxxxxxxxxxxx > > Performance is going to be absolutely terrible for O_DIRECT bvecs if you > send just one page per RPC call. We are working on merging the O_DIRECT > and page cache code in order to give O_DIRECT the ability to coalesce > requests and do pNFS, and I'm hoping that code will be available soon. > > In the meantime, wouldn't it be possible to add basic coalescing to > nfs_direct_read_schedule_bvec/nfs_direct_write_schedule_bvec more or > less in the same way that we do for multi-page iovec segments? > i.e. if the next bvec is contiguous with the previous, and the resulting > RPC read length < rsize / write length < wsize, then add it to the same > RPC call. I basically followed the example of what the block layer was doing, but coalescing makes more sense for nfs. I'll rework it to do that. Thanks, Shaggy -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html