Subject: SS20 network performance
To: None <port-sparc@netbsd.org>
From: Tomi Nylund <wizard@in.finland.invalid>
List: port-sparc
Date: 05/17/2002 13:21:35
Hello,

I'm having a strange performance problem with a SparcStation 20
regarding packet forwarding.
The machine in question is equipped with two hme's in 100-FDX mode,
running ipfilter.

Now, the maximum throughput I've been able to achieve, is 2.57MB/s,
measured using wget
to pull a large (>500 MB) file from one side of the firewall to another.
I first thought it to be a
HW issue, since I used Big Macs (be) before, but even after switching to
hme's, the performance
is exactly the same (~2.5 MB/s). The state table has been empty except
for the test connection
during testing, so I don't think it is ipf.

This is strange, because I've reached over 7 MB/s throughputs with
Solaris 8 running ipfilter
on the very same platform.  Am I missing something, or is this the
"maximum", that can be
reached with NetBSD/sparc? Also I'm seeing strange collisions on hme1.
This is VERY strange,
because the other end terminates to a HP Procurve switch, which IS
full-duplex.

relevant machine info:

NetBSD 1.5.3_RC1 (SIK-FIREWALL-IPV6) #0: Fri Apr  5 15:48:27 EEST 2002

root@sik-ns1:/usr/src/syssrc/sys/arch/sparc/compile/SIK-FIREWALL-IPV6
total memory = 97468 KB
avail memory = 87736 KB
using 896 buffers containing 4972 KB of memory
bootpath:
/iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@3,0
mainbus0 (root): SUNW,SPARCstation-20
cpu0 at mainbus0: TMS390Z50 v0 or TMS390Z55 @ 75 MHz, on-chip FPU
cpu0: physical 20K instruction (64 b/l), 16K data (32 b/l), 1024K
external (32 b/l): cache enabled
obio0 at mainbus0
clock0 at obio0 slot 0 offset 0x200000: mk48t08 (eeprom)
timer0 at obio0 slot 0 offset 0x300000 delay constant 35
zs0 at obio0 slot 0 offset 0x100000 level 12 softpri 6
zstty0 at zs0 channel 0 (console i/o)
zstty1 at zs0 channel 1
zs1 at obio0 slot 0 offset 0x0 level 12 softpri 6
kbd0 at zs1 channel 0
ms0 at zs1 channel 1
fdc0 at obio0 slot 0 offset 0x700000 level 11 softpri 4: chip 82077
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
auxreg0 at obio0 slot 0 offset 0x800000
power0 at obio0 slot 0 offset 0xa01000 level 2
iommu0 at mainbus0 ioaddr 0xe0000000: version 0x3/0x1, page-size 4096,
range 64MB
sbus0 at iommu0: clock = 20 MHz
dma0 at sbus0 slot 15 offset 0x400000: rev 2
esp0 at dma0 slot 15 offset 0x800000 level 4: ESP200, 40MHz, SCSI ID 7
scsibus0 at esp0: 8 targets, 8 luns per target
ledma0 at sbus0 slot 15 offset 0x400010: rev 2
le0 at ledma0 slot 15 offset 0xc00000 level 6: address 08:00:20:77:f2:4d

le0: 8 receive buffers, 2 transmit buffers
bpp0 at sbus0 slot 15 offset 0x4800000 level 2 (ipl 3): rev 2
SUNW,DBRIe at sbus0 slot 14 offset 0x10000 level 9 not configured
hme0 at sbus0 slot 0 offset 0x8c00000 level 4 (ipl 7): address
08:00:20:77:f2:4d
ukphy0 at hme0 phy 1: Generic IEEE 802.3u media interface
ukphy0: DP83840 10/100 media interface (OUI 0x080017, model 0x0000),
rev. 1
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
SUNW,fas at sbus0 slot 0 offset 0x8800000 level 3 (ipl 5) not configured

hme1 at sbus0 slot 2 offset 0x8c00000 level 4 (ipl 7): address
08:00:20:77:f2:4d
ukphy1 at hme1 phy 1: Generic IEEE 802.3u media interface
ukphy1: DP83840 10/100 media interface (OUI 0x080017, model 0x0000),
rev. 0
ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
SUNW,fas at sbus0 slot 2 offset 0x8800000 level 3 (ipl 5) not configured

eccmemctl0 at mainbus0: version 0x0/0x2
scsibus0: waiting 2 seconds for devices to settle...
probe(esp0:3:0): max sync rate 10.00MB/s
sd0 at scsibus0 target 3 lun 0: <SEAGATE, ST32550W SUN2.1G, 0418> SCSI2
0/direct fixed
sd0: 2048 MB, 3511 cyl, 11 head, 108 sec, 512 bytes/sect x 4194995
sectors
IPsec: Initialized Security Association Processing.
root on sd0a dumps on sd0b
root file system type: ffs
IP Filter: v3.4.23 initialized.  Default = pass all, Logging = enabled
hme0: status=30001<GOTFRAME,RXTOHOST,NORXD>

some sysctl's:

net.inet.tcp.rfc1323 = 1
net.inet.tcp.sendspace = 65535
net.inet.tcp.recvspace = 65535
net.inet.tcp.mssdflt = 512
net.inet.tcp.syn_cache_limit = 10255
net.inet.tcp.syn_bucket_limit = 105
net.inet.tcp.syn_cache_interval = 1
net.inet.tcp.init_win = 1
net.inet.tcp.mss_ifmtu = 0
net.inet.tcp.sack = 1
net.inet.tcp.win_scale = 1

Opinions appreciated,


Tomi

PS: Please reply to the mailing list, as the e-mail address is
obfuscated to repel spammers.