* Re: [LSF/MM TOPIC] reverse splice
[not found] <CAJfpegusa=r+sdbsTx1ybq6FMKy5Zp=L=u7viRYbndYiRLJh9A@mail.gmail.com>
@ 2019-02-21 14:29 ` Matthew Wilcox
0 siblings, 0 replies; only message in thread
From: Matthew Wilcox @ 2019-02-21 14:29 UTC (permalink / raw)
To: Miklos Szeredi; +Cc: lsf-pc, linux-fsdevel, linux-mm
... also, this really needs to be cc'd to linux-mm.
On Thu, Feb 21, 2019 at 01:56:11PM +0100, Miklos Szeredi wrote:
> rsplice would serve a similar purpose as splice, but in the other
> direction. I.e. instead of operating on buffers filled with data, it
> would operate on empty buffers to be filled with data. rsplice is to
> splice as read is to write.
>
> data source -> splice -> data destination
> data destination -> rsplice -> data source
>
> One use case would be zero-copy read in fuse. Zero-copy writes work
> with plain splice: page cache pages or userspace buffers are passed
> through to the userspace filesystem server as pipe buffers and they
> can be directed wherever the filesystem wants. The reverse doesn't
> work. There's code to attempt stealing pages and inserting into the
> fuse page cache, but this is far from being as generic as the write
> path.
>
> What do people think? Is this crazy? Are there major roadblocks for
> implementation? Would this have any other use cases?
>
> To me it looks like this is pretty symmetrical with normal splice, the
> big difference being that uninitialized buffers would be passed
> around. Obviously must make sure those buffers are write only, i.e.
> the previous contents are inaccessible.
>
> Thanks,
> Miklos
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-02-21 14:29 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CAJfpegusa=r+sdbsTx1ybq6FMKy5Zp=L=u7viRYbndYiRLJh9A@mail.gmail.com>
2019-02-21 14:29 ` [LSF/MM TOPIC] reverse splice Matthew Wilcox
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).