DragonFly BSD
DragonFly kernel List (threaded) for 2004-11
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

vfsx20.patch available - vfs work (expert developers only)

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 9 Nov 2004 09:55:43 -0800 (PST)

    Another regular vfs patch.   Again, expert developers only.

	fetch http://leaf.dragonflybsd.org/~dillon/vfsx20.patch

    This one adds fixes for scattered bugs and a feature or two.  A number
    of these issues have already been committed and the stable tag slipped
    so they don't physically appear in the patch set.
    Thanks to everyone who sent in bug reports and especially David Rhodus 
    for providing a number of great kernel crash dumps.

    * A bug in the nfs server's directory scan code could cause the nfs
      server to panic.

    * Added an assertion to try to catch a vm_page panic that DR is getting.
      It is possibly related to fictitious page mappings (device mmap).

    * A fix to softupdates that can cause FS corruption if the
      devvp for the filesystem is not VMIO backed (-> reported to Kirk).
      Note: this bug probably did not effect FreeBSD.  [ committed and
      stable slipped ].

    * A fix to UFS that was preventing the filesystem devvp from being
      marked as being VMIO backed.  I apparently broke this about a month 
      ago and never realized it. Apart from the softupdates bug it tickled
      not having the devvp VMIO backed only reduced filesystem performance
      slightly. [ committed and stable slipped ].

    * Use a non-blocking version of BUF_REFCNTNB.  The ATA interrupt
      path was blocking in biodone() in a number of places which had
      BUF_REFCNT() assertions.  (I don't think this is related to the
      ATA timeout problem Jonathon McKitrick is reporting but there is
      a small chance that it is).   [ committed and stable slipped ].

    * Someone pointed out a thread on the FBsd lists with regards to 
      shortcutting device operations for /dev/null and /dev/zero to
      not have to run through the VFS (and in particular lock the vnode).

      This turned out to be trivial to implement, it simply required a
      special struct fileops with customized read and write vectors.
      dd performance e.g. writing to /dev/null with small block sizes
      is noticably improved though I doubt there will be much real-world
      improvement.  Still, it allowed me to cleanup some other issues 
      in the file pointer code so...

    Still TODO before I commit this mess to HEAD: unionfs, nullfs.


[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]