kernel - limit running io writes during fsync
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 20 Aug 2010 05:33:35 +0000 (22:33 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 20 Aug 2010 05:33:35 +0000 (22:33 -0700)
commitaa1bfd980e3d7a445119a5675015ac921274ace7
tree8085ff710f7b26116092f81438016db35c2e3cd3
parent4d8329e1f01a57be13f991f90261850a650f84a3
kernel - limit running io writes during fsync

* The fsync code was queueing an unlimited number of BUF/BIOs while
  flushing a file, which creates a very large write burden on the
  system, read stalls due to locked buffers, and can also blow out
  things like dm_target_crypt which must allocate side-buffers for
  the data.

* Fixes kmalloc exhaustion panics with dm_crypt.

* Improves read performance under heavy write loads (e.g. blogbench).
sys/kern/vfs_bio.c
sys/kern/vfs_subr.c
sys/sys/buf.h