[vortex] RX overrun with 3COM 3c982

Claude Pignol cpignol@seismiccity.com
Tue Nov 19 23:06:01 2002


Donald Becker wrote:

>On Mon, 18 Nov 2002, Claude Pignol wrote:
>  
>
>>>>>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.
>>>>>          
>>>>>
>
>OK, more work, and an updated vortex-diag just for this:
>  ftp://ftp.scyld.com/pub/diag/vortex-diag.c
>
>Try setting
>  -G 512
>  
>
Thanks Donald,

I try the new vortex-diag:
Registers berfore -G512

Index #1: Found a 3c982 Dual Port server NIC adapter at 0x2400.
The Vortex chip may be active, so FIFO registers will not be read.
To see all register values use the '-f' flag.
Initial window 7, registers values by window:
Window 0: 0000 0000 0000 0000 adad 00bf ffff 0000.
Window 1: FIFO FIFO 0700 0000 0000 007f 0000 2000.
Window 2: e000 2281 6ab0 0000 0000 0000 0052 4000.
Window 3: 0000 0180 05ea 0020 000a 0800 0800 6000.
Window 4: 0000 0000 0000 0ccc 0001 8880 6500 8000.
Window 5: 1ffc 0000 0000 0600 0807 06de 06c6 a000.
Window 6: 0000 0000 0000 6901 2100 6622 661c c000.
Window 7: 0000 0000 0000 0000 0000 0000 0000 e000.
Vortex chip registers at 0x2400
0x2410: **FIFO** 00000000 0000000f *STATUS*
0x2420: 00000020 3775daf0 00080000 00001404
0x2430: 00000000 0608f9f8 3775d8b0 00080004
0x2440: 000005b6 00000000 000000b7 00000000
0x2450: 00000000 00000000 00000000 00000000
0x2460: 00000000 00000000 00000000 00000000
0x2470: 00009000 00000000 01600000 00000100

ifconfig eth0


eth0 Link encap:Ethernet HWaddr 00:E0:81:22:B0:6A
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:468076386 errors:0 dropped:0 overruns:123204 frame:0
TX packets:520168168 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:850816761 (811.4 Mb) TX bytes:2750944976 (2623.5 Mb)
Interrupt:18 Base address:0x2400


Change the RX priority to 512 bytes

vortex-diag.c:v2.11 11/19/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.
Setting the Rx Priority Thrshold to 512 bytes.
Setting the Rx Priority Thrshold to 512 bytes.


Registers after the RX priority to 512 bytes

Initial window 7, registers values by window:
Window 0: 0000 0000 0000 0000 adad 00bf ffff 0000.
Window 1: FIFO FIFO 0700 0000 0000 007f 0000 2000.
Window 2: e000 2281 6ab0 0000 0000 0000 0052 4000.
Window 3: 0000 0180 05ea 0020 000a 0800 0800 6000.
Window 4: 0000 0000 0000 0ccc 0001 8884 b000 8000.
Window 5: 1ffc 0000 0000 0600 0807 06de 06c6 a000.
Window 6: 0000 0000 0000 5d00 2000 199c 3e56 c000.
Window 7: 0000 0000 0000 0000 0000 0000 0000 e000.
Vortex chip registers at 0x2400
0x2410: **FIFO** 00000000 00000008 *STATUS*
0x2420: 00000020 3775da80 00080000 00001404
0x2430: 00000000 c3123cee 3775d990 00080010
0x2440: 000008b5 00000000 000000b7 00000000
0x2450: 00000000 00000000 00000000 00000000
0x2460: 00000000 00000000 00000000 00000000
0x2470: 00009000 00000000 01600000 00000100

ifconfig eth0 after 12 hours

eth0 Link encap:Ethernet HWaddr 00:E0:81:22:B0:6A
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:534880121 errors:0 dropped:0 overruns:127616 frame:0
TX packets:597519368 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:2683873787 (2559.5 Mb) TX bytes:404780939 (386.0 Mb)
Interrupt:18 Base address:0x2400

Error ratio: ( 127616 -123204)/(534880121-468076386)=.000066
For the same period an interface with the default value has a ratio .00018

It seems that it goes in the right direction (there is no interface with 
a ratio < .00012 with the default value).

CP.

>________________
>vortex-diag.c:v2.11 11/19/2002
>
>Corrected the Tx and Rx FIFO priority levels output when the '-g' flag
>is passed.
>
>Allow changing the Rx FIFO priority level with the -G <threshold-bytes> flag.
>
>Modified the EEPROM size detection to work with chips where the EEPROM
>command is in bits 9:8 rather than 7:6.  This isn't documented anywhere
>(in fact a longer address is documented as straddling rather than moving
>the command) but it does occur on a few chips.
>________________
>
>
>  
>

-- 
------------------------------------------------------------------------
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