]> err.no Git - linux-2.6/commitdiff
cfq-iosched: tighten queue request overlap condition
authorJens Axboe <jens.axboe@oracle.com>
Fri, 20 Apr 2007 18:45:39 +0000 (20:45 +0200)
committerJens Axboe <axboe@nelson.home.kernel.dk>
Mon, 30 Apr 2007 07:01:23 +0000 (09:01 +0200)
For tagged devices, allow overlap of requests if the idle window
isn't enabled on the current active queue.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/cfq-iosched.c

index a8237be97a28d12e6684c7a6744ea9f881253a78..e859b4966e4ccddeaa361177cf57dba568aa3657 100644 (file)
@@ -989,7 +989,8 @@ static struct cfq_queue *cfq_select_queue(struct cfq_data *cfqd)
         * flight or is idling for a new request, allow either of these
         * conditions to happen (or time out) before selecting a new queue.
         */
-       if (cfqq->dispatched || timer_pending(&cfqd->idle_slice_timer)) {
+       if (timer_pending(&cfqd->idle_slice_timer) ||
+           (cfqq->dispatched && cfq_cfqq_idle_window(cfqq))) {
                cfqq = NULL;
                goto keep_queue;
        }