cvs commit: src/sys/vfs/hammer hammer.h hammer_blockmap.c hammer_cursor.c hammer_object.c hammer_ondisk.c hammer_vnops.c

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Jun 30 19:11:03 PDT 2008


dillon      2008/06/30 19:08:58 PDT

DragonFly src repository

  Modified files:
    sys/vfs/hammer       hammer.h hammer_blockmap.c 
                         hammer_cursor.c hammer_object.c 
                         hammer_ondisk.c hammer_vnops.c 
  Log:
  HAMMER 59G/Many: Stabilization pass (low memory issues)
  
  Make adjustments in an attempt to remove deadlocks from the pageout and
  buffer flushing paths when a system is low on memory.
  
  * Restructure the low level storage allocator to use layer2->append_off
    and to move the blockmap lock deeper into the routine, pass the buffer
    ops.
  
  * Do kmalloc()'s of critical structures accessed by the backend with
    M_USE_RESERVE.
  
  * Have hammer_vop_write() call bwillwrite() unconditionally, even if
    called from the pageout daemon.  Do not release or relock the vnode
    at all.
  
    Theoretically bwillwrite() in the pageout path should still allow
    strategy calls from the buf_daemon threads to proceed, and not deadlock.
  
  Reported-by: Gergo Szakal <bastyaelvtars at gmail.com>
  
  Revision  Changes    Path
  1.99      +1 -2      src/sys/vfs/hammer/hammer.h
  1.21      +130 -120  src/sys/vfs/hammer/hammer_blockmap.c
  1.34      +4 -0      src/sys/vfs/hammer/hammer_cursor.c
  1.80      +2 -1      src/sys/vfs/hammer/hammer_object.c
  1.64      +3 -2      src/sys/vfs/hammer/hammer_ondisk.c
  1.79      +32 -46    src/sys/vfs/hammer/hammer_vnops.c


http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.98&r2=1.99&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_blockmap.c.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_cursor.c.diff?r1=1.33&r2=1.34&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.79&r2=1.80&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ondisk.c.diff?r1=1.63&r2=1.64&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.78&r2=1.79&f=u





More information about the Commits mailing list