From: Jens Axboe Date: Thu, 1 Jun 2006 16:53:43 +0000 (+0200) Subject: [PATCH] cfq-iosched: busy_rr fairness fix X-Git-Tag: v2.6.17-rc6~52 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b52a834892f17b6c54c34ab65f1fad1a9229e764;p=linux-2.6 [PATCH] cfq-iosched: busy_rr fairness fix Now that we select busy_rr for possible service, insert entries at the back of that list instead of at the front. Signed-off-by: Jens Axboe --- diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index 85d188a30f..8e9d84825e 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c @@ -501,10 +501,13 @@ static void cfq_resort_rr_list(struct cfq_queue *cfqq, int preempted) /* * if queue was preempted, just add to front to be fair. busy_rr - * isn't sorted. + * isn't sorted, but insert at the back for fairness. */ if (preempted || list == &cfqd->busy_rr) { - list_add(&cfqq->cfq_list, list); + if (preempted) + list = list->prev; + + list_add_tail(&cfqq->cfq_list, list); return; }