Spurious interrupts on eepro100 1.06/2.2.1/SMP

Andi Kleen ak@muc.de
Sat Feb 20 12:43:39 1999


On Sat, Feb 20, 1999 at 06:01:22PM +0100, Donald Becker wrote:
> On Sat, 20 Feb 1999, Andi Kleen wrote:
> 
> > I'm using the eepro100.c 1.06 driver as shipped in 2.2.1 on a SMP
> > machine. I noticed that the interrupt count in /proc/interrupts
> > increases by one about every 2-3 seconds, even though there
> > is no traffic on the network and no packets send out (RX/TX counters zero,
> > only active node on the net). The interrupt is a IO-APIC interrupt and
> > is not shared.
> 
> Hey, you are lucky -- share some of those extras with other APIC users!
> (The usual bug with the APIC is that it won't pass interrupts.  For a while
> the broken PCI slots on my machines changed with each kernel release.)

:)

> 
> > eth1: Intel EtherExpress Pro 10/100 at 0xe800, 00:A0:C9:30:39:BC, IRQ 19.
> ...
> >   Receiver lock-up workaround activated.
> 
> The real story: some EEPro100 boards had a bug where the receiver would
> silently lock up in rare and obscure circumstance.  So at every timer tick
> (2 seconds) we check for recent Rx packets.  If we haven't received any we
> do a set-multicast-list command to bring the receiver back to life.
> 
> in speedo_timer()
>    if (sp->rx_mode < 0  ||
>       (sp->rx_bug  && jiffies - sp->last_rx_time > 2*HZ)) {
> 	   /* We haven't received a packet in a Long Time.  We might
> 	   have been bitten by the receiver hang bug.  This can be
> 	   cleared by sending a set multicast list command. */
> 	set_rx_mode(dev);
>     }
> 
> This bug probably only happens at 10mbps with older chips.  The real impact
> has been the multicast-list bugs in the driver caused by supporting the
> work-around.

Thank you for the explanation (and for the great driver). The card works
fine, I was just curious what was causing the counter increases.


-Andi

-- 
This is like TV. I don't like TV.