diff options
author | Jens Axboe <axboe@suse.de> | 2006-06-01 12:53:43 -0400 |
---|---|---|
committer | Jens Axboe <axboe@suse.de> | 2006-06-01 12:53:43 -0400 |
commit | b52a834892f17b6c54c34ab65f1fad1a9229e764 (patch) | |
tree | 0f66d6a310f108bb1f0badd3ebea3b1db0a163f6 /block/cfq-iosched.c | |
parent | ae818a38d4755ba4c16a22a8eacec859511a5393 (diff) |
[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 <axboe@suse.de>
Diffstat (limited to 'block/cfq-iosched.c')
-rw-r--r-- | block/cfq-iosched.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index 85d188a30f82..8e9d84825e1c 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) | |||
501 | 501 | ||
502 | /* | 502 | /* |
503 | * if queue was preempted, just add to front to be fair. busy_rr | 503 | * if queue was preempted, just add to front to be fair. busy_rr |
504 | * isn't sorted. | 504 | * isn't sorted, but insert at the back for fairness. |
505 | */ | 505 | */ |
506 | if (preempted || list == &cfqd->busy_rr) { | 506 | if (preempted || list == &cfqd->busy_rr) { |
507 | list_add(&cfqq->cfq_list, list); | 507 | if (preempted) |
508 | list = list->prev; | ||
509 | |||
510 | list_add_tail(&cfqq->cfq_list, list); | ||
508 | return; | 511 | return; |
509 | } | 512 | } |
510 | 513 | ||