xfs
[Top] [All Lists]

Re: [PATCH 0/5] splice: locking changes and code refactoring

To: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Subject: Re: [PATCH 0/5] splice: locking changes and code refactoring
From: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Date: Sat, 18 Jan 2014 08:27:30 +0000
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>, Jens Axboe <axboe@xxxxxxxxx>, Mark Fasheh <mfasheh@xxxxxxxx>, Joel Becker <jlbec@xxxxxxxxxxxx>, linux-fsdevel <linux-fsdevel@xxxxxxxxxxxxxxx>, xfs@xxxxxxxxxxx, Sage Weil <sage@xxxxxxxxxxx>, Steve French <sfrench@xxxxxxxxx>, David Miller <davem@xxxxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20140118074649.GF10323@xxxxxxxxxxxxxxxxxx>
References: <20131212181459.994196463@xxxxxxxxxxxxxxxxxxxxxx> <20140113141416.GA30117@xxxxxxxxxxxxx> <20140113235646.GR10323@xxxxxxxxxxxxxxxxxx> <20140114132207.GA25170@xxxxxxxxxxxxx> <20140114172033.GU10323@xxxxxxxxxxxxxxxxxx> <20140118064040.GE10323@xxxxxxxxxxxxxxxxxx> <CA+55aFw4LgyYEkygxHUnpKZg3jMACGzsyENc9a9rWFmLcaRefQ@xxxxxxxxxxxxxx> <20140118074649.GF10323@xxxxxxxxxxxxxxxxxx>
Sender: Al Viro <viro@xxxxxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Sat, Jan 18, 2014 at 07:46:49AM +0000, Al Viro wrote:
> On Fri, Jan 17, 2014 at 11:22:04PM -0800, Linus Torvalds wrote:
> > On Fri, Jan 17, 2014 at 10:40 PM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
> > >
> > > Objections, comments?
> > 
> > I certainly object to the "map, then unmap" approach. No VM games.
[snip]
> > But if it can be done more naturally as a writev, then that may well
> > be ok. As long as we're talking about just the
> > default_file_splice_write() case, and people who want to do special
> > things with page movement can continue to do so..
> 
> The thing is, after such change default_file_splice_write() is no worse than
> generic_file_splice_write().  The only instances that really want something
> else are the ones that try to steal pages (e.g. virtio_console, fuse miscdev)
> or sockets, with their "do DMA from the sodding page, don't copy it at
> anywhere" ->sendpage() method.  IOW, ones those special things you are
> talking about.  Normal filesystems do not - not on pipe-to-file splice.
> file-to-pipe - sure, that one plays with pagecache and tries hard to
> do zero-copy, but that's ->splice_read(), not ->splice_write()...

BTW, would sockets benefit from having ->sendpages() that would take an
array of (page, offset, len) triples?  It would be trivial to do and
some of the helpers that are falling out of writing that writev-based
default_file_splice_write() look like they could be reused for
calling that one...  Dave?

<Prev in Thread] Current Thread [Next in Thread>