[vortex] RX overrun with 3COM 3c982

Donald Becker becker@scyld.com
Wed Nov 13 12:33:02 2002


On Wed, 13 Nov 2002, Claude Pignol wrote:

> >The only source for FIFO errors with this speicific chip is the errors
> >reported in Window 6 offset 5.
> >These errors can occur either because
> >   The chip ran out of PCI bandwidth
> >   The driver ran out of receive buffers, causing the PCI Rx transfers
> >   (the "upload engine") to stall.
> >
> >Are you running another high-bandwidth PCI device on the system?  Video
> >cards are the usual offenders.
...
> 00:08.0 RAID bus controller: 3ware Inc 3ware ATA-RAID (rev 12)

Hmmm, this might be doing long PCI bursts, not leaving enough for the
Ethernet.  If that's the case, the solution is to:
   Change the Min-grant / Max-Latency PCI settings
   Set the PCI bursts to much longer values, although the '982 has
     reasonable defaults.  The registers to change are the
     UpBurstThreshold at offset 0x3e and
     UpPriorityThreshold, offset 0x3c, default 4*32 = 128 bytes.

You can read the maximum burst that actually happened at offset 0x7a
using vortex-diag.  I wouldn't change the UpPriorityThreshold except for
debugging -- 128 bytes is already a too-low value for whole-frame Rx bursts.

Also, do you have IPMI on this motherboard?  IPMI BMC firmware can slow
down the chip enough to drop packets.

> 02:08.0 Ethernet controller: 3Com Corporation 3c980-TX 10/100baseTX NIC 
> [Python-T] (rev 78)
> 02:09.0 Ethernet controller: 3Com Corporation 3c980-TX 10/100baseTX NIC 
> [Python-T] (rev 78)

> >Have you tried increasing the kernels free memory?
...
> >and 2.4 kernels
> >   echo "100 500 200" > /proc/sys/vm/bdflush
> Current values for bdflush and bdflush
> cat /proc/sys/vm/bdflush
> 40 0 0 0 500 3000 60 0

-- 
Donald Becker				becker@scyld.com
Scyld Computing Corporation		http://www.scyld.com
410 Severn Ave. Suite 210		Scyld Beowulf cluster system
Annapolis MD 21403			410-990-9993