NATA disk sort / elevator algorithm adjustments.
authorMatthew Dillon <dillon@apollo.backplane.com>
Tue, 20 Jan 2009 00:53:46 +0000 (16:53 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Tue, 20 Jan 2009 00:53:46 +0000 (16:53 -0800)
commit03a48513afad310c17e251b2950c17ea6b6936d2
tree751fc970a2c4890e36144cc64e97eb6d35ca0c35
parentd40bfeca35caa9f1c470a05381618447b19746c9
NATA disk sort / elevator algorithm adjustments.

Move the sortq_lost counter from the request structure to the channel
structure to fix some edge conditions.  Limit the sort to a maximum of
16 elements before moving the freeze pointer.

This should improve the protection against large continuous linear reads
and writes which can delay unrelated I/O's for very long periods of time.

Reported-by: Hasso Tepper <sinknull@crater.dragonflybsd.org>,
     "Simon 'corecode' Schubert" <corecode@fs.ei.tum.de>
sys/dev/disk/nata/ata-all.h
sys/dev/disk/nata/ata-queue.c