Subject: wm0 lossage in SGI O2
To: None <tech-net@netbsd.org>
From: Rafal Boni <rafal@attbi.com>
List: tech-net
Date: 03/16/2003 18:07:17
Folks:
	I'm having odd troubles with my Intel GigE PCI-X card in the PCI
	slot of my O2.  Most of the times, it works fairly well, but once
	in a while, it gets wedged in an odd way... I suspect come cache-
	related foo on the O2, but thought I'd solicit other ideas too.

	When it hangs, it's still generating RX interrupts (I checked this
	by compiling with WM_DEBUG defined, wm_debug initially 0 and then
	setting wm_debug via DDB to print ~ all events of stuff when I get
	into the hung state), and pinging the machine from another system
	generates ~ the right number of RX interrupts.

	However, the system is wedged checking a specific descriptor and
	does not make it past there:

wm0: RX: checking descriptor 63
wm0: RX: rxptr -> 63
wm0: TX: txsdirty -> 44
[...repeats, with one appearing when new packets show up...]

	Interestingly, in this state, the TX side of the card still works, 
	but unless I ifconfig down/up the card, receive stays in the hung
	state.

	This seems somewhat specific to the Intel GigE card, as the cheapo
	realtek I was using before worked fine, but I but I doubt it's the
	card itself, as it works well most of the time...

	The NIC is connected to a 100/FDX switch, media is set to `auto'; 
	the NIC/PHY identify themselves as:

wm0 at pci0 dev 3 function 0: Intel i82544EI 1000BASE-T Ethernet, rev. 2
wm0: interrupting at crime interrupt 10
wm0: Ethernet address 00:02:b3:xx:xx:xx
makphy0 at wm0 phy 1: Marvell 88E1000 Gigabit PHY, rev. 0
makphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto

Any thoughts?
--rafal

----
Rafal Boni                                                     rafal@attbi.com
  We are all worms.  But I do believe I am a glowworm.  -- Winston Churchill