DragonFly commits List (threaded) for 2009-08
DragonFly BSD
DragonFly commits List (threaded) for 2009-08
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: BIOQ - Create a more sophisticated bursting mechanic for writes.


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 19 Aug 2009 23:34:00 -0700 (PDT)

commit 4afeea0db0b1a8e6b5132e06a39111a64ad2487e
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Wed Aug 19 23:27:58 2009 -0700

    BIOQ - Create a more sophisticated bursting mechanic for writes.
    
    * Add sysctls:
    
      vfs.bioq_reorder_minor_interval
      vfs.bioq_reorder_minor_bytes
    
      vfs.bioq_reorder_burst_interval
      vfs.bioq_reorder_burst_bytes
    
    * Reads are prioritized over writes.  Every N (minor_interval) reads
      up to (minor_bytes) worth of writes are allowed in order to avoid
      complete write starvation (which is just as bad as complete read
      starvation).
    
    * If a large amount of write data is queued to devices the related
      buffer cache buffers will be locked.  This is not a good place to
      be as any readers trying to access those buffers will then also
      block.
    
      When the amount of data is excessive the (burst_interval) and
      (burst_bytes) comes into play.  This primarily helps HAMMER
      flush cycles.
    
    * Try to keep vfs.hirunningspace reasonably bounded.  We do not want
      too large a value because of the above buffer locking issue.  On
      the flip side, we can have large numbers of delayed-write dirty buffers
      sitting around because they aren't locked.
    
    * When the buffer cache is hitting hidirtybufspace the buffer daemons
      now try to keep the vfs.runningbufspace at hirunningspace levels
      instead of lorunningspace levels in order to trigger the bioq's
      bursting mode.

Summary of changes:
 sys/dev/disk/nata/ata-queue.c |    4 +-
 sys/kern/subr_disk.c          |   83 +++++++++++++++++++++++++++++++----------
 sys/kern/vfs_bio.c            |   77 ++++++++++++++++++++++++++++----------
 sys/sys/buf.h                 |    7 ++-
 4 files changed, 127 insertions(+), 44 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/4afeea0db0b1a8e6b5132e06a39111a64ad2487e


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]