Call for testers: Atheros AR8121(L1E)/AR8113/AR8114(L2E) ethernet

Boris Samorodov bsam at ipt.ru
Sat Nov 8 01:27:24 PST 2008


Pyun YongHyeon <pyunyh at gmail.com> writes:
> On Fri, Nov 07, 2008 at 03:47:24PM +0900, To freebsd-current at FreeBSD.org wrote:
>  > On Fri, Oct 31, 2008 at 12:44:43PM +0900, To freebsd-current at FreeBSD.org wrote:
>  >  > On Thu, Oct 30, 2008 at 08:48:45PM +0900, To freebsd-current at FreeBSD.org wrote:
>  >  >  > On Thu, Oct 30, 2008 at 01:06:37PM +0900, To freebsd-current at FreeBSD.org wrote:
>  >  >  >  > 
>  >  >  >  > Hi,
>  >  >  >  > 
>  >  >  >  > I had been working on writing a driver for Atheros AR8121(L1E),
>  >  >  >  > AR8113/AR8114(L2E) ethernet controllers since Jeremy Chadwick sent
>  >  >  >  > the hardware to me. I think it's feature complete state and time
>  >  >  >  > for more testing for stability or some edge cases. I guess AR81xx
>  >  >  >  > is commonly found on newer Asus EeePC or P5Q series of Asus
>  >  >  >  > motherboard. If you have AR81xx controller would you give it spin
>  >  >  >  > and let me know how it goes? You can get the latest driver at the
>  >  >  >  > following URL.
>  >  >  >  > http://people.freebsd.org/~yongari/ate/if_ate.c
>  >  >  >  > http://people.freebsd.org/~yongari/ate/if_atereg.h
>  >  >  >  > http://people.freebsd.org/~yongari/ate/if_atevar.h
>  >  >  >  > http://people.freebsd.org/~yongari/ate/Makefile
>  >  >  >  > or
>  >  >  >  > http://people.freebsd.org/~yongari/ate/ate.20081030.tar.gz
>  >  >  >  > The driver should build without problems on CURRENT, stable/7.
>  >  >  >  > 
>  >  >  >  > ATM the driver supports the following hardware features.
>  >  >  >  >  - TSO
>  >  >  >  >  - Rx TCP/UDP/IP checksum offload
>  >  >  >  >  - VLAN tag insertion/stripping
>  >  >  >  >  - Jumbo frame
>  >  >  >  >  - WOL
>  >  >  >  > It seems that hardware supports Tx checksum offload but I couldn't
>  >  >  >  > make it work for TCP segments. Only short TCP segments seem to work
>  >  >  >  > so I disabled Tx checksum offload.
>  >  >  >  > Note, the hardware does not support descriptor based DMA on Rx side
>  >  >  >  > so driver have to copy recevied frames to pass them to upper stack
>  >  >  >  > so it will consume a lot of CPU cycles if you push the hardware to
>  >  >  >  > the limit.
>  >  >  > 
>  >  >  > As bruffer pointed out the device name chosen conflicts with other
>  >  >  > driver in tree so I renamed it to ale(4).The URL for the driver is
>  >  >  > http://people.freebsd.org/~yongari/ale/if_ale.c
>  >  >  > http://people.freebsd.org/~yongari/ale/if_alereg.h
>  >  >  > http://people.freebsd.org/~yongari/ale/if_alevar.h
>  >  >  > http://people.freebsd.org/~yongari/ale/Makefile
>  >  >  > or
>  >  >  > http://people.freebsd.org/~yongari/ale/ale.20081030.tar.gz
>  >  >  > Sorry for confusion.
>  >  > 
>  >  > FYI:
>  >  > There was a typo that keep ale(4) from building on stable/7. It was
>  >  > fixed now and I reuploaded related files(URLs are the same as before).
>  > 
>  > Finally I've managed to make Tx checksum offload work and added one
>  > more workaround for silicon bug. As usual updated ale(4) can be
>  > found at the following URL.
>  > 
>  > http://people.freebsd.org/~yongari/ale/if_ale.c   
>  > http://people.freebsd.org/~yongari/ale/if_alereg.h
>  > http://people.freebsd.org/~yongari/ale/if_alevar.h
>  > http://people.freebsd.org/~yongari/ale/Makefile
>  > or 
>  > http://people.freebsd.org/~yongari/ale/ale.20081107.tar.gz
>  > 
>  > The workaround takes more CPU cycles than previous one but you can
>  > still saturate the link if you have fast CPU. I'll commit this
>  > version within a week unless severe issues are reported.
>
> One user reported non-working NFS over UDP and I disabled Rx
> checksum offload as AR81xx hardware is not able to handle
> fragmented IP datagrams correctly. So it's highly recommended to
> disable Rx checksum offload or use the following updated files.
>
> http://people.freebsd.org/~yongari/ale/ale.20081108.tar.gz

Tested at EeePC-1000. The perfomance dropped (seems to be expected)
twice -- to 5.5 MB/s (fetching a big file to tmpfs). Other than that
works fine. This is for:
-----
ale0 at pci0:4:0:0:        class=0x020000 card=0x83241043 chip=0x10261969 rev=0xb0 hdr=0x00
    vendor     = 'Attansic (Now owned by Atheros)'
    class      = network
    subclass   = ethernet
-----


WBR
-- 
Boris Samorodov (bsam)
Research Engineer, http://www.ipt.ru Telephone & Internet SP
FreeBSD committer, http://www.FreeBSD.org The Power To Serve


More information about the freebsd-current mailing list