Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Dec 2005 13:55:28 +0100
From:      Andre Oppermann <andre@freebsd.org>
To:        Julian Elischer <julian@elischer.org>
Cc:        freebsd-net@freebsd.org, Matt Staroscik <matt@wrongcrowd.com>
Subject:   Re: Good gigabit NIC for 4.11?
Message-ID:  <43AD4540.472AC649@freebsd.org>
References:  <1135377218.010275.56487.nullmailer@cicuta.babolo.ru> <43AC874E.1010208@elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Julian Elischer wrote:
> 
> "."@babolo.ru wrote:
> 
> >>I've been Googling up a storm but I am having trouble finding
> >>recommendations for a good gigabit ethernet card to use with 4.11. The
> >>Intel part numbers I found in the em readme are a few years old now, and
> >>I can't quite determine how happy people are with other chipsets despite
> >>my searches.
> >>
> >>I'm looking for a basic PCI 1-port card with jumbo frame support if
> >>possible--I can live without it. Either way, stability is much more
> >>important than performance.
> >>
> >>
> >em for PCI32x33MHz works good up to 250Mbit/s, not more
> >em for PCI64x66MHz works up to about 500Mbit/s without polling

Please specify the packet size (distribution) you've got these numbers
from.

> with 2 em interfaces on pci-express,  bridging between the two
> interfaces I can
> bridge 930Mbits/sec. That is with filterring using ipfw on the bridge,
> testing
> against a single table of 128000 entries.
> 
> (dell 2850 plus an Intel quad gig card)
> I get the same thoughput even with the machine bypassed.
> 
> I haven't tried two streams going in opposite directions to see if I can
> double that, but cpu usage is around 15%

You have to be careful here.  Throughput and packets per second are not
directly related.  Throughput is generally limited by good/bad hardware
and DMA speed.  My measurements show that with decent hardware (em(4) and
bge(4) on PCI-X/133MHz) you can easily run at full wirespeed of 1 gigabit
per second with 1500 bytes per packet as the CPU only has to handle about
81,000 packets per second.  All processing like forwarding, firewalling and
routing table lookups are done once per packet no matter how large it is.
So at wirespeed with 64 bytes packets you've got to do this 1.488 million
times per second.  This is a bit harder and entirely CPU bound.  With some
mods and fastforward we've got em(4) to do 714,000 packets per second on
my Opteron 852 with PCI-X/133.  Hacking em(4) to m_free() the packets just
before they would hit the stack I see that the hardware is capable of
receiving full wirespeed at 64 byte packets.

Extensive profiling is currently underway to push the limit a lot further.

-- 
Andre



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43AD4540.472AC649>