Subject: Re: ex0 wedges after long uptime?
To: Matthias Drochner <M.Drochner@fz-juelich.de>
From: Michael L. Hitch <mhitch@lightning.msu.montana.edu>
List: port-alpha
Date: 12/06/1999 21:52:13
On Sun, 5 Dec 1999, Matthias Drochner wrote:
> mhitch@lightning.msu.montana.edu said:
> > when it fails, it logged several stray interrupts
>
> I don't know too much about the hardware, but assuming there
> is a card interrupt not handled properly, you could
> print out the last value of "stat" in ex_intr() if the
> interrupt handler is left with the return value 0.
> That's what I'd do at least. (if the interrupt is not
> shared, otherwise it could get noisy)
It gets 0x2001, which would appear to be 'window 1', and S_INTR_LATCH.
I increased the number of stray interrupts allowed from 5 to 20, and
added a hack in ex_init() to re-enable the interrupt. When it failed,
I got 20 stray interrupts at once which disabled that interrupt. When
the ex device timed out and called ex_init(), the interrupt was re-enabled
and things continued normally.
It would appear that the EtherLinkXL gets into some state where it's
got an interrupt without an indication in the status register, so the
interrupt never gets cleared.
--
Michael L. Hitch mhitch@montana.edu
Computer Consultant
Information Technology Center
Montana State University Bozeman, MT USA