DragonFly commits List (threaded) for 2008-04
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
cvs commit: src/sys/dev/disk/vn vn.c src/sys/kern vfs_bio.c vfs_cluster.c src/sys/sys buf.h vnode.h src/sys/vfs/nfs nfs_bio.c src/sys/vfs/ufs ufs_readwrite.c
dillon 2008/04/22 11:46:54 PDT
DragonFly src repository
Modified files:
sys/dev/disk/vn vn.c
sys/kern vfs_bio.c vfs_cluster.c
sys/sys buf.h vnode.h
sys/vfs/nfs nfs_bio.c
sys/vfs/ufs ufs_readwrite.c
Log:
Fix some IO sequencing performance issues and reformulate the strategy
we use to deal with potential buffer cache deadlocks. Generally speaking
try to remove roadblocks in the vn_strategy() path.
* Remove buf->b_tid (HAMMER no longer needs it)
* Replace IO_NOWDRAIN with IO_NOBWILL, requesting that bwillwrite() not
be called. Used by VN to try to avoid deadlocking. Remove B_NOWDRAIN.
* No longer block in bwrite() or getblk() when we have a lot of dirty
buffers. getblk() in particular needs to be callable by filesystems
to drain dirty buffers and we don't want to deadlock.
* Improve bwillwrite() by having it wake up the buffer flusher at 1/2 the
dirty buffer limit but not block, and then block if the limit is reached.
This should smooth out flushes during heavy filesystem activity.
Revision Changes Path
1.37 +1 -1 src/sys/dev/disk/vn/vn.c
1.99 +15 -28 src/sys/kern/vfs_bio.c
1.33 +1 -1 src/sys/kern/vfs_cluster.c
1.44 +2 -8 src/sys/sys/buf.h
1.78 +5 -1 src/sys/sys/vnode.h
1.43 +0 -6 src/sys/vfs/nfs/nfs_bio.c
1.25 +0 -2 src/sys/vfs/ufs/ufs_readwrite.c
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/vn/vn.c.diff?r1=1.36&r2=1.37&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_bio.c.diff?r1=1.98&r2=1.99&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_cluster.c.diff?r1=1.32&r2=1.33&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/buf.h.diff?r1=1.43&r2=1.44&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/vnode.h.diff?r1=1.77&r2=1.78&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_bio.c.diff?r1=1.42&r2=1.43&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/ufs_readwrite.c.diff?r1=1.24&r2=1.25&f=u
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]