-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Will zero-copy read/write (splicing) supported? #17
Comments
Splice() requires that one of the two fds is pipe at lease. The fusedev and virtiofs transport layer can't satisfy the requirement yet. |
Sounds great! Would you provide some clues about what is to be introduced to the fuse protocol? Do you mean this one, passthrough read/write (https://www.spinics.net/lists/linux-fsdevel/msg180464.html)? For me, I think it's cool if virtio-fs can support splicing, or fusedev can support something like DAX. |
yes, exactly! |
@jiangliu Perhaps the splice() @zhangjaycee mentioned is supposed to work between /dev/fuse and files in the passthrough directory? |
@jiangliu Out of interest, did you look into io_uring? From my limited understand of it, it might not be compatible. What we need is an SQ, filled in by the kernel and consumed by userspace and then the other way around for CQ. But afaik, io_uring only supports userspace filling SQ, with the kernel consuming it. I will try to go through the design details and code during the next days. I had ioctl threads with per core queues as in zufs and Miklos fuse2 branch on our todo list, but then figured out about rather high waitq wakeup latencies.https://www.spinics.net/lists/linux-fsdevel/msg214814.html |
We have tried to enable io_uring for fuse-backend-rs but encountered some issues related to io-uring async io framework. And it's time to resume the async io support now:) It would be great to give a second try for splice when enabling async io:) |
From my understanding, it seems that splicing is not supported yet, will this be supported? Thanks!
The text was updated successfully, but these errors were encountered: