cvs commit: src/sys/vfs/hammer hammer.h hammer_cursor.c hammer_flusher.c hammer_inode.c hammer_io.c hammer_object.c hammer_ondisk.c hammer_recover.c hammer_vfsops.c hammer_vnops.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Wed Jun 11 15:34:00 PDT 2008
dillon 2008/06/11 15:33:21 PDT
DragonFly src repository
Modified files:
sys/vfs/hammer hammer.h hammer_cursor.c hammer_flusher.c
hammer_inode.c hammer_io.c
hammer_object.c hammer_ondisk.c
hammer_recover.c hammer_vfsops.c
hammer_vnops.c
Log:
HAMMER 54/Many: Performance tuning
* Implement hammer_vop_bmap().
* Implement cluster_read() support. This should jump up linear read
performance almost to the platter speed. I get 100 MB/sec testing
vs 35 MB/sec previously.
* Do a better job kicking an inode into the flusher when writing
sequentially. This hops up write rate at least +50%. It isn't
quite able to run at the platter speed due to B-Tree overheads
which will be addressed in a later patch.
* Do not create data fragments at the ends of files greater then 16K, use
a full 16K block. The reason is that fragments in HAMMER are allocated
out of a wholely different zone and we do not want to lose the chance of
making the tail end of the file contiguous.
Files less then 16K still use data fragments.
* Fix a machine lockup related to an interrupt race with biodone() and
insertions and deltions from hmp->lose_list.
* Fix a memory exhaustion issue.
Reported-by: Francois Tigeot <ftigeot at wolfpond.org> (machine lockup)
Credit-also: Jonathan Stuart on the 0 byte sized file bug fix.
Revision Changes Path
1.81 +8 -1 src/sys/vfs/hammer/hammer.h
1.28 +3 -1 src/sys/vfs/hammer/hammer_cursor.c
1.25 +14 -1 src/sys/vfs/hammer/hammer_flusher.c
1.71 +15 -2 src/sys/vfs/hammer/hammer_inode.c
1.39 +37 -23 src/sys/vfs/hammer/hammer_io.c
1.66 +6 -0 src/sys/vfs/hammer/hammer_object.c
1.54 +13 -2 src/sys/vfs/hammer/hammer_ondisk.c
1.24 +2 -0 src/sys/vfs/hammer/hammer_recover.c
1.45 +17 -2 src/sys/vfs/hammer/hammer_vfsops.c
1.66 +241 -28 src/sys/vfs/hammer/hammer_vnops.c
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.80&r2=1.81&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_cursor.c.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_flusher.c.diff?r1=1.24&r2=1.25&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_inode.c.diff?r1=1.70&r2=1.71&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_io.c.diff?r1=1.38&r2=1.39&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.65&r2=1.66&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ondisk.c.diff?r1=1.53&r2=1.54&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_recover.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vfsops.c.diff?r1=1.44&r2=1.45&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.65&r2=1.66&f=u
More information about the Commits
mailing list