Subject: puffs, ssshfs, etc.
To: None <current-users@netbsd.org>
From: Antti Kantee <pooka@cs.hut.fi>
List: current-users
Date: 11/23/2006 05:35:24
Since people are taking interest in running sshfs, here's a quick status
update on puffs to give an idea of what to expect.

Simple sshfs (ssshfs *) works for most practical purposes, minus ones
requiring the currently unimplemented access control.  (s)sshfs can be
used to mount a remote file system using ssh (sftp).  You need to compile
your kernel with "file-system PUFFS" (or use the lkm) and MAKEDEV puffs
in /dev if you haven't done so already.  ssshfs is available currently
only as source in src/share/examples/puffs/ssshfs.  This is because I am
not yet ready to commit to keeping ABI-compatibility with the interfaces,
so you will have to yourself keep track that the binary is in sync with
kernel and libpuffs.

Stability is now good.  I wrote the fs solely on my desktop and didn't
have issues with crashes.  For normal operation you should be safe.
However, there are plenty of ways to toast the kernel using puffs,
e.g. run the fs in gdb and mount the fs on top of the directory the
binary is in.  "Don't do that"(tm)

Currently ssshfs disables page cache ("UBC") by default because of
sychronization issues.  Page cache works if you use the fs in r/o mode,
but will cause unexpected results if you try to write files.  If you
want a huge speedboost for r/o use, try to remove PUFFSFLAG_NOCACHE
from pflags, add MNT_NOATIME to mntflags (see puffs.3) in puffs_mount()
and recompile.  I'll make page cache the default once I get the caching
issues fixed, plus add options to control these from the command line.

You can also try out sysctlfs (also available under examples/puffs),
which maps the sysctl tree as a file system.

"peace, love & send-pr"
  - antti

*) it's "simple" because it was quickly glued together as something
to facilitate puffs interface development for storage backends with
non-immediate I/O.  but if it's useful for people, all the better ...

-- 
Antti Kantee <pooka@iki.fi>                     Of course he runs NetBSD
http://www.iki.fi/pooka/                          http://www.NetBSD.org/
    "la qualité la plus indispensable du cuisinier est l'exactitude"