[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