cfq-iosched: fix queue depth detection
authorAaron Carroll <aaronc@gelato.unsw.edu.au>
Tue, 26 Aug 2008 13:52:36 +0000 (15:52 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Thu, 9 Oct 2008 06:56:09 +0000 (08:56 +0200)
commit45333d5a31296d0af886d94f1d08f128231cab8e
treeea5b1afb70fb17935128bac6df588e6b5ae764b4
parent605401618ce4409045bc4db86e88d4b38f2ad585
cfq-iosched: fix queue depth detection

CFQ's detection of queueing devices assumes a non-queuing device and detects
if the queue depth reaches a certain threshold.  Under some workloads (e.g.
synchronous reads), CFQ effectively forces a unit queue depth, thus defeating
the detection logic.  This leads to poor performance on queuing hardware,
since the idle window remains enabled.

This patch inverts the sense of the logic: assume a queuing-capable device,
and detect if the depth does not exceed the threshold.

Signed-off-by: Aaron Carroll <aaronc@gelato.unsw.edu.au>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/cfq-iosched.c