From: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
To: Ged Haywood <ged@www2.jubileegroup.co.uk>
Cc: rddunlap@osdl.org, linux-kernel@vger.kernel.org
Subject: Re: All filesystems hang under long periods of heavy load (read and write) on a filesystem
Date: Mon, 29 Dec 2003 17:32:58 -0200 (BRST) [thread overview]
Message-ID: <Pine.LNX.4.58L.0312281816140.15034@logos.cnet> (raw)
In-Reply-To: <Pine.LNX.4.21.0312231544250.20325-100000@www2.jubileegroup.co.uk>
[-- Attachment #1: Type: TEXT/PLAIN, Size: 1103 bytes --]
On Tue, 23 Dec 2003, Ged Haywood wrote:
> Googled lots of similar postings, if anyone wants me to try anything
> out please let me know. Otherwise this is just a heads up to say that
> there is certainly something nasty in the released 2.4.23 IDE code...
<snip>
> Dec 23 12:19:01 www2 kernel: hdb: status timeout: status=0xd0 { Busy }
> Dec 23 12:19:01 www2 kernel: Dec 23 12:19:01 www2 kernel:
> hdb: no DRQ after issuing WRITE Dec 23 12:19:33 www2 kernel: ide0: reset timed-out,
> status=0x80 Dec 23 12:19:33 www2 kernel: hdb: status timeout:
> status=0xd0 { Busy } Dec 23 12:19:33 www2 kernel: Dec 23 12:19:33 www2
> kernel: hdb: no DRQ after issuing WRITE Dec 23 12:20:03 www2 kernel:
> ide0: reset timed-out, status=0x80 Dec 23 12:20:03 www2 kernel:
> end_request: I/O error, dev 03:41 (hdb), sector 35289088 ... #
Hi Ged,
I believe this migh caused by a problem in ide_wait where the kernel
thinks a timeout has happened but it hasnt in practice (the drive is ready
to go).
The attached patch from Daniel Lux should fix it. Its has just been
applied to the 2.4 BK tree.
Please try it.
[-- Attachment #2: Type: TEXT/PLAIN, Size: 1120 bytes --]
===== drivers/ide/ide-iops.c 1.7 vs 1.9 =====
--- 1.7/drivers/ide/ide-iops.c Sat Aug 9 11:48:39 2003
+++ 1.9/drivers/ide/ide-iops.c Sun Dec 28 18:14:05 2003
@@ -664,12 +664,22 @@
if ((stat = hwif->INB(IDE_STATUS_REG)) & BUSY_STAT) {
local_irq_set(flags);
timeout += jiffies;
- while ((stat = hwif->INB(IDE_STATUS_REG)) & BUSY_STAT) {
+ stat = hwif->INB(IDE_STATUS_REG);
+ while (stat & BUSY_STAT) {
if (time_after(jiffies, timeout)) {
- local_irq_restore(flags);
- *startstop = DRIVER(drive)->error(drive, "status timeout", stat);
- return 1;
+ /*
+ * do one more status read in case we were interrupted between last
+ * stat = hwif->INB(IDE_STATUS_REG) and time_after(jiffies, timeout)
+ * in wich case the timeout might have been shorter than specified.
+ */
+ if ((stat = hwif->INB(IDE_STATUS_REG)) & BUSY_STAT) {
+ local_irq_restore(flags);
+ *startstop = DRIVER(drive)->error(drive, "status timeout", stat);
+ return 1;
+ }
}
+ else
+ stat = hwif->INB(IDE_STATUS_REG);
}
local_irq_restore(flags);
}
next prev parent reply other threads:[~2003-12-29 19:39 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-23 18:01 Ged Haywood
2003-12-29 15:32 ` Ged Haywood
2003-12-29 19:32 ` Marcelo Tosatti [this message]
2003-12-31 17:26 ` Ged Haywood
-- strict thread matches above, loose matches on Subject: below --
2003-11-03 23:46 Shirley Shi
2003-11-04 7:33 ` bert hubert
2003-11-04 9:28 ` Bernd Petrovitsch
2003-11-04 15:52 ` Randy.Dunlap
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=Pine.LNX.4.58L.0312281816140.15034@logos.cnet \
--to=marcelo.tosatti@cyclades.com \
--cc=ged@www2.jubileegroup.co.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=rddunlap@osdl.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
all inboxes | Powered by JetHome®