Jump to content
  • 0

Armbian running on Pine64 (and other A64/H5 devices)


tkaiser

Question

We have initial support for Pine64/Pine64+ for a long time in our repository but not released any official images yet. Since this will change soon a sneak preview what to expect.

 

Hardware related issues:

 

Please don't blame Armbian for the few design flaws Pine64 and Pine64+ show:

  • These boards use Micro USB for DC-IN which is the worst possible decision. Most USB cables have a resistance way too high and are responsible for severe voltage drops when consumption increases, then the tiny Micro USB contacts have also a pretty high contact resistance and also maximum amperage for this connector is limited to 1.8A by USB specs. So in case you want to do heavy stuff immediately look into linux-sunxi wiki page for Pine64 to get the idea how to use the pins on the so called Euler connector to power the board more reliably. If you think about buying a Pine now consider ordering their PSU  too since there cable resistance shouldn't be a problem (should also apply to the Micro USB cables they sell)
  • The only led on this board is a power led that immediately lights when power is provided. Pre-production samples had a green led, on the normal batches this has been replaced with a red led. So there's no way for an OS image to provide user feedback (activate an led when u-boot or kernel boots) and the red light has often been interpreted as 'something is wrong'
  • USB: you find 2 USB type A receptacles on the board but only one is a true USB host port, the other/upper is A64's USB OTG port exposed not as Mini/Micro USB (with ID pin to be able to switch roles) but as a normal type A port. Expect performance to be lower on this port. I've also never been able to do disk benchmarking on the upper port but that might have changed in the meantime (I only have a pre-production developer sample here). Please note also that the maximum amperage available on the USB port is 650mA so connecting bus-powered USB disks might already exceed this so be prepared to use a powered USB hub in between
  • A64 is prone to overheating but unfortunately the Pine64 folks do not sell the board with an effective heatsink by default (compare with ODROID-C1+ or ODROID-C2 for example how it looks like if the vendor cares about heat dissipation). They promised to provide a good heatsink as option but at least I'm not able to find one in their online store. But a heatsink is mandatory if you plan to run this device constantly with high loads, otherwise throttling will occur (when we tested an unrealistic heavy workload without a heatsink -- cpuburn-a53 -- A64 had to throttle down to as less as 600 MHz (for some numbers see IRC log from a while ago)
  • Not a real hardware issue but a problem anyway: the HDMI driver in Allwinner's BSP does not negotiate any display output with a lot of displays that are connected with a HDMI <--> DVI converter or use non-common resolutions. Better do not expect any display output if your display is neither connected directly using HDMI nor capable of 1080p (we can't do anything here since Allwinner's driver uses closed source blobs and no documentation or code with useable license exists)
  • On a couple of Gbit equipped Pine64+ users report that they're not able to negotiate Gbit Ethernet reliably and have to force the connection to Fast Ethernet (since we know that the RTL8211E PHY used on the boards needs an additional ~350 mW when negotiating a Gbit Ethernet connection this might be related to power problems or maybe different PHY batches or something else). Confirmed in the meantime to be a hardware issue.

Now combine Micro USB encouraging users to combine this SBC with crappy phone chargers, 'smart' hubs/chargers that do only provide 500mA since Pine64 isn't able to ask for more and crappy USB cables leading to voltage drops (all sorts of power related issues 'by design' due to crappy Micro USB connector) with a missing custom led able to be used to provide user feedback while booting and the inability to use a lot of displays then you might already get what a support nightmare this device is.

 

The only reliable DOA detection method without a serial console is to ensure you have a working SD card (test it before using either F3 or H2testw as outlined in our docs), then check download integrity of the Armbian image (again see the documentation), then ensure you burn the image correctly to SD card (see docs), insert SD card, power on the board and wait 20 seconds. If then the leds on the Ethernet jack start to flash randomly at least the kernel boots and after waiting an additional 2 minutes you'll be able to login with SSH or serial console (for the latter better choose the EXP header over the Euler connector -- reason here)

 

Anyway: In case you run in booting or stability problems with Armbian on Pine64/Pine64+ be assured that it's not an Armbian issue. You run into any of the problems above therefore please try to resolve them on your own and send your complaints to Pine64 forum and not ours: http://forum.pine64.org/forumdisplay.php?fid=21  (really, we don't do hardware and these issues are all related to hardware design decisions)

 

3245dc9c-e90c-11e5-9bb9-a0bfab2f3e4d.jpg

 

Expectations:

 

The Pine64 folks did a great job raising expectations to the maximum. They advertised this board as 'first $15 64-Bit Single Board Super Computer', promised an average consumption of just 2.5W, the SoC remaining at 32°C and a few other weird things while they already knew that reality differs a lot (the journey started here last Dec).

 

Pine64 is not a 'Super Computer' but most probably the slowest 64-bit ARM board around due to A64 being limited regarding maximum cpufreq and overheating issues (40nm process being responsible for) and lack of fast IO interconnections (only one real USB 2.0 host port present, no eMMC option possible, no SD card implementation using the faster modes). If you then combine the high expectations with a rather clueless kickstarter crowd (many of them not even getting that they did not buy products but backed a project) and the hardware flaws it's pretty obvious why their forums are full of complaints and why they receive so much boards as being DOA that work flawlessly in reality.

 

So why bringing Armbian to Pine64? Since for some (headless) use cases these boards are really nice and also cheap, A64 support is progressing nicely thanks to our awesome linux-sunxi community and also a few more A64 devices will be available soon.

 

What do you get with Armbian on Pine64?

 

User experience will not be much different compared to longsleep's minimal Ubuntu image. If you prefer Debian then at least you can be assured that our images do not contain bad settings and silly bugs like the one's from official Pine64 downloads section (since they fiddle around manually with their OS images for example all Pine boards running these have the same MAC address by default which will cause network troubles if you've more than one board in the same collision domain).

 

We use the same thermal/throttling settings like OS images based on longsleep's kernel (since we helped developing them back in March), we use the same BSP kernel (patched by Zador up to the most recent version back in May) and share a few more similarities since our modifications were sent back to longsleep so all OS images for Pine64 might be able to benefit from.

 

Differences: You don't need to execute longsleep's various platform scripts since kernel and u-boot updates are done using the usual apt-get upgrade mechanism in Armbian. You also don't need (and should not use) scripts like pine64_tune_network.sh since they decrease network performance with Armbian (stay with our defaults unless you're an expert). And a few more tweaks might result in better performance and at least by using Armbian you have the usual Armbian experience with some additional tools at the usual location, automatic fs resize on first boot and so on.

 

We already provide a vanilla image currently based on kernel 4.7 but that's stuff for developers only, see below.

 

Performance with legacy Armbian image:

 

'Out of the box' CPU performance with A64 is not that great unless you are able to benefit from the new CPU features: A64 uses Cortex-A53 CPU cores that feature 64-bit capabilities (which are not that interesting since A64 devices are limited to 2 GB DRAM anyway at the moment) but more interestingly ARMv8 instruction set can be used which might increase performance a lot when software will be compiled for this platform. Best example: the commonly mis-used sysbench cpu test: When running an ARMv6 'optimized' sysbench binary on an ARMv8 CPU then performance will be 15 times slower than necessary (applies to the RPi 3 or the upcoming Banana Pi M64 when used with their OS images)

 

But as soon as ARMv8 optimized code is used A64 can really shine in some areas. I used the default sysbench contained in Ubuntu Xenial's arm64 version, tried it with 20000 settings and got less than 8 seconds execution time (an RPi 3 running Raspbian has the faster CPU cores but here it will take 120 seconds -- just due to different compiler switches!). Then I tried whether I can optimize performance building sysbench from source using

export AM_CFLAGS="-march=armv8-a -mtune=cortex-a53"

and got 11 seconds execution time, so optimized code led to a huge performance loss? Not really, I checked out sysbench version 0.5 by accident and there for whatever reasons execution with ARMv8 optimization or in general takes longer (great! benchmark version influences execution time, so one more reason to never trust in sysbench numbers found on the net!). Using the '0.4' branch at version 0.4.12 I got an execution time of less than 7.5 seconds which is a 10 percent increase in performance for free just by using appropriate compiler flags:

 

 

 

 


root@pine64:/# /usr/bin/sysbench --test=cpu --cpu-max-prime=20000 run --num-threads=4
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 4

Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 20000


Test execution summary:
    total time:                          7.9788s
    total number of events:              10000
    total time taken by event execution: 31.8939
    per-request statistics:
         min:                                  3.17ms
         avg:                                  3.19ms
         max:                                  8.74ms
         approx.  95 percentile:               3.19ms

Threads fairness:
    events (avg/stddev):           2500.0000/3.54
    execution time (avg/stddev):   7.9735/0.00

root@pine64:/# /usr/local/src/sysbench-0.4.12/sysbench/sysbench --test=cpu --cpu-max-prime=20000 run --num-threads=4
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 4
Random number generator seed is 0 and will be ignored


Doing CPU performance benchmark

Primer numbers limit: 20000

Threads started!
Done.


General statistics:
    total time:                          7.4608s
    total number of events:              10000
    total time taken by event execution: 29.8223
    response time:
         min:                                  2.96ms
         avg:                                  2.98ms
         max:                                  8.51ms
         approx.  95 percentile:               2.99ms

Threads fairness:
    events (avg/stddev):           2500.0000/3.67
    execution time (avg/stddev):   7.4556/0.00

root@pine64:/# /usr/local/src/sysbench/sysbench/sysbench --test=cpu --cpu-max-prime=20000 run --num-threads=4
sysbench 0.5:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 4
Random number generator seed is 0 and will be ignored


Prime numbers limit: 20000

Initializing worker threads...

Threads started!


General statistics:
    total time:                          11.0451s
    total number of events:              10000
    total time taken by event execution: 44.1223s
    response time:
         min:                                  4.38ms
         avg:                                  4.41ms
         max:                                 27.34ms
         approx.  95 percentile:               4.41ms

Threads fairness:
    events (avg/stddev):           2500.0000/6.36
    execution time (avg/stddev):   11.0306/0.01

 

 

 

Another great example how using CPU features or not (NEON in this case) influences performance and 'benchmarking gone wrong' numbers are Linpack's MFLOPS scores. By choosing the package your distro provides instead of using one that makes use of your CPU's features you loose at lot of performance, ruin every performance per watt ratios and behave somewhat strange :)

 

Someone sent me Linpack MFLOPS numbers generated with Debian Jessie which is known for horribly conserative compiler settings when building packages -- if you switch your distro from Jessie to Ubuntu Xenial for example you get a 30 percent improvement in sysbench numbers, yeah that's the 'benchmark' we already laughed at above.

 

With Jessie's/Raspbian's hpcc package, Pine64+ gets a score of 1625 MFLOPS and RPi 3 just 1035. So is Pine64 1.6 times faster than RPi 3? Nope, that's just 'benchmarking gone wrong' since these numbers are the result of a joke: Using tools for 'High performance computing' with standard settings (no one interested in HPC would ever do that). By using the correct Linpack version that makes use of NEON optimizations on both CPUs we end up with 3400 MFLOPS (Pine64 at 1.3 GHz) vs 3600 MFLOPS (RPi 3 at 1.2 GHz).

 

So if we're talking about this use case (HPC -- high performance computing) RPi 3 easily outperforms A64 (please keep in mind that the 3400 MFLOPS I got are the result of overclocking/overvolting at 1296 MHz, Pine64 is limited to 1152 MHz by default so we're talking about 3000 MFLOPS for A64 vs. 3600 MFLOPS for RPi 3's SoC. So it's not Pine64 being 1.6 times faster but RPi 3 being more suited for Linpack numbers and this type of benchmarks only shows how wrong it is to use distro packages that are built using conservative settings (which is a must if the distro wants to support a wide range of different SoCs!)

 

Anyway: I's obvious that in case you want to use Pine64 for number crunching or performance stuff in general evaluating whether compiling packages from source might improve performance is a great idea (at least it's obvious that from a performance point of view using an ARMv6 distro with ARMv8 SoCs is stupid -- reality with Raspbian running on RPi 3 and BPi M64). ARMv8 also provides crypto extensions that might be used with OpenSSL for example. Didn't look into it yet but maybe huge performance gains when using a Pine64 as HTTPS enabled web server or VPN endpoint are possible just like we've already seen with sysbench.

 

Network performance: Pine64+ combines the SoC internal GbE MAC implementation (the same as in H3 and A83T SoCs from Allwinner) with an external RTL8211E PHY as used on most GbE capable SBC. Default iperf performance with Armbian/Xenial: +900 MBits/sec in both directions (920/940 MHz) so no need for further tuning (please read through this explanation here why blindly trusting in iperf numbers is always stupid and why it's neither necessary nor useful to further tune network settings to get better iperf numbers).

 

 

 

 


root@armbian:/var/git/Armbian# iperf3 -c 192.168.83.64
Connecting to host 192.168.83.64, port 5201
[  4] local 192.168.83.115 port 60392 connected to 192.168.83.64 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   112 MBytes   938 Mbits/sec    0    356 KBytes       
[  4]   1.00-2.00   sec   112 MBytes   941 Mbits/sec    0    376 KBytes       
[  4]   2.00-3.00   sec   112 MBytes   943 Mbits/sec    0    376 KBytes       
[  4]   3.00-4.00   sec   112 MBytes   941 Mbits/sec    0    376 KBytes       
[  4]   4.00-5.00   sec   112 MBytes   938 Mbits/sec    0    376 KBytes       
[  4]   5.00-6.00   sec   113 MBytes   947 Mbits/sec    0    376 KBytes       
[  4]   6.00-7.00   sec   112 MBytes   940 Mbits/sec    0    395 KBytes       
[  4]   7.00-8.00   sec   112 MBytes   942 Mbits/sec    0    395 KBytes       
[  4]   8.00-9.00   sec   112 MBytes   942 Mbits/sec    0    395 KBytes       
[  4]   9.00-10.00  sec   112 MBytes   942 Mbits/sec    0    395 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.10 GBytes   941 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  1.09 GBytes   940 Mbits/sec                  receiver

root@pine64:~# iperf3 -c 192.168.83.115
Connecting to host 192.168.83.115, port 5201
[  4] local 192.168.83.64 port 39363 connected to 192.168.83.115 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   114 MBytes   954 Mbits/sec    0   1.05 MBytes       
[  4]   1.00-2.00   sec   110 MBytes   922 Mbits/sec    0   1.24 MBytes       
[  4]   2.00-3.01   sec   110 MBytes   918 Mbits/sec    0   1.24 MBytes       
[  4]   3.01-4.00   sec   109 MBytes   917 Mbits/sec    0   1.24 MBytes       
[  4]   4.00-5.01   sec   110 MBytes   918 Mbits/sec    0   1.24 MBytes       
[  4]   5.01-6.01   sec   110 MBytes   923 Mbits/sec    0   1.24 MBytes       
[  4]   6.01-7.00   sec   109 MBytes   918 Mbits/sec    0   1.24 MBytes       
[  4]   7.00-8.00   sec   110 MBytes   923 Mbits/sec    0   1.24 MBytes       
[  4]   8.00-9.00   sec   109 MBytes   912 Mbits/sec    0   1.24 MBytes       
[  4]   9.00-10.00  sec   110 MBytes   923 Mbits/sec    0   1.24 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.07 GBytes   923 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  1.07 GBytes   920 Mbits/sec                  receiver

 

 

 
Please keep in mind that for yet unknown reasons a couple of Pine64+ are reported to not reliably work at Gbit Ethernet speeds. Please also keep in mind how settings might matter. If you run a standard iperf test in 'passive benchmarking' mode you might get throughput numbers 200-250 Mbits/sec lower than ours maybe just due to a wrong cpufreq governor. Ethernet throughput scales linearly with CPU clockspeed with most cheap ARM SoCs (our only known exception from this is Solid-Run's Clearfog which uses a SoC optimized for IO and network throughput) so by using the ondemand governor with wrong/default settings for example you ensure that an idle SBC will only slowly increase clockspeed when you start your iperf test. This is Armbian switching from interactive to ondemand governor now being below 700 Mbits/sec just due to adjusting CPU clockspeed too slow:
 
 

 

root@pine64:~# iperf3 -c 192.168.83.115
Connecting to host 192.168.83.115, port 5201
[  4] local 192.168.83.64 port 39365 connected to 192.168.83.115 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.02   sec  47.9 MBytes   395 Mbits/sec    1   99.0 KBytes       
[  4]   1.02-2.02   sec  55.0 MBytes   459 Mbits/sec    0    132 KBytes       
[  4]   2.02-3.01   sec  60.3 MBytes   511 Mbits/sec    0    151 KBytes       
[  4]   3.01-4.01   sec  91.2 MBytes   769 Mbits/sec    0    170 KBytes       
[  4]   4.01-5.01   sec  96.2 MBytes   804 Mbits/sec    0    182 KBytes       
[  4]   5.01-6.01   sec  96.2 MBytes   806 Mbits/sec    0    191 KBytes       
[  4]   6.01-7.01   sec  96.2 MBytes   808 Mbits/sec    0    195 KBytes       
[  4]   7.01-8.01   sec  96.2 MBytes   808 Mbits/sec    0    197 KBytes       
[  4]   8.01-9.00   sec  95.0 MBytes   805 Mbits/sec    0    198 KBytes       
[  4]   9.00-10.00  sec  97.5 MBytes   815 Mbits/sec    0    199 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   832 MBytes   698 Mbits/sec    1             sender
[  4]   0.00-10.00  sec   832 MBytes   698 Mbits/sec                  receiver

 

 

 

The other stuff normally 'benchmarked' is not worth mentioning/testing it so just as quick notes:

  • A64 is showing the same SDIO limitation as most other SoCs limiting sequential transer speeds to/from SD card to ~23MB/s (do the math yourself: SDIO with 4 bit @ 50 MHz minus some overhead is 23 MB/s) -- fortunately that's rather uninteresting since random IO matters on SBCs and there it's your choice to choose between crappy cards that horribly suck or follow our recommendations and choose a really fast card. But Pine64 can not use the faster eMMC interface so if you really need high IO bandwidth and high IOPS better choose a different device
  • USB is USB 2.0 so expect ~35MB/s with BSP kernel and ~40MB/s with mainline kernel and UASP capable disk enclosures for individual USB connections (UASP + mainline kernel might show high random IO numbers if used together with an SSD!)
  • HW accelerated video decoding is already possible (see here for the codec matrix) and situation with HW accelerated video encoding looks promising too: http://forum.armbian.com/index.php/topic/1855-ffmpeg-with-cedrus-h264-hw-encoder-a64-cmos-camera/

In case one is interested in performance testing on SBCs monitoring what's happening is mandatory. Currently our armbianmonitor tool does not install the necessary templates on A64 so still my script to install this stuff on A64 should be used: http://kaiser-edv.de/tmp/4U4tkD/install-rpi-monitor-for-a64.sh (read the script's header how to install)

 

Performance with vanilla Armbian image:

 

Not interesting at all at the time of this writing since while Pine64 happily boots mainline u-boot/kernel it's way too early to do tests in this area. Currently there's no access to the AXP803 PMIC from mainline kernel so not even VDD_CPUX voltage regulation works and as a result cpufreq scaling is also not working and the SoC is clocked pretty conservative. Since most performance relevant stuff running on cheap ARM SoCs depends on (switching as fast as possible to) high CPU clockspeeds benchmarking is absolutely useless now.

 

You should also keep in mind that many core features still not work with mainline kernel so this is really stuff for developers (who normally prefer their own way to boot their freshly compiled kernels). So please don't expect that much from vanilla images for A64 boards now, better choose the legacy variant.

 

The future?

 

A few more A64 boards are announced or already available as dev samples, for example the aforementioned BPi M64 (possible advantages over Pine64: sane DC-IN, real USB OTG, more USB host ports behind an internal USB hub, eMMC available and custom leds being able to provide user feedback, everything else is more or less the same as the 2 GB Pine64+) or Olimex working on both an SBC and an A64 based Laptop.

 

And then Xunlong announced 2 new SBC based on Allwinner's H5. H5 (product brief) seems to be A64's bigger sibling providing video/GPU enhancements, 3 true USB host ports in addition to one USB OTG (just like H3 where we can use all 4 USB ports that do not have to share bandwidth), integrating a Fast Ethernet PHY (just like H3) but lacks PMIC support (again just like H3, so no mobile useage, no battery support out of the box and it gets interesting how VDD_CPUX voltage regulation will work there -- maybe 'just like H3' again).

 

Since A64 shares many/most IP blocks with H3 and A83T from Allwinner I still hope that H5 will be just a mixture of A64 and H3 and we will get full support based on what we now have for these 2 other SoCs pretty fast. But that's 100 percent speculation at this moment :)

 

Update regarding longsleep's pine64_tune_network.sh script. Benchmark results don't get automatically worse when applying the tweaks from his script but the result variation gets huge (730 - 950 Mbits/sec, exceeding 940 Mbits/sec is already an indication that buffers are invoked):

 

 

 


root@pine64:/home/tk# iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.83.115, port 50002
[  5] local 192.168.83.76 port 5201 connected to 192.168.83.115 port 50004
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec  90.7 MBytes   759 Mbits/sec                  
[  5]   1.00-2.00   sec  92.2 MBytes   774 Mbits/sec                  
[  5]   2.00-3.00   sec  92.5 MBytes   776 Mbits/sec                  
[  5]   3.00-4.00   sec  92.5 MBytes   776 Mbits/sec                  
[  5]   4.00-5.00   sec  92.6 MBytes   777 Mbits/sec                  
[  5]   5.00-6.00   sec   106 MBytes   889 Mbits/sec                  
[  5]   6.00-7.00   sec   112 MBytes   942 Mbits/sec                  
[  5]   7.00-8.00   sec   111 MBytes   927 Mbits/sec                  
[  5]   8.00-9.00   sec   101 MBytes   847 Mbits/sec                  
[  5]   9.00-10.00  sec   112 MBytes   942 Mbits/sec                  
[  5]  10.00-10.02  sec  1.66 MBytes   931 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-10.02  sec  1007 MBytes   843 Mbits/sec    9             sender
[  5]   0.00-10.02  sec  1004 MBytes   841 Mbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.83.115, port 50006
[  5] local 192.168.83.76 port 5201 connected to 192.168.83.115 port 50008
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec  88.4 MBytes   740 Mbits/sec                  
[  5]   1.00-2.00   sec  91.9 MBytes   771 Mbits/sec                  
[  5]   2.00-3.00   sec   109 MBytes   918 Mbits/sec                  
[  5]   3.00-4.00   sec   112 MBytes   941 Mbits/sec                  
[  5]   4.00-5.00   sec   112 MBytes   941 Mbits/sec                  
[  5]   5.00-6.00   sec   112 MBytes   942 Mbits/sec                  
[  5]   6.00-7.00   sec   112 MBytes   942 Mbits/sec                  
[  5]   7.00-8.00   sec   112 MBytes   942 Mbits/sec                  
[  5]   8.00-9.00   sec   112 MBytes   941 Mbits/sec                  
[  5]   9.00-10.00  sec   112 MBytes   941 Mbits/sec                  
[  5]  10.00-10.02  sec  1.89 MBytes   928 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-10.02  sec  1.05 GBytes   904 Mbits/sec    0             sender
[  5]   0.00-10.02  sec  1.05 GBytes   902 Mbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.83.115, port 50010
[  5] local 192.168.83.76 port 5201 connected to 192.168.83.115 port 50012
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec  87.7 MBytes   734 Mbits/sec                  
[  5]   1.00-2.00   sec  92.1 MBytes   773 Mbits/sec                  
[  5]   2.00-3.00   sec  92.2 MBytes   773 Mbits/sec                  
[  5]   3.00-4.00   sec  92.1 MBytes   773 Mbits/sec                  
[  5]   4.00-5.00   sec  92.1 MBytes   773 Mbits/sec                  
[  5]   5.00-6.00   sec   102 MBytes   859 Mbits/sec                  
[  5]   6.00-7.00   sec  93.1 MBytes   781 Mbits/sec                  
[  5]   7.00-8.00   sec  92.1 MBytes   773 Mbits/sec                  
[  5]   8.00-9.00   sec  92.1 MBytes   773 Mbits/sec                  
[  5]   9.00-10.00  sec  94.9 MBytes   796 Mbits/sec                  
[  5]  10.00-10.02  sec  1.62 MBytes   740 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-10.02  sec   936 MBytes   783 Mbits/sec    0             sender
[  5]   0.00-10.02  sec   933 MBytes   781 Mbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.83.115, port 50014
[  5] local 192.168.83.76 port 5201 connected to 192.168.83.115 port 50016
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec  87.1 MBytes   729 Mbits/sec                  
[  5]   1.00-2.00   sec  92.1 MBytes   774 Mbits/sec                  
[  5]   2.00-3.00   sec  91.8 MBytes   769 Mbits/sec                  
[  5]   3.00-4.00   sec  90.4 MBytes   759 Mbits/sec                  
[  5]   4.00-5.00   sec  96.4 MBytes   808 Mbits/sec                  
[  5]   5.00-6.00   sec  90.2 MBytes   758 Mbits/sec                  
[  5]   6.00-7.00   sec   113 MBytes   951 Mbits/sec                  
[  5]   7.00-8.00   sec   112 MBytes   941 Mbits/sec                  
[  5]   8.00-9.00   sec   112 MBytes   942 Mbits/sec                  
[  5]   9.00-10.00  sec   112 MBytes   942 Mbits/sec                  
[  5]  10.00-10.02  sec  1.83 MBytes   932 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-10.02  sec  1003 MBytes   840 Mbits/sec    0             sender
[  5]   0.00-10.02  sec  1000 MBytes   837 Mbits/sec                  receiver

 

 

 

So better enjoy defaults unless you really know what you do since network performance tuning works in different directions. Stuff that might increase throughput might negatively affect latency and vice versa. So if you start to tune, tune for your specific use case!

Link to comment
Share on other sites

Recommended Posts

  • 0

Do you get very different values on your tests?

 

Absolutely. Four things to mention: 

  • The board you're testing with is broken, TX/RX delay shouldn't influence Fast Ethernet (as far as I understood). Such variations in 100 Mbits/sec mode is a clear sign that there's something really wrong. I would assume you cleaned contacts already, exchanged cables and switch port?
  • This '979' value you report is most probably Kbits/sec. My script sucks a lot since it assumes iperf3 output being printed in Mbits/sec. But in such cases as yours where really something goes horribly wrong this is wrong. Anyway: based on your results you can already stop, there's nothing to improve/test
  • Xunlong's BSP kernel for OPi PC 2 seems to not make any use of tx-delay/rx-delay set in DT, maybe they currently use a crude mixture of sys_config.fex and .dts but at least my test results show identical results iterating through all 256 combinations (0-7 TX, 0-31 RX). In other words: it's currently a waste of time to try to tweak Ethernet settings for OPi PC 2 unless this is resolved
  • With my 2GB Pine64+ it looks like this: As soon as rx-delay is above 4 then no Ethernet connection is possible any more (see below). Test will last a few hours so I'll update then the results in OPi PC 2 github repo issue

TX/RX delay test results with Pine64+ so far:

 

 

 0/ 0:	876	233	941	0
 0/ 1:	900	150	941	0
 0/ 2:	388	1346	148	0
 0/ 3:	312	1701	967	0
 0/ 4:	898	108	55.9	0
 0/ 5:		
 0/ 6:		
 0/ 7:		
 0/ 8:		
 0/ 9:		
 0/10:		
 0/11:		
 0/12:		
 0/13:		
 0/14:		
 0/15:		
 0/16:		
 0/17:		
 0/18:		
 0/19:		
 0/20:		
 0/21:		
 0/22:		
 0/23:		
 0/24:		
 0/25:		
 0/26:		
 0/27:		
 0/28:		
 0/29:		
 0/30:		
 0/31:		
 1/ 0:	915	0	941	0
 1/ 1:	916	0	941	0
 1/ 2:	917	0	154	0
 1/ 3:	915	0	647	0
 1/ 4:	917	0	64.7	0
 1/ 5:		
 1/ 6:		
 1/ 7:		
 1/ 8:		
 1/ 9:		
 1/10:		
 1/11:		
 1/12:		
 1/13:		
 1/14:		
 1/15:		
 1/16:		
 1/17:		
 1/18:		
 1/19:		
 1/20:		
 1/21:		
 1/22:		
 1/23:		
 1/24:		
 1/25:		
 1/26:		
 1/27:		
 1/28:		
 1/29:		
 1/30:		
 1/31:		
 2/ 0:	914	0	941	0

 

 

 

Empty entries means: No connection between client and server possible at all. I had a laugh before since I thought it would be a great idea to test this with as many Pine64+ as possible. I then realized that Pine people sent me 7 Pine64+ samples, the first maybe still stuck in customs, the 2nd one bent to death, N° 3 at Zador's desk, N° 5 at jernej's desk, N° 4 and 6 sent out to @androsch (who helped nailing down the Pine64 GbE issue). But @androsch was so kind and sent me N°4 back so I can at least test with one other Pine64+ tomorrow.

Link to comment
Share on other sites

Donate your old hardware to community. Start a giveaway Raffle!

  • 0

Absolutely. Four things to mention:

  • The board you're testing with is broken, TX/RX delay shouldn't influence Fast Ethernet (as far as I understood). Such variations in 100 Mbits/sec mode is a clear sign that there's something really wrong. I would assume you cleaned contacts already, exchanged cables and switch port?
  • This '979' value you report is most probably Kbits/sec. My script sucks a lot since it assumes iperf3 output being printed in Mbits/sec. But in such cases as yours where really something goes horribly wrong this is wrong. Anyway: based on your results you can already stop, there's nothing to improve/test
  • Xunlong's BSP kernel for OPi PC 2 seems to not make any use of tx-delay/rx-delay set in DT, maybe they currently use a crude mixture of sys_config.fex and .dts but at least my test results show identical results iterating through all 256 combinations (0-7 TX, 0-31 RX). In other words: it's currently a waste of time to try to tweak Ethernet settings for OPi PC 2 unless this is resolved
  • With my 2GB Pine64+ it looks like this: As soon as rx-delay is above 4 then no Ethernet connection is possible any more (see below). Test will last a few hours so I'll update then the results in OPi PC 2 github repo issue
TX/RX delay test results with Pine64+ so far:

 

 0/ 0:	876	233	941	0
 0/ 1:	900	150	941	0
 0/ 2:	388	1346	148	0
 0/ 3:	312	1701	967	0
 0/ 4:	898	108	55.9	0
 0/ 5:		
 0/ 6:		
 0/ 7:		
 0/ 8:		
 0/ 9:		
 0/10:		
 0/11:		
 0/12:		
 0/13:		
 0/14:		
 0/15:		
 0/16:		
 0/17:		
 0/18:		
 0/19:		
 0/20:		
 0/21:		
 0/22:		
 0/23:		
 0/24:		
 0/25:		
 0/26:		
 0/27:		
 0/28:		
 0/29:		
 0/30:		
 0/31:		
 1/ 0:	915	0	941	0
 1/ 1:	916	0	941	0
 1/ 2:	917	0	154	0
 1/ 3:	915	0	647	0
 1/ 4:	917	0	64.7	0
 1/ 5:		
 1/ 6:		
 1/ 7:		
 1/ 8:		
 1/ 9:		
 1/10:		
 1/11:		
 1/12:		
 1/13:		
 1/14:		
 1/15:		
 1/16:		
 1/17:		
 1/18:		
 1/19:		
 1/20:		
 1/21:		
 1/22:		
 1/23:		
 1/24:		
 1/25:		
 1/26:		
 1/27:		
 1/28:		
 1/29:		
 1/30:		
 1/31:		
 2/ 0:	914	0	941	0

 

 

Empty entries means: No connection between client and server possible at all. I had a laugh before since I thought it would be a great idea to test this with as many Pine64+ as possible. I then realized that Pine people sent me 7 Pine64+ samples, the first maybe still stuck in customs, the 2nd one bent to death, N° 3 at Zador's desk, N° 5 at jernej's desk, N° 4 and 6 sent out to @androsch (who helped nailing down the Pine64 GbE issue). But @androsch was so kind and sent me N°4 back so I can at least test with one other Pine64+ tomorrow.

Where do i place this script to test my boards?

 

Gesendet von meinem XT1032 mit Tapatalk

Link to comment
Share on other sites

  • 0

Sorry, did not check first, its already mentioned in the script itself....

Will do some checks tomorrow.

 

Great! Just a few notes. It can be pretty annoying when things go wrong (the script tries to test something and initiates a reboot automatically, 8*32 times in worst case scenario). So I hope you've another Linux box and an SD card reader to remove the execution of the script in /etc/rc.local if this happens.

 

Then longsleep's default settings are 3/0 (TX/RX delay). First step is therefore to create a .dts and adjust there tx-delay to be '<0x0>;' (must exactly look like the rx-delay value):

dtc -I dts -O dtb -o /boot/pine64-plus.dtb /boot/new.dts

And then those paths have to be adjusted and of course on another GbE capable host iperf3 on port 6000 has to be started. Script version suitable for Armbian on Pine64+:

 

 

#!/bin/bash
#
# script intended to test through TX/RX parameters. Should be called from
# eg. /etc/rc.local with a short delay to ensure network is already up, eg.
# sleep 5 && /usr/local/bin/test-tx-rx.sh

TestPartner=192.168.83.161			# here 3 x 'iperf3 -s' must be running
TimeToTest=20						# how long should iperf3 run each
TX_File=/var/log/tx-value			# file containing actual tx value
RX_File=/var/log/rx-value			# file containing actual rx value
LogFile=/var/log/tx-rx.log			# result log
SourceDTS=/boot/new.dts				# source, must contain rx/tx set to 0!
TargetDTB=/boot/pine64-plus.dtb 	# target .dtb

Main() {
	CheckPrerequisits
	read TX <"${TX_File}"
	read RX <"${RX_File}"
	# TestTX >/tmp/tx.txt
	# sleep $(( ${TimeToTest} + 2 ))
	# TXSum=$(awk 'BEGIN {FS = "|"} ; {sum+=$1} END {print sum}' /tmp/tx.txt)
	# TXRetr=$(awk 'BEGIN {FS = "|"} ; {sum+=$2} END {print sum}' /tmp/tx.txt)
	# TX_Result="${TXSum}\t${TXRetr}"
	TX_Result=$(taskset 8 iperf3 -c ${TestPartner} -t ${TimeToTest} -p 6000 | awk -F" " '/sender$/ {print $7"\t"$9}' | sed 's/sender/0/')
	RX_Result=$(taskset 8 iperf3 -R -c ${TestPartner} -t ${TimeToTest} -p 6000 | awk -F" " '/sender$/ {print $7"\t"$9}' | sed 's/sender/0/')
	echo -e "$(printf "%2s" ${TX})/$(printf "%2s" ${RX}):\t${TX_Result}\t${RX_Result}" >>"${LogFile}"
	cat "${LogFile}" >/dev/tty1
	IncrementAndReboot
} # Main

CheckPrerequisits() {
	export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
	echo 1-2 >/proc/irq/$(awk -F":" "/1c30000.eth/ {print \$1}" </proc/interrupts | sed 's/\ //g')/smp_affinity_list
	echo 1 > /sys/class/net/eth0/queues/rx-0/rps_cpus
	echo 1 > /sys/class/net/eth0/queues/tx-0/xps_cpus
	echo 32768 > /proc/sys/net/core/rps_sock_flow_entries
	which iperf3 >/dev/null 2>&1 || apt-get -f -qq -y install iperf3
	which ethtool >/dev/null 2>&1 || apt-get -f -qq -y install ethtool
	which dtc >/dev/null 2>&1 || apt-get -f -qq -y install device-tree-compiler
	[[ -f "${TX_File}" ]] || echo -n 0 >"${TX_File}"
	[[ -f "${RX_File}" ]] || echo -n 0 >"${RX_File}"
	[[ -f "${LogFile}" ]] || echo -e "TX/RX\tTX\t\tRX\t\ndelay:\tMb/s\tretry\tMb/s\tretry" >"${LogFile}"
} # CheckPrerequisits

TestTX() {
	taskset 4 iperf3 -c ${TestPartner} -t ${TimeToTest} -p 6000 | awk -F" " '/sender$/ {print $7"|"$9}' &
	sleep 0.3
	taskset 8 iperf3 -c ${TestPartner} -t ${TimeToTest} -p 6001 | awk -F" " '/sender$/ {print $7"|"$9}' &
	sleep 0.3
	taskset 1 iperf3 -c ${TestPartner} -t ${TimeToTest} -p 6002 | awk -F" " '/sender$/ {print $7"|"$9}' &
} # TestTX

IncrementAndReboot() {
	let RX++
	if [ ${RX} -eq 32 ]; then
		RX=0
		let TX++
	fi
	if [ ${TX} -lt 8 ]; then
		# write stuff to files, patch .dtb, reboot
		echo -n ${TX} >"${TX_File}"
		echo -n ${RX} >"${RX_File}"
		HexTX="$(printf '<0x%x>;' ${TX})"
		HexRX="$(printf '<0x%x>;' ${RX})"
		sed -e "s/tx-delay = <0x0>;/tx-delay = ${HexTX}/" \
			-e "s/rx-delay = <0x0>;/rx-delay = ${HexRX}/" \
			<"${SourceDTS}" | dtc -I dts -O dtb -o "${TargetDTB}"
		sync
		reboot
	fi
} # IncrementAndReboot

Main $@ 

 

 

 

(no complicated iperf3 TX measurement since obviously with OPi PC 2 I tested all the time the same settings)

Link to comment
Share on other sites

  • 0

Great! Just a few notes. It can be pretty annoying when things go wrong (the script tries to test something and initiates a reboot automatically, 8*32 times in worst case scenario). So I hope you've another Linux box and an SD card reader to remove the execution of the script in /etc/rc.local if this happens.

 

Sorry, does not make sense to check out other values, because the board only works in GbE-mode with longsleeps gmac-kernel, with normal kernel GbE is still unusable.

 

gmac-kernel with network-script.sh and performance governor including a 5V/3A PSU allows about 500mbits now, so this is fine for me.

Link to comment
Share on other sites

  • 0

because the board only works in GbE-mode with longsleeps gmac-kernel, with normal kernel GbE is still unusable.

 

Which board are you talking about? The one i sent to you with '2' written on the Ethernet jack? This one worked for me without any problem using the unpatched kernel and exceeding 900 Mbits/sec in both directions.

Link to comment
Share on other sites

  • 0

Which board are you talking about? The one i sent to you with '2' written on the Ethernet jack? This one worked for me without any problem using the unpatched kernel and exceeding 900 Mbits/sec in both directions.

 

Of course not, this is a board you already used for testing, so it makes no sense from my point of view, i tried to test the other board i received from tllim (same revision and version like your board btw) but this does not work with any other than longsleeps gmac-kernel in GbE-mode. I even just exchanged the two boards with their PSU, SD card and cable to the switch and they show the same results.

 

I get about 500 mbits now with the 'bad' board, so for me this is fine now....

Link to comment
Share on other sites

  • 0

I get about 500 mbits now with the 'bad' board, so for me this is fine now....

 

Ah, ok. Sorry, but I really don't care about these 'bad' boards. Pine64 users should make some noise to get their broken hardware replaced/refunded. The aforementioned test was meant to be used on working boards. I'll fine tune the script slightly (since testing RX delay values between 8 and 31 is a waste of time) and post a new version later :)

Link to comment
Share on other sites

  • 0

I don't really see 500mbit cap an issue on this board. At the end of the day, you're still limited by other IO (USB 2.0 for one) so having a full blown gigabit ethernet on a board like this is pretty pointless, unless you also have usb3 or native sata to play with.

Yes, thats the reason why its ok for me now, 500mbits exceed the about 20mb of usb2, so this is fine, at least for me

 

Gesendet von meinem XT1032 mit Tapatalk

Link to comment
Share on other sites

  • 0

20mb of usb2

 

Huh? This is Allwinner country, here we speak UASP ;)

 

Really: 500 Mbits/sec == defective. We can use ZFS on our boards with active lz4 compression (or btrfs/lzo with mainline kernel) and easily exceed 50MB/s with average data regarding disk IO. Also when things are set up correctly especially on the 2GB Pine64+ the write speed to the board can be as high as 80 MB/s even if there's just slow USB2.0 storage behind: Since data (up to 1.5GB in size) will get buffered in memory and flushed to disk later.

 

Next problem: With such a defective board (or inappropriate settings) you can easily end up with one CPU core 100% busy serving Ethernet IRQs. If you now happen to run your application on the same core then you are already limited to 500 Mbits/sec max on the wire but in reality overall throughput will be way below since application and IRQ handling fight for CPU ressources.

 

There's not much interesting on Pine64 or A64 in general (for my use cases). The only real plus is the ability to easily exceed 900 Mbits/sec GbE throughput in both directions.

Link to comment
Share on other sites

  • 0

Huh? This is Allwinner country, here we speak UASP ;)

 

Really: 500 Mbits/sec == defective. We can use ZFS on our boards with active lz4 compression (or btrfs/lzo with mainline kernel) and easily exceed 50MB/s with average data regarding disk IO. Also when things are set up correctly especially on the 2GB Pine64+ the write speed to the board can be as high as 80 MB/s even if there's just slow USB2.0 storage behind: Since data (up to 1.5GB in size) will get buffered in memory and flushed to disk later.

 

Next problem: With such a defective board (or inappropriate settings) you can easily end up with one CPU core 100% busy serving Ethernet IRQs. If you now happen to run your application on the same core then you are already limited to 500 Mbits/sec max on the wire but in reality overall throughput will be way below since application and IRQ handling fight for CPU ressources.

 

There's not much interesting on Pine64 or A64 in general (for my use cases). The only real plus is the ability to easily exceed 900 Mbits/sec GbE throughput in both directions.

You are surely right as far as i know your knowledge here, but i only use this certain board as minecraft server for my son and his friends (even via remote login), so the slowest part is the SD card or even my internet connection :-)

 

Gesendet von meinem XT1032 mit Tapatalk

Link to comment
Share on other sites

  • 0

The out of control moderator just banned me.

 

Yesterday he had also a great day, banned one account, censored a whole thread away and in two other threads important information:

  • here he deleted the last post mentioning that there's now also an Armbian Desktop image available (beta)
  • And in this thread he deleted posts containing the following information:
  • Firefox works without any problems on Armbian, that's simply since we install the armhf version by default on the desktop image since the arm64 version shows problems (this 'trick' can of course also be used to cure even the most crappy OS images for Pine64: on the broken Debian images from Pine wiki it's just 'apt-get purge firefox && apt-get install firefox:armhf' and those steps in between)
  • Chromium with our Armbian desktop image is just a simple 'apt-get install chromium', there's really no need to install .deb packages from linaro or somewhere else.
  • Using Chromium with '--disable-seccomp-filter-sandbox' is a bad idea, it would be better to address the problem (kernel fix needed?)
  • If one wants to use '--disable-seccomp-filter-sandbox' though this can be added to all 'Exec' occurences in /usr/share/applications/chromium-browser.desktop

So he managed to make Pain64 land great again, instead of informing people that there is software available that doesn't suck they (Pine Inc folks and their beloved premium moderator) ensure that no one knows, that people still use outdated, smelly and broken OS images containing numerous serious flaws and that nothing will change. Users are not informed that there are working 3rd party OS images existent in the meantime and users aren't tought how to use Firefox if they want since one person is allowed what he does best all the time: censoring everything he doesn't understand.

Link to comment
Share on other sites

  • 0
  • Firefox works without any problems on Armbian, that's simply since we install the armhf version by default on the desktop image since the arm64 version shows problems (this 'trick' can of course also be used to cure even the most crappy OS images for Pine64: on the broken Debian images from Pine wiki it's just 'apt-get purge firefox && apt-get install firefox:armhf' and those steps in between)

 

It might work just fine with Armbian (I haven't tried it myself as I haven't run the desktop beta - my intended use for the pine was always headless server stuff - but I believe you anyway) - but it will NOT work with the debian images for the pine64 (without using external repos, etc) - and it has nothing to do with them being crappy either - it's the clash between Mozilla's distribution requirements and Debian policies that were fault there. Debian Jessie does not, and has never shipped with firefox in it's repo. Starting with Debian Stretch, it will be available, and in the meantime, the extended support release of firefox was backported to Debian Jessie as firefox-esr.  Now, that is an issue - as the  firefox-esr:arm64 appears to be broken for the pine64, and the firefox-esr:armhf package won't install without some serious massaging. Or being stubborn, ignoring the whole "old is good as is stable philosophy of debian" and jump onto the unstable bandwagon... ;)

 

It's because of things like this I generally say... yeah, there's a workaround/bandaid, or you can go install Armbian and not look back! ;-)

The following packages have unmet dependencies:
 firefox-esr:armhf : Depends: libatk1.0-0:armhf (>= 1.12.4) but it is not going to be installed
                     Depends: libdbus-glib-1-2:armhf (>= 0.78) but it is not going to be installed
                     Depends: libgdk-pixbuf2.0-0:armhf (>= 2.22.0) but it is not going to be installed
                     Depends: libglib2.0-0:armhf (>= 2.20.0) but it is not going to be installed
                     Depends: libgtk2.0-0:armhf (>= 2.24.0) but it is not going to be installed
                     Depends: libpango-1.0-0:armhf (>= 1.14.0) but it is not going to be installed
                     Recommends: gstreamer1.0-libav:armhf but it is not going to be installed
                     Recommends: gstreamer1.0-plugins-good:armhf but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Link to comment
Share on other sites

  • 0

Pinebook announced: https://www.pine64.org/?page_id=3707

 

Armbian support can be added easily since it's just different DRAM type and two different screen resolutions (hopefully we're able to distinguish between them prior to loading kernel): http://www.cnx-software.com/2016/11/24/pinebook-arm-linux-laptop-powered-by-allwinner-a64-processor-to-sell-for-89-and-up/#comment-536419

 

Edit: Both screen sizes use the same laughable 1280x720 1376x768. So in case displays are compatible a single set of settings (DRAM, LCD settings) is ok for both variants. I'm assuming that trackpad drivers are already available in BSP or will be provided soon.

Link to comment
Share on other sites

  • 0

I might look at the Olimex one instead... especially because it can run windows(kidding!!!)... or more importantly seems to have some more sensible resolutions... 1376x768 and 1920x1080. I suppose this one should be interesting... at least there won't be a GbE issue this time as they fixed it by removing the ethernet! :-P So was that the hardware problems fixed... just the minor detail of crappy software?

Link to comment
Share on other sites

  • 0

I might look at the Olimex one instead... especially because it can run windows(kidding!!!)... or more importantly seems to have some more sensible resolutions... 1376x768 and 1920x1080.

 

What's the latter resolution? I thought they only want to go with 1366x768 (LVDS --> eDP)?

 

Anyway: Maybe you could do the micro community over there a favour and post http://web.archive.org/save/_embed/http://bundie.neterra.net:8080/a64/A64%20LCD使用说明书.pdf to the LCD subforum? So tinkerers who want to exceed the 800x480 currently know where to adjust values...

Link to comment
Share on other sites

  • 0

I decided to test USB/UAS performance with Pine64+ now that we can use USB with mainline kernel. I chose the Xenial/vanilla Armbian image I built yesterday with A64 cores running with 864 MHz, an ASM1153 enclosure with a Samsung EVO 750 inside, btrfs without compression as test fs and let these three commands run:

iozone -e -I -a -s 100M -r 1k -r 2k -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
iozone -a -g 4000m -s 4000m -i 0 -i 1 -r 4K -r 1024K
iozone -O -i 0 -i 1 -i 2 -e -+n -r 4K -s 2000m

The first test line is the one known from our SD card tests, the next two (using a large 2 or 4 GB testfile size to minimize caching/buffer effects) from the USB/UAS link above. With just 100 MB test data size some numbers are obviously wrong (way too high so buffers were tested and not the device).

 

But test results are simply excellent given that we're talking about USB 2.0 here since UAS is a lot more efficient than the old USB Mass Storage mode normally used with USB 2.0 (using Allwinner SoCs here is a real advantage since they speak UAS even with USB 2.0). Sequential write/read speeds exceed 41 and 42 MB/s and random IO is also quite nice -- to be able to compare search for 'EVO 750' numbers in this thread here (and please read a bit through to get a deeper understanding how to interpret these numbers).

 

Funny is that regarding random IO A64 with UASP easily outperforms the older A20 with SATA. Banana Pro (A20/SATA) vs. Pine64+ (A64/USB2.0):

                  Random IO in IOPS           Sequential IO in MB/S
                 SATA           USB2           SATA            USB2
            4K read/write  4K read/write   1M read/write   1M read/write
  A20         2779/893       1277/619        106 / 39         34 / 35
  A64           - / -        5033/6033         - / -          42 / 41

To sum it up: A64 outperforms A20 everywhere except of sequential read speeds (A20's SATA interface is able to exceed 200 MB/s -- the 106 MB/s above are the result of Samsung's EVO 750 not being that fast here). To be fair: measuring random IO with 4K blocksize means also tampering random IO with sequential bottlenecks -- but I'm just too lazy to repeat tests with 1K. But since in real world situations it's exactly the same why bother.

 

All results:

 

 

root@pine64:/root# iozone -e -I -a -s 100M -r 1k -r 2k -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
        Iozone: Performance Test of File I/O
                Version $Revision: 3.429 $
                Compiled for 64 bit mode.
                Build: linux 

        Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
                     Al Slater, Scott Rhine, Mike Wisner, Ken Goss
                     Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
                     Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
                     Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
                     Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
                     Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
                     Vangel Bojaxhi, Ben England, Vikentsi Lapa.

        Run began: Thu Nov 24 17:43:52 2016

        Include fsync in write timing
        O_DIRECT feature enabled
        Auto Mode
        File size set to 102400 kB
        Record Size 1 kB
        Record Size 2 kB
        Record Size 4 kB
        Record Size 16 kB
        Record Size 512 kB
        Record Size 1024 kB
        Record Size 16384 kB
        Command line used: iozone -e -I -a -s 100M -r 1k -r 2k -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
        Output is in kBytes/sec
        Time Resolution = 0.000001 seconds.
        Processor cache size set to 1024 kBytes.
        Processor cache line size set to 32 bytes.
        File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
          102400       1     1596      713    62022   272580   203148      927                                                          
          102400       2     2930      728    44717   425265   352913     1797                                                          
          102400       4     7830     7824     8003     8006     9041     7790                                                          
          102400      16    20113    19568    21309    21333    21322    19154                                                          
          102400     512    36226    36206    38725    38869    38203    36143                                                          
          102400    1024    36415    36515    38882    39043    38699    36348                                                          
          102400   16384    37491    37525    41261    41368    41354    37430                                                          

iozone test complete.
root@pine64:/mnt# iozone -a -g 4000m -s 4000m -i 0 -i 1 -r 4K -r 1024K
        Iozone: Performance Test of File I/O
                Version $Revision: 3.429 $
                Compiled for 64 bit mode.
                Build: linux 

        Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
                     Al Slater, Scott Rhine, Mike Wisner, Ken Goss
                     Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
                     Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
                     Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
                     Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
                     Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
                     Vangel Bojaxhi, Ben England, Vikentsi Lapa.

        Run began: Thu Nov 24 17:55:49 2016

        Auto Mode
        Using maximum file size of 4096000 kilobytes.
        File size set to 4096000 kB
        Record Size 4 kB
        Record Size 1024 kB
        Command line used: iozone -a -g 4000m -s 4000m -i 0 -i 1 -r 4K -r 1024K
        Output is in kBytes/sec
        Time Resolution = 0.000001 seconds.
        Processor cache size set to 1024 kBytes.
        Processor cache line size set to 32 bytes.
        File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
         4096000       4    41741    41583    42025    42062                                                                          
         4096000    1024    41850    41765    42025    42350                                                                          

iozone test complete.
root@pine64:/mnt# iozone -O -i 0 -i 1 -i 2 -e -+n -r 4K -s 2000m
        Iozone: Performance Test of File I/O
                Version $Revision: 3.429 $
                Compiled for 64 bit mode.
                Build: linux 

        Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
                     Al Slater, Scott Rhine, Mike Wisner, Ken Goss
                     Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
                     Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
                     Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
                     Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
                     Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
                     Vangel Bojaxhi, Ben England, Vikentsi Lapa.

        Run began: Thu Nov 24 18:13:10 2016

        OPS Mode. Output is in operations per second.
        Include fsync in write timing
        No retest option selected
        Record Size 4 kB
        File size set to 2048000 kB
        Command line used: iozone -O -i 0 -i 1 -i 2 -e -+n -r 4K -s 2000m
        Time Resolution = 0.000001 seconds.
        Processor cache size set to 1024 kBytes.
        Processor cache line size set to 32 bytes.
        File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
         2048000       4     9497        0    10491        0     5033     6033                                                          

iozone test complete. 

 

 

 
Conclusion: Time to overthink 'SATA is better' platitudes at least when we're talking about aging A10/A20 here. A64 performs pretty well here and I would assume the same will be true for H5 (there we get 4 real USB ports unlike 2 with Pine64 now -- but with A64 one of the ports can be switched between OTG and a real USB host port using an own PHY while H5's OTG port seems not to be switchable. If performance is close to H3 this isn't that much of a problem since OTG port there in host mode is just slightly slower compared to real host ports)
 
EDIT: I ran the same set of test with 3 different setups: H3 board using USB2/UAS, A20 board using USB2/UAS and same A20 board (and same SSD of course) using SATA (kernel 4.8.11 with A20, 4.9 with H3):
 
Tested were the same 3 iozone calls:
iozone -e -I -a -s 100M -r 1k -r 2k -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 && iozone -a -g 4000m -s 4000m -i 0 -i 1 -r 4K -r 1024K && iozone -O -i 0 -i 1 -i 2 -e -+n -r 4K -s 2000m
OPi Plus 2E using USB2/UAS:

OPi Plus 2E using USB2/UAS:

        Iozone: Performance Test of File I/O
                Version $Revision: 3.429 $
                Compiled for 32 bit mode.
                Build: linux 

        Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
                     Al Slater, Scott Rhine, Mike Wisner, Ken Goss
                     Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
                     Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
                     Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
                     Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
                     Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
                     Vangel Bojaxhi, Ben England, Vikentsi Lapa.

        Run began: Sat Nov 26 15:56:02 2016

        Include fsync in write timing
        O_DIRECT feature enabled
        Auto Mode
        File size set to 102400 kB
        Record Size 1 kB
        Record Size 2 kB
        Record Size 4 kB
        Record Size 16 kB
        Record Size 512 kB
        Record Size 1024 kB
        Record Size 16384 kB
        Command line used: iozone -e -I -a -s 100M -r 1k -r 2k -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
        Output is in kBytes/sec
        Time Resolution = 0.000001 seconds.
        Processor cache size set to 1024 kBytes.
        Processor cache line size set to 32 bytes.
        File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
          102400       1     1567      680    50938   168999   131923      805                                                          
          102400       2     3220      462    63130   266504   225224     1584                                                          
          102400       4     7806     7790     8001     8006     8002     7662                                                          
          102400      16    16873    17504    18379    18303    18284    16839                                                          
          102400     512    29373    29373    30751    30808    30510    29226                                                          
          102400    1024    29737    29739    30979    31033    30856    29674                                                          
          102400   16384    33055    33041    38893    39003    38976    33006                                                          

iozone test complete.
        Iozone: Performance Test of File I/O
                Version $Revision: 3.429 $
                Compiled for 32 bit mode.
                Build: linux 

        Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
                     Al Slater, Scott Rhine, Mike Wisner, Ken Goss
                     Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
                     Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
                     Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
                     Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
                     Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
                     Vangel Bojaxhi, Ben England, Vikentsi Lapa.

        Run began: Sat Nov 26 16:10:08 2016

        Auto Mode
        Using maximum file size of 4096000 kilobytes.
        File size set to 4096000 kB
        Record Size 4 kB
        Record Size 1024 kB
        Command line used: iozone -a -g 4000m -s 4000m -i 0 -i 1 -r 4K -r 1024K
        Output is in kBytes/sec
        Time Resolution = 0.000001 seconds.
        Processor cache size set to 1024 kBytes.
        Processor cache line size set to 32 bytes.
        File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
         4096000       4    39058    38517    41282    41654                                                                          
         4096000    1024    39144    38748    41228    41327                                                                          

iozone test complete.
        Iozone: Performance Test of File I/O
                Version $Revision: 3.429 $
                Compiled for 32 bit mode.
                Build: linux 

        Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
                     Al Slater, Scott Rhine, Mike Wisner, Ken Goss
                     Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
                     Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
                     Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
                     Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
                     Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
                     Vangel Bojaxhi, Ben England, Vikentsi Lapa.

        Run began: Sat Nov 26 16:24:02 2016

        OPS Mode. Output is in operations per second.
        Include fsync in write timing
        No retest option selected
        Record Size 4 kB
        File size set to 2048000 kB
        Command line used: iozone -O -i 0 -i 1 -i 2 -e -+n -r 4K -s 2000m
        Time Resolution = 0.000001 seconds.
        Processor cache size set to 1024 kBytes.
        Processor cache line size set to 32 bytes.
        File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
         2048000       4     9431        0    10335        0     1972     5387                                                          

iozone test complete.

 
Banana Pi (A20) using USB2/UAS:

	Iozone: Performance Test of File I/O
	        Version $Revision: 3.429 $
		Compiled for 32 bit mode.
		Build: linux 

	Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
	             Al Slater, Scott Rhine, Mike Wisner, Ken Goss
	             Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
	             Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
	             Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
	             Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
	             Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
	             Vangel Bojaxhi, Ben England, Vikentsi Lapa.

	Run began: Sat Nov 26 19:18:15 2016

	Include fsync in write timing
	O_DIRECT feature enabled
	Auto Mode
	File size set to 102400 kB
	Record Size 1 kB
	Record Size 2 kB
	Record Size 4 kB
	Record Size 16 kB
	Record Size 512 kB
	Record Size 1024 kB
	Record Size 16384 kB
	Command line used: iozone -e -I -a -s 100M -r 1k -r 2k -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
	Output is in kBytes/sec
	Time Resolution = 0.000001 seconds.
	Processor cache size set to 1024 kBytes.
	Processor cache line size set to 32 bytes.
	File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
          102400       1      193      159    23932   162784   122658      124                                                          
          102400       2      389      286    22200   251044   207089      249                                                          
          102400       4     6074     5926     7986     7976     6380     5542                                                          
          102400      16    14721    14144    18206    18213    16340    13792                                                          
          102400     512    28276    28245    29026    29085    28848    28297                                                          
          102400    1024    28846    28920    29747    29846    29713    28892                                                          
          102400   16384    32384    32323    38236    38342    38337    32323                                                          

iozone test complete.
	Iozone: Performance Test of File I/O
	        Version $Revision: 3.429 $
		Compiled for 32 bit mode.
		Build: linux 

	Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
	             Al Slater, Scott Rhine, Mike Wisner, Ken Goss
	             Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
	             Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
	             Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
	             Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
	             Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
	             Vangel Bojaxhi, Ben England, Vikentsi Lapa.

	Run began: Sat Nov 26 18:49:32 2016

	Auto Mode
	Using maximum file size of 4096000 kilobytes.
	File size set to 4096000 kB
	Record Size 4 kB
	Record Size 1024 kB
	Command line used: iozone -a -g 4000m -s 4000m -i 0 -i 1 -r 4K -r 1024K
	Output is in kBytes/sec
	Time Resolution = 0.000001 seconds.
	Processor cache size set to 1024 kBytes.
	Processor cache line size set to 32 bytes.
	File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
         4096000       4    38851    38627    40882    40960                                                                          
         4096000    1024    38620    38026    40738    40905                                                                          

iozone test complete.
	Iozone: Performance Test of File I/O
	        Version $Revision: 3.429 $
		Compiled for 32 bit mode.
		Build: linux 

	Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
	             Al Slater, Scott Rhine, Mike Wisner, Ken Goss
	             Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
	             Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
	             Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
	             Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
	             Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
	             Vangel Bojaxhi, Ben England, Vikentsi Lapa.

	Run began: Sat Nov 26 19:03:35 2016

	OPS Mode. Output is in operations per second.
	Include fsync in write timing
	No retest option selected
	Record Size 4 kB
	File size set to 2048000 kB
	Command line used: iozone -O -i 0 -i 1 -i 2 -e -+n -r 4K -s 2000m
	Time Resolution = 0.000001 seconds.
	Processor cache size set to 1024 kBytes.
	Processor cache line size set to 32 bytes.
	File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
         2048000       4     9353        0    10248        0     1861     3202                                                          

iozone test complete.

 
Banana Pi (A20) using SATA:

	Iozone: Performance Test of File I/O
	        Version $Revision: 3.429 $
		Compiled for 32 bit mode.
		Build: linux 

	Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
	             Al Slater, Scott Rhine, Mike Wisner, Ken Goss
	             Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
	             Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
	             Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
	             Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
	             Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
	             Vangel Bojaxhi, Ben England, Vikentsi Lapa.

	Run began: Sat Nov 26 22:02:28 2016

	Include fsync in write timing
	O_DIRECT feature enabled
	Auto Mode
	File size set to 102400 kB
	Record Size 1 kB
	Record Size 2 kB
	Record Size 4 kB
	Record Size 16 kB
	Record Size 512 kB
	Record Size 1024 kB
	Record Size 16384 kB
	Command line used: iozone -e -I -a -s 100M -r 1k -r 2k -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
	Output is in kBytes/sec
	Time Resolution = 0.000001 seconds.
	Processor cache size set to 1024 kBytes.
	Processor cache line size set to 32 bytes.
	File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
          102400       1     1555     1297    76934   178591   133928     1118                                                          
          102400       2     3248     2439    86959   275155   226845     2211                                                          
          102400       4    10728    11153    26619    26740    18436     9476                                                          
          102400      16    19512    18678    53121    51509    43061    17199                                                          
          102400     512    28718    28589    73136    73520    70356    28631                                                          
          102400    1024    29135    29124    76796    77144    75211    29178                                                          
          102400   16384    29986    30029   160906   161418   162063    29985                                                          

iozone test complete.
	Iozone: Performance Test of File I/O
	        Version $Revision: 3.429 $
		Compiled for 32 bit mode.
		Build: linux 

	Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
	             Al Slater, Scott Rhine, Mike Wisner, Ken Goss
	             Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
	             Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
	             Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
	             Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
	             Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
	             Vangel Bojaxhi, Ben England, Vikentsi Lapa.

	Run began: Sat Nov 26 22:10:28 2016

	Auto Mode
	Using maximum file size of 4096000 kilobytes.
	File size set to 4096000 kB
	Record Size 4 kB
	Record Size 1024 kB
	Command line used: iozone -a -g 4000m -s 4000m -i 0 -i 1 -r 4K -r 1024K
	Output is in kBytes/sec
	Time Resolution = 0.000001 seconds.
	Processor cache size set to 1024 kBytes.
	Processor cache line size set to 32 bytes.
	File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
         4096000       4    38377    38195   134852   135486                                                                          
         4096000    1024    37797    37633   123923   124249                                                                          

iozone test complete.
	Iozone: Performance Test of File I/O
	        Version $Revision: 3.429 $
		Compiled for 32 bit mode.
		Build: linux 

	Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
	             Al Slater, Scott Rhine, Mike Wisner, Ken Goss
	             Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
	             Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
	             Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
	             Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
	             Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
	             Vangel Bojaxhi, Ben England, Vikentsi Lapa.

	Run began: Sat Nov 26 22:20:03 2016

	OPS Mode. Output is in operations per second.
	Include fsync in write timing
	No retest option selected
	Record Size 4 kB
	File size set to 2048000 kB
	Command line used: iozone -O -i 0 -i 1 -i 2 -e -+n -r 4K -s 2000m
	Time Resolution = 0.000001 seconds.
	Processor cache size set to 1024 kBytes.
	Processor cache line size set to 32 bytes.
	File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
         2048000       4     9277        0    35442        0     4036     2807                                                          

iozone test complete.

Link to comment
Share on other sites

  • 0

Don't know how they're doing it... I read that from their exceptionally detailed(!) product page... https://www.olimex.com/Products/DIY%20Laptop/

 

Wildo... ;)

 

re: test results... so why wouldn't it be better using a H5 be better than the pine64 since you could stack up three native USB ports instead of 2 (when the OTG port is switched)? And still do something with the 4th?  :lol:

 

 

What's the latter resolution? I thought they only want to go with 1366x768 (LVDS --> eDP)?

 

Anyway: Maybe you could do the micro community over there a favour and post http://web.archive.org/save/_embed/http://bundie.neterra.net:8080/a64/A64%20LCD使用说明书.pdf to the LCD subforum? So tinkerers who want to exceed the 800x480 currently know where to adjust values...

Link to comment
Share on other sites

  • 0

lol... oops! the pine64 forum... er... the whole shebang... is now offline... looks like the pinebook is getting a little too much interest... and TL said the IT guys were all over it! :-O

 

"It's not just you! http://forum.pine64.orglooks down from here."

 

@hojnikb... true, but if you were running it with wanting that sort of throughput... I'd be worried about the batteries being able to do much more than short-term UPS work... as they'd have to carry the load of the pine64 and the attached hard drives (unless using externally powered drives, at which point why bother having a battery on the pine64?). I was thinking more of the ability to shove ~40MB x 3 through to the GbE... yup... think we found the next bottleneck! :D

Link to comment
Share on other sites

  • 0

Isn't gigabit issue fixed now ?

GBit issue on what board?

Pine64? It's a hardware issue and the best way to fix this is replacing the board.

PC2? I don't remember any issues there, but as soon as we get test images we need to collect enough statistics data to adjust TX/RX delays to improve GBit performance.

 

And what about mali, don't we need blobs for that ?

We need to get DRM display driver and Mali kernel driver first (at least for using mali with X desktop).

Link to comment
Share on other sites

  • 0

PC2? I don't remember any issues there

 

https://github.com/OrangePiLibra/OrangePi_H5SDK/issues/4#issuecomment-261462313

 

Using a patch to force 100 MBit/sec since TX/RX delay currently can't be adjusted the 'usual way' IMO isn't a solution to be honest (of course it would be one for Pine64's Android offers since Android users seem to be happy to better use stable Fast Ethernet than broken GBit Ethernet -- but TL Lim and Pine people are simply too ignorant to even think about improvements at all)

Link to comment
Share on other sites

  • 0

GBit issue on what board?

Pine64? It's a hardware issue and the best way to fix this is replacing the board.

PC2? I don't remember any issues there, but as soon as we get test images we need to collect enough statistics data to adjust TX/RX delays to improve GBit performance.

 

We need to get DRM display driver and Mali kernel driver first (at least for using mali with X desktop).

 

I'm guessing this has to be provided by xunlong/allwinner ? 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines