All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC 0/5] NFS Server Side Copy
@ 2013-07-19 21:03 bjschuma
  2013-07-19 21:03 ` [RFC 1/5] Improve on the copyfile systemcall bjschuma
                   ` (5 more replies)
  0 siblings, 6 replies; 30+ messages in thread
From: bjschuma @ 2013-07-19 21:03 UTC (permalink / raw)
  To: Trond.Myklebust; +Cc: linux-nfs

From: Bryan Schumaker <bjschuma@netapp.com>

These patches build on Zach Brown's copyfile patches to add server side
copy to both the NFS client and the NFS server.

The first patch improves on the copyfile syscall to make it usable on my
machine and also includes notes on other potential problems that I've
found.  The remaining patches first implement a sync copy, then expand to
async.

My testing was done on a server exporting an ext4 filesystem exporting an
ext4 filesystem.  I compared copying using the cp command to copying with
the copyfile system call.


File size:  512 MB
cp: 4.244 seconds
copyfile: 0.961 seconds

File size: 1024 MB
cp: 9.091 seconds
copyfile: 1.919 seconds

File size: 1536 MB
cp: 15.291 seconds
copyfile: 6.016 seconds


Repeating these tests on a btrfs exported filesystem supporting the copyfile
system call drops the time for copyfile to about 0.01 seconds.

Feel free to send me any questions, comments or other thoughts!

- Bryan

Bryan Schumaker (5):
  Improve on the copyfile systemcall
  NFSD: Implement the COPY call
  NFS: Add COPY nfs operation
  NFSD: Defer copying
  NFS: Change copy to support async servers

 fs/copy_range.c          |  10 +++-
 fs/nfs/callback.h        |  13 ++++
 fs/nfs/callback_proc.c   |   9 +++
 fs/nfs/callback_xdr.c    |  54 ++++++++++++++++-
 fs/nfs/inode.c           |   2 +
 fs/nfs/nfs4_fs.h         |   7 +++
 fs/nfs/nfs4file.c        | 101 +++++++++++++++++++++++++++++++
 fs/nfs/nfs4proc.c        |  16 +++++
 fs/nfs/nfs4xdr.c         | 150 +++++++++++++++++++++++++++++++++++++++++++++++
 fs/nfsd/nfs4callback.c   | 136 ++++++++++++++++++++++++++++++++++++++++++
 fs/nfsd/nfs4proc.c       | 104 ++++++++++++++++++++++++++++++--
 fs/nfsd/nfs4state.c      |  15 ++++-
 fs/nfsd/nfs4xdr.c        | 121 +++++++++++++++++++++++++++++++++++++-
 fs/nfsd/state.h          |  23 +++++++-
 fs/nfsd/vfs.c            |   9 +++
 fs/nfsd/vfs.h            |   1 +
 fs/nfsd/xdr4.h           |  24 ++++++++
 fs/nfsd/xdr4cb.h         |   9 +++
 include/linux/nfs4.h     |  14 ++++-
 include/linux/nfs_xdr.h  |  33 +++++++++++
 include/linux/syscalls.h |   1 +
 21 files changed, 836 insertions(+), 16 deletions(-)

-- 
1.8.3.3


^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2013-08-05 18:30 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-19 21:03 [RFC 0/5] NFS Server Side Copy bjschuma
2013-07-19 21:03 ` [RFC 1/5] Improve on the copyfile systemcall bjschuma
2013-07-19 21:03 ` [RFC 2/5] NFSD: Implement the COPY call bjschuma
2013-07-22 18:05   ` J. Bruce Fields
2013-07-22 18:59     ` Bryan Schumaker
2013-07-19 21:03 ` [RFC 3/5] NFS: Add COPY nfs operation bjschuma
2013-07-24 14:21   ` Myklebust, Trond
2013-07-19 21:03 ` [RFC 4/5] NFSD: Defer copying bjschuma
2013-07-22 18:50   ` J. Bruce Fields
2013-07-22 19:17     ` Bryan Schumaker
2013-07-22 19:30       ` J. Bruce Fields
2013-07-22 19:37         ` Bryan Schumaker
2013-07-22 19:43           ` J. Bruce Fields
2013-07-22 19:54             ` Bryan Schumaker
2013-07-22 19:55               ` J. Bruce Fields
2013-08-05  8:38                 ` Ric Wheeler
2013-08-05 14:41                   ` J. Bruce Fields
2013-08-05 14:44                     ` Ric Wheeler
2013-08-05 14:56                       ` J. Bruce Fields
2013-08-05 14:44                     ` Bryan Schumaker
2013-08-05 14:50                     ` Myklebust, Trond
2013-08-05 18:11                       ` J. Bruce Fields
2013-08-05 18:17                         ` Chuck Lever
2013-08-05 18:24                           ` Myklebust, Trond
2013-08-05 18:30                         ` J. Bruce Fields
2013-07-19 21:03 ` [RFC 5/5] NFS: Change copy to support async servers bjschuma
2013-07-24 14:28   ` Myklebust, Trond
2013-07-22 18:53 ` [RFC 0/5] NFS Server Side Copy J. Bruce Fields
2013-07-22 19:38   ` Bryan Schumaker
2013-07-22 19:42     ` J. Bruce Fields

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.