[LSF/MM TOPIC] reverse splice

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux