bioqdisksort - refactor I/O queueing to fix read starvation issues.
authorMatthew Dillon <dillon@apollo.backplane.com>
Wed, 19 Aug 2009 20:59:39 +0000 (13:59 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Wed, 19 Aug 2009 20:59:39 +0000 (13:59 -0700)
commit30e5862e1cc9f2ce71e9c1cc2c6012a6fcdb73c7
tree21352817bcbbc93e0aeed4fcb9a69219bd76d4c3
parentde996e865902051a4e8e4945e7116be8850f871c
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.
sys/kern/subr_disk.c
sys/sys/buf.h
sys/sys/buf2.h