git: hammer2 - Performance work

Matthew Dillon dillon at
Thu Apr 11 23:29:04 PDT 2019

commit 1159c75c92fbfdd230dd598904ede92791c00843
Author: Matthew Dillon <dillon at>
Date:   Thu Apr 11 23:16:32 2019 -0700

    hammer2 - Performance work
    * Implement immediate (async) flush follow-through when OS requests
      it, with write-clustering support at the device level if enabled.
      Write-clustering support at the device level is disabled by default
      because H2 already uses a fairly large and efficient 64K block size.
    * Change the XOP dispatch for strategy functions.  Further partition
      strategy functions by read or write to prevent reads from getting
      stuck behind long write chains.
      Also do not span-out I/O related to a single inode across too many
      XOP threads as doing so creates a massive amount of unnecessary
      lock contention.
    * Significantly improves concurrent filesystem ops and I/O and
      significantly improves sequential filesystem write I/O.

Summary of changes:
 sys/vfs/hammer2/hammer2.h        |  2 ++
 sys/vfs/hammer2/hammer2_admin.c  | 43 +++++++++++++++++++++++-----
 sys/vfs/hammer2/hammer2_io.c     | 60 +++++++++++++++++++---------------------
 sys/vfs/hammer2/hammer2_vfsops.c |  3 ++
 4 files changed, 70 insertions(+), 38 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list