cvs commit: src/sys/emulation/linux/i386/linprocfs linprocfs_subr.c src/sys/kern kern_exit.c kern_lock.c vfs_lock.c vfs_mount.c vfs_subr.c vfs_syscalls.c src/sys/sys lock.h vnode.h src/sys/vfs/procfs procfs_subr.c src/sys/vfs/union union_vnops.c

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Aug 10 19:02:58 PDT 2006


dillon      2006/08/10 18:55:02 PDT

DragonFly src repository

  Modified files:
    sys/emulation/linux/i386/linprocfs linprocfs_subr.c 
    sys/kern             kern_exit.c kern_lock.c vfs_lock.c 
                         vfs_mount.c vfs_subr.c vfs_syscalls.c 
    sys/sys              lock.h vnode.h 
    sys/vfs/procfs       procfs_subr.c 
    sys/vfs/union        union_vnops.c 
  Log:
  VNode sequencing and locking - part 2/4.
  
  Control access to v_usecount and v_holdcnt with the vnode's lock's spinlock.
  Use the spinlock to interlock the VRECLAIMED and VINACTIVE flags during
  1->0 and 0->1 transitions.  N->N+1 transitions do not need to obtain the
  spinlock and simply use a locked bus cycle increment.  Vnode operations
  are still not MP safe but this gets further along that road.
  
  The lockmgr can no longer fail when obtaining an exclusive lock, remove
  the error code return from vx_lock() and vx_get().  Add special lockmgr
  support routines to atomically acquire and release an exclusive lock
  when the caller is already holding the spinlock.
  
  The removal of vnodes from the vnode free list is now defered.  Removal
  only occurs when allocvnode() encounters a vnode on the list which should
  not be on it.  This improves critical code paths for vget(), vput() and
  vrele() by removing unnecessary manipulation of the freelist.
  
  Fix a lockmgr bug where wakeup() was being called with a spinlock held.
  Instead, defer the wakeup until after the spinlock is released.
  
  Revision  Changes    Path
  1.21      +3 -4      src/sys/emulation/linux/i386/linprocfs/linprocfs_subr.c
  1.59      +3 -4      src/sys/kern/kern_exit.c
  1.24      +61 -10    src/sys/kern/kern_lock.c
  1.21      +143 -120  src/sys/kern/vfs_lock.c
  1.21      +9 -7      src/sys/kern/vfs_mount.c
  1.93      +24 -11    src/sys/kern/vfs_subr.c
  1.99      +4 -4      src/sys/kern/vfs_syscalls.c
  1.18      +2 -0      src/sys/sys/lock.h
  1.64      +4 -3      src/sys/sys/vnode.h
  1.14      +3 -4      src/sys/vfs/procfs/procfs_subr.c
  1.32      +6 -8      src/sys/vfs/union/union_vnops.c


http://www.dragonflybsd.org/cvsweb/src/sys/emulation/linux/i386/linprocfs/linprocfs_subr.c.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_exit.c.diff?r1=1.58&r2=1.59&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_lock.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_lock.c.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_mount.c.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_subr.c.diff?r1=1.92&r2=1.93&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_syscalls.c.diff?r1=1.98&r2=1.99&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/lock.h.diff?r1=1.17&r2=1.18&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/vnode.h.diff?r1=1.63&r2=1.64&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/procfs/procfs_subr.c.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/union/union_vnops.c.diff?r1=1.31&r2=1.32&f=u





More information about the Commits mailing list