From: "J. Bruce Fields" <bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
To: Ric Wheeler <rwheeler-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: Zach Brown <zab-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
Miklos Szeredi <miklos-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>,
Anna Schumaker
<schumaker.anna-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Kernel Mailing List
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Linux-Fsdevel
<linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Trond Myklebust
<Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org>,
Bryan Schumaker
<bjschuma-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org>,
"Martin K. Petersen" <mkp-30zCAauEzIw@public.gmane.org>,
Jens Axboe <axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>,
Mark Fasheh <mfasheh-IBi9RG/b67k@public.gmane.org>,
Joel Becker <jlbec-aKy9MeLSZ9dg9hUCZPvPmw@public.gmane.org>,
Eric Wong <normalperson-rMlxZR9MS24@public.gmane.org>
Subject: Re: [RFC] extending splice for copy offloading
Date: Fri, 27 Sep 2013 16:05:50 -0400 [thread overview]
Message-ID: <20130927200550.GA22640@fieldses.org> (raw)
In-Reply-To: <5244A68F.906-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
On Thu, Sep 26, 2013 at 05:26:39PM -0400, Ric Wheeler wrote:
> On 09/26/2013 02:55 PM, Zach Brown 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-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 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. And then
> >>the user would only notice that things got faster in case of server
> >>side copy. No problems with long blocking times (at least not much
> >>worse than it was).
> >Hmm, yes, that would be a nice outcome.
> >
> >>However "cp" doesn't do reflinking by default, it has a switch for
> >>that. If we just want "cp" and the like to use splice without fearing
> >>side effects then by default we should try to be as close to
> >>read+write behavior as possible. No?
> >I guess? I don't find requiring --reflink hugely compelling. But there
> >it is.
> >
> >>That's what I'm really
> >>worrying about when you want to wire up splice to reflink by default.
> >>I do think there should be a flag for that. And if on the block level
> >>some magic happens, so be it. It's not the fs deverloper's worry any
> >>more ;)
> >Sure. So we'd have:
> >
> >- no flag default that forbids knowingly copying with shared references
> > so that it will be used by default by people who feel strongly about
> > their assumptions about independent write durability.
> >
> >- a flag that allows shared references for people who would otherwise
> > use the file system shared reference ioctls (ocfs2 reflink, btrfs
> > clone) but would like it to also do server-side read/write copies
> > over nfs without additional intervention.
> >
> >- a flag that requires shared references for callers who don't want
> > giant copies to take forever if they aren't instant. (The qemu guys
> > asked for this at Plumbers.)
Why not implement only the last flag only as the first step? It seems
like the simplest one. So I think that would mean:
- no worrying about cancelling, etc.
- apps should be told to pass the entire range at once (normally
the whole file).
- The NFS server probably shouldn't do the internal copy loop by
default.
We can't prevent some storage system from implementing a high-latency
copy operation, but we can refuse to provide them any help (providing no
progress reports or easy way to cancel) and then they can deal with the
complaints from their users.
Also, I don't get the first option above at all. The argument is that
it's safer to have more copies? How much safety does another copy on
the same disk really give you? Do systems that do dedup provide
interfaces to turn it off per-file?
> This last flag should not prevent a remote target device (NFS or
> SCSI array) copy from working though since they often do reflink
> like operations inside of the remote target device....
In fact maybe that's the only case to care about on the first pass.
But I understand that Zach's tired of the woodshedding and I could live
with the above I guess....
--b.
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-09-27 20:05 UTC|newest]
Thread overview: 67+ 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 21:17 ` Eric Wong
[not found] ` <20130911211722.GA9725-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
2013-09-16 19:44 ` Rob Landley
2013-09-19 12:59 ` Jeff Layton
[not found] ` <1378919210-10372-1-git-send-email-zab-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
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-20 9:49 ` [RFC] extending splice for copy offloading Szeredi Miklos
[not found] ` <CAELBmZBGD4rph=gjLCPKCdEj+nzEQ-F=DExoL+h3vRm7qF7dCQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-25 18:38 ` Zach Brown
2013-09-25 19:02 ` Anna Schumaker
[not found] ` <CAFX2JfnyF8kyMYzCdqdr2JkoyQCom1bFLpFj89wODjoju54-Ow-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-25 19:06 ` Zach Brown
[not found] ` <20130925190620.GB30372-fypN+1c5dIyjpB87vu3CluTW4wlIGRCZ@public.gmane.org>
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
[not found] ` <20130926153359.GE704-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
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
[not found] ` <CAJfpegvvWhs+jv2J9kOQrB31PEO3kyn_sLm_e2w9YKp=y6EDhA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-26 21:23 ` Ric Wheeler
[not found] ` <5244A5E7.90808-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-09-27 4:47 ` Miklos Szeredi
2013-09-27 14:00 ` Ric Wheeler
2013-09-27 14:39 ` Miklos Szeredi
[not found] ` <CAJfpegsUchb0eX+Hi3rN5Ypje3Y-dgo=pxgM1Y3BQbHVp=1hSw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-10-06 8:42 ` Rob Landley
2013-09-26 18:55 ` Zach Brown
[not found] ` <20130926185508.GO30372-fypN+1c5dIyjpB87vu3CluTW4wlIGRCZ@public.gmane.org>
2013-09-26 21:26 ` Ric Wheeler
[not found] ` <5244A68F.906-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-09-27 20:05 ` J. Bruce Fields [this message]
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
[not found] ` <52474839.2080201-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
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
[not found] ` <CAJfpeguMCzv-UhrXrG7e9Q7F_0aEe3_ZMumFwLu3hxcewA_7gA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-30 14:52 ` Ric Wheeler
2013-09-30 15:24 ` Miklos Szeredi
2013-09-30 14:28 ` Ric Wheeler
[not found] ` <CAJfpegv_C6cLOuA-mNtgtf2QbmmmcHwjQVo8mA nhf_wbJ8iRhg@mail.gmail.com>
[not found] ` <CAJfpegv_C6cLOuA-mNtgtf2QbmmmcHwjQVo8mAnhf_wbJ8iRhg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-30 14:41 ` Ric Wheeler
[not found] ` <52498DB6.7060901-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-09-30 15:46 ` Miklos Szeredi
2013-09-30 14:49 ` Ric Wheeler
[not found] ` <52498F68.8050200-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-09-30 15:57 ` Miklos Szeredi
[not found] ` <CAJfpegvvN_5c5oMv8UoODXQHc-DQnijhOtPDXmNamVpQLDoWMQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-30 16:31 ` Miklos Szeredi
2013-09-30 17:17 ` Bernd Schubert
[not found] ` <5249B21E.70603-mPn0NPGs4xGatNDF+KUbs4QuADTiUCJX@public.gmane.org>
2013-09-30 17:44 ` Myklebust, Trond
[not found] ` <1380563050.6501.15.camel-5lNtUQgoD8Pfa3cDbr2K10B+6BGkLq7r@public.gmane.org>
2013-09-30 17:48 ` Bernd Schubert
[not found] ` <5249B987.8020807-mPn0NPGs4xGatNDF+KUbs4QuADTiUCJX@public.gmane.org>
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
[not found] ` <5249DA50.5060105-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-09-30 20:27 ` Myklebust, Trond
[not found] ` <5249D86A.7080603-mPn0NPGs4xGatNDF+KUbs4QuADTiUCJX@public.gmane.org>
2013-09-30 20:10 ` Myklebust, Trond
[not found] ` <CAJfpegsvrr7x3MbdpvxUmzq0ZfDHfZkzAar6Od2G7wg8DgPLYQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-10-01 18:42 ` J. Bruce Fields
2013-09-30 15:33 ` Myklebust, Trond
[not found] ` <52498AA8.2090204-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-09-30 15:38 ` Miklos Szeredi
[not found] ` <CAJfpegtpXuh9070ALGy16Y8kdgioBqSf4JQqBBCF4FHvFJWAWQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-10-01 19:58 ` Zach Brown
[not found] ` <20131001195817.GE10831-fypN+1c5dIyjpB87vu3CluTW4wlIGRCZ@public.gmane.org>
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
-- strict thread matches above, loose matches on Subject: below --
2013-09-26 17:22 Steve French
[not found] ` <CAH2r5muBuTK7ZZ+aKGC4q35gqaSWF4o07eoHypLKiNn5Y83RbQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-26 19:34 ` David Disseldorp
2013-10-10 2:18 ` Steve French
2013-10-01 21:05 ` J. Bruce Fields
[not found] ` <20131001210531.GA7093-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2013-10-02 1:19 ` Steve French
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=20130927200550.GA22640@fieldses.org \
--to=bfields-uc3wqj2krung9huczpvpmw@public.gmane.org \
--cc=Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org \
--cc=axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org \
--cc=bjschuma-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org \
--cc=jlbec-aKy9MeLSZ9dg9hUCZPvPmw@public.gmane.org \
--cc=linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mfasheh-IBi9RG/b67k@public.gmane.org \
--cc=miklos-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org \
--cc=mkp-30zCAauEzIw@public.gmane.org \
--cc=normalperson-rMlxZR9MS24@public.gmane.org \
--cc=rwheeler-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=schumaker.anna-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=zab-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
/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;
as well as URLs for NNTP newsgroup(s).