Project

General

Profile

Actions

Idea #21698

open

Research FUSE passthrough or splicing for FUSE v2

Added by Peter Amstutz 8 months ago. Updated 8 months ago.

Status:
New
Priority:
Normal
Assigned To:
-
Category:
FUSE
Target version:
Start date:
Due date:
Story points:
-

Actions #1

Updated by Peter Amstutz 8 months ago

  • Description updated (diff)
Actions #2

Updated by Peter Amstutz 8 months ago

From what I've been able to determine (documentation is limited) the way this works is that when a file open request happens, the FUSE daemon can say "this file is actually this other file over here" and return a file descriptor to the other file. Then the kernel essentially substitutes read/write operations on the FUSE file with operations on the real file.

https://github.com/libfuse/libfuse/pull/919

This doesn't really work for us except for situations where one block corresponds to one file.

Actions #3

Updated by Peter Amstutz 8 months ago

  • Subject changed from Research FUSE passthrough for FUSE v2 to Research FUSE passthrough or splicing for FUSE v2

http://libfuse.github.io/doxygen/fuse__lowlevel_8h.html#a1242694fe0fb6e253a88b57795987302

Zero copy data transfer ("splicing") is possible when we write blocks to disk and read them back.

It isn't supported by python-llfuse, but is something to examine for "arv-client mount" -- this tells the kernel to go get the content to be returned by read() from a file descriptor instead of returning a buffer that has to be copied.

Actions

Also available in: Atom PDF