The
rump_syspuffs utility can be used to mount any
puffs(3) file server so that the requests are passed through the kernel puffs code in userspace as well. Therefore the approximate callgraph looks a little like the following, where k and u denote code running in the kernel space and userspace, respectively: puffs vfs (k) *[Gt] libpuffs (u) *[Gt] p2k (u) *[Gt] puffs vfs (u) *[Gt] libpuffs (u) *[Gt] file server (u). The response path is the same, but in reverse.
In its current state,
rump_syspuffs is most useful as a proof of concept for file system distribution and for developing and debugging the kernel portion of puffs.