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