diff options
author | Shaohua Li <shaohua.li@intel.com> | 2009-12-04 07:12:06 -0500 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2009-12-04 07:12:06 -0500 |
commit | 3c764b7a654668dd04905841d6024f7b6aa843a5 (patch) | |
tree | 68b7c611f5e98bab3c781ecc775a0ecf46c43b61 /block | |
parent | 237e5bc4e51813e9d8ba9da0f63e7acc608882d7 (diff) |
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')
-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) | |||
1796 | return false; | 1796 | return false; |
1797 | 1797 | ||
1798 | /* We do for queues that were marked with idle window flag. */ | 1798 | /* We do for queues that were marked with idle window flag. */ |
1799 | if (cfq_cfqq_idle_window(cfqq)) | 1799 | if (cfq_cfqq_idle_window(cfqq) && |
1800 | !(blk_queue_nonrot(cfqd->queue) && cfqd->hw_tag)) | ||
1800 | return true; | 1801 | return true; |
1801 | 1802 | ||
1802 | /* | 1803 | /* |