From: Tejun Heo <htejun@gmail.com>
To: "Martin Ammermüller" <tenco@gmx.de>
Cc: linux-ide@vger.kernel.org, jgarzik@pobox.com
Subject: Re: [sata_sil] kernel 2.6.17(-mm2) test - timeout issue
Date: Mon, 31 Jul 2006 05:22:42 +0900 [thread overview]
Message-ID: <44CD1512.1060802@gmail.com> (raw)
In-Reply-To: <1153729271.3860.14.camel@localhost>
[-- Attachment #1: Type: text/plain, Size: 2201 bytes --]
Martin Ammermüller wrote:
> With high disk I/O and a 2.6.18-rc1 kernel i get these errors (depending
> upon the work i do, up to several times a day):
>
> ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x400000 action 0x2 frozen
> ata1.00: (BMDMA stat 0x20)
> ata1.00: tag 0 cmd 0xc8 Emask 0x2 stat 0x58 err 0x0 (HSM violation)
Hmm... Interesting. It gets HSM violation first.
> ata1: soft resetting port
> ata1: port is slow to respond, please be patient
> ata1: port failed to respond (30 secs)
> ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
> ATA: abnormal status 0xD8 on port 0xDCA18087
> ATA: abnormal status 0xD8 on port 0xDCA18087
> ATA: abnormal status 0xD8 on port 0xDCA18087
> ATA: abnormal status 0xD8 on port 0xDCA18087
> ATA: abnormal status 0xD8 on port 0xDCA18087
> ata1.00: qc timeout (cmd 0xec)
> ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4)
> ata1.00: revalidation failed (errno=-5)
> ata1: failed to recover some devices, retrying in 5 secs
> ata1: hard resetting port
> ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
> ata1.00: configured for UDMA/100
> ata1: EH complete
Then two timeouts while recovering.
> SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB)
> sda: Write Protect is off
> sda: Mode Sense: 00 3a 00 00
> SCSI device sda: drive cache: write back
>
>> Anyways, if your harddisk is doing this regularly,
>> your hardware is faulty. Maybe the connection between the controller
>> and the disk is the problem or the disk itself.
>
> I did not get those errors with Windows XP and i am not the only one who
> has problems running this particular laptop model with a linux kernel.
> Ok, to be honest, there's actually only one person i know of which
> bothered enough about exactly the same errors to send me an e-mail (he
> discovered at least one of my messages to this list). But in my
> experience there are almost always others getting the same error, but
> which remain silent.
It might be that the drive is quirky and raises interrupts prematurely
sometimes. Depending on how the driver performs recovery, the effect
can be hidden from user. Can you try the attached patch and see how the
kernel acts?
--
tejun
[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 1314 bytes --]
diff --git a/drivers/scsi/sata_sil.c b/drivers/scsi/sata_sil.c
index d0a8507..6633738 100644
--- a/drivers/scsi/sata_sil.c
+++ b/drivers/scsi/sata_sil.c
@@ -380,11 +380,14 @@ static void sil_host_intr(struct ata_por
ap->eh_info.serror |= serror;
}
+ ata_port_printk(ap, KERN_ERR, "XXX: SATA_IRQ serror=%x\n", serror);
goto freeze;
}
- if (unlikely(!qc || qc->tf.ctl & ATA_NIEN))
+ if (unlikely(!qc || qc->tf.ctl & ATA_NIEN)) {
+ ata_port_printk(ap, KERN_ERR, "XXX: qc=%p ctl=%x\n", qc, qc ? qc->tf.ctl : 0);
goto freeze;
+ }
/* Check whether we are expecting interrupt in this state */
switch (ap->hsm_task_state) {
@@ -415,13 +418,17 @@ static void sil_host_intr(struct ata_por
case HSM_ST:
break;
default:
+ ata_port_printk(ap, KERN_ERR, "XXX: HSM=%d\n", ap->hsm_task_state);
goto err_hsm;
}
/* check main status, clearing INTRQ */
status = ata_chk_status(ap);
- if (unlikely(status & ATA_BUSY))
+ if (unlikely(status & ATA_BUSY)) {
+ ata_port_printk(ap, KERN_ERR, "XXX: BUSY status=%x\n",
+ status);
goto err_hsm;
+ }
/* ack bmdma irq events */
ata_bmdma_irq_clear(ap);
@@ -434,6 +441,7 @@ static void sil_host_intr(struct ata_por
err_hsm:
qc->err_mask |= AC_ERR_HSM;
freeze:
+ ap->eh_info.action |= ATA_EH_HARDRESET;
ata_port_freeze(ap);
}
next prev parent reply other threads:[~2006-07-30 20:22 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-24 20:50 [sata_sil] kernel 2.6.17(-mm2) test - timeout issue Martin Ammermüller
2006-06-25 3:06 ` Tejun Heo
2006-07-24 8:21 ` Martin Ammermüller
2006-07-30 20:22 ` Tejun Heo [this message]
2006-08-05 13:36 ` Martin Ammermüller
2006-08-06 15:51 ` Tejun Heo
2006-08-14 10:12 ` Martin Ammermüller
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=44CD1512.1060802@gmail.com \
--to=htejun@gmail.com \
--cc=jgarzik@pobox.com \
--cc=linux-ide@vger.kernel.org \
--cc=tenco@gmx.de \
/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;
as well as URLs for NNTP newsgroup(s).