From cb8874119e9a3ec38c45942808c91cfbc014f402 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Fri, 19 Jan 2007 12:01:16 +1100 Subject: cfq-iosched: tweak the FIFO checking We currently check the FIFO once per slice. Optimize that a bit and only do it as the first thing for a new slice, so we don't end up doing a single request and then seek to the FIFO requests. Signed-off-by: Jens Axboe --- block/cfq-iosched.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'block') diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index 3df41a00b55..03b1e474b2b 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c @@ -885,16 +885,17 @@ static inline struct request *cfq_check_fifo(struct cfq_queue *cfqq) if (cfq_cfqq_fifo_expire(cfqq)) return NULL; + + cfq_mark_cfqq_fifo_expire(cfqq); + if (list_empty(&cfqq->fifo)) return NULL; fifo = cfq_cfqq_class_sync(cfqq); rq = rq_entry_fifo(cfqq->fifo.next); - if (time_after(jiffies, rq->start_time + cfqd->cfq_fifo_expire[fifo])) { - cfq_mark_cfqq_fifo_expire(cfqq); + if (time_after(jiffies, rq->start_time + cfqd->cfq_fifo_expire[fifo])) return rq; - } return NULL; } -- cgit v1.2.3