From: Mark Lord <lkml@rtr.ca>
To: Alberto Alonso <alberto@ggsys.net>
Cc: linux-kernel@vger.kernel.org
Subject: Re: qstor driver -> irq 193: nobody cared
Date: Sat, 04 Nov 2006 13:39:42 -0500 [thread overview]
Message-ID: <454CDE6E.5000507@rtr.ca> (raw)
In-Reply-To: <1162576973.3967.10.camel@w100>
[-- Attachment #1: Type: text/plain, Size: 1281 bytes --]
Alberto Alonso wrote:
> I have a Pacific Digital qstor card on irq 193. I am using kernel
> 2.6.17.13 SMP
>
> The error happens every now and then. I have not been able to
> figure out any triggers and I can not reproduce it on demand. Today
> it happened 3 times within a 40 minutes period.
>
> All disks connected to the card are disabled and I can't do anything
> other than a reboot to get them back.
>
> It is reported as follows:
>
> irq 193: nobody cared (try booting with the "irqpoll" option)
> <c013e19a> __report_bad_irq+0x2a/0xa0 <c013d970> handle_IRQ_event
> +0x30/0x70
> <c013e2b0> note_interrupt+0x80/0xf0 <c013da8c> __do_IRQ+0xdc/0xf0
> <c0105799> do_IRQ+0x19/0x30 <c010391a> common_interrupt+0x1a/0x20
> <c0100d91> default_idle+0x41/0x70 <c0100e60> cpu_idle+0x80/0x90
> <c046699d> start_kernel+0x18d/0x1d0 <c0466330> unknown_bootoption
> +0x0/0x1d0
> handlers:
> [<c0301300>] (qs_intr+0x0/0x220)
> Disabling IRQ #193
What other devices are routed to that same interrupt line?
The sata_qstor driver is very rigorous in acknowledging *only* it's own
interrupts, to prevent other devices sharing the same IRQ from losing theirs.
Mmm.. We could apply a bit of fuzzy tolerance for the odd glitch.
Try this patch (attached) and report back.
Thanks.
[-- Attachment #2: qstor_spurious.patch --]
[-- Type: text/x-patch, Size: 833 bytes --]
--- linux/drivers/scsi/sata_qstor.c.orig 2006-09-19 23:42:06.000000000 -0400
+++ linux/drivers/scsi/sata_qstor.c 2006-11-04 13:35:45.000000000 -0500
@@ -459,6 +459,7 @@
{
struct ata_host_set *host_set = dev_instance;
unsigned int handled = 0;
+ static int spurious = 0;
VPRINTK("ENTER\n");
@@ -466,6 +467,19 @@
handled = qs_intr_pkt(host_set) | qs_intr_mmio(host_set);
spin_unlock(&host_set->lock);
+ /* There are reports of at least one system with glitchy interrupts,
+ * and if we return !handled here for those then the kernel may totally
+ * disable our own IRQ line (duh!).
+ * So, try and be tolerant, but not *too* tolerant.
+ */
+ if (!handled) {
+ if (spurious < 10) {
+ ++spurious;
+ handled = 1;
+ }
+ } else if (spurious)
+ --spurious;
+
VPRINTK("EXIT\n");
return IRQ_RETVAL(handled);
next prev parent reply other threads:[~2006-11-04 18:39 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-03 18:02 qstor driver -> irq 193: nobody cared Alberto Alonso
2006-11-03 19:00 ` Sergey Vlasov
2006-11-03 20:22 ` Alberto Alonso
2006-11-03 20:52 ` Sergey Vlasov
2006-11-03 23:21 ` Alberto Alonso
2006-11-04 18:39 ` Mark Lord [this message]
2006-11-06 4:04 ` Alberto Alonso
2006-11-06 14:51 ` Mark Lord
2006-11-10 17:36 ` Alberto Alonso
2006-11-12 5:09 ` Mark Lord
2006-11-12 5:17 ` Alberto Alonso
2006-11-12 20:31 ` Alberto Alonso
2006-11-13 14:29 ` Mark Lord
2006-11-14 4:50 ` Alberto Alonso
2006-11-14 16:46 ` Mark Lord
2006-11-14 18:17 ` Alberto Alonso
2006-11-14 18:23 ` Mark Lord
2006-11-16 6:35 ` Alberto Alonso
2006-11-16 13:53 ` Mark Lord
2006-11-17 21:42 ` Alberto Alonso
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=454CDE6E.5000507@rtr.ca \
--to=lkml@rtr.ca \
--cc=alberto@ggsys.net \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.