diff options
author | Shaohua Li <shaohua.li@intel.com> | 2009-12-04 13:12:06 +0100 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2009-12-04 13:12:06 +0100 |
commit | 3c764b7a654668dd04905841d6024f7b6aa843a5 (patch) | |
tree | 68b7c611f5e98bab3c781ecc775a0ecf46c43b61 /block/cfq-iosched.c | |
parent | 237e5bc4e51813e9d8ba9da0f63e7acc608882d7 (diff) | |
download | lwn-3c764b7a654668dd04905841d6024f7b6aa843a5.tar.gz lwn-3c764b7a654668dd04905841d6024f7b6aa843a5.zip |
cfq-iosched: make nonrot check logic consistent
cfq_arm_slice_timer() has logic to disable idle window for SSD device. The same
thing should be done at cfq_select_queue() too, otherwise we will still see
idle window. This makes the nonrot check logic consistent in cfq.
Tests in a intel SSD with low_latency knob close, below patch can triple disk
thoughput for muti-thread sequential read.
Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block/cfq-iosched.c')
-rw-r--r-- | block/cfq-iosched.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index 43ec3340cb58..b00ca4c86e25 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c @@ -1796,7 +1796,8 @@ static bool cfq_should_idle(struct cfq_data *cfqd, struct cfq_queue *cfqq) return false; /* We do for queues that were marked with idle window flag. */ - if (cfq_cfqq_idle_window(cfqq)) + if (cfq_cfqq_idle_window(cfqq) && + !(blk_queue_nonrot(cfqd->queue) && cfqd->hw_tag)) return true; /* |