[scyld-users] 3COm 3C59x driver problems

Adrian bluelight_ady at yahoo.com
Mon Apr 28 17:40:24 PDT 2008


Hello. After some tunning into the 3c59x driver, i decide to contact you and tell you about some problems found in this driver.

The anoing thing with this driver is that when the traffic goes up more that 10Mbps, the driver "crashes" like this:

kernel: NETDEV WATCHDOG: eth2: transmit timed out
   kernel: eth2: transmit timed out, tx_status 00 status e000.  
   kernel:   diagnostics: net 0ccc media 8880 dma 000000a0 fifo 0000  
   kernel:   Flags; bus-master 1, dirty 166045(13) current 166061(13)  
   kernel:   Transmit list 36f2da20 vs. f6f2da20.  
   kernel:   0: @f6f2d200  length 80000036 status 00000036  
   kernel:   1: @f6f2d2a0  length 8000003e status 0000003e  
   kernel:   2: @f6f2d340  length 80000036 status 00000036  
   kernel:   3:

 @f6f2d3e0  length 8000003e status 0000003e  
   kernel:   4: @f6f2d480  length 8000003e status 0000003e  
   kernel:   5: @f6f2d520  length 800005ea status 000005ea  
   kernel:   6: @f6f2d5c0  length 800005ea status 000005ea  
   kernel:   7: @f6f2d660  length 8000003e status 0000003e  
   kernel:   8: @f6f2d700  length 800005ae status 000005ae  
   kernel:   9: @f6f2d7a0  length 800005ea status 000005ea  
   kernel:   10: @f6f2d840  length 80000036 status 00000036  
   kernel:   11: @f6f2d8e0  length 800000ca status 800000ca  
   kernel:   12: @f6f2d980  length 800000d9 status 800000d9  
   kernel:   13: @f6f2da20  length 80000a8d status 00000a8d  
   kernel:   14: @f6f2dac0  length 800005ea status 000005ea  
   kernel:   15: @f6f2db60  length 800005ea status 000005ea  
   kernel: eth2: Resetting the Tx ring pointer. 
I
check on google for this problem, but i didn't found anything. After i
take a look into the driver, i decide to rise up the TX_RING_SIZE and
RX_RING_SIZE, becouse i saw in sources that when those ring goes out,
the driver gives those errors. This problem didn't apear only one
computer. It apears on 5 diferent computers, with nForce2/3/570 and VIA
KT 333/400/800 chipsets.

I build a patch that chenges those values like this:

--- linux-2.6.22.5-orig/drivers/net/3c59x.c    2007-07-09 02:32:17.000000000 +0300
+++ linux-2.6.22.5/drivers/net/3c59x.c    2007-10-13 05:07:30.000000000 +0300
@@ -35,8 +35,8 @@
 
 /* A few values that may be tweaked. */
 /* Keep the ring sizes a power of two for efficiency. */
-#define TX_RING_SIZE    16
-#define RX_RING_SIZE    32
+#define TX_RING_SIZE    1024
+#define RX_RING_SIZE    2048
 #define PKT_BUF_SZ        1536            /* Size of each temporary Rx buffer.*/
 
 /* "Knobs" that adjust features and parameters. */
@@ -1014,6 +1014,11 @@
 
     if (!printed_version) {
         printk (version);
+        printk ("%s Driver parameters: TX_RING_SIZE=%i, RX_RING_SIZE=%i, max_interrupt_work=%i\n",
+            DRV_NAME,
+            TX_RING_SIZE,
+            RX_RING_SIZE,
+            max_interrupt_work);
         printed_version = 1;
     }
 

With those values the driver works fine, it didn't make errors. I use those network cards becouse gives me performance. The Inte PRO 100 are good too, but i got more 3COM 905B/C than Intel PRO 100.

Best regards
Adrian Ban
Romania


      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.scyld.com/pipermail/scyld-users/attachments/20080428/516d96c2/attachment.html


More information about the Scyld-users mailing list