HAMMER VFS - Limit queued I/O during flush
authorMatthew Dillon <dillon@apollo.backplane.com>
Sun, 15 Aug 2010 20:19:00 +0000 (13:19 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sun, 15 Aug 2010 20:19:00 +0000 (13:19 -0700)
commitba298df11258371e19c97d2843e37e503b9459c3
tree261147b28a2dc5b7dab914a157f51b5364d4725b
parentbdb32f11dc20a0469bababb2333b2dbd29bad1d0
HAMMER VFS - Limit queued I/O during flush

* Add sysctl vfs.hammer.limit_running_io and preset to a reasonable
  value.

* The flusher was queueing all dirty buffers all at once, sometimes leading
  to 80MB+ worth of I/O.  This blew away dm_crypto (caused it to exceed
  its malloc limit), and also results in generally poor kernel memory
  behavior.

  Limit the amount of in-flight I/O allowed during a flush to ~10MB or so,
  which should be plenty.
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_flusher.c
sys/vfs/hammer/hammer_io.c
sys/vfs/hammer/hammer_vfsops.c