cfq-iosched: remove limit of dispatch depth of max 4 times quantum
authorJens Axboe <jens.axboe@oracle.com>
Mon, 20 Oct 2008 13:44:28 +0000 (15:44 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Mon, 29 Dec 2008 07:29:51 +0000 (08:29 +0100)
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>
block/cfq-iosched.c

index adaf93a9d19d77889d89e938734503ed6332f597..ee8a90c7c46cab5a48f1eb8d0620dbf8ff030499 100644 (file)
@@ -1136,12 +1136,8 @@ static int cfq_dispatch_requests(struct request_queue *q, int force)
                if (cfq_class_idle(cfqq))
                        max_dispatch = 1;
 
-               if (cfqq->dispatched >= max_dispatch) {
-                       if (cfqd->busy_queues > 1)
-                               break;
-                       if (cfqq->dispatched >= 4 * max_dispatch)
-                               break;
-               }
+               if (cfqq->dispatched >= max_dispatch && cfqd->busy_queues > 1)
+                       break;
 
                if (cfqd->sync_flight && !cfq_cfqq_sync(cfqq))
                        break;