aboutsummaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2008-10-20 09:44:28 -0400
committerJens Axboe <jens.axboe@oracle.com>2008-12-29 02:29:51 -0500
commit30e0dc28bff9dc456cdfc2aae4aca78b8b1a1cec (patch)
treecb72eba9e27bf893928189c832d29e97bbe132ad /block
parent31dcfab0ae6eb0340d456931df4d478e17efc65d (diff)
cfq-iosched: remove limit of dispatch depth of max 4 times quantum
This basically limits the hardware queue depth to 4*quantum at any point in time, which is 16 with the default settings. As CFQ uses other means to shrink the hardware queue when necessary in the first place, there's really no need for this extra heuristic. Additionally, it ends up hurting performance in some cases. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block')
-rw-r--r--block/cfq-iosched.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index adaf93a9d19d..ee8a90c7c46c 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -1136,12 +1136,8 @@ static int cfq_dispatch_requests(struct request_queue *q, int force)
1136 if (cfq_class_idle(cfqq)) 1136 if (cfq_class_idle(cfqq))
1137 max_dispatch = 1; 1137 max_dispatch = 1;
1138 1138
1139 if (cfqq->dispatched >= max_dispatch) { 1139 if (cfqq->dispatched >= max_dispatch && cfqd->busy_queues > 1)
1140 if (cfqd->busy_queues > 1) 1140 break;
1141 break;
1142 if (cfqq->dispatched >= 4 * max_dispatch)
1143 break;
1144 }
1145 1141
1146 if (cfqd->sync_flight && !cfq_cfqq_sync(cfqq)) 1142 if (cfqd->sync_flight && !cfq_cfqq_sync(cfqq))
1147 break; 1143 break;