Re: Gigabit full duplex full line rate

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Stephen Hemminger writes:

 > > On 11/20/05, Unai Uribarri <unaiur@xxxxxxxxx> wrote:
 > > > I'm trying to run a gigabit linux-based bridge at full duplex, full
 > > > line rate. That means receiving and sending 3 Million Packets Per
 > > > Second: quite ambitious, I known.
 > > 
 > > 3.125Mpps, actually, assuming all minimum length 40 byte packets.
 > > 
 > > > My first problem is to get the appropiate hardware:  I've evaluated
 > > > several PCI-X nics (Intel & Broadcom) but I can't achieve more than 800
 > > > kpps. I've read that this is the PCI-X bus limit, so I'm going to buy a
 > > > pair of PCI Express x4 NICs.

Yes PCI-X boards is sending around ~800 kpps. With some ugly patches about
300 kpps more.

Intel w. e1000 82546GB @ 133 MHz

60  748406
124  693133
252  452951
508  234982
1020  119742
1496  82242

The BCM PCI-X  *inside* the serverworks H2000 is faster. 

BCM w. tg3

60  1421959
124  844572
252  452918
508  234970
1020  119735
1496  82239

Fastest and most intresing sofar is the Intel 82571 Server PCI-E dual
server adapter.

60  1488305
124  844635
252  452835
508  234973
1020  119737
1496  82240

IO latency is worse with PCI-E but the Intel 82571 can handle four
concurrent RX/TX transactions. Also PCI-E is FX this seems to well
handle the PCI-E extra latency.

Stephen I've heard some good things about the Syskonnect PCI-E adapters
any chance you could run a test similar to the tests above?


 > Robert Olsson had a patch to count packets sent to discard port in the
 > receive path for for measuring packet rate. 

 Yes if are just to drop pktgen pkts in e1000 driver. You can use the
 patch below. It can be done a little bit better. See skb reuse 
 discussion on netdev. In that case we reuse the skb in e1000 driver
 as well and saves kmalloc/kfree's.

 Cheers.
					--ro


--- drivers/net/e1000/e1000_main.c~	2003-10-16 11:25:23.000000000 +0200
+++ drivers/net/e1000/e1000_main.c	2003-10-16 13:24:46.000000000 +0200
@@ -2609,6 +2609,23 @@
 				continue;
 			}
 		}
+#define DMA_TEST
+#ifdef DMA_TEST
+	 {
+		 __u8 *data = (__u8 *) skb->data + 34; /* 14+20 */
+		 
+		 /* src and dst port 9 --> pktgen */
+		 
+		 if(data[0] == 0 && 
+		    data[1] == 9 && 
+		    data[2] == 0 && 
+		    data[3] == 9) { 
+			 dev_kfree_skb(skb);
+			 adapter->net_stats.rx_compressed++;
+			 goto gone;
+			 }
+	 }
+#endif
 
 		/* Good Receive */
 		skb_put(skb, length - ETHERNET_FCS_SIZE);
@@ -2634,6 +2651,10 @@
 			netif_rx(skb);
 		}
 #endif /* CONFIG_E1000_NAPI */
+
+#ifdef DMA_TEST
+gone:
+#endif
 		netdev->last_rx = jiffies;
 
 		rx_desc->status = 0;


-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux