git: HAMMER VFS - Improve saturated write performance (2).

Matthew Dillon dillon at
Tue Jan 11 01:25:53 PST 2011

commit 1afb73cf098b11a9457b91c7e5f165f66efeceb6
Author: Matthew Dillon <dillon at>
Date:   Mon Jan 10 23:17:34 2011 -0800

    HAMMER VFS - Improve saturated write performance (2).
    * Change the dirty io buffer lists from TAILQs to Red-Black trees.
    * The dirty io buffers are sorted by disk address on a flush-group by
      flush-group basis and I/O writes are initiated in sorted order.
      This significantly improves write I/O throughput to normal HDs.
      Essentially what is happening here is that the sheer number of
      unsorted buffers are overwhelming the HDs own caches.  Having HAMMER
      pre-sort the buffers, of which there can be upwards of 100MBs worth,
      allow the HD to write more optimally.

Summary of changes:
 sys/vfs/hammer/hammer.h         |   18 +++++----
 sys/vfs/hammer/hammer_flusher.c |   24 ++++++------
 sys/vfs/hammer/hammer_io.c      |   76 +++++++++++++++++++++++++-------------
 sys/vfs/hammer/hammer_ondisk.c  |   20 +++++-----
 sys/vfs/hammer/hammer_vfsops.c  |   10 +++---
 5 files changed, 87 insertions(+), 61 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list