cvs commit: src/sys/pci if_rl.c if_rlreg.h
Bill Paul
wpaul at FreeBSD.ORG
Thu Aug 7 10:27:13 PDT 2003
> Copied to -net rather than the cvs lists...
>
> On Thu, 7 Aug 2003, Bill Paul wrote:
>
> > Tested with the Xterasys XN-152 NIC (hard to beat $29 for a gigE
> > NIC).
>
> That's definately not a bad price. Do the remarks about the earlier
> rl cards still apply to the newer generation of rl chips, or has
> RealTek improved them to the point where they are actually on par with
> their peers? In other words, what's your take on their performance
> and reliability compared to the Intel or Broadcom chipsets?
The 8139C+ has much better performance than the older 8139 series.
The main problem with the 8139 isn't so much throughput as it is
frame rate. With a fast enough CPU, you might get 100Mbps out of
it, but it has trouble sustaining that bandwidth as frame size
decreases. The 8139C+ has a very straightforward descriptor-based
DMA mechanism, and with the on-board timer you can do some pretty
effective TX interrupt moderation. With my Athlon 900Mhz test box
at home, I was able to generate 120,000 frames/sec with my very
simpleminded raw transmit test (UDP blasting with ttcp). The older
8139 is lucky if it can do 40,000 frames/sec on the same box.
I haven't had a chance to properly benchmark the 8169 gigE chip
yet. I need to sneak it into one of the lab machines at work to
really compare it head-to-head with the Intel and Broadcom NICs.
Unfortunately, the Xterasys XN-152 is a 32-bit 'desktop' card, and
all the other sample gigE NICs I have are 64-bit 'server class' cards,
so it automatically has a strike against it. (I could probably
level the playing field by putting the other NICs into 32-bit
slots though.)
Pros:
- The 8169 is very easy to program. RealTek has been very peculiar
in how it's releasing documentation for it though. They had the
manual on their site for a while, then took it down. I have a
copy at: http://www.freebsd.org/~wpaul/RealTek. Note that it has
almost exactly the same API as the 8139C+.
- There doesn't appear to be any alignment restrictions for data
buffers on either RX or TX (so no copies on RX needed).
- Has TCP, UDP and IP checksum offload, TCP large send, jumbo frame
and VLAN tagging/stripping support (all the usual gigE features).
- Has normal and high priority TX rings (rl(4) currently uses just
one ring).
- Dirt cheap. The NIC costs $26.50, plus shipping. (Shipping via
U.S. Mail to SF cost only a couple dollars more.) This is way
less than even the cheapest National Semiconductor DP83820-based
card.
Cons:
- Finding an 8169-based NIC in the U.S. market is ridiculously difficult.
I ordered my card from www.mrtechus.com, which appears to be based in
Los Angeles. I have yet to see either an 8169 or 8139C+ card in a
retail store (although I have not been to Fry's lately).
- The Intel and Broadcom NICs have more advanced interrupt moderation
features. I was able to achieve some TX interrupt moderation using
the 8139C+/8160's on-board timer, but haven't figured out a proper
way of doing RX interrupt moderation yet.
- High-end Broadcom NICs can have up to 4 TX rings rather than 2.
- High-end Broadcom NIC also has a very sofisticated RX filtering
mechanism that can be use to prioritize traffic into different
RX queues.
- Retains the same RX filtering mechanism as the original 8139 (1 perfect
filter for station address, 64-bit multicast hash table).
Based on what I know so far, I would definitely recommend it over
a board with a NatSemi DP83820: it's much, much cheaper and doesn't
have the 83820's requirement for 64-bit-aligned RX buffers. I can't
really compare it to the Intel or Broadcom devices until I run some
benchmarks on it.
-Bill
--
=============================================================================
-Bill Paul (510) 749-2329 | Senior Engineer, Master of Unix-Fu
wpaul at windriver.com | Wind River Systems
=============================================================================
"If stupidity were a handicap, you'd have the best parking spot."
=============================================================================
More information about the freebsd-net
mailing list