aboutsummaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
Diffstat (limited to 'block')
-rw-r--r--block/cfq-iosched.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index fea1b5a9b7e9..7785169f3c8f 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -2417,19 +2417,14 @@ static bool cfq_may_dispatch(struct cfq_data *cfqd, struct cfq_queue *cfqq)
2417 return false; 2417 return false;
2418 2418
2419 /* 2419 /*
2420 * If there is only one sync queue, and its think time is 2420 * If there is only one sync queue
2421 * small, we can ignore async queue here and give the sync 2421 * we can ignore async queue here and give the sync
2422 * queue no dispatch limit. The reason is a sync queue can 2422 * queue no dispatch limit. The reason is a sync queue can
2423 * preempt async queue, limiting the sync queue doesn't make 2423 * preempt async queue, limiting the sync queue doesn't make
2424 * sense. This is useful for aiostress test. 2424 * sense. This is useful for aiostress test.
2425 */ 2425 */
2426 if (cfq_cfqq_sync(cfqq) && cfqd->busy_sync_queues == 1) { 2426 if (cfq_cfqq_sync(cfqq) && cfqd->busy_sync_queues == 1)
2427 struct cfq_io_context *cic = RQ_CIC(cfqq->next_rq); 2427 promote_sync = true;
2428
2429 if (sample_valid(cic->ttime_samples) &&
2430 cic->ttime_mean < cfqd->cfq_slice_idle)
2431 promote_sync = true;
2432 }
2433 2428
2434 /* 2429 /*
2435 * We have other queues, don't allow more IO from this one 2430 * We have other queues, don't allow more IO from this one