[vortex] RX overrun with 3COM 3c982
Claude Pignol
cpignol@seismiccity.com
Mon Nov 18 23:33:02 2002
Donald Becker wrote:
>On Thu, 14 Nov 2002, Claude Pignol wrote:
>
>
>>Donald Becker wrote:
>>
>>
>>>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.
>>>
>>>
>>>
>>Well, I am little bit lost:
>>Is offset 7a (windows 7 and 10th byte): it's always 0??
>>
>>
>
>Not the windowed registers, but the directly accessed registers.
>
>Oh, the external version of vortex-diag only shows up to offset 0x3f,
>not all of the registers. You can see some of these values by passing
>the '-g' option.
>
>
After 3 days of test here are the info:
It is almost shure that the config on the PCI bus change the behavior of
the 3c982:
Node with 3ware controller
RX packets:409765215 errors:0 dropped:0 overruns:116032 frame:0
RX bytes:350774269 (334.5 Mb) TX bytes:1559860131 (1487.5 Mb)
RX packets:379718813 errors:0 dropped:0 overruns:119040 frame:0
RX bytes:1793100395 (1710.0 Mb) TX bytes:3737722403 (3564.5 Mb)
RX packets:379164652 errors:0 dropped:0 overruns:62751 frame:0
RX bytes:816992619 (779.1 Mb) TX bytes:3743352561 (3569.9 Mb)
RX packets:379405957 errors:0 dropped:0 overruns:71494 frame:0
RX bytes:1313362540 (1252.5 Mb) TX bytes:3731194114 (3558.3 Mb)
RX packets:378973310 errors:0 dropped:0 overruns:72889 frame:0
RX bytes:567030320 (540.7 Mb) TX bytes:3712926873 (3540.9 Mb)
RX packets:378407264 errors:0 dropped:0 overruns:108203 frame:0
RX bytes:22948854 (21.8 Mb) TX bytes:3714060207 (3542.0 Mb)
RX packets:377974936 errors:0 dropped:0 overruns:105101 frame:0
RX bytes:4079727185 (3890.7 Mb) TX bytes:3701238513 (3529.7 Mb)
RX packets:378136749 errors:0 dropped:0 overruns:69784 frame:0
RX bytes:4281265663 (4082.9 Mb) TX bytes:3638530292 (3469.9 Mb)
RX packets:361880510 errors:0 dropped:0 overruns:234839 frame:0
RX bytes:3434744713 (3275.6 Mb) TX bytes:3172067220 (3025.1 Mb)
RX packets:396912241 errors:0 dropped:0 overruns:321140 frame:0
RX bytes:1130790923 (1078.4 Mb) TX bytes:1338007046 (1276.0 Mb)
Ratio: .00018 overrun/packet
But a node without a 3ware controller has also some overrun but the
ratio is much smaller
EX:
RX packets:157870606 errors:0 dropped:0 overruns:8 frame:0
RX bytes:4125684906 (3934.5 Mb) TX bytes:947167172 (903.2 Mb)
RX packets:157725111 errors:0 dropped:0 overruns:5 frame:0
RX bytes:3949515687 (3766.5 Mb) TX bytes:909685418 (867.5 Mb)
For the same amout of data transfered:
R=.000000050 overrun/packet
Output of vortex-diag -g for a node with a 3ware controller:
vortex-diag.c:v2.09 9/18/2002 Donald Becker (becker@scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a 3c982 Dual Port server NIC adapter at 0x2400.
DMA control register is 000000a0.
DMA control register is 000000a4 (during Tx Stall).
Tx list starts at 3775dad0.
Tx FIFO thresholds: min. burst 256 bytes, priority with 163968 bytes to
empty.
Tx poll period 6400 ns.
Tx maximum burst recorded 0.
Output of vortex-diag -g for a node without a 3ware controller:
vortex-diag.c:v2.09 9/18/2002 Donald Becker (becker@scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a 3c982 Dual Port server NIC adapter at 0x2400.
DMA control register is 000000a0.
DMA control register is 000000a4 (during Tx Stall).
Tx list starts at 37606a20.
Tx FIFO thresholds: min. burst 256 bytes, priority with 163968 bytes to
empty.
Tx poll period 6400 ns.
Tx maximum burst recorded 0.
CP.
>I've just changed this in vortex-diag -- this will be in the next public
>version.
>
>
>
>>I don't know how to change the value of 0x3c
>>and 0x3e. but before trying to change them it's a good thing to locate
>>them.
>>
>>
>
>
>
>
--
------------------------------------------------------------------------
Claude Pignol SeismicCity, Inc. <http://www.seismiccity.com>
2900 Wilcrest Dr. Suite 370 Houston TX 77042
Phone:832 251 1471 Mob:281 703 2933 Fax:832 251 0586