From: Jens Axboe <axboe@suse.de>
To: Eric Valette <eric.valette@free.fr>
Cc: linux-kernel@vger.kernel.org
Subject: Re: 2.6.5-rc1-mm2 : Badness in elv_requeue_request at drivers/block/elevator.c:157
Date: Thu, 18 Mar 2004 11:06:06 +0100 [thread overview]
Message-ID: <20040318100606.GG22234@suse.de> (raw)
In-Reply-To: <20040318100222.GE22234@suse.de>
On Thu, Mar 18 2004, Jens Axboe wrote:
> On Thu, Mar 18 2004, Eric Valette wrote:
> > I have this message two times as I have two adaptec controllers...
> >
> > Attached my .config and the dmesg output
> >
> > ksymoops 2.4.9 on i686 2.6.5-rc1-mm2. Options used
> > -V (default)
> > -k /proc/ksyms (default)
> > -l /proc/modules (default)
> > -o /lib/modules/2.6.5-rc1-mm2/ (default)
> > -m /System.map (specified)
> >
> > Error (regular_file): read_ksyms stat /proc/ksyms failed
> > No modules in ksyms, skipping objects
> > No ksyms, skipping lsmod
> > CPU 0 irqstacks, hard=c05f7000 soft=c05f6000
> > Call Trace:
> > [<c02b268d>] elv_requeue_request+0x8d/0xa0
>
> Ah damn, requeue through blk_insert_request... Let me think about this
> a bit, I'll post a fix for you.
Does this work for you?
--- drivers/block/elevator.c~ 2004-03-18 10:56:34.494431670 +0100
+++ drivers/block/elevator.c 2004-03-18 11:05:00.115063157 +0100
@@ -153,7 +153,7 @@
* it already went through dequeue, we need to decrement the
* in_flight count again
*/
- if (blk_rq_started(rq)) {
+ if (blk_account_rq(rq)) {
WARN_ON(q->in_flight == 0);
q->in_flight--;
}
@@ -244,7 +244,7 @@
* driver has seen (REQ_STARTED set), to avoid false accounting
* for request-request merges
*/
- if (blk_rq_started(rq)) {
+ if (blk_account_rq(rq)) {
q->in_flight++;
WARN_ON(q->in_flight > 2 * q->nr_requests);
}
@@ -341,7 +341,7 @@
/*
* request is released from the driver, io must be done
*/
- if (blk_rq_started(rq)) {
+ if (blk_account_rq(rq)) {
WARN_ON(q->in_flight == 0);
q->in_flight--;
}
--- include/linux/blkdev.h~ 2004-03-18 11:03:59.431584757 +0100
+++ include/linux/blkdev.h 2004-03-18 11:05:16.980250506 +0100
@@ -381,6 +381,8 @@
#define blk_noretry_request(rq) ((rq)->flags & REQ_FAILFAST)
#define blk_rq_started(rq) ((rq)->flags & REQ_STARTED)
+#define blk_account_rq(rq) (blk_rq_started(rq) && blk_fs_request(rq))
+
#define blk_pm_suspend_request(rq) ((rq)->flags & REQ_PM_SUSPEND)
#define blk_pm_resume_request(rq) ((rq)->flags & REQ_PM_RESUME)
#define blk_pm_request(rq) \
--
Jens Axboe
next prev parent reply other threads:[~2004-03-18 10:06 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-18 9:45 2.6.5-rc1-mm2 : Badness in elv_requeue_request at drivers/block/elevator.c:157 Eric Valette
2004-03-18 10:02 ` Jens Axboe
2004-03-18 10:06 ` Jens Axboe [this message]
2004-03-18 10:37 ` Eric Valette
2004-03-18 11:07 ` Jens Axboe
2004-03-18 23:19 ` J.A. Magallon
2004-03-19 7:37 ` Jens Axboe
2004-03-19 23:25 ` J.A. Magallon
2004-03-20 10:05 ` Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040318100606.GG22234@suse.de \
--to=axboe@suse.de \
--cc=eric.valette@free.fr \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox