From: Rob Landley <rob@landley.net>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: "J. Bruce Fields" <bfields@fieldses.org>,
Zach Brown <zab@redhat.com>,
Anna Schumaker <schumaker.anna@gmail.com>,
Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux-Fsdevel <linux-fsdevel@vger.kernel.org>,
"linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>,
Trond Myklebust <Trond.Myklebust@netapp.com>,
Bryan Schumaker <bjschuma@netapp.com>,
"Martin K. Petersen" <mkp@mkp.net>, Jens Axboe <axboe@kernel.dk>,
Mark Fasheh <mfasheh@suse.com>, Joel Becker <jlbec@evilplan.org>,
Eric Wong <normalperson@yhbt.net>
Subject: Re: [RFC] extending splice for copy offloading
Date: Sun, 06 Oct 2013 03:42:35 -0500 [thread overview]
Message-ID: <1381048955.1974.171@driftwood> (raw)
In-Reply-To: <CAJfpegsUchb0eX+Hi3rN5Ypje3Y-dgo=pxgM1Y3BQbHVp=1hSw@mail.gmail.com> (from miklos@szeredi.hu on Thu Sep 26 13:06:41 2013)
On 09/26/2013 01:06:41 PM, Miklos Szeredi wrote:
> On Thu, Sep 26, 2013 at 5:34 PM, J. Bruce Fields
> <bfields@fieldses.org> wrote:
> > On Thu, Sep 26, 2013 at 10:58:05AM +0200, Miklos Szeredi wrote:
> >> On Wed, Sep 25, 2013 at 11:07 PM, Zach Brown <zab@redhat.com>
> wrote:
> >> >> A client-side copy will be slower, but I guess it does have the
> >> >> advantage that the application can track progress to some
> degree, and
> >> >> abort it fairly quickly without leaving the file in a totally
> undefined
> >> >> state--and both might be useful if the copy's not a simple
> constant-time
> >> >> operation.
> >> >
> >> > I suppose, but can't the app achieve a nice middle ground by
> copying the
> >> > file in smaller syscalls? Avoid bulk data motion back to the
> client,
> >> > but still get notification every, I dunno, few hundred meg?
> >>
> >> Yes. And if "cp" could just be switched from a read+write syscall
> >> pair to a single splice syscall using the same buffer size.
> >
> > Will the various magic fs-specific copy operations become
> inefficient
> > when the range copied is too small?
>
> We could treat spice-copy operations just like write operations (can
> be buffered, coalesced, synced).
>
> But I'm not sure it's worth the effort; 99% of the use of this
> interface will be copying whole files.
My "patch" implementation (in busybox and toybox) hits a point where it
wants to copy the rest of the file, once there are no more hunks to
apply. This is not copying a whole file. A similar thing happens with
tail when you use the +N syntax to skip start instead of end lines. I
can see sed doing a similar thing when told to operate on line ranges...
Note sure your 99% holds up here.
Rob
next prev parent reply other threads:[~2013-10-06 8:42 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-11 17:06 [RFC] extending splice for copy offloading Zach Brown
2013-09-11 17:06 ` [PATCH 1/3] splice: add DIRECT flag for splicing between files Zach Brown
2013-09-11 17:06 ` [PATCH 2/3] splice: add f_op->splice_direct Zach Brown
2013-09-11 17:06 ` [PATCH 3/3] btrfs: implement .splice_direct extent copying Zach Brown
2013-09-11 21:17 ` [RFC] extending splice for copy offloading Eric Wong
2013-09-16 19:44 ` Rob Landley
2013-09-19 12:59 ` Jeff Layton
2013-09-20 9:49 ` Szeredi Miklos
2013-09-25 18:38 ` Zach Brown
2013-09-25 19:02 ` Anna Schumaker
2013-09-25 19:06 ` Zach Brown
2013-09-25 19:55 ` J. Bruce Fields
2013-09-25 21:07 ` Zach Brown
2013-09-26 8:58 ` Miklos Szeredi
2013-09-26 15:34 ` J. Bruce Fields
2013-09-26 16:46 ` Ric Wheeler
2013-09-26 18:06 ` Miklos Szeredi
2013-09-26 19:06 ` Zach Brown
2013-09-26 19:53 ` Miklos Szeredi
2013-09-26 21:23 ` Ric Wheeler
2013-09-27 4:47 ` Miklos Szeredi
2013-09-27 14:00 ` Ric Wheeler
2013-09-27 14:39 ` Miklos Szeredi
2013-10-06 8:42 ` Rob Landley [this message]
2013-09-26 18:55 ` Zach Brown
2013-09-26 21:26 ` Ric Wheeler
2013-09-27 20:05 ` J. Bruce Fields
2013-09-27 20:50 ` Zach Brown
2013-09-28 5:49 ` Miklos Szeredi
2013-09-28 15:20 ` Myklebust, Trond
2013-09-28 21:20 ` Ric Wheeler
2013-09-30 12:20 ` Miklos Szeredi
2013-09-30 14:34 ` J. Bruce Fields
2013-09-30 14:48 ` Ric Wheeler
2013-09-30 14:51 ` Miklos Szeredi
2013-09-30 14:52 ` Ric Wheeler
2013-09-30 15:24 ` Miklos Szeredi
2013-09-30 14:28 ` Ric Wheeler
2013-09-30 15:33 ` Myklebust, Trond
2013-09-30 15:38 ` Miklos Szeredi
2013-09-30 14:41 ` Ric Wheeler
2013-09-30 15:46 ` Miklos Szeredi
2013-09-30 14:49 ` Ric Wheeler
2013-09-30 15:57 ` Miklos Szeredi
2013-09-30 16:31 ` Miklos Szeredi
2013-09-30 17:17 ` Bernd Schubert
2013-09-30 17:44 ` Myklebust, Trond
2013-09-30 17:48 ` Bernd Schubert
2013-09-30 18:02 ` Myklebust, Trond
2013-09-30 18:49 ` Bernd Schubert
2013-09-30 19:34 ` Myklebust, Trond
2013-09-30 20:00 ` Bernd Schubert
2013-09-30 20:08 ` Ric Wheeler
2013-09-30 20:27 ` Myklebust, Trond
2013-09-30 20:10 ` Myklebust, Trond
2013-10-01 18:42 ` J. Bruce Fields
2013-10-01 19:58 ` Zach Brown
2013-10-02 12:58 ` Jan Kara
2013-10-02 13:31 ` David Lang
2013-12-18 12:41 ` Christoph Hellwig
2013-12-18 17:10 ` Zach Brown
2013-12-18 17:26 ` Anna Schumaker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1381048955.1974.171@driftwood \
--to=rob@landley.net \
--cc=Trond.Myklebust@netapp.com \
--cc=axboe@kernel.dk \
--cc=bfields@fieldses.org \
--cc=bjschuma@netapp.com \
--cc=jlbec@evilplan.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=mfasheh@suse.com \
--cc=miklos@szeredi.hu \
--cc=mkp@mkp.net \
--cc=normalperson@yhbt.net \
--cc=schumaker.anna@gmail.com \
--cc=zab@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox