Date: Wed, 27 Sep 2006 17:26:35 -0700 From: "David Christensen" <davidch@broadcom.com> To: "Gleb Smirnoff" <glebius@FreeBSD.org> Cc: brad@openbsd.org, oleg@FreeBSD.org, net@FreeBSD.org Subject: RE: bge(4) one packet wedge Message-ID: <09BFF2FA5EAB4A45B6655E151BBDD90302084F5F@NT-IRVA-0750.brcm.ad.broadcom.com> In-Reply-To: <20060927131814.GK59833@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> Finally I got a NIC that has a chip that does tagged status=20 > block - 5701. >=20 > I've prepared a patch, that mimics Linux. If a chip can do status tag, > then we write it to mailbox register at end of ISR, as you have > described. If the chip can't, then we force coalescing once=20 > per second. > This should fix the problem correctly on the chips that support > status tag, and it is an ugly fix for chips that does not. >=20 > Unfortunately, the attached patch doesn't fix the problem on 5701. The > wedge occurs as before. And I see status tag updated, while=20 > the netperf > test has wedged: >=20 > (kgdb) p $sc->bge_last_tag > $45 =3D 239 > (kgdb) p $sc->bge_last_tag > $46 =3D 240 > (kgdb) p $sc->bge_last_tag > $47 =3D 241 > (kgdb) p $sc->bge_last_tag > $48 =3D 242 >=20 > I have no idea. :( May be you have one? What's happening to the status block consumer/producer indices at this time? Are they advancing? Do they match the driver maintained consumer/producer indices? I forget if this was a send or receive problem, is the packet sitting in the send or receive return ring? Dave
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?09BFF2FA5EAB4A45B6655E151BBDD90302084F5F>