Re: why does nfsd write not use splice

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jun 12, 2013 at 09:51:09PM +0530, Sandeep Joshi wrote:
> Splice can be implemented independent of RDMA.  It is supposed to transfer
> pages between two file descriptors.  I found some postings on lkml from
> 2006 where Linus says it is quite possible to splice from a socket to a
> file.
> 
> See the paragraph:
> " For filesystems, splice support tends to be really easy (both read and
> write). For other things, it depends a bit. But unlike sendfile(), it
> really is quite possible to splice _from_ a socket too, not just _to_ a
> socket. But no, that case hasn't been written yet."
>  http://yarchive.net/comp/linux/splice.html
> 
> Larry McVoy's 1997 proposal for adding splice support to the  kernel can be
> read at ftp.tux.org/pub/sites/ftp.bitmover.com/pub/*splice*.*ps*.gz<http://ftp.tux.org/pub/sites/ftp.bitmover.com/pub/splice.ps.gz>
> 
> Perhaps I should have opened this thread on lkml to determine if splice
> from socket to file is still feasible..

Right, the thing is, nfsd reads the rpc request from the socket into its
own buffers before it parses it.  If you want to move the data directly
out of the network buffers into the page cache, then you have to know at
what point the write data starts in the request--which I believe will
mean doing the xdr parsing (and gss decryption if necessary) as the
request comes in off the wire.

That sounds like a lot of work and even if you have someone willing to
do the work they'd also need to justify that it's worth it.

RDMA may have some protocol support that simplifies this, I don't know.

--b.
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux