sciencething.org

Geekthings

Home

Nota Bene

UVFS is now maintained by Interwoven and is available on Sourceforge. The following is only of historical interest.

Release Notes for Version 0.5 (February 22, 2002)

  • This version changes the userspace-kernel space communication to use a /proc file instead of a character device. No more messy scripts to create /dev nodes on the fly and no need to use messy devfs.
  • Makefiles now use gcc -M instead of makedepend.
  • Other minor changes mostly related to a future secure network filesystem that I'm working on.

Release Notes For Version 0.4 (February 15, 2002)

Version 0.4 uses a variable length queue of pending file system requests instead of fixed size array of requests. This should make the processing of filesystem requests fairer than in previous versions.

Other changes:

  • The uvfs_signal program now takes another command, 'status', which causes a dump of the current request and reply queues to be written to the kernel log.
  • The example filesystem, pmfs, now writes and reads it's data in little-endian order. Backing files should therefore be compatible across different 32 bit architectures.

Release Notes For Version 0.3.1 (February 6, 2002)

This is a bug fix release.

Version 0.3 would hang on a first mount call. Subsequent mounts would go through. This has been fixed.

There were also two infrequent error cases which would exited with a spin_lock_t held. This too has been fixed.

Release Notes For Version 0.3 (February 1, 2002)

This release fixes a few small bugs turned up in my latest round of testing. The most serious problem was that file sizes in pmfs were not getting set correctly after truncate calls.

I've removed the workaround for an obscure deadlock caused by filesystems that call rmdir on foreign filesystems while at the same time implementing the delete_inode call. It was just too ugly and there are user space workarounds if needs be.

The pmfs example filesystem is now multithreaded.

Release Notes For Version 0.2 (January 24, 2002)

UVFS still doesn't have much mileage on it. I believe it to be stable in that I still haven't been able to break it, but you should still be cautious.

Version 0.2 now understands multiple mounted instances of a filesystem. A UVFS filesystem now gets passed a mount string by read_super, and must reply to read_super with an unsigned long filesystem id.

Other improvements are:

  • Documentation errors have been fixed. The method for shutting down pmfs was incorrect in Version 0.1
  • You now have to use a special mount program, uvfs_mount to mount UVFS filesystems. You can still unmount a UVFS filesystem with umount.
  • pmfs now daemonizes itself. It also no longer requires a backing file command line argument. Instead it gets this information through uvfs_mount.

Release Notes For Version 0.1

This is the first public release of UVFS and should therefore be used with caution. I can no longer break it. This does not mean that you won't be able to. Here is the testing I've done (all on a dual athlon system):

  • fsx-linux runs indefinitely on pmfs without error.
  • postmark runs for millions of operations without error.
  • fsstress runs under heavy load without error. I've only run it up to the point that memory gets filled though. That corresponds to only 10s of millions of operations.
  • I've run 10 copies of the following script on pmfs for >24 hours and have never had an error:
    
    #!/bin/sh
    while true
    do
            echo cp
            cp -r /home/britt/programming/newmol .
            echo mv
            mv newmol/geom.c newmol/geom.c.moved
            mv newmol/makefile newmol/CVS/makefile
            mv newmol/CVS newmol/CVS.moved
            mv newmol/actions.c newmol/actions.h
            cd newmol
            mv geom.h CVS.moved/geom.h
            cp actions.h copy.h
            cd /silly
            mkdir newmol/junk
            mv newmol/CVS.moved newmol/junk
            echo rm
            rm -rf newmol
    done
    
    /silly is the mount point for pmfs.

If you are having any problems, please let me know. I can be reached at:

britt@sciencething.org