kernel - Enhance getcacheblk() (improve saturated write performance (3)).
authorMatthew Dillon <dillon@apollo.backplane.com>
Tue, 11 Jan 2011 09:19:55 +0000 (01:19 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Tue, 11 Jan 2011 09:19:55 +0000 (01:19 -0800)
commit72d6a027d96b30c52d242ce162021efcecfe2bb9
treeaa36ad17e09077961af7f2407b839bdc8542d25f
parentb43371dc679ac8b469adeb209318b02e447c6dad
kernel - Enhance getcacheblk() (improve saturated write performance (3)).

* Change getcacheblk() to use getblk() instead of findblk() when the
  block size is known, allowing a cached buffer to be reinstantiated
  from VM backing store in the MPSAFE path.

  Well, mostly MPSAFE, the vm_token is still acquired, but this is still
  much faster than what HAMMER does when the buffer is not in-cache.

* This more than doubles blogbench performance w/HAMMER and further reduces
  concurrent read vs write conflicts.
sys/kern/vfs_bio.c
sys/sys/buf.h
sys/vfs/hammer/hammer_vnops.c
sys/vfs/tmpfs/tmpfs_vnops.c