Subject: Re: 3c59x: shared interrupt problem

From: "Gerhard Pircher" <[email-masked]>
Date: Wed, 11 Mar 2009 23:42:40 +0100

-------- Original-Nachricht --------
> Datum: Wed, 11 Mar 2009 12:31:30 +0100
> Von: Steffen Klassert <[email-masked]>
> An: Gerhard Pircher <[email-masked]>
> CC: [email-masked], [email-masked], [email-masked]
> Betreff: Re: 3c59x: shared interrupt problem

> On Tue, Mar 10, 2009 at 10:00:53AM +0100, Gerhard Pircher wrote:
> > > 
> > > This basically reverts a patch from akpm (bitkeeper cset 1.1046.95.8)
> > > This patch was to workaround lots of "nobody cared" warnings 
> > > generated by boomerang_interrupt().
> > > I added Andrew to the Cc, perhaps he can remember some details on
> > > this.
> > I'm afraid this patch didn't fix the problem. I'm using scp to copy a
> > big ISO file from my PC to the AmigaOne and the network transfer still
> > stalls.
> > I made a photo from the kernel oops printed out during shutdown.
> 
> Your photo shows exactly such a "nobody cared" warning that Andrew wanted 
> to get rid of with his patch.
> 
> > BTW: shouldn't the driver use vortex_interrupt() to handle interrupts
> > for a 3c920?
> 
> It depends on the content of your NIC's eeprom which ISR the driver will
> use.
> If your NIC is full bus master capable boomerang_interrupt() will be
> used, if not vortex_interrupt() will be used. As far as I know the 3c920
> is of "tornado" type, so it should be full bus master capable.
Okay, I thought there is something wrong, because the 3c920 is listed in
the "vortex" device table.

> Your first report showed dnComplete as a pending interrupt source.
> Since the driver uses tx_interrupt_mitigation, this happens just if the 
> tx ring is full. Could you please test the patch below? This disables
> tx_interrupt_mitigation, so the dnComplete interrupt will be triggered 
> with every packet.
I disabled tx_interrupt_mitigation and tested it with and w/o the patch
for boomerang_interrupt(). The network transfer stalls in both cases
sooner or later.

Here are two photos from the kernel output:
- no tx_interrupt_mitigation and patch for booomerang_interrupt():
http://boot.homelinux.org:8080/kernel/oops_boomerang_irq_tx_irq_mitig.jpg
- no tx_interrupt_mitigation only:
http://boot.homelinux.org:8080/kernel/oops_tx_irq_mitig.jpg

Thanks!

best regards,

Gerhard
-- 
Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger01