Messages in this thread | | | From | "Myklebust, Trond" <> | Subject | Re: [RFC PATCH 22/22] nfs: add support for read_iter, write_iter | Date | Mon, 27 Feb 2012 22:08:50 +0000 |
| |
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@oracle.com> > Cc: Zach Brown <zab@zabbo.net> > Cc: Trond Myklebust <Trond.Myklebust@netapp.com> > Cc: linux-nfs@vger.kernel.org
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.
-- Trond Myklebust Linux NFS client maintainer
NetApp Trond.Myklebust@netapp.com www.netapp.com
| |