aboutsummaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
Diffstat (limited to 'block')
-rw-r--r--block/cfq-iosched.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 986865e3fbc5..ca4d19907243 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -2285,6 +2285,17 @@ static struct cfq_queue *cfq_select_queue(struct cfq_data *cfqd)
2285 goto keep_queue; 2285 goto keep_queue;
2286 } 2286 }
2287 2287
2288 /*
2289 * This is a deep seek queue, but the device is much faster than
2290 * the queue can deliver, don't idle
2291 **/
2292 if (CFQQ_SEEKY(cfqq) && cfq_cfqq_idle_window(cfqq) &&
2293 (cfq_cfqq_slice_new(cfqq) ||
2294 (cfqq->slice_end - jiffies > jiffies - cfqq->slice_start))) {
2295 cfq_clear_cfqq_deep(cfqq);
2296 cfq_clear_cfqq_idle_window(cfqq);
2297 }
2298
2288 if (cfqq->dispatched && cfq_should_idle(cfqd, cfqq)) { 2299 if (cfqq->dispatched && cfq_should_idle(cfqd, cfqq)) {
2289 cfqq = NULL; 2300 cfqq = NULL;
2290 goto keep_queue; 2301 goto keep_queue;