Subject: Re: kern/29978: tlp driver bad performance (transmit underrun) especially ANA-6944A
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: netbsd-bugs
Date: 04/17/2005 14:32:02
The following reply was made to PR kern/29978; it has been noted by GNATS.

From: Manuel Bouyer <bouyer@antioche.eu.org>
To: gnats-bugs@NetBSD.org
Cc: kern-bug-people@NetBSD.org, gnats-admin@NetBSD.org,
	netbsd-bugs@NetBSD.org
Subject: Re: kern/29978: tlp driver bad performance (transmit underrun) especially ANA-6944A
Date: Sun, 17 Apr 2005 16:31:34 +0200

 On Sun, Apr 17, 2005 at 01:40:02PM +0000, Tino Wildenhain wrote:
 >  Additional informations: 
 >  
 >  I added a 3com single card and 2 tlp single cards to the system
 >  to compare the drivers. Here is the buslayout (with linux)
 >  
 >  lspci -tv
 >  -[00]-+-00.0  Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge
 >        +-01.0-[01]----00.0  ATI Technologies Inc Rage 128 PF/PRO AGP 4x
 >  TMDS
 >        +-07.0  Intel Corp. 82371AB/EB/MB PIIX4 ISA
 >        +-07.1  Intel Corp. 82371AB/EB/MB PIIX4 IDE
 >        +-07.2  Intel Corp. 82371AB/EB/MB PIIX4 USB
 >        +-07.3  Intel Corp. 82371AB/EB/MB PIIX4 ACPI
 >        +-08.0  3Com Corporation 3c905 100BaseTX [Boomerang]
 >        +-09.0-[02]--+-04.0  Digital Equipment Corporation DECchip 21140
 >  [FasterNet]
 >        |            +-05.0  Digital Equipment Corporation DECchip 21140
 >  [FasterNet]
 >        |            +-06.0  Digital Equipment Corporation DECchip 21140
 >  [FasterNet]
 >        |            \-07.0  Digital Equipment Corporation DECchip 21140
 >  [FasterNet]
 >        +-0a.0  Digital Equipment Corporation DECchip 21140 [FasterNet]
 >        \-0b.0  Digital Equipment Corporation DECchip 21140 [FasterNet]
 >  
 >  
 >  (in all tests I run only console, no gfx)
 >  
 >  relevant dmesg output:
 >  
 >  ex0 at pci0 dev 8 function 0: 3Com 3c905-TX 10/100 Ethernet (rev. 0x0)
 >  ex0: interrupting at irq 11
 >  ex0: MAC address 00:60:97:83:ab:6d
 >  nsphy0 at ex0 phy 24: DP83840 10/100 media interface, rev. 1
 >  nsphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 >  ppb1 at pci0 dev 9 function 0: Digital Equipment DC21152 PCI-PCI Bridge
 >  (rev. 0x03)
 >  pci2 at ppb1 bus 2
 >  pci2: i/o space, memory space enabled, rd/line, wr/inv ok
 >  tlp0 at pci2 dev 4 function 0: DECchip 21140A Ethernet, pass 2.2
 >  tlp0: interrupting at irq 5
 >  tlp0: Adaptec ANA-6944A, Ethernet address 00:00:d1:1f:09:54
 >  nsphy1 at tlp0 phy 1: DP83840 10/100 media interface, rev. 1
 >  nsphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 >  tlp1 at pci2 dev 5 function 0: DECchip 21140A Ethernet, pass 2.2
 >  tlp1: sharing interrupt with tlp0
 >  tlp1: Adaptec ANA-6944A, Ethernet address 00:00:d1:1f:09:55
 >  nsphy2 at tlp1 phy 1: DP83840 10/100 media interface, rev. 1
 >  nsphy2: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 >  tlp2 at pci2 dev 6 function 0: DECchip 21140A Ethernet, pass 2.2
 >  tlp2: sharing interrupt with tlp0
 >  tlp2: Adaptec ANA-6944A, Ethernet address 00:00:d1:1f:09:56
 >  nsphy3 at tlp2 phy 1: DP83840 10/100 media interface, rev. 1
 >  nsphy3: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 >  tlp3 at pci2 dev 7 function 0: DECchip 21140A Ethernet, pass 2.2
 >  tlp3: sharing interrupt with tlp0
 >  tlp3: Adaptec ANA-6944A, Ethernet address 00:00:d1:1f:09:57
 >  nsphy4 at tlp3 phy 1: DP83840 10/100 media interface, rev. 1
 >  nsphy4: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 >  tlp4 at pci0 dev 10 function 0: DECchip 21140A Ethernet, pass 2.2
 >  tlp4: interrupting at irq 9
 >  tlp4: Ethernet address 00:80:c8:f6:c9:b3
 >  lxtphy0 at tlp4 phy 0: LXT970 10/100 media interface, rev. 1
 >  lxtphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 >  tlp5 at pci0 dev 11 function 0: DECchip 21140A Ethernet, pass 2.2
 >  tlp5: interrupting at irq 10
 >  tlp5: Ethernet address 00:80:c8:f6:46:bd
 >  lxtphy1 at tlp5 phy 0: LXT970 10/100 media interface, rev. 1
 >  lxtphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 >  
 >  =======================================================================
 >  ttcp test with 3com (ex0):
 >  -----------------------------------------------------------------------
 >  ttcp-t: buflen=8192, nbuf=16384, align=16384/0, port=5001ttcp-t: socket
 >  ttcp-t: connect
 >  ttcp-t: 134217728 bytes in 12.02 real seconds = 10905.64 KB/sec +++
 >  ttcp-t: 134217728 bytes in 5.29 CPU seconds = 24769.54 KB/cpu sec
 >  ttcp-t: 16384 I/O calls, msec/call = 0.75, calls/sec = 1363.21
 >  ttcp-t: 0.0user 5.2sys 0:12real 43% 0i+0d 0maxrss 0+17228pf 28096+33csw
 >  ttcp-t: buffer address 0x8050000
 >  
 >  =======================================================================
 >  ttcp test with AHA-6944A 1. Port (tlp0):
 >  -----------------------------------------------------------------------
 >  ttcp-t: buflen=8192, nbuf=16384, align=16384/0, port=5001ttcp-t: socket
 >  ttcp-t: connect
 >  ttcp-t: 134217728 bytes in 30.47 real seconds = 4301.84 KB/sec +++
 >  ttcp-t: 134217728 bytes in 6.28 CPU seconds = 20873.48 KB/cpu sec
 >  ttcp-t: 16384 I/O calls, msec/call = 1.90, calls/sec = 537.73
 >  ttcp-t: 0.0user 6.1sys 0:30real 20% 0i+0d 0maxrss 0+14937pf 38361+17csw
 >  ttcp-t: buffer address 0x8050000
 >  
 >  =======================================================================
 >  ttcp test with AHA-6944A 4. Port (tlp3):
 >  -----------------------------------------------------------------------
 >  ttcp-t: buflen=8192, nbuf=16384, align=16384/0, port=5001ttcp-t: socket
 >  ttcp-t: connect
 >  ttcp-t: 134217728 bytes in 30.45 real seconds = 4304.97 KB/sec +++
 >  ttcp-t: 134217728 bytes in 6.15 CPU seconds = 21312.09 KB/cpu sec
 >  ttcp-t: 16384 I/O calls, msec/call = 1.90, calls/sec = 538.12
 >  ttcp-t: 0.0user 6.0sys 0:30real 20% 0i+0d 0maxrss 0+14828pf 38473+18csw
 >  ttcp-t: buffer address 0x8050000
 >  
 >  =======================================================================
 >  ttcp test with single tlp-Card (tlp4):
 >  -----------------------------------------------------------------------
 >  ttcp-t: buflen=8192, nbuf=16384, align=16384/0, port=5001ttcp-t: socket
 >  ttcp-t: connect
 >  ttcp-t: 134217728 bytes in 12.30 real seconds = 10654.03 KB/sec +++
 >  ttcp-t: 134217728 bytes in 5.96 CPU seconds = 22000.53 KB/cpu sec
 >  ttcp-t: 16384 I/O calls, msec/call = 0.77, calls/sec = 1331.75
 >  ttcp-t: 0.0user 5.9sys 0:12real 48% 0i+0d 0maxrss 0+17449pf 22722+42csw
 >  ttcp-t: buffer address 0x8050000
 >  
 >  
 >  We can see the performance with the single tlp card is much better.
 
 It may be an issue with the pci-pci bridge on the adaptec adapter.
 It would be interesting to see if the linux driver has something special about
 it.
 
 Is there a way to dump the PCI registers on linux ? If would be interesting
 to compare the values between linux and NetBSD for the pci-pci bridge.
 
 You can also compare the values for the tlp devices on the adaptec adapter and
 the single device (with pcictl dump)
 
 -- 
 Manuel Bouyer <bouyer@antioche.eu.org>
      NetBSD: 26 ans d'experience feront toujours la difference
 --