Re: RX overrun with 3COM 3c982

Claude Pignol <[email protected]>
Newsgroups gmane.linux.drivers.vortex.devel
Organization SeismicCity, Inc.
Message-ID <[email protected]>

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 ([email protected])
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 ([email protected])
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



_______________________________________________
vortex mailing list
[email protected]
http://www.scyld.com/mailman/listinfo/vortex
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.