Re: [PATCH v2] fuse: use splice for reading user pages on servers that enable it

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

 



On Thu, 15 May 2025 at 21:16, Joanne Koong <joannelkoong@xxxxxxxxx> wrote:

> As I understand it, the zero copy uring api (I think the one you're
> talking about is the one discussed here [1]?) requires client-side
> changes in order to utilize it.
>
> [1] https://lore.kernel.org/linux-fsdevel/dc3a5c7d-b254-48ea-9749-2c464bfd3931@xxxxxxxxxxx/

No, that's not what I was thinking.  That sort of thing is out of
scope for fuse, I think.

Hmm, so you actually need "single copy" direct write.

 - there's the buffer that write(2) gets from application
 - it's copied into server's own buffer, at which point the write(2) can return
 - at some point this buffer is sent to the network and freed/reused

Currently this is not possible:

 - there's the buffer that write(2) gets from application
 - it's copied into libfuse's buffer, which is passed to the write callback
 - the server's write callback copies this to its own buffer, ...

What's preventing libfuse to allow the server to keep the buffer?  It
seems just a logistic problem, not some fundamental API issue.  Adding
a fuse_buf_clone() that just transfers ownership of the underlying
buffer is all that's needed on the API side.  As for the
implementation: libfuse would then need to handle the case of a buffer
that has been transferred.

Does this make sense?

Thanks,
Miklos




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

  Powered by Linux