DragonFly kernel List (threaded) for 2004-09
userland VFS (was Re: vinum?)
:FWIW, I'm currently planning to write a userland callout for the file
:system so that I can prototype file systems in userland. If anybody's
:interested in following up on this one, please contact me. It
:obviously doesn't belong on this thread.
We're planning that too, but some major VFS work is in the pipeline
first in order to get rid of all the ludicrous vnode locking that
the VOP interface requires and to be able to break down I/O's for the
XIO interface while still retaining operation atomicy.
Basically, apart from all the other VFS changes which already make
ours fairly incompatible with FreeBSD, the next VFS stage I will
be working on is to use the namecache structure to deal with namespace
locking [replacing locked vnodes that are currently used for that
purpose], and the stage after that will replace locked vnodes for
data operation atomicy with range locks on vnodes for data operation
atomicy, and replace UIO's (user context relative pointers) with
XIO's (vm_page arrays).
Other things have to happen too... e.g. vnode creation and destruction
has to occur in a kernel layer instead of a VFS layer.
But once all of that is done it will be possible to safely convert
VOPs into stream operations without causing the system to lock itself
to death. I really want to move less important FS's, such as CD9660,
NTFS, etc. into userland, or at least make it possible for them to be
run in userland.