Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Feb 2013 20:04:55 -0500
From:      Michael MacLeod <mikemacleod@gmail.com>
To:        John Nielsen <lists@jnielsen.net>
Cc:        freebsd-net@freebsd.org, "Ronald F. Guilmette" <rfg@tristatelogic.com>
Subject:   Re: Question: Why ain't I getting gigabit speed?
Message-ID:  <CAM-FeoH4OqCaH31qfXodUuqNYJ2xxMVunTw%2BrHKCi6iQ1En=6g@mail.gmail.com>
In-Reply-To: <C8583AD0-9D65-476C-8416-A6B952679A0E@jnielsen.net>
References:  <8112.1360454540@tristatelogic.com> <C8583AD0-9D65-476C-8416-A6B952679A0E@jnielsen.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Since it deserved recognition, here's the bit from if_rl.c that John is
referring to:

 * The RealTek 8139 PCI NIC redefines the meaning of 'low end.' This is
 * probably the worst PCI ethernet controller ever made, with the possible
 * exception of the FEAST chip made by SMC. The 8139 supports bus-master
 * DMA, but it has a terrible interface that nullifies any performance
 * gains that bus-master DMA usually offers.
 *
 * For transmission, the chip offers a series of four TX descriptor
 * registers. Each transmit frame must be in a contiguous buffer, aligned
 * on a longword (32-bit) boundary. This means we almost always have to
 * do mbuf copies in order to transmit a frame, except in the unlikely
 * case where a) the packet fits into a single mbuf, and b) the packet
 * is 32-bit aligned within the mbuf's data area. The presence of only
 * four descriptor registers means that we can never have more than four
 * packets queued for transmission at any one time.
 *
 * Reception is not much better. The driver has to allocate a single large
 * buffer area (up to 64K in size) into which the chip will DMA received
 * frames. Because we don't know where within this region received packets
 * will begin or end, we have no choice but to copy data from the buffer
 * area into mbufs in order to pass the packets up to the higher protocol
 * levels.

Rock solid driver for a comically bad chipset. Thanks Bill!


On Tue, Feb 12, 2013 at 7:00 PM, John Nielsen <lists@jnielsen.net> wrote:

> On Feb 9, 2013, at 5:02 PM, Ronald F. Guilmette <rfg@tristatelogic.com>
> wrote:
>
> > P.S.  While I appreciate all the friendly advice people here have given
> > me, i.e. to go with a card based around some non-Realtek chip, I have to
> > say that up until now I have always and consistantly had -zero- problems
> > with the many other Realtek-based 10/100 cards that I have owned and
> used.
>
> A bit OT, but I would say that this is _because_ of the FreeBSD driver
> (rl, also by Bill Paul). Some of the hardware deficiencies documented in
> the manpage and in comments in the if_rl.c are almost comical..
>
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAM-FeoH4OqCaH31qfXodUuqNYJ2xxMVunTw%2BrHKCi6iQ1En=6g>