Subject: de/tlp performance problems ?
To: None <current-users@netbsd.org>
From: Jeff Rizzo <riz@boogers.sf.ca.us>
List: current-users
Date: 08/22/2001 16:16:09
I just came into possesion of a number of 4-port ZNYX 10/100 boards,
which apparently have the DEC 21143 chip in them, but I'm having
a lot of trouble with them, under both 1.5.1 and -current (1.5X as of
a few weeks ago).

I've tried both the default 'de' driver match, as well as the 'tlp' driver,
but the performance on them seems very poor compare to the fxp on the
motherboard.  I generally use ttcp to measure rough throughput, and
with a pair of boxes (i810 motherboards, running 1.5.1/i386, though I've
gotten similar results with -current),  the ttcp test NEVER completes...
when I look at netstat, only about 1pps is going over the interface.
The fxp interface gets about 81Mbps from the same boxes, same kernel.

Just to check things out, I loaded FreeBSD 4.3 on one of the boxes, and
the board matched against their 'dc' driver.  I was able to transmit
41Mbps from it to a NetBSD box with a fxp interface, measured by ttcp.

A slightly less scientific test, using a get of a 2Meg file via http 
yields a transfer rate of about 10Kbytes (not bits) per sec on a
box running 1.5X to the tlp interface, vs. the same box getting
9.6MBytes per sec to the fxp interface, and 10Mbytes/sec on the same
box running FreeBSD 4.3, to the 'dc' interface.

I can live with the fact that the hardware is perhaps not as good as
the fxp.  (I'm not sure if that's true, but if it is, I can live with it).
However, something seems to be amiss in both the tlp and de drivers,
at least in regards to this board.  Is there perhaps some other 
configuration piece that I'm missing to allow me to get decent, or
at least usable, performance out of these boards under NetBSD?

Thanks in advance for any advice.

+j

Here's the relevant dmesg info from NetBSD, both as a 'tlp' and 'de' match:

1.5.1, tlp:
tlp0 at pci2 dev 4 function 0: DECchip 21143 Ethernet, pass 4.1
tlp0: interrupting at irq 10
tlp0: Ethernet address 00:c0:95:e4:63:dc
tlp0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX
tlp1 at pci2 dev 5 function 0: DECchip 21143 Ethernet, pass 4.1
tlp1: interrupting at irq 11
tlp1: Ethernet address 00:c0:95:e4:63:dd
tlp1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX
tlp2 at pci2 dev 6 function 0: DECchip 21143 Ethernet, pass 4.1
tlp2: interrupting at irq 9
tlp2: Ethernet address 00:c0:95:e4:63:de
tlp2: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX
tlp3 at pci2 dev 7 function 0: DECchip 21143 Ethernet, pass 4.1
tlp3: interrupting at irq 11
tlp3: Ethernet address 00:c0:95:e4:63:df
tlp3: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX

1.5.1, de:
de0 at pci2 dev 4 function 0
de0: interrupting at irq 10
de0: ZNYX ZX31X 21143 [10-100Mb/s] pass 4.1
de0: address 00:c0:95:e6:64:1c
de1 at pci2 dev 5 function 0
de1: interrupting at irq 11
de1: ZNYX ZX31X 21143 [10-100Mb/s] pass 4.1
de1: address 00:c0:95:e6:64:1d
de2 at pci2 dev 6 function 0
de2: interrupting at irq 9
de2: ZNYX ZX31X 21143 [10-100Mb/s] pass 4.1
de2: address 00:c0:95:e6:64:1e
de3 at pci2 dev 7 function 0
de3: interrupting at irq 11
de3: ZNYX ZX31X 21143 [10-100Mb/s] pass 4.1
de3: address 00:c0:95:e6:64:1f

1.5X, tlp:
tlp0 at pci2 dev 4 function 0: DECchip 21143 Ethernet, pass 4.1
tlp0: interrupting at irq 10
tlp0: Ethernet address 00:c0:95:e6:48:50
tlp0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX
tlp1 at pci2 dev 5 function 0: DECchip 21143 Ethernet, pass 4.1
tlp1: interrupting at irq 11
tlp1: Ethernet address 00:c0:95:e6:48:51
tlp1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX
tlp2 at pci2 dev 6 function 0: DECchip 21143 Ethernet, pass 4.1
tlp2: interrupting at irq 9
tlp2: Ethernet address 00:c0:95:e6:48:52
tlp2: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX
tlp3 at pci2 dev 7 function 0: DECchip 21143 Ethernet, pass 4.1
tlp3: interrupting at irq 11
tlp3: Ethernet address 00:c0:95:e6:48:53
tlp3: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX

and, in case it matters, FreeBSD 4.3, dc:
dc0: <Intel 21143 10/100BaseTX> port 0xc480-0xc4ff mem 0xff3ff000-0xff3ff3ff irq 10 at device 4.0 on pci2
dc0: Ethernet address: 00:c0:95:e6:60:7c
miibus0: <MII bus> on dc0
dcphy0: <Intel 21143 NWAY media interface> on miibus0
dcphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc1: <Intel 21143 10/100BaseTX> port 0xc800-0xc87f mem 0xff3ff400-0xff3ff7ff irq 11 at device 5.0 on pci2
dc1: Ethernet address: 00:c0:95:e6:60:7d
miibus1: <MII bus> on dc1
dcphy1: <Intel 21143 NWAY media interface> on miibus1
dcphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc2: <Intel 21143 10/100BaseTX> port 0xc880-0xc8ff mem 0xff3ff800-0xff3ffbff irq 9 at device 6.0 on pci2
dc2: Ethernet address: 00:c0:95:e6:60:7e
miibus2: <MII bus> on dc2
dcphy2: <Intel 21143 NWAY media interface> on miibus2
dcphy2:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc3: <Intel 21143 10/100BaseTX> port 0xcc00-0xcc7f mem 0xff3ffc00-0xff3fffff irq 11 at device 7.0 on pci2
dc3: Ethernet address: 00:c0:95:e6:60:7f
miibus3: <MII bus> on dc3
dcphy3: <Intel 21143 NWAY media interface> on miibus3
dcphy3:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto

-- 
Jeff Rizzo                                         http://boogers.sf.ca.us/~riz