aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShaohua Li <shaohua.li@intel.com>2009-12-04 07:12:06 -0500
committerJens Axboe <jens.axboe@oracle.com>2009-12-04 07:12:06 -0500
commit3c764b7a654668dd04905841d6024f7b6aa843a5 (patch)
tree68b7c611f5e98bab3c781ecc775a0ecf46c43b61
parent237e5bc4e51813e9d8ba9da0f63e7acc608882d7 (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>
-rw-r--r--block/cfq-iosched.c3
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 /*