cvs commit: src/sys/vfs/hammer hammer.h hammer_blockmap.c hammer_btree.c hammer_cursor.c hammer_disk.h hammer_flusher.c hammer_freemap.c hammer_inode.c hammer_io.c hammer_object.c hammer_ondisk.c hammer_undo.c hammer_vfsops.c hammer_vnops.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Mon Jun 16 21:03:49 PDT 2008
dillon 2008/06/16 21:02:39 PDT
DragonFly src repository
Modified files:
sys/vfs/hammer hammer.h hammer_blockmap.c hammer_btree.c
hammer_cursor.c hammer_disk.h
hammer_flusher.c hammer_freemap.c
hammer_inode.c hammer_io.c
hammer_object.c hammer_ondisk.c
hammer_undo.c hammer_vfsops.c
hammer_vnops.c
Log:
HAMMER 56A/Many: Performance tuning - MEDIA STRUCTURES CHANGED!
* MEDIA CHANGE: The blockmaps have been folded into the freemap. Allocations
are now made directly out of the freemap. More work is expected here.
The blockmaps are still used to sequence allocations, but no block
number translation is required any more. This didn't improve performance
much but it will make it easier for future optimizations to localize
allocations.
* PERFORMANCE: Removed the holes recording code. Another commit will
soon take over the functionality.
* PERFORMANCE: The flusher's slave threads now collect a number of inodes
into a batch before starting their work, in an attempt to reduce
deadlocks between slave threads from adjacent inodes.
* PERFORMANCE: B-Tree positional caching now works much better, greatly
reducing the cpu overhead when accessing the filesystem.
* PERFORMANCE: Added a write-append optimization. Do not do a
lookup/iteration to locate records being overwritten when no such
records should exist. This cuts the cpu overhead of write-append
flushes in half.
* PERFORMANCE: Add a vfs.hammer.write_mode sysctl feature to test out
two different ways of queueing write I/O's.
* Added B-Tree statistics (hammer bstats 1).
Revision Changes Path
1.85 +18 -36 src/sys/vfs/hammer/hammer.h
1.19 +365 -559 src/sys/vfs/hammer/hammer_blockmap.c
1.54 +13 -0 src/sys/vfs/hammer/hammer_btree.c
1.30 +4 -0 src/sys/vfs/hammer/hammer_cursor.c
1.37 +34 -34 src/sys/vfs/hammer/hammer_disk.h
1.28 +28 -7 src/sys/vfs/hammer/hammer_flusher.c
1.17 +4 -0 src/sys/vfs/hammer/hammer_freemap.c
1.76 +44 -13 src/sys/vfs/hammer/hammer_inode.c
1.42 +4 -0 src/sys/vfs/hammer/hammer_io.c
1.69 +46 -3 src/sys/vfs/hammer/hammer_object.c
1.58 +10 -4 src/sys/vfs/hammer/hammer_ondisk.c
1.17 +1 -3 src/sys/vfs/hammer/hammer_undo.c
1.48 +30 -53 src/sys/vfs/hammer/hammer_vfsops.c
1.71 +23 -2 src/sys/vfs/hammer/hammer_vnops.c
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.84&r2=1.85&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_blockmap.c.diff?r1=1.18&r2=1.19&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_btree.c.diff?r1=1.53&r2=1.54&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_cursor.c.diff?r1=1.29&r2=1.30&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_disk.h.diff?r1=1.36&r2=1.37&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_flusher.c.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_freemap.c.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_inode.c.diff?r1=1.75&r2=1.76&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_io.c.diff?r1=1.41&r2=1.42&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.68&r2=1.69&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ondisk.c.diff?r1=1.57&r2=1.58&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_undo.c.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vfsops.c.diff?r1=1.47&r2=1.48&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.70&r2=1.71&f=u
More information about the Commits
mailing list