Re: [PROBLEM] Badness in cfq_account_completion at drivers/block/cfq-iosched.c:916

From: Srihari Vijayaraghavan
Date: Tue Jan 11 2005 - 20:38:10 EST


--- Jens Axboe <axboe@xxxxxxx> wrote:
> ...
> Does this fix it?
>
> ===== drivers/block/cfq-iosched.c 1.17 vs edited
> =====
> --- 1.17/drivers/block/cfq-iosched.c 2004-12-24
> 09:12:58 +01:00
> +++ edited/drivers/block/cfq-iosched.c 2005-01-11
> 10:03:17 +01:00
> @@ -622,8 +622,10 @@
> cfq_sort_rr_list(cfqq, 0);
> }
>
> - crq->accounted = 0;
> - cfqq->cfqd->rq_in_driver--;
> + if (crq->accounted) {
> + crq->accounted = 0;
> + cfqq->cfqd->rq_in_driver--;
> + }
> }
> list_add(&rq->queuelist, &q->queue_head);
> }

Yes, it does fix the problem with cfq, and the system
works fine. No more "Badness" error messages. Thanks
Jens.

While you are at it, is this acceptable?:
--- test/drivers/block/elevator.c.orig 2005-01-11
15:47:07.000000000 +1100
+++ test/drivers/block/elevator.c 2005-01-12
12:16:19.365813400 +1100
@@ -170,8 +170,6 @@
#else
#error "You must build at least 1 IO scheduler into
the kernel"
#endif
- printk(KERN_INFO "elevator: using %s as default io
scheduler\n",
- chosen_elevator);
}

static int __init elevator_setup(char *str)
@@ -516,6 +514,9 @@
spin_unlock_irq(&elv_list_lock);

printk(KERN_INFO "io scheduler %s registered\n",
e->elevator_name);
+ if (!strcmp(e->elevator_name, chosen_elevator))
+ printk(KERN_INFO "elevator: using %s as default io
scheduler\n",
+
e->elevator_name);
return 0;
}
EXPORT_SYMBOL_GPL(elv_register);

It has an advantage of working even when one uses
"elevator=" kernel boot parameter. If it is wrong
completely, I am sorry about it.

Thank you.
Hari

PS: I am using web email interface, if things appear
funny, sorry about that.


Find local movie times and trailers on Yahoo! Movies.
http://au.movies.yahoo.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/