Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: NetBSD on ODROID-C1



Hi Jared

I wasn´t aware of this easy-at-hand OpenSSL benchmark. That motivated
me to do some comparing benchmarks. I noted the following numbers of
the 16 size blocks test:

Raspberry Pi B NetBSD   ~70.000
Raspberry Pi B Raspian   ~300.000
Raspberry Pi 2 Raspian   ~800.000
NetBSD amd 64              ~4.400.000 (Intel Core 2 Extreme
(686-class), 2826.34 MHz, id 0x10676)

As I suspected before, I do think that there is an issue with NetBSD
performance on arm. In this case, these differences are hard to
understand because this is a userspace-only benchmark. Possible
reasons that came to my mind were

-the code generated by gcc. (E.g. branches instead of conditional
instructions after cmp or CPSR-updating, 's'-suffixed instructions).

-the timter interrupt being incredibly time-consuming (is there a way
to measure, like RDTSC on x86?)

-other optimizations for example in libc in regard to e.g. memset(),
memcpy() and friends (following these ideas:
https://github.com/simonjhall/copies-and-fills)



2015-03-04 0:26 GMT+01:00 Jared McNeill <jmcneill%invisible.ca@localhost>:
> ODROID-C1 is a quad core Cortex-A5 board (only $35!) from Hardkernel:
> http://www.hardkernel.com/main/products/prdt_info.php
>
> So far I have serial console, USB, and SMP working. It boots multiuser on
> -current. dmesg below.
>
> Cheers,
> Jared
>
>
>
> QA5:A;SVN:B72;POC:17F;STS:0;BOOT:0;INIT:10;BOOT:1;INIT:0;READ:0;CHECK:0;PASS:1;
> -----------------------------------------------------------------------
> * Welcome to Hardkernel's ODROID-C... (Built at 19:33:00 Dec  8 2014) *
> -----------------------------------------------------------------------
> CPU : AMLogic S805
> MEM : 1024MB (DDR3@792MHz)
> BID : HKC13C0001
> S/N : HKC1CC037EBE432C
> 0x0000009f
> check SD_boot_type:0x1   card_type:0x1
> Loading U-boot...success.
>
>
> U-boot-00000-ge7d4447(odroidc@odroidc-v2011.03) (Feb 04 2015 - 20:50:13)
>
> DRAM:  1 GiB
> relocation Offset is: 2ff08000
> MMC:   SDCARD: 0, eMMC: 1
> IR init is done!
> vpu clk_level = 3
> set vpu clk: 182150000Hz, readback: 182150000Hz(0x701)
> mode = 6  vic = 4
> set HDMI vic: 4
> mode is: 6
> viu chan = 1
> config HPLL
> config HPLL done
> reconfig packet setting done
> MMC read: dev # 0, block # 33984, count 12288 ... 12288 blocks read: OK
> There is no valid bmp file at the given address
> ============================================================
> Vendor: Man 1b534d Snr 76f0b173 Rev: 1.0 Prod: 00000
>             Type: Removable Hard Disk
>             Capacity: 3884.0 MB = 3.7 GB (7954432 x 512)
> ------------------------------------------------------------
> Partition     Start Sector     Num Sectors     Type
>     1                 2048           78277       c
>     2                80325         1494045      83
> ============================================================
> Net:   Meson_Ethernet
> init suspend firmware done. (ret:0)
> Hit Enter key to stop autoboot -- :  0
> exit abortboot: 0
> reading boot.ini
>
> 1392 bytes read
> Loading boot.ini from mmc0:1 (vfat)
> Executing the script...
>
> setenv m "1080p"        # 1080P 1920x1080
>
> setenv vout_mode "hdmi"
>
> setenv m_bpp "32"
>
> setenv disableuhs "disableuhs"
> setenv bootargs "root=sd0a"
> setenv bootcmd "fatload mmc 0:1 0x21000000 netbsd.ub; bootm 0x21000000"
> run bootcmd
> reading netbsd.ub
>
> 4811648 bytes read
> ## Booting kernel from Legacy Image at 21000000 ...
>    Image Name:   NetBSD/amlogic 7.99.5
>    Image Type:   ARM NetBSD Kernel Image (uncompressed)
>    Data Size:    4811584 Bytes = 4.6 MiB
>    Load Address: 00100000
>    Entry Point:  00100000
>    Verifying Checksum ... OK
>    Loading Kernel Image ... OK
> OK
> uboot time: 5027565 us.
> ## Transferring control to NetBSD stage-2 loader (at address 00100000) ...
> [ Kernel symbol table missing! ]
> Loaded initial symtab at 0x804ff5f8, strtab at 0x8053aa98, # entries 15159
> Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
>     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015
>     The NetBSD Foundation, Inc.  All rights reserved.
> Copyright (c) 1982, 1986, 1989, 1991, 1993
>     The Regents of the University of California.  All rights reserved.
>
> NetBSD 7.99.5 (ODROID-C1) #203: Tue Mar  3 19:18:44 AST 2015
>
> Jared@Jared-PC:/cygdrive/d/netbsd/src/sys/arch/evbarm/compile/obj/ODROID-C1
> total memory = 1024 MB
> avail memory = 1008 MB
> sysctl_createv: sysctl_create(machine_arch) returned 17
> mainbus0 (root)
> cpu0 at mainbus0 core 0: 1200 MHz Cortex-A5 r0p1 (Cortex V7A core)
> cpu0: DC enabled IC enabled WB disabled EABT branch prediction enabled
> cpu0: 32KB/32B 2-way L1 VIPT Instruction cache
> cpu0: 32KB/32B 4-way write-back-locking-C L1 PIPT Data cache
> cpu0: 512KB/32B 8-way **unknown 12** L2 PIPT Unified cache
> vfp0 at cpu0: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
> cpu1 at mainbus0 core 1
> cpu2 at mainbus0 core 2
> cpu3 at mainbus0 core 3
> armperiph0 at mainbus0
> armgic0 at armperiph0: Generic Interrupt Controller, 256 sources (245 valid)
> armgic0: 32 Priorities, 224 SPIs, 5 PPIs, 16 SGIs
> a9tmr0 at armperiph0: A9 Global 64-bit Timer (300 MHz)
> a9tmr0: interrupting on irq 27
> a9wdt0 at armperiph0: A9 Watchdog Timer, default period is 12 seconds
> arml2cc0 at armperiph0: ARM PL310 r3p3 L2 Cache Controller (disabled)
> arml2cc0: cache enabled
> amlogicio0 at mainbus0
> amlogiccom0 at amlogicio0 port 0: console
> amlogiccom0: interrupting at irq 122
> dwctwo0 at amlogicio0 port 0: USB controller
> dwctwo1 at amlogicio0 port 1: USB controller
> usb0 at dwctwo0: USB revision 2.0
> usb1 at dwctwo1: USB revision 2.0
> cpu1: 1200 MHz Cortex-A5 r0p1 (Cortex V7A core)
> cpu1: DC enabled IC enabled WB disabled EABT branch prediction enabled
> cpu1: 32KB/32B 2-way L1 VIPT Instruction cache
> cpu1: 32KB/32B 4-way write-back-locking-C L1 PIPT Data cache
> cpu1: 512KB/32B 8-way **unknown 12** L2 PIPT Unified cache
> vfp1 at cpu1: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
> cpu3: 1200 MHz Cortex-A5 r0p1 (Cortex V7A core)
> cpu3: DC enabled IC enabled WB disabled EABT branch prediction enabled
> cpu3: 32KB/32B 2-way L1 VIPT Instruction cache
> cpu3: 32KB/32B 4-way write-back-locking-C L1 PIPT Data cache
> cpu3: 512KB/32B 8-way **unknown 12** L2 PIPT Unified cache
> vfp3 at cpu3: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
> cpu2: 1200 MHz Cortex-A5 r0p1 (Cortex V7A core)
> cpu2: DC enabled IC enabled WB disabled EABT branch prediction enabled
> cpu2: 32KB/32B 2-way L1 VIPT Instruction cache
> cpu2: 32KB/32B 4-way write-back-locking-C L1 PIPT Data cache
> cpu2: 512KB/32B 8-way **unknown 12** L2 PIPT Unified cache
> vfp2 at cpu2: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
> uhub0 at usb0: vendor 0000 DWC2 root hub, class 9/0, rev 2.00/1.00, addr 1
> uhub1 at usb1: vendor 0000 DWC2 root hub, class 9/0, rev 2.00/1.00, addr 1
> WARNING: module error: can't find builtin dependency `iic'
> WARNING: module error: can't find builtin dependency `au8522'
> WARNING: module error: can't find builtin dependency `iic'
> WARNING: module error: can't find builtin dependency `iic'
> WARNING: module error: can't find builtin dependency `iic'
> WARNING: module error: can't find builtin dependency `iic'
> uhub2 at uhub1 port 1: vendor 05e3 USB2.0 Hub, class 9/0, rev 2.00/32.98,
> addr 2
> uhub2: multiple transaction translators
> umass0 at uhub2 port 1 configuration 1 interface 0
> umass0: SanDisk Cruzer, rev 2.00/1.03, addr 3
> scsibus0 at umass0: 2 targets, 1 lun per target
> sd0 at scsibus0 target 0 lun 0: <SanDisk, Cruzer, 1.20> disk removable
> sd0: 7633 MB, 15509 cyl, 16 head, 63 sec, 512 bytes/sect x 15633408 sectors
> boot device: sd0
> root on sd0a dumps on sd0b
> mountroot: trying nfs...
> mountroot: trying msdos...
> mountroot: trying ffs...
> root file system type: ffs
> kern.module.path=/stand/evbarm/7.99.5/modules
> WARNING: no TOD clock present
> WARNING: using filesystem time
> WARNING: CHECK AND RESET THE DATE!
> warning: no /dev/console
> init: copying out path `/sbin/init' 11
> Kernel RNG "kernel" long run test FAILURE: Run of 26 1s found
> cprng kernel: failed statistical RNG test
> Kernel RNG "kernel" monobit test FAILURE: 10296 ones
> cprng kernel: failed statistical RNG test
> Kernel RNG "kernel" runs test FAILURE: too few runs of 4 0s (239 < 240)
> cprng kernel: failed statistical RNG test
> Kernel RNG "kernel" runs test FAILURE: too many runs of 4 0s (384 > 384)
> cprng kernel: failed statistical RNG test
> Sun Mar  1 18:59:04 UTC 2015
> Starting root file system check:
> /dev/rsd0a: file system is clean; not checking
> Starting file system checks:
> random_seed: /var/db/entropy-file: Not present
> Setting tty flags.
> WARNING: module error: vfs load failed for `compat', error 2
> WARNING: module error: vfs load failed for `compat', error 2
> WARNING: module error: vfs load failed for `com', error 2
> WARNING: module error: vfs load failed for `com', error 2
> Setting sysctl variables:
> ddb.onpanic: 1 -> 0
> Starting network.
> Hostname: empusa
> IPv6 mode: host
> Configuring network interfaces:.
> Adding interface aliases:.
> Waiting for DAD completion for statically configured addresses...
> Building databases: dev, utmp, utmpx.
> Starting syslogd.
> Mounting all file systems...
> Clearing temporary files.
> Creating a.out runtime link editor directory cache.
> Checking quotas: done.
> Setting securelevel: kern.securelevel: 0 -> 1
> Starting virecover.
> Starting local daemons:.
> Updating motd.
> Starting inetd.
> Starting cron.
> Sun Mar  1 18:59:30 UTC 2015
>
> NetBSD/evbarm (empusa) (console)
>
> login: root
> Mar  1 18:59:36 empusa login: ROOT LOGIN (root) on tty console
> Last login: Sun Mar  1 18:58:56 2015 on console
> Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
>     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
>     The NetBSD Foundation, Inc.  All rights reserved.
> Copyright (c) 1982, 1986, 1989, 1991, 1993
>     The Regents of the University of California.  All rights reserved.
>
> NetBSD 7.99.5 (ODROID-C1) #203: Tue Mar 3 19:18:44 AST 2015
>
> Welcome to NetBSD!
>
> This system is running a beta release of the NetBSD operating system, aimed
> at stabilizing the next formal release.  It is close to formal release
> quality,
> but may still contain bugs, even serious ones.  Please bear this in mind and
> use the system with care.
>
> You are encouraged to test this version as thoroughly as possible.  Should
> you
> encounter any problem, please report it back to the development team using
> the
> send-pr(1) utility (requires a working MTA).  If yours is not properly set
> up,
> use the web interface at: http://www.NetBSD.org/support/send-pr.html
>
> Thank you for helping us test and improve this beta NetBSD release.
>
> Terminal type is vt100.
> We recommend that you create a non-root account and use su(1) for root
> access.
> empusa# openssl speed md5
> WARNING: can't open config file: /etc/openssl/openssl.cnf
> Doing md5 for 3s on 16 size blocks: 318444 md5's in 3.02s
> Doing md5 for 3s on 64 size blocks: 301452 md5's in 3.01s
> Doing md5 for 3s on 256 size blocks: 252196 md5's in 3.01s
> Doing md5 for 3s on 1024 size blocks: 152042 md5's in 3.00s
> Doing md5 for 3s on 8192 size blocks: 32272 md5's in 3.00s
> OpenSSL 1.0.1k 8 Jan 2015
> NetBSD 7.0_BETA
> options:bn(32,32) md2(int) rc4(ptr,int) des(idx,cisc,2,long) aes(partial)
> idea(int) blowfish(idx)
> gcc version 4.8.4 (NetBSD nb2 20150115)
> The 'numbers' are in 1000s of bytes per second processed.
> type             16 bytes     64 bytes    256 bytes   1024 bytes   8192
> bytes
> md5               1687.12k     6409.61k    21449.23k    51897.00k
> 88124.07k
> empusa#


Home | Main Index | Thread Index | Old Index