Hi,

I was doing a flood ping with big packets on the working port of my
BCM5719C based network card when a ran into the a bge watchdog timeout.
The timeout is followed by a lot of splasserts. Seems like the watchdog
reinitializes the ring buffer using malloc which doesn't want to be
called in this context. See dmesg output below.

I Haven't really looked at why the watchdog triggers in the first place.
But i do see a lot of "MPCP, Opcode Pause" messages at the remote host
originating from the sending host(ie. the host with the watchdog
timeout). Remote host is a Linux host with Intel 1000/PRO network card
connected using cross cable.

Kind regards,

David


Commands:

# ping -c 1 192.168.0.2
PING 192.168.0.2 (192.168.0.2): 56 data bytes
64 bytes from 192.168.0.2: icmp_seq=0 ttl=64 time=0.249 ms
--- 192.168.0.2 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.249/0.249/0.249/0.000 ms
# ping -s 1450 -f 192.168.0.2
PING 192.168.0.2 (192.168.0.2): 1450 data bytes
.......................................................................
<...SNIP...>
.......................................................................
--- 192.168.0.2 ping statistics ---.....................^C
764 packets transmitted, 0 packets received, 100.0% packet loss
<<<

Dmesg output:

OpenBSD 5.3-current (GENERIC.MP) #108: Tue Apr 30 11:35:41 MDT 2013
    [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 4273274880 (4075MB)
avail mem = 4151812096 (3959MB)
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.5 @ 0xcfb9c000 (67 entries)
bios0: vendor Dell Inc. version "2.5.0" date 10/13/2008
bios0: Dell Inc. PowerEdge 1950
<...SNIP...>
bge4 at pci10 dev 0 function 0 "Broadcom BCM5719" rev 0x01, unknown BCM5719 (0x5719001), APE firmware NCSI 1.1.7.0: apic 4 int 16, address 00:10:18:f6:1d:80
brgphy4 at bge4 phy 1: BCM5719C 10/100/1000baseT PHY, rev. 0
<...SNIP...>
bge4: watchdog timeout -- resetting
splassert: assertwaitok: want -1 have 1
Starting stack trace...
assertwaitok() at assertwaitok+0x1c
malloc() at malloc+0x312
_bus_dmamap_create() at _bus_dmamap_create+0x53
bge_init_rx_ring_std() at bge_init_rx_ring_std+0xa1
bge_init() at bge_init+0x110
bge_watchdog() at bge_watchdog+0x32
if_slowtimo() at if_slowtimo+0x5c
softclock() at softclock+0x291
softintr_dispatch() at softintr_dispatch+0x5d
Xsoftclock() at Xsoftclock+0x2d
--- interrupt ---
end trace frame: 0x0, count: 247
0x8:
End of stack trace.
splassert: assertwaitok: want -1 have 1
<...SNIP...>
<<<

Reply via email to