hammer2 - Performance work
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 12 Apr 2019 06:16:32 +0000 (23:16 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 12 Apr 2019 06:16:32 +0000 (23:16 -0700)
commit1159c75c92fbfdd230dd598904ede92791c00843
treeda350d3df7ad08c06d03f6edeaf26911c957097f
parent0c41f0551a4079325b16c8a3748b396560562018
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.
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_admin.c
sys/vfs/hammer2/hammer2_io.c
sys/vfs/hammer2/hammer2_vfsops.c