Skip site navigation (1)Skip section navigation (2)
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>