Subject: Re: Bug in x86 ioapic interrupt code for devices with shared interrupts?
To: Michael van Elst <mlelstv@serpens.de>
From: Steven M. Bellovin <smb@cs.columbia.edu>
List: port-i386
Date: 03/02/2006 10:56:10
In message <du58ct$8ha$3@serpens.de>, Michael van Elst writes:
>tls@rek.tjls.com (Thor Lancelot Simon) writes:
>
>>One of the NetBSD Foundation servers is a dual-Opteron with an onboard
>>dual Broadcom gigabit chip.  This chip, as far as I can tell from some
>>experiments, gets seriously disturbed by the driver's tendency to
>>acknowledge interrupts even if they're not actually from the device.
>
>I believe something similar hits a Thinkpad T43 which is i386 and
>not amd64. Almost all peripherals take irq 11 and using the bge
>interface causes symptoms I correlate with bad interrupt handling.
>I.e. carrier status isn't recognized correctly, network traffic
>is slowed, USB misses disconnect events, DDB freezes when returning
>to a live kernel.
>
>bge0: interrupting at irq 11
>uhci0: interrupting at irq 11
>uhci1: interrupting at irq 11
>uhci2: interrupting at irq 11
>uhci3: interrupting at irq 11
>ehci0: interrupting at irq 11
>iwi0: interrupting at irq 11
>cbb0: interrupting at irq 11
>auich0: interrupting at irq 11
>
>I first suspected iwi to be at fault, but I guess this is just
>because it has activity on irq 11 when enabled.
>

I haven't seen that on a T42 with a wm0 interface.  The only problem 
I've noticed is that the wm interface doesn't autonegotiate 10BaseT 
properly; everything else works fine.  I haven't tried GigE yet, but 
talking to a desktop with a bge0 interface I can get ~91 Mbps with ttcp.

The T42 does not have ACPI enabled; the desktop does.  Both run 
-current.

		--Steven M. Bellovin, http://www.cs.columbia.edu/~smb