git: bioqdisksort - refactor I/O queueing to fix read starvation issues.

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Aug 19 14:05:33 PDT 2009


commit 30e5862e1cc9f2ce71e9c1cc2c6012a6fcdb73c7
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Aug 19 13:59:39 2009 -0700

    bioqdisksort - refactor I/O queueing to fix read starvation issues.
    
    It is possible to queue several hundred megabytes worth of write I/O's
    all at once.  When this occurs, whether we sort the queue or not, reads
    wind up getting seriously starved.
    
    Refactor bioqdisksort() to prioritize reads over writes and to also allow
    writes to 'leak' into the read space every so often to prevent write
    starvation.  The new code is designed to make best use of drive zone caches.

Summary of changes:
 sys/kern/subr_disk.c |  169 +++++++++++++++++++------------------------------
 sys/sys/buf.h        |    8 +-
 sys/sys/buf2.h       |   56 ++++++----------
 3 files changed, 91 insertions(+), 142 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/30e5862e1cc9f2ce71e9c1cc2c6012a6fcdb73c7


-- 
DragonFly BSD source repository





More information about the Commits mailing list