From: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
To: Arjan van de Ven <arjan@infradead.org>
Cc: Matthew Wilcox <matthew@wil.cx>,
Lukasz Kosewski <lkosewsk@nit.ca>, Andrew Morton <akpm@osdl.org>,
vgoyal@in.ibm.com, linux-kernel@vger.kernel.org,
linux-scsi@vger.kernel.org
Subject: Re: SCSI aic7xxx driver: Initialization Failure over a kdump reboot
Date: Sun, 30 Jan 2005 13:57:51 -0200 [thread overview]
Message-ID: <20050130155751.GA11375@logos.cnet> (raw)
In-Reply-To: <1107109647.4306.61.camel@laptopd505.fenrus.org>
On Sun, Jan 30, 2005 at 07:27:26PM +0100, Arjan van de Ven wrote:
> On Sun, 2005-01-30 at 13:27 -0200, Marcelo Tosatti wrote:
> > On Fri, Jan 07, 2005 at 04:38:32AM +0000, Matthew Wilcox wrote:
> > > On Thu, Jan 06, 2005 at 11:53:27PM -0500, Lukasz Kosewski wrote:
> > > > I have an idea of something I might do for 2.6.11, but I doubt anyone
> > > > will actually agree with it. Say we keep a counter of how many times
> > > > interrupt x has been fired off since the last timer interrupt
> > > > (obviously, a timer interrupt resets the counter). Then we can pick an
> > > > arbitrary threshold for masking out this interrupt until another device
> > > > actually pines for it.
> > > >
> > > > Or something. The point is, we need a general solution to the problem,
> > > > not poking about in every single driver trying to tie it down.
> > >
> > > Something like note_interrupt() in kernel/irq/spurious.c?
> >
> > BTW I wonder if its feasible to add an interface on top of kernel/irq/spurious.c for
> > notifying drivers about interrupts storms, so they can take appropriate action
> > (try to reset the device).
>
> the problem is... the driver just denied it was their irq (at least in
> all the common cases)...
Hum, drivers should, at least in theory, be able to return IRQ_NONE if interrupts
can't be handled.
So is 8390 a special case?
drivers/net/8390.c
irqreturn_t ei_interrupt(int irq, void *dev_id, struct pt_regs * regs)
{
...
}
spin_unlock(&ei_local->page_lock);
return IRQ_RETVAL(nr_serviced > 0);
}
The "workaround" looks like (at the end of ei_interrupt):
if (!nr_serviced)
interrupt_cnt++;
else
interrupt_cnt = 0;
if (interrupt_cnt > 256) {
ei_status.reset_8390(dev);
interrupt_cnt = 0;
}
One could argue that it is a hardware problem...
next prev parent reply other threads:[~2005-01-30 18:54 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-06 12:35 SCSI aic7xxx driver: Initialization Failure over a kdump reboot Vivek Goyal
2005-01-06 12:12 ` Arjan van de Ven
2005-01-07 3:50 ` Andrew Morton
2005-01-07 4:53 ` Lukasz Kosewski
2005-01-07 4:38 ` Matthew Wilcox
2005-01-30 15:27 ` Marcelo Tosatti
2005-01-30 18:27 ` Arjan van de Ven
2005-01-30 15:57 ` Marcelo Tosatti [this message]
2005-01-07 7:36 ` Vivek Goyal
2005-01-07 14:55 ` Lukasz Kosewski
2005-01-07 14:50 ` linux-os
2005-01-07 15:44 ` Vivek Goyal
2005-01-07 16:52 ` Vivek Goyal
2005-01-07 17:36 ` Denis Vlasenko
2005-01-07 5:27 ` Vivek Goyal
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=20050130155751.GA11375@logos.cnet \
--to=marcelo.tosatti@cyclades.com \
--cc=akpm@osdl.org \
--cc=arjan@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=lkosewsk@nit.ca \
--cc=matthew@wil.cx \
--cc=vgoyal@in.ibm.com \
/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