Here is what I see connecting from a bbb on nfs root via
a 100Mb switch to another host:

tcpbench 
tcp 5.2 Mbps
udp 11.6 Mbps 990 pps

iperf
tcp 5.29 Mbits/sec
udp 1.05 Mbits/sec

I'm not sure why udp differs here.

Connecting from linux that was preinstalled on the emmc:

iperf
tcp 92.5 Mbits/sec
udp 1.05 Mbits/sec

Perhaps the switch frontend/ALE configuration is not set
up correctly?  I'm sure you must have read a bit about that
when looking into adding support for the other port.

It looks like there is not a clean seperation of registers/interrupts/dma
for the different ports which is annoying.

The driver in OpenBSD does not attempt to do interrupt mitigation either.

Though perhaps with such a large difference something more fundamental
like the processor cache/pmap/frequency handling could be implicated?

On Tue, Nov 04, 2014 at 08:42:20AM +0100, Mérindol Bernard wrote:
> Hi Jonathan,
> 
> Thank for your answer.
> 
> I have re build my OpenBSD with Artheros Phy support
> 
> com0: console
> cpsw0 at omap0: version 1.12 (0), address d4:94:a1:84:28:f2
> atphy0 at cpsw0 phy 0: F1 10/100/1000 PHY, rev. 4
> atphy1 at cpsw0 phy 1: F1 10/100/1000 PHY, rev. 4
> scsibus0 at sdmmc0: 2 targets, initiator 0
> sd0 at scsibus0 targ 1 lun 0: <SD/MMC, Drive #01, > SCSI2 0/direct fixed
> 
> 
> But the result is same. I try to install last version of NetBSD to test.
> 
> If you or an other person have BeaglBoard with OpenBSD installed is it 
> possible to send to me the result of this command.
> 
> On OpenBsd
> nc -l 1234 > /dev/null
> 
> on other host (with XXBSD example OS X);
> mkfile 100m CentM
> 
> date;nc  <@IP of your BeagleBoard> 1234 < CentM;date
> 
> If you use Linux try with this command to create 100M file.
> dd if=/dev/zero of=CentM  bs=100M count=1
> 
> Thank
> Bernard Merindol
> 
> PS: send also the result of ifconfig cpsw0
> 
> 
> On 3 nov. 2014, at 14:13, Jonathan Gray <j...@jsg.id.au> wrote:
> > 
> > 
> > You have a different phy to the beaglebone boards.
> > It seems to be an Atheros phy that would be handled by atphy(4)
> > if it were added to the kernel configuration.
> > 
> > I doubt that would make much of a difference though.
> > 
> > rev 1.5 in NetBSD which programs the multicast filter could be
> > interesting
> > 
> > http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/arm/omap/if_cpsw.c?only_with_tag=MAIN
> > 
> > "Make cpsw driver work without uboot support
> > 
> > On some eval boards such as BeagleBone, the cpsw device is initialized
> > rightly by the uboot of the boards so that the cpsw driver doesn't need
> > to do some initializations but works fine.
> > 
> > The patch adds initializations to make the driver work solely. It also
> > adds support for 1000BaseT (RGMII) PHY that is equipped on some boards,
> > e.g., CKB-3352."
> > 
> > It seems the phy might need special handling according to
> > http://processors.wiki.ti.com/index.php/AM335x_General_Purpose_EVM_HW_User_Guide#Gbit_Ethernet
> > 
> > "Note: The GP EVM PCB does not support external delay for the clock
> > signals on the RGMII interface. The AR8031A PHY can be setup to use
> > internal clock delay mode once booting is complete. Therefore there may
> > be problems in function/performance when booting in Gb mode or when
> > running Gb Ethernet Mode before the AR8031A PHY is configured properly.
> > See the EVM Errata."
> > 
> > Which sounds rather like the cpsw specific hack in
> > http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/dev/mii/micphy.c?rev=1.3
> > 
> > On Mon, Nov 03, 2014 at 12:01:39PM +0100, Mérindol Bernard wrote:
> >> Hi All,
> >> 
> >> I works with AM335x Starter Kit from TI, I modify the cpsw driver to works 
> >> with 2 ports (cpsw0 and cpsw1).
> >> 
> >> Before this modification I have tested the performance on native driver 
> >> with this command.
> >> 
> >> on OBSD
> >> nc -l 1234 > /dev/null
> >> 
> >> 
> >> on host connected by switch 100Mbit/s full duplex (MAC OX 10.10)
> >> 
> >> nc  192.168.169.62 1234 < CentM
> >> 
> >> where CentM il file with 100MByte (created with makefile 100m CentM).
> >> 
> >> On BSD5.5 or 5.6 the time for this transfert is 93s = 8,6 Mbit/s
> >> 
> >> I have try the same transfert with Linux (on same board) the time is 9s = 
> >> 89Mbit/s
> >> 
> >> The performance of transfert on OBSD is poor why ?
> >> 
> >> Driver ?
> >> Kernel ?
> >> Or mistake on my configuration.
> >> 
> >> I need ARM card with 2 ethernets (giga) Port to configure in routing from 
> >> port 1 to port 2. I hope 200Mbit/s (linux performance) for this routing.
> >> 
> >> Thank for your help.
> >> Bernard
> >> _________________________________
> >> result of ifconfig 
> >> # ifconfig cpsw0
> >> cpsw0: flags=28843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,NOINET6> mtu 1500
> >>        lladdr d4:94:a1:84:28:f2
> >>        priority: 0
> >>        groups: egress
> >>        media: Ethernet 100baseTX full-duplex
> >>        status: active
> >>        inet 192.168.169.62 netmask 0xffffff00 broadcast 192.168.169.255
> >> 
> >> 
> >> __________________________________
> >> result of dmessg
> >> # dmesg
> >> OpenBSD 5.6-current (GENERIC-OMAP) #0: Tue Oct 28 01:01:45 AEDT 2014
> >>    j...@armv7.jsg.id.au:/usr/src/sys/arch/armv7/compile/GENERIC-OMAP
> >> real mem  = 268435456 (256MB)
> >> avail mem = 255725568 (243MB)
> >> warning: no entropy supplied by boot loader
> >> mainbus0 at root
> >> cpu0 at mainbus0: ARM Cortex A8 R3 rev 2 (ARMv7 core)
> >> cpu0: DC enabled IC enabled WB disabled EABT branch prediction enabled
> >> cpu0: 32KB(64b/l,4way) I-cache, 32KB(64b/l,4way) wr-back D-cache
> >> omap0 at mainbus0: BeagleBone
> >> prcm0 at omap0 rev 0.2
> >> sitaracm0 at omap0: control module, rev 1.0
> >> intc0 at omap0 rev 5.0
> >> edma0 at omap0 rev 0.0
> >> dmtimer0 at omap0 rev 3.1
> >> dmtimer1 at omap0 rev 3.1
> >> omdog0 at omap0 rev 0.1
> >> omgpio0 at omap0: rev 0.1
> >> gpio0 at omgpio0: 32 pins
> >> omgpio1 at omap0: rev 0.1
> >> gpio1 at omgpio1: 32 pins
> >> omgpio2 at omap0: rev 0.1
> >> gpio2 at omgpio2: 32 pins
> >> omgpio3 at omap0: rev 0.1
> >> gpio3 at omgpio3: 32 pins
> >> omap0: device tiiic unit 0 not configured
> >> omap0: device tiiic unit 1 not configured
> >> omap0: device tiiic unit 2 not configured
> >> ommmc0 at omap0
> >> sdmmc0 at ommmc0
> >> ommmc1 at omap0
> >> sdmmc1 at ommmc1
> >> com0 at omap0: ti16750, 64 byte fifo
> >> com0: console
> >> cpsw0 at omap0: version 1.12 (0), address d4:94:a1:84:28:f2
> >> ukphy0 at cpsw0 phy 0: Generic IEEE 802.3u media interface, rev. 4: OUI 
> >> 0x001374, model 0x0007
> >> ukphy1 at cpsw0 phy 1: Generic IEEE 802.3u media interface, rev. 4: OUI 
> >> 0x001374, model 0x0007
> >> scsibus0 at sdmmc0: 2 targets, initiator 0
> >> sd0 at scsibus0 targ 1 lun 0: <SD/MMC, Drive #01, > SCSI2 0/direct fixed
> >> sd0: 3781MB, 512 bytes/sector, 7744512 sectors
> >> sdmmc1: can't enable card
> >> vscsi0 at root
> >> scsibus1 at vscsi0: 256 targets
> >> softraid0 at root
> >> scsibus2 at softraid0: 256 targets
> >> boot device: sd0
> >> root on sd0a (853680ee25c0e223.a) swap on sd0b dump on sd0b
> >> WARNING: CHECK AND RESET THE DATE!
> >> 
> >> 
> >> __________________________________________
> >> Bernard M. Merindol, Grenoble France
> >> bern...@merindol.org GSM: +33-6-08-75-03-52
> >> 
> 
> __________________________________________
> Bernard M. Merindol, Grenoble France
> bern...@merindol.org GSM: +33-6-08-75-03-52
> 

Reply via email to