cfq-iosched: don't idle if a deep seek queue is slow
authorShaohua Li <shaohua.li@intel.com>
Mon, 8 Nov 2010 14:01:04 +0000 (15:01 +0100)
committerJens Axboe <jaxboe@fusionio.com>
Mon, 8 Nov 2010 14:01:04 +0000 (15:01 +0100)
commit8e1ac6655104bc6e1e79d67e2df88cc8fa9b6e07
tree2ba1aadf339af7d69931151e9d51f8054753ff85
parentd2d59e18a1ea8ecdd1c0a52af320e9a7f5391cc4
cfq-iosched: don't idle if a deep seek queue is slow

If a deep seek queue slowly deliver requests but disk is much faster, idle
for the queue just wastes disk throughput. If the queue delevers all requests
before half its slice is used, the patch disable idle for it.
In my test, application delivers 32 requests one time, the disk can accept
128 requests at maxium and disk is fast. without the patch, the throughput
is just around 30m/s, while with it, the speed is about 80m/s. The disk is
a SSD, but is detected as a rotational disk. I can configure it as SSD, but
I thought the deep seek queue logic should be fixed too, for example,
considering a fast raid.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
block/cfq-iosched.c