Return-Path: linux-nfs-owner@vger.kernel.org Received: from fieldses.org ([174.143.236.118]:52740 "EHLO fieldses.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752530Ab3FLPjl (ORCPT ); Wed, 12 Jun 2013 11:39:41 -0400 Date: Wed, 12 Jun 2013 11:39:36 -0400 From: "J. Bruce Fields" To: Tom Talpey Cc: Sandeep Joshi , linux-nfs@vger.kernel.org Subject: Re: why does nfsd write not use splice Message-ID: <20130612153936.GB32569@fieldses.org> References: <20130611195140.GA29634@fieldses.org> <51B7DE9C.6080703@talpey.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <51B7DE9C.6080703@talpey.com> Sender: linux-nfs-owner@vger.kernel.org List-ID: On Tue, Jun 11, 2013 at 10:36:12PM -0400, Tom Talpey wrote: > On 6/11/2013 3:51 PM, J. Bruce Fields wrote: > >On Sun, Jun 09, 2013 at 01:05:16PM +0530, Sandeep Joshi wrote: > >>Is there a reason as to why the nfsd server does not use splice in the > >>write calls - nfsd_vfs_write() ? Is there some structural limitation > >>or is it just something nobody got around to implementing ? > >> > >>I have looked at the source back to the 2.6.x kernels and it seems > >>only nfsd_vfs_read() has ever used splice/sendfile. > >>http://lxr.linux.no/linux+v3.9.5/fs/nfsd/vfs.c > > > >I don't actually know how splice_write works.... I assume to avoid a > >copy we'd have to place the incoming write data into pages already > >correctly aligned. That would be an interesting trick. > > NFS-RDMA does that, by design. ;-) So teaching nfsd to take advantage of splice in the rdma case could be a doable project for someone? I was thinking about NFSv4/tcp, in which case I guess we'd need to start parsing the xdr in the tcp receive code. --b.