aboutsummaryrefslogtreecommitdiffstats
path: root/block/blk-barrier.c
diff options
context:
space:
mode:
authorCorrado Zoccolo <czoccolo@gmail.com>2009-11-26 10:02:57 +0100
committerJens Axboe <jens.axboe@oracle.com>2009-11-26 10:02:57 +0100
commite459dd08f45d2aa68abb0c02f8ab045cf8a598b8 (patch)
treee5bba2c95dbbd93d2880fdc81e1ea7589625a6ed /block/blk-barrier.c
parentMerge branch 'for-jens' of git://git.drbd.org/linux-2.6-drbd into for-2.6.33 (diff)
downloadlinux-dev-e459dd08f45d2aa68abb0c02f8ab045cf8a598b8.tar.xz
linux-dev-e459dd08f45d2aa68abb0c02f8ab045cf8a598b8.zip
cfq-iosched: fix ncq detection code
CFQ's detection of queueing devices initially assumes a queuing device and detects if the queue depth reaches a certain threshold. However, it will reconsider this choice periodically. Unfortunately, if device is considered not queuing, CFQ will force a unit queue depth for some workloads, thus defeating the detection logic. This leads to poor performance on queuing hardware, since the idle window remains enabled. Given this premise, switching to hw_tag = 0 after we have proved at least once that the device is NCQ capable is not a good choice. The new detection code starts in an indeterminate state, in which CFQ behaves as if hw_tag = 1, and then, if for a long observation period we never saw large depth, we switch to hw_tag = 0, otherwise we stick to hw_tag = 1, without reconsidering it again. Signed-off-by: Corrado Zoccolo <czoccolo@gmail.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block/blk-barrier.c')
0 files changed, 0 insertions, 0 deletions