Open main menu

DAVE Developer's Wiki β

Changes

MISC-TN-009: Characterizing the RAM bandwidth of Mito8M SoM

55,667 bytes added, 10:58, 29 January 2020
stressapptest
|}
==Introduction==
Mito8M is the first DAVE Embedded Systems' system-on-module (SoM) based on a core implementing the [https://en.wikipedia.org/wiki/ARM_architecture#64/32-bit_architecture ARMv8-A] architecture. Traditionally, ARM cores that are based on 32-bit [https://en.wikipedia.org/wiki/ARM_architecture#AArch32 ARMv7-A] architecture exhibit a limited RAM bandwidth even if they are coupled with 64-bit width SDRAM banks. As an example, please see [[SBCX-TN-006:_Characterizing_the_RAM_bandwidth_of_Axel_Lite_SoM#Testbed_general_configuration|this Technical Note]] where we characterized the SDRAM bandwidth of Cortex A9-based Axel Lite SoM. When dealing with computationally heavy tasks, this factor a limited RAM bandwidth efficiency may turn out to be a severe bottleneck limiting bounding the overall performance.
Besides an intrinsic increased computational power over their predecessors, ARMv8-A-based SoC's are also expected to improve RAM bandwidth significantly. This technical note (TN for short) illustrates several benchmarking benchmark tests that were run on Mito8M SoMto characterize its bandwidth. It is worth to remember that this product Mito8M is built upon the [https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i.mx-applications-processors/i.mx-8-processors/i.mx-8m-family-armcortex-a53-cortex-m4-audio-voice-video:i.MX8M i.MX8M processor by NXP].
==Testbed general configuration==
</pre>
This processor is capable of running either at 800 MHz or 1.3 GHz. All the The tests were conducted performed at 800 MHzeither frequencies in order to determine how the it affects the RAM bandwidth.
The following table details the characteristics of the SDRAM bank connected to the SoC.
{| class="wikitable"
|+
!rowspan="2" |Subsystem!! colspanrowspan="2" |Feature!Platform
|-
!
!
!Mito8M
!AxelLite
|-
| rowspan="26" |SoC
|SoC
|NXP i.MX8M Quad
|
|-
|ARM core(s)|4 x Cortex A53|-|ARM core frequency
[MHz]
|800 or 1300
|-|L1 cache (D)[kB]|32|-|L1 cache (I)[kB]|32|-|L2 cache[MB]|1
|-
| rowspan="6" |SDRAM
|Type
|LPDDR4
|
|-
|Frequency
[MHz]
|1600
|
|-
|Bus witdth
[bit]
|32
|
|-
|Theoretical bandwidth
[Gb/s]
|102.4
|
|-
|Theoretical bandwidth
[GB/s]
|12.8
|
|-
|Size
[MB]
|3072
|
|}
*Root file system: Debian GNU/Linux 10 (buster)
* Architecture: aarch64
* Governor: userspace @ 800 MHz or 1300 MHz
<pre class="board-terminal">
root@Mito8M:~# echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
As some Some benchmarks were built natively on the platform under test itself. For the sake of completeness, the version of the GCC compiler is then indicated as well:
<pre class="board-terminal">
armbian@Mito8M:~/devel/lmbench$ gcc -v
gcc version 8.3.0 (Debian 8.3.0-6)
</pre>
===Benchmarks===
====STREAM====
TBD
====LMbench====
TBD
====pmbw====
TBD
==Overall results==This section details illustrates the overall results that were achieved by the different benchmarks.
===STREAM===
{| class="wikitable"
|+
Overall results (ARM core frequency = 800 MHz)
! rowspan="2" |Function
! colspan="2" |Mito8M
! rowspan="2" |Axel Lite
efficiency
 
[%]
|-
!Best rate
[MB/s]
!Efficiency
 
[%]
|-
|Copy
|6770
|51.7
|14.0
|-
|Scale
|6093
|46.5
|13.8
|-
|Add
|5263
|40.1
|14.6
|-
|Triad
|4820
|36.8
|14.9
|}
{| class="wikitable"
|+
Overall results (ARM core frequency = 1300 MHz)!rowspan="2" |Function!colspan="2" |Mito8M!Mito8Mrowspan="2" |Axel Liteefficiency [%]|-!Best rate[MB/s]!Efficiency [%]|-|Copy|7125|54.3|14.0
|-
|Scale|ARM frequency[MHz]7501|79257.2|13.8
|-
|Add|Frequency[MHz]6762|160051.6|14.6
|-
|Triad|Bus witdth[bit]6354|3248.5|14.9
|}
 
Apart from the increase over Axel Lite in absolute terms, it is noteworthy that Mito8M exhibits a significant improvement in terms of efficiency too, as shown in the above tables. This is especially true in the case of ARM core frequency set to 1300 MHz.
 
Another interesting thing to note is how the bandwidth is affected by the ARM core frequency. If it scaled linearly, we should have an improvement of 62.5% from 800 to 1300 MHz. The average bandwidth at 800 MHz is 5761 MB/s. At 1300 MHz, it is 6935 MB/s. Therefore, the increase is 20.4%. With regard to STREAM benchmark, the achieved bandwidth does not scale linearly with ARM core frequency.
 
Please see [https://www.cs.virginia.edu/stream/ this page] for more details about STREAM benchmark.
 
===LMbench===
TBDFor what regards the memory bandwidth, LMbench provides many results organized in different categories. For the sake of simplicity, the following tables details just a couple of categories. The full results are available for download [http://mirror.dave.eu/mito/Mito8M/lmbench-Mito8M.0-800MHz.txt here (ARM core frequency set to 800 MHz)] and [http://mirror.dave.eu/mito/Mito8M/lmbench-Mito8M.0-1300MHz.txt here (ARM core frequency set to 1300 MHz)]. {| class="wikitable"|+Memory read bandwidth! rowspan="2" |Buffer size! colspan="2" |Bandwitdth[MB/s]|-!ARM core frequency = 800 MHz!ARM core frequency = 1300 MHz|-|512B|1553|2521|-|1kB|1567|2546|-|2kB|1575|2560|-|4kB|1575|2564|-|8kB|1577|2564|-|16kB|1577|2567|-|32kB|1528|2490|-| 0.065536 |64kB|1531|2494|-|128kB|1547|2530|-|256kB|1552|2526|-|512kB|1514|2518|-|1MB|1318|2181|-|2MB|1430|2148|-|4MB|1420|2108|-|8MB|1423|2038|-|16MB|1420|2116|-|32MB|1365|2117|-|64MB|1393|2035|-|128MB|1382|2035|-|256MB|1372|2050|-|512MB|1367|1998|} {| class="wikitable"|+Memory write bandwidth! rowspan="2" |Buffer size! colspan="2" |Bandwitdth[MB/s]|-!ARM core frequency = 800 MHz!ARM core frequency = 1300 MHz|-|512B|2932|4771|-|1kB|3048|4956|-|2kB|3100|5046|-|4kB|3136|5097|-|8kB|3135|5101|-|16kB|3150|5120|-|32kB|2864|5127|-|64kB|3033|5071|-|128kB|3093|4886|-|256kB|2956|5056|-|512kB|3024|5054|-|1MB|3075|5092|-|2MB|3095|5116|-|4MB|3121|5118|-|8MB|3137|5120|-|16MB|3145|5121|-|32MB|3146|5120|-|64MB|3146|5125|-|128MB|3147|5123|-|256MB|3150|5124|-|512MB|3144|5125|-|1GB|3146|5124|} There are some interesting facts to stress:* Read and write bandwitdth are not effected by the buffer size.* They are significantly affected by the ARM core frequency. For instance, the improvement of the write bandwidth (about 62% when the buffer is 1GB) is practically the same of the increase in frequency. For more information regarding LMbench, please see [http://lmbench.sourceforge.net/ this page]. 
===pmbw===
TBDAs defined by the author, <code>pmbw</code> is "a set of assembler routines to measure the parallel memory (cache and RAM) bandwidth of modern multi-core machines." It performs a myriad of tests. Luckily, it comes with a handful tool that plots the results—which are stored in a text file—in a series of charts. Again,the benchmark was run at two different ARM core frequencies, 800 and 1300 MHz. The complete results and the charts are available at the following links:*http://mirror.dave.eu/mito/Mito8M/pmbw-stats-Mito8M-800MHz.txt*http://mirror.dave.eu/mito/Mito8M/pmbw-plots-Mito8M-800MHz.pdf*http://mirror.dave.eu/mito/Mito8M/pmbw-stats-Mito8M-1300MHz.txt*http://mirror.dave.eu/mito/Mito8M/pmbw-plots-Mito8M-1300MHz.pdf Generally speaking, the charts exhibit significant declines in the performances when the array size is around the L1 and the L2 cache size. For more details about <code>pmbw</code>, please refer to [https://panthema.net/2013/pmbw/ this page]. ===stressapptest===According to the documentation, stressapptest—which was developed at Google—is "a memory interface test. It tries to maximize randomized traffic to memory from processor and I/O, with the intent of creating a realistic high load situation in order to test the existing hardware devices in a computer."{| class="wikitable"|+! rowspan="2" |Test! colspan="2" |Bandwidth[MB/s]|-!ARM core frequency = 800 MHz!ARM core frequency = 1300 MHz|-|Memory copy|5483|5804|}  The above table lists the achieved results when the benchmark was run as detailed in [[#Running_the_tests_4|this section]]. In this case, the different when running at different ARM core frequencies is very little. For more information about stressapptest, please refer to [https://github.com/stressapptest/stressapptest this page].
==Useful links==
*[https://www.cs.virginia.edu/stream/ STREAM benchmark]
*[http://lmbench.sourceforge.net/ LM Bench benchmark]
*[https://panthema.net/2013/pmbw/ pmbw benchmark]
*Joshua Wyatt Smith and Andrew Hamilton, [http://inspirehep.net/record/1424637/files/1719033_626-630.pdf Parallel benchmarks for ARM processors in the highenergy context]
*T Wrigley, G Harmsen and B Mellado, [http://inspirehep.net/record/1424631/files/1719033_275-280.pdf Memory performance of ARM processors and itsrelevance to High Energy Physics]
====Building====
To build STREAM:
* clone its git repository
*modify the <code>Makefile</code> as shown below
*issue the <code>make</code> command.
 
<pre class="board-terminal">
git clone https://github.com/jeffhammond/STREAM.git
===LMbench===
To run this benchmark, the native prebuilt package provided by Debian Buster was used.
====Running Please click on ''Expand'' to show the tests=========ARM core clock = 800 MHz=====complete log.<pre class="board-terminal" mw-collapsible="" mw-collapsed"="">
armbian@Mito8M:~/devel/lmbench$ sudo lmbench-run
[sudo] password for armbian:
under /var/lib/lmbench/results
</pre>
=====ARM core clock = 1300 MHz=====
===pmbw=Results======Building====TBD inserire link Building pmbw is straightforward. Please click on ''Expand'' to show the box that illustrates the procedure.<pre class="board-terminal mw-collapsible mw-collapsed">armbian@Mito8M:~/devel$ git clone https://github.com/bingmann/pmbw.gitCloning into 'pmbw'...remote: Enumerating objects: 15, done.remote: Counting objects: 100% (15/15), done.remote: Compressing objects: 100% (15/15), done.remote: Total 386 (delta 1), reused 3 (delta 0), pack-reused 371Receiving objects: 100% (386/386), 369.04 KiB | 1.27 MiB/s, done.Resolving deltas: 100% (232/232), done.armbian@Mito8M:~/devel$ cd pmbwarmbian@Mito8M:~/devel/pmbw$ ./configure && makechecking build system type... aarch64-unknown-linux-gnuchecking host system type... aarch64-unknown-linux-gnuchecking target system type... aarch64-unknown-linux-gnuchecking for a BSD-compatible install... /usr/bin/install -cchecking whether build environment is sane... yeschecking for a thread-safe mkdir -p... /bin/mkdir -pchecking for gawk... nochecking for mawk... mawkchecking whether make sets $(MAKE)... yeschecking whether make supports nested variables... yeschecking whether to enable maintainer-specific portions of Makefiles... nochecking building for Windows... nochecking for g++... g++checking whether the C++ compiler works... yeschecking for C++ compiler default output file scaricabilename... a.outchecking for suffix of executables... checking whether we are cross compiling... nochecking for suffix of object files... ochecking whether we are using the GNU C++ compiler... yeschecking whether g++ accepts -g... yeschecking whether make supports the include directive... yes (GNU style)checking dependency style of g++... gcc3checking whether g++ supports -march=x86-64... nochecking for pthread_mutex_init in -lpthread... yeschecking for clock_gettime in -lrt... yeschecking for posix_memalign in -lc... yeschecking that generated files are newer than configure... doneconfigure: creating ./config.statusconfig.status: creating Makefileconfig.status: executing depfiles commandsg++ -DPACKAGE_NAME=\"pmbw\" -DPACKAGE_TARNAME=\"pmbw\" -DPACKAGE_VERSION=\"0.6.3\" -DPACKAGE_STRING=\"pmbw\ 0.6.3\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"pmbw\" -DVERSION=\"0.6.3\" -DON_WINDOWS=false -DHAVE_POSIX_MEMALIGN=1 -I. -W -Wall -g -O2 -MT pmbw.o -MD -MP -MF .deps/pmbw.Tpo -c -o pmbw.o pmbw.ccmv -f .deps/pmbw.Tpo .deps/pmbw.Pog++ -W -Wall -g -O2 -o pmbw pmbw.o -lpthread -lrtg++ -DPACKAGE_NAME=\"pmbw\" -DPACKAGE_TARNAME=\"pmbw\" -DPACKAGE_VERSION=\"0.6.3\" -DPACKAGE_STRING=\"pmbw\ 0.6.3\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"pmbw\" -DVERSION=\"0.6.3\" -DON_WINDOWS=false -DHAVE_POSIX_MEMALIGN=1 -I. -W -Wall -g -O2 -MT stats2gnuplot.o -MD -MP -MF .deps/stats2gnuplot.Tpo -c -o stats2gnuplot.o stats2gnuplot.ccmv -f .deps/stats2gnuplot.Tpo .deps/stats2gnuplot.Pog++ -W -Wall -g -O2 -o stats2gnuplot stats2gnuplot.o -lpthread -lrt</pre>====Running the tests====The benchmark was run as follows:<pre class="board-terminal">armbian@Mito8M:~/devel/pmbw$ sudo nice -n -2 ./pmbw -S 0[sudo] password for armbian: Running benchmarks with no upper array size limit.Detected 2997 MiB physical RAM and 4 CPUs.  Allocating 2048 MiB for testing.Running nthreads=1 factor=1073741824 areasize=1024 thrsize=1024 testsize=1024 repeats=1048576 testvol=1073741824 testaccess=268435456run time = 0.694051 -> rerunning test with repeat factor=2320598341Running nthreads=1 factor=2320598341 areasize=1024 thrsize=1024 testsize=1024 repeats=2266210 testvol=2320599040 testaccess=580149760run time = 1.49925 -> next test with repeat factor=2321757595RESULT datetime=2020-01-29 11:52:20 host=Mito8M version=0.6.3 funcname=cScanWrite32PtrSimpleLoop nthreads=1 areasize=1024 threadsize=1024 testsize=1024 repeats=2266210 testvol=2320599040 testaccess=580149760 time=1.4992515009998896858 bandwidth=1547838396.9949886799 rate=2.5842491100916590667e-09Running nthreads=1 factor=2321757595 areasize=2048 thrsize=2048 testsize=2048 repeats=1133671 testvol=2321758208 testaccess=580439552run time = 1.47811 -> next test with repeat factor=2356140806RESULT datetime=2020-01-29 11:52:21 host=Mito8M version=0.6.3 funcname=cScanWrite32PtrSimpleLoop nthreads=1 areasize=2048 threadsize=2048 testsize=2048 repeats=1133671 testvol=2321758208 testaccess=580439552 time=1.4781108589995710645 bandwidth=1570760537.9284164906 rate=2.5465371095172560774e-09Running nthreads=1 factor=2356140806 areasize=3072 thrsize=3072 testsize=3072 repeats=766973 testvol=2356141056 testaccess=589035264...</pre>  To generate the charts plotting the results, the following command was issued:<pre class="board-terminal">./stats2gnuplot stats.txt | gnuplot</pre>
===stressapptest===
====Building====
Bulding stressapptest is straighforward. The following box illustrates the procedure. Please click on ''Expand'' to visualize the box.
<pre class="board-terminal mw-collapsible mw-collapsed">
armbian@Mito8M:~/devel/stressapptest$ git clone https://github.com/stressapptest/stressapptest.git
Cloning into 'stressapptest'...
remote: Enumerating objects: 290, done.
remote: Total 290 (delta 0), reused 0 (delta 0), pack-reused 290
Receiving objects: 100% (290/290), 324.79 KiB | 1.16 MiB/s, done.
Resolving deltas: 100% (196/196), done.
armbian@Mito8M:~/devel/stressapptest$ cd stressapptest
armbian@Mito8M:~/devel/stressapptest/stressapptest$ ./configure
configure: Compiling with dynamically linked libraries.
checking build system type... aarch64-unknown-linux-gnu
checking host system type... aarch64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking user ID... armbian
checking host name... Mito8M
checking current timestamp... Mon Jan 27 16:25:29 CET 2020
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking for library containing pthread_create... -lpthread
checking for pthread_barrier_t... yes
checking libaio.h usability... no
checking libaio.h presence... no
checking for libaio.h... no
checking for library containing io_setup... no
checking sys/shm.h usability... yes
checking sys/shm.h presence... yes
checking for sys/shm.h... yes
checking for library containing shm_open... -lrt
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for pid_t... yes
checking for C/C++ restrict keyword... __restrict
checking for size_t... yes
checking for ssize_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking for uint16_t... yes
checking for working volatile... yes
checking whether closedir returns void... no
checking whether gcc needs -traditional... no
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking for sys/socket.h... (cached) yes
checking types of arguments for select... int,fd_set *,struct timeval *
checking return type of signal handlers... void
checking whether strerror_r is declared... yes
checking for strerror_r... yes
checking whether strerror_r returns char *... no
checking for vprintf... yes
checking for _doprnt... no
checking for ftruncate... yes
checking for gettimeofday... yes
checking for memset... yes
checking for munmap... yes
checking for select... yes
checking for socket... yes
checking for strtol... yes
checking for strtoull... yes
checking for mmap64... yes
checking for posix_memalign... yes
checking for rand_r... yes
checking for sched_getaffinity... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/stressapptest_config.h
config.status: executing depfiles commands
armbian@Mito8M:~/devel/stressapptest/stressapptest$ make
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/armbian/devel/stressapptest/stressapptest/missing --run aclocal-1.11
/home/armbian/devel/stressapptest/stressapptest/missing: line 54: aclocal-1.11: command not found
WARNING: `aclocal-1.11' is missing on your system. You should only need it if
you modified `acinclude.m4' or `configure.ac'. You might want
to install the `Automake' and `Perl' packages. Grab them from
any GNU archive site.
cd . && /bin/bash /home/armbian/devel/stressapptest/stressapptest/missing --run automake-1.11 --foreign
/home/armbian/devel/stressapptest/stressapptest/missing: line 54: automake-1.11: command not found
WARNING: `automake-1.11' is missing on your system. You should only need it if
you modified `Makefile.am', `acinclude.m4' or `configure.ac'.
You might want to install the `Automake' and `Perl' packages.
Grab them from any GNU archive site.
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/armbian/devel/stressapptest/stressapptest/missing --run autoconf
aclocal.m4:16: warning: this file was generated for autoconf 2.65.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.
/bin/bash ./config.status --recheck
running CONFIG_SHELL=/bin/bash /bin/bash ./configure --no-create --no-recursion
configure: Compiling with dynamically linked libraries.
checking build system type... aarch64-unknown-linux-gnu
checking host system type... aarch64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking user ID... armbian
checking host name... Mito8M
checking current timestamp... Mon Jan 27 16:27:41 CET 2020
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking for library containing pthread_create... -lpthread
checking for pthread_barrier_t... yes
checking libaio.h usability... no
checking libaio.h presence... no
checking for libaio.h... no
checking for library containing io_setup... no
checking sys/shm.h usability... yes
checking sys/shm.h presence... yes
checking for sys/shm.h... yes
checking for library containing shm_open... -lrt
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for pid_t... yes
checking for C/C++ restrict keyword... __restrict
checking for size_t... yes
checking for ssize_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking for uint16_t... yes
checking for working volatile... yes
checking whether closedir returns void... no
checking whether gcc needs -traditional... no
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking for sys/socket.h... (cached) yes
checking types of arguments for select... int,fd_set *,struct timeval *
checking return type of signal handlers... void
checking whether strerror_r is declared... yes
checking for strerror_r... yes
checking whether strerror_r returns char *... no
checking for vprintf... yes
checking for _doprnt... no
checking for ftruncate... yes
checking for gettimeofday... yes
checking for memset... yes
checking for munmap... yes
checking for select... yes
checking for socket... yes
checking for strtol... yes
checking for strtoull... yes
checking for mmap64... yes
checking for posix_memalign... yes
checking for rand_r... yes
checking for sched_getaffinity... yes
configure: creating ./config.status
/bin/bash ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/stressapptest_config.h
config.status: executing depfiles commands
Making all in src
make[1]: Entering directory '/home/armbian/devel/stressapptest/stressapptest/src'
(CDPATH="${ZSH_VERSION+.}:" && cd .. && /bin/bash /home/armbian/devel/stressapptest/stressapptest/missing --run autoheader)
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US.UTF-8",
LC_ALL = (unset),
LC_ADDRESS = "it_IT.UTF-8",
LC_NAME = "it_IT.UTF-8",
LC_MONETARY = "it_IT.UTF-8",
LC_PAPER = "it_IT.UTF-8",
LC_IDENTIFICATION = "it_IT.UTF-8",
LC_TELEPHONE = "it_IT.UTF-8",
LC_MESSAGES = "en_US.UTF-8",
LC_MEASUREMENT = "it_IT.UTF-8",
LC_TIME = "it_IT.UTF-8",
LC_NUMERIC = "it_IT.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US.UTF-8",
LC_ALL = (unset),
LC_TIME = "it_IT.UTF-8",
LC_MONETARY = "it_IT.UTF-8",
LC_ADDRESS = "it_IT.UTF-8",
LC_TELEPHONE = "it_IT.UTF-8",
LC_MESSAGES = "en_US.UTF-8",
LC_NAME = "it_IT.UTF-8",
LC_MEASUREMENT = "it_IT.UTF-8",
LC_IDENTIFICATION = "it_IT.UTF-8",
LC_NUMERIC = "it_IT.UTF-8",
LC_PAPER = "it_IT.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
rm -f stamp-h1
touch stressapptest_config.h.in
cd .. && /bin/bash ./config.status src/stressapptest_config.h
config.status: creating src/stressapptest_config.h
config.status: src/stressapptest_config.h is unchanged
make all-am
make[2]: Entering directory '/home/armbian/devel/stressapptest/stressapptest/src'
g++ -DHAVE_CONFIG_H -I. -DCHECKOPTS -Wreturn-type -Wunused -Wuninitialized -Wall -O3 -funroll-all-loops -funroll-loops -DNDEBUG -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cc
mv -f .deps/main.Tpo .deps/main.Po
g++ -DHAVE_CONFIG_H -I. -DCHECKOPTS -Wreturn-type -Wunused -Wuninitialized -Wall -O3 -funroll-all-loops -funroll-loops -DNDEBUG -MT os.o -MD -MP -MF .deps/os.Tpo -c -o os.o os.cc
os.cc:215:2: warning: #warning "Unsupported CPU type: unable to determine feature set." [-Wcpp]
#warning "Unsupported CPU type: unable to determine feature set."
^15:30, 27 January 2020 (UTC)~
mv -f .deps/os.Tpo .deps/os.Po
g++ -DHAVE_CONFIG_H -I. -DCHECKOPTS -Wreturn-type -Wunused -Wuninitialized -Wall -O3 -funroll-all-loops -funroll-loops -DNDEBUG -MT os_factory.o -MD -MP -MF .deps/os_factory.Tpo -c -o os_factory.o os_factory.cc
mv -f .deps/os_factory.Tpo .deps/os_factory.Po
g++ -DHAVE_CONFIG_H -I. -DCHECKOPTS -Wreturn-type -Wunused -Wuninitialized -Wall -O3 -funroll-all-loops -funroll-loops -DNDEBUG -MT pattern.o -MD -MP -MF .deps/pattern.Tpo -c -o pattern.o pattern.cc
mv -f .deps/pattern.Tpo .deps/pattern.Po
g++ -DHAVE_CONFIG_H -I. -DCHECKOPTS -Wreturn-type -Wunused -Wuninitialized -Wall -O3 -funroll-all-loops -funroll-loops -DNDEBUG -MT queue.o -MD -MP -MF .deps/queue.Tpo -c -o queue.o queue.cc
mv -f .deps/queue.Tpo .deps/queue.Po
g++ -DHAVE_CONFIG_H -I. -DCHECKOPTS -Wreturn-type -Wunused -Wuninitialized -Wall -O3 -funroll-all-loops -funroll-loops -DNDEBUG -MT sat.o -MD -MP -MF .deps/sat.Tpo -c -o sat.o sat.cc
mv -f .deps/sat.Tpo .deps/sat.Po
g++ -DHAVE_CONFIG_H -I. -DCHECKOPTS -Wreturn-type -Wunused -Wuninitialized -Wall -O3 -funroll-all-loops -funroll-loops -DNDEBUG -MT sat_factory.o -MD -MP -MF .deps/sat_factory.Tpo -c -o sat_factory.o sat_factory.cc
mv -f .deps/sat_factory.Tpo .deps/sat_factory.Po
g++ -DHAVE_CONFIG_H -I. -DCHECKOPTS -Wreturn-type -Wunused -Wuninitialized -Wall -O3 -funroll-all-loops -funroll-loops -DNDEBUG -MT worker.o -MD -MP -MF .deps/worker.Tpo -c -o worker.o worker.cc
worker.cc: In member function ‘virtual void NetworkThread::SetIP(const char*)’:
worker.cc:2005:10: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound 256 equals destination size [-Wstringop-truncation]
strncpy(ipaddr_, ipaddr_init, 256);
15:30, 27 January 2020 (UTC)~~^15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)~
In function ‘bool {anonymous}::sat_strerror(int, char*, int)’,
inlined from ‘virtual bool NetworkThread::ReceivePage(int, page_entry*)’ at worker.cc:2154:23:
worker.cc:92:14: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound 256 equals destination size [-Wstringop-truncation]
strncpy(buf, errmsg, len);
15:30, 27 January 2020 (UTC)~~^15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)~~
In function ‘bool {anonymous}::sat_strerror(int, char*, int)’,
inlined from ‘virtual bool NetworkListenThread::Listen()’ at worker.cc:2065:17:
worker.cc:92:14: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound 256 equals destination size [-Wstringop-truncation]
strncpy(buf, errmsg, len);
15:30, 27 January 2020 (UTC)~~^15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)~~
In function ‘bool {anonymous}::sat_strerror(int, char*, int)’,
inlined from ‘virtual bool NetworkThread::SendPage(int, page_entry*)’ at worker.cc:2121:21,
inlined from ‘virtual bool NetworkThread::SendPage(int, page_entry*)’ at worker.cc:2110:6:
worker.cc:92:14: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound 256 equals destination size [-Wstringop-truncation]
strncpy(buf, errmsg, len);
15:30, 27 January 2020 (UTC)~~^15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)~~
In function ‘bool {anonymous}::sat_strerror(int, char*, int)’,
inlined from ‘virtual bool NetworkThread::ReceivePage(int, page_entry*)’ at worker.cc:2154:23,
inlined from ‘virtual bool NetworkSlaveThread::Work()’ at worker.cc:2402:21:
worker.cc:92:14: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound 256 equals destination size [-Wstringop-truncation]
strncpy(buf, errmsg, len);
15:30, 27 January 2020 (UTC)~~^15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)~~
In function ‘bool {anonymous}::sat_strerror(int, char*, int)’,
inlined from ‘virtual bool NetworkThread::SendPage(int, page_entry*)’ at worker.cc:2121:21,
inlined from ‘virtual bool NetworkThread::SendPage(int, page_entry*)’ at worker.cc:2110:6,
inlined from ‘virtual bool NetworkSlaveThread::Work()’ at worker.cc:2406:18:
worker.cc:92:14: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound 256 equals destination size [-Wstringop-truncation]
strncpy(buf, errmsg, len);
15:30, 27 January 2020 (UTC)~~^15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)~~
In function ‘bool {anonymous}::sat_strerror(int, char*, int)’,
inlined from ‘virtual bool NetworkThread::SendPage(int, page_entry*)’ at worker.cc:2121:21,
inlined from ‘virtual bool NetworkThread::SendPage(int, page_entry*)’ at worker.cc:2110:6,
inlined from ‘virtual bool NetworkThread::Work()’ at worker.cc:2228:38:
worker.cc:92:14: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound 256 equals destination size [-Wstringop-truncation]
strncpy(buf, errmsg, len);
15:30, 27 January 2020 (UTC)~~^15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)~~
In function ‘bool {anonymous}::sat_strerror(int, char*, int)’,
inlined from ‘int WorkerThread::SpawnThread()’ at worker.cc:339:17:
worker.cc:92:14: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound 256 equals destination size [-Wstringop-truncation]
strncpy(buf, errmsg, len);
15:30, 27 January 2020 (UTC)~~^15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)15:30, 27 January 2020 (UTC)~~
mv -f .deps/worker.Tpo .deps/worker.Po
g++ -DHAVE_CONFIG_H -I. -DCHECKOPTS -Wreturn-type -Wunused -Wuninitialized -Wall -O3 -funroll-all-loops -funroll-loops -DNDEBUG -MT finelock_queue.o -MD -MP -MF .deps/finelock_queue.Tpo -c -o finelock_queue.o finelock_queue.cc
mv -f .deps/finelock_queue.Tpo .deps/finelock_queue.Po
g++ -DHAVE_CONFIG_H -I. -DCHECKOPTS -Wreturn-type -Wunused -Wuninitialized -Wall -O3 -funroll-all-loops -funroll-loops -DNDEBUG -MT error_diag.o -MD -MP -MF .deps/error_diag.Tpo -c -o error_diag.o error_diag.cc
mv -f .deps/error_diag.Tpo .deps/error_diag.Po
g++ -DHAVE_CONFIG_H -I. -DCHECKOPTS -Wreturn-type -Wunused -Wuninitialized -Wall -O3 -funroll-all-loops -funroll-loops -DNDEBUG -MT disk_blocks.o -MD -MP -MF .deps/disk_blocks.Tpo -c -o disk_blocks.o disk_blocks.cc
mv -f .deps/disk_blocks.Tpo .deps/disk_blocks.Po
g++ -DHAVE_CONFIG_H -I. -DCHECKOPTS -Wreturn-type -Wunused -Wuninitialized -Wall -O3 -funroll-all-loops -funroll-loops -DNDEBUG -MT adler32memcpy.o -MD -MP -MF .deps/adler32memcpy.Tpo -c -o adler32memcpy.o adler32memcpy.cc
adler32memcpy.cc:519:4: warning: #warning "No vector copy defined for this architecture." [-Wcpp]
#warning "No vector copy defined for this architecture."
^15:30, 27 January 2020 (UTC)~
mv -f .deps/adler32memcpy.Tpo .deps/adler32memcpy.Po
g++ -DHAVE_CONFIG_H -I. -DCHECKOPTS -Wreturn-type -Wunused -Wuninitialized -Wall -O3 -funroll-all-loops -funroll-loops -DNDEBUG -MT logger.o -MD -MP -MF .deps/logger.Tpo -c -o logger.o logger.cc
mv -f .deps/logger.Tpo .deps/logger.Po
g++ -DCHECKOPTS -Wreturn-type -Wunused -Wuninitialized -Wall -O3 -funroll-all-loops -funroll-loops -DNDEBUG -o stressapptest main.o os.o os_factory.o pattern.o queue.o sat.o sat_factory.o worker.o finelock_queue.o error_diag.o disk_blocks.o adler32memcpy.o logger.o -lrt -lpthread
gcc -DHAVE_CONFIG_H -I. -g -O2 -MT findmask.o -MD -MP -MF .deps/findmask.Tpo -c -o findmask.o findmask.c
mv -f .deps/findmask.Tpo .deps/findmask.Po
gcc -g -O2 -o findmask findmask.o -lrt -lpthread
make[2]: Leaving directory '/home/armbian/devel/stressapptest/stressapptest/src'
make[1]: Leaving directory '/home/armbian/devel/stressapptest/stressapptest/src'
make[1]: Entering directory '/home/armbian/devel/stressapptest/stressapptest'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory '/home/armbian/devel/stressapptest/stressapptest'
</pre>
===pmbw===
====Building====
====Running the tests====
Please click on ''Expand'' to visualize the boxes.
=====ARM core clock = 800 MHz=====
<pre class="board-terminal mw-collapsible mw-collapsed">
armbian@Mito8M:~/devel/stressapptest/stressapptest/src$ ./stressapptest -M 32 -s 5 -v 20
2020/01/27-16:23:44(CET) Log: Commandline - ./stressapptest -M 32 -s 5 -v 20
2020/01/27-16:23:44(CET) Stats: SAT revision 1.0.9_autoconf, 64 bit binary
2020/01/27-16:23:44(CET) Log: armbian @ Mito8M on Mon Jan 27 16:08:57 CET 2020 from open source release
2020/01/27-16:23:44(CET) Log: 1 nodes, 4 cpus.
2020/01/27-16:23:44(CET) Log: Defaulting to 4 copy threads
2020/01/27-16:23:44(CET) Log: Prefer plain malloc memory allocation.
2020/01/27-16:23:44(CET) Log: Using mmap() allocation at 0xffff8a31a000.
2020/01/27-16:23:44(CET) Stats: Starting SAT, 32M, 5 seconds
2020/01/27-16:23:44(CET) Log: initialized 120 data patterns
2020/01/27-16:23:44(CET) Log: Allocating pages, Total: 32 Free: 12
2020/01/27-16:23:44(CET) Starting Fill threads: 8 threads, 32 pages
2020/01/27-16:23:44(CET) Starting Fill Threads 0: 4 pages
2020/01/27-16:23:44(CET) Starting Fill Threads 1: 4 pages
2020/01/27-16:23:44(CET) Starting Fill Threads 2: 4 pages
2020/01/27-16:23:44(CET) Starting Fill Threads 3: 4 pages
2020/01/27-16:23:44(CET) Starting Fill Threads 4: 4 pages
2020/01/27-16:23:44(CET) Starting Fill Threads 5: 4 pages
2020/01/27-16:23:44(CET) Starting Fill Threads 6: 4 pages
2020/01/27-16:23:44(CET) Starting Fill Threads 7: 4 pages
2020/01/27-16:23:44(CET) Log: Thread 0 running on core ID 0 mask F (F).
2020/01/27-16:23:44(CET) Log: Starting fill thread 0
2020/01/27-16:23:44(CET) Log: Thread 1 running on core ID 1 mask F (F).
2020/01/27-16:23:44(CET) Log: Starting fill thread 1
2020/01/27-16:23:44(CET) Log: Thread 2 running on core ID 0 mask F (F).
2020/01/27-16:23:44(CET) Log: Starting fill thread 2
2020/01/27-16:23:44(CET) Log: Thread 3 running on core ID 1 mask F (F).
2020/01/27-16:23:44(CET) Log: Starting fill thread 3
2020/01/27-16:23:44(CET) Log: Thread 4 running on core ID 2 mask F (F).
2020/01/27-16:23:44(CET) Log: Starting fill thread 4
2020/01/27-16:23:44(CET) Log: Completed 0: Fill thread. Status 1, 4 pages filled
2020/01/27-16:23:44(CET) Log: Completed 3: Fill thread. Status 1, 4 pages filled
2020/01/27-16:23:44(CET) Log: Completed 2: Fill thread. Status 1, 4 pages filled
2020/01/27-16:23:44(CET) Log: Completed 1: Fill thread. Status 1, 4 pages filled
2020/01/27-16:23:44(CET) Log: Thread 5 running on core ID 1 mask F (F).
2020/01/27-16:23:44(CET) Log: Starting fill thread 5
2020/01/27-16:23:44(CET) Log: Thread 7 running on core ID 3 mask F (F).
2020/01/27-16:23:44(CET) Log: Starting fill thread 7
2020/01/27-16:23:44(CET) Log: Thread 6 running on core ID 0 mask F (F).
2020/01/27-16:23:44(CET) Log: Starting fill thread 6
2020/01/27-16:23:44(CET) Log: Completed 4: Fill thread. Status 1, 4 pages filled
2020/01/27-16:23:44(CET) Log: Completed 5: Fill thread. Status 1, 4 pages filled
2020/01/27-16:23:44(CET) Log: Completed 7: Fill thread. Status 1, 4 pages filled
2020/01/27-16:23:44(CET) Log: Completed 6: Fill thread. Status 1, 4 pages filled
2020/01/27-16:23:44(CET) Log: Done filling pages.
2020/01/27-16:23:44(CET) Log: Allocating pages.
2020/01/27-16:23:44(CET) Log: Done allocating pages.
2020/01/27-16:23:44(CET) Log: Region 0: 32.
2020/01/27-16:23:44(CET) Log: Region mask: 0x1
2020/01/27-16:23:44(CET) Log: Installing signal handlers
2020/01/27-16:23:44(CET) Log: Launching worker threads
2020/01/27-16:23:44(CET) Log: Starting worker threads
2020/01/27-16:23:44(CET) Log: Starting invert threads
2020/01/27-16:23:44(CET) Log: Starting disk stress threads
2020/01/27-16:23:44(CET) Log: Starting cpu stress threads
2020/01/27-16:23:44(CET) Log: Initializing WorkerStatus objects
2020/01/27-16:23:44(CET) Log: Spawning worker threads
2020/01/27-16:23:44(CET) Log: Spawning thread 1
2020/01/27-16:23:44(CET) Log: Spawning thread 2
2020/01/27-16:23:44(CET) Log: Spawning thread 3
2020/01/27-16:23:44(CET) Log: available CPU mask - F
2020/01/27-16:23:44(CET) Log: Spawning thread 4
2020/01/27-16:23:44(CET) Log: Spawning thread 0
2020/01/27-16:23:44(CET) Log: available CPU mask - F
2020/01/27-16:23:44(CET) Log: Starting countdown with 5 seconds
2020/01/27-16:23:44(CET) Log: Thread 4 running on core ID 3 mask 8 (8).
2020/01/27-16:23:44(CET) Log: Starting copy thread 4: cpu 8, mem ffffffff
2020/01/27-16:23:44(CET) Log: available CPU mask - F
2020/01/27-16:23:44(CET) Log: Thread 0 running on core ID 2 mask F (F).
2020/01/27-16:23:44(CET) Log: Starting system error poll thread 0
2020/01/27-16:23:44(CET) Log: Thread 3 running on core ID 1 mask 2 (2).
2020/01/27-16:23:44(CET) Log: Thread 1 running on core ID 0 mask 1 (1).
2020/01/27-16:23:44(CET) Log: Starting copy thread 1: cpu 1, mem ffffffff
2020/01/27-16:23:44(CET) Log: Starting copy thread 3: cpu 2, mem ffffffff
2020/01/27-16:23:44(CET) Log: available CPU mask - F
2020/01/27-16:23:44(CET) Log: Thread 2 running on core ID 2 mask 4 (4).
2020/01/27-16:23:44(CET) Log: Starting copy thread 2: cpu 4, mem ffffffff
2020/01/27-16:23:49(CET) Log: Joining worker threads
2020/01/27-16:23:49(CET) Log: Joining thread 1
2020/01/27-16:23:49(CET) Log: Finished system error poll thread 0: 0 errors
2020/01/27-16:23:49(CET) Log: Completed 1: Copy thread. Status 1, 3410 pages copied
2020/01/27-16:23:49(CET) Log: Joining thread 2
2020/01/27-16:23:49(CET) Log: Completed 4: Copy thread. Status 1, 3446 pages copied
2020/01/27-16:23:49(CET) Log: Completed 2: Copy thread. Status 1, 3415 pages copied
2020/01/27-16:23:49(CET) Log: Joining thread 3
2020/01/27-16:23:49(CET) Log: Completed 3: Copy thread. Status 1, 3440 pages copied
2020/01/27-16:23:49(CET) Log: Joining thread 4
2020/01/27-16:23:49(CET) Log: Joining thread 0
2020/01/27-16:23:49(CET) Log: Reads per page histogram
2020/01/27-16:23:49(CET) Log: 256 - 512: 24
2020/01/27-16:23:49(CET) Log: 512 - 1024: 8
2020/01/27-16:23:49(CET) Log: Finished countdown, begin to result check
2020/01/27-16:23:49(CET) Log: Finished countdown, begin to result check
2020/01/27-16:23:49(CET) Log: Finished countdown, begin to result check
2020/01/27-16:23:49(CET) Log: Finished countdown, begin to result check
2020/01/27-16:23:49(CET) Log: Finished countdown, begin to result check
2020/01/27-16:23:49(CET) Log: Finished countdown, begin to result check
2020/01/27-16:23:49(CET) Log: Finished countdown, begin to result check
2020/01/27-16:23:49(CET) Log: Finished countdown, begin to result check
2020/01/27-16:23:49(CET) Log: Finished countdown, begin to result check
2020/01/27-16:23:49(CET) Log: Spawning thread 5
2020/01/27-16:23:49(CET) Log: Spawning thread 6
2020/01/27-16:23:49(CET) Log: Thread 5 running on core ID 1 mask F (F).
2020/01/27-16:23:49(CET) Log: Starting Check thread 5
2020/01/27-16:23:49(CET) Log: Thread 6 running on core ID 3 mask F (F).
2020/01/27-16:23:49(CET) Log: Starting Check thread 6
2020/01/27-16:23:49(CET) Log: Spawning thread 7
2020/01/27-16:23:49(CET) Log: Spawning thread 8
2020/01/27-16:23:49(CET) Log: Spawning thread 9
2020/01/27-16:23:49(CET) Log: Spawning thread 10
2020/01/27-16:23:49(CET) Log: Spawning thread 11
2020/01/27-16:23:49(CET) Log: Spawning thread 12
2020/01/27-16:23:49(CET) Log: Joining thread 5
2020/01/27-16:23:49(CET) Log: Thread 12 running on core ID 0 mask F (F).
2020/01/27-16:23:49(CET) Log: Starting Check thread 12
2020/01/27-16:23:49(CET) Log: Thread 8 running on core ID 2 mask F (F).
2020/01/27-16:23:49(CET) Log: Thread 9 running on core ID 2 mask F (F).
2020/01/27-16:23:49(CET) Log: Starting Check thread 9
2020/01/27-16:23:49(CET) Log: Starting Check thread 8
2020/01/27-16:23:49(CET) Log: Completed 12: Check thread. Status 1, 4 pages checked
2020/01/27-16:23:49(CET) Log: Completed 5: Check thread. Status 1, 7 pages checked
2020/01/27-16:23:49(CET) Log: Completed 6: Check thread. Status 1, 7 pages checked
2020/01/27-16:23:49(CET) Log: Joining thread 6
2020/01/27-16:23:49(CET) Log: Joining thread 7
2020/01/27-16:23:49(CET) Log: Thread 10 running on core ID 1 mask F (F).
2020/01/27-16:23:49(CET) Log: Thread 11 running on core ID 0 mask F (F).
2020/01/27-16:23:49(CET) Log: Starting Check thread 10
2020/01/27-16:23:49(CET) Log: Starting Check thread 11
2020/01/27-16:23:49(CET) Log: Completed 10: Check thread. Status 1, 0 pages checked
2020/01/27-16:23:49(CET) Log: Completed 11: Check thread. Status 1, 0 pages checked
2020/01/27-16:23:49(CET) Log: Thread 7 running on core ID 1 mask F (F).
2020/01/27-16:23:49(CET) Log: Starting Check thread 7
2020/01/27-16:23:49(CET) Log: Completed 7: Check thread. Status 1, 0 pages checked
2020/01/27-16:23:49(CET) Log: Completed 8: Check thread. Status 1, 2 pages checked
2020/01/27-16:23:49(CET) Log: Joining thread 8
2020/01/27-16:23:49(CET) Log: Completed 9: Check thread. Status 1, 0 pages checked
2020/01/27-16:23:49(CET) Log: Joining thread 9
2020/01/27-16:23:49(CET) Log: Joining thread 10
2020/01/27-16:23:49(CET) Log: Joining thread 11
2020/01/27-16:23:49(CET) Log: Joining thread 12
2020/01/27-16:23:49(CET) Log: Join all outstanding threads
2020/01/27-16:23:49(CET) Log: Reaping thread status 1
2020/01/27-16:23:49(CET) Log: Thread 1 found 0 hardware incidents
2020/01/27-16:23:49(CET) Log: Reaping thread status 2
2020/01/27-16:23:49(CET) Log: Thread 2 found 0 hardware incidents
2020/01/27-16:23:49(CET) Log: Reaping thread status 3
2020/01/27-16:23:49(CET) Log: Thread 3 found 0 hardware incidents
2020/01/27-16:23:49(CET) Log: Reaping thread status 4
2020/01/27-16:23:49(CET) Log: Thread 4 found 0 hardware incidents
2020/01/27-16:23:49(CET) Log: Reaping thread status 0
2020/01/27-16:23:49(CET) Log: Thread 0 found 0 hardware incidents
2020/01/27-16:23:49(CET) Log: Reaping thread status 5
2020/01/27-16:23:49(CET) Log: Thread 5 found 0 hardware incidents
2020/01/27-16:23:49(CET) Log: Reaping thread status 6
2020/01/27-16:23:49(CET) Log: Thread 6 found 0 hardware incidents
2020/01/27-16:23:49(CET) Log: Reaping thread status 7
2020/01/27-16:23:49(CET) Log: Thread 7 found 0 hardware incidents
2020/01/27-16:23:49(CET) Log: Reaping thread status 8
2020/01/27-16:23:49(CET) Log: Thread 8 found 0 hardware incidents
2020/01/27-16:23:49(CET) Log: Reaping thread status 9
2020/01/27-16:23:49(CET) Log: Thread 9 found 0 hardware incidents
2020/01/27-16:23:49(CET) Log: Reaping thread status 10
2020/01/27-16:23:49(CET) Log: Thread 10 found 0 hardware incidents
2020/01/27-16:23:49(CET) Log: Reaping thread status 11
2020/01/27-16:23:49(CET) Log: Thread 11 found 0 hardware incidents
2020/01/27-16:23:49(CET) Log: Reaping thread status 12
2020/01/27-16:23:49(CET) Log: Thread 12 found 0 hardware incidents
2020/01/27-16:23:49(CET) Stats: Found 0 hardware incidents
2020/01/27-16:23:49(CET) Stats: Completed: 27422.00M in 5.00s 5482.17MB/s, with 0 hardware incidents, 0 errors
2020/01/27-16:23:49(CET) Stats: Memory Copy: 27422.00M at 5483.92MB/s
2020/01/27-16:23:49(CET) Stats: File Copy: 0.00M at 0.00MB/s
2020/01/27-16:23:49(CET) Stats: Net Copy: 0.00M at 0.00MB/s
2020/01/27-16:23:49(CET) Stats: Data Check: 0.00M at 0.00MB/s
2020/01/27-16:23:49(CET) Stats: Invert Data: 0.00M at 0.00MB/s
2020/01/27-16:23:49(CET) Stats: Disk: 0.00M at 0.00MB/s
2020/01/27-16:23:49(CET) Log: Deleting worker threads
2020/01/27-16:23:49(CET) Log: Deleting thread 1
2020/01/27-16:23:49(CET) Log: Deleting thread 2
2020/01/27-16:23:49(CET) Log: Deleting thread 3
2020/01/27-16:23:49(CET) Log: Deleting thread 4
2020/01/27-16:23:49(CET) Log: Deleting thread 0
2020/01/27-16:23:49(CET) Log: Destroying WorkerStatus objects
2020/01/27-16:23:49(CET) Log: Uninstalling signal handlers
2020/01/27-16:23:49(CET)
2020/01/27-16:23:49(CET) Status: PASS - please verify no corrected errors
2020/01/27-16:23:49(CET)
</pre>
 
=====ARM core clock = 1300 MHz=====
<pre class="board-terminal mw-collapsible mw-collapsed">
armbian@Mito8M:~/devel/stressapptest/stressapptest/src$ ./stressapptest -M 32 -s 5 -v 20
2020/01/27-16:22:14(CET) Log: Commandline - ./stressapptest -M 32 -s 5 -v 20
2020/01/27-16:22:14(CET) Stats: SAT revision 1.0.9_autoconf, 64 bit binary
2020/01/27-16:22:14(CET) Log: armbian @ Mito8M on Mon Jan 27 16:08:57 CET 2020 from open source release
2020/01/27-16:22:14(CET) Log: 1 nodes, 4 cpus.
2020/01/27-16:22:14(CET) Log: Defaulting to 4 copy threads
2020/01/27-16:22:14(CET) Log: Prefer plain malloc memory allocation.
2020/01/27-16:22:14(CET) Log: Using mmap() allocation at 0xffff9e7ea000.
2020/01/27-16:22:14(CET) Stats: Starting SAT, 32M, 5 seconds
2020/01/27-16:22:14(CET) Log: initialized 120 data patterns
2020/01/27-16:22:14(CET) Log: Allocating pages, Total: 32 Free: 12
2020/01/27-16:22:14(CET) Starting Fill threads: 8 threads, 32 pages
2020/01/27-16:22:14(CET) Starting Fill Threads 0: 4 pages
2020/01/27-16:22:14(CET) Starting Fill Threads 1: 4 pages
2020/01/27-16:22:14(CET) Starting Fill Threads 2: 4 pages
2020/01/27-16:22:14(CET) Starting Fill Threads 3: 4 pages
2020/01/27-16:22:14(CET) Starting Fill Threads 4: 4 pages
2020/01/27-16:22:14(CET) Starting Fill Threads 5: 4 pages
2020/01/27-16:22:14(CET) Starting Fill Threads 6: 4 pages
2020/01/27-16:22:14(CET) Starting Fill Threads 7: 4 pages
2020/01/27-16:22:14(CET) Log: Thread 0 running on core ID 1 mask F (F).
2020/01/27-16:22:14(CET) Log: Starting fill thread 0
2020/01/27-16:22:14(CET) Log: Thread 2 running on core ID 2 mask F (F).
2020/01/27-16:22:14(CET) Log: Thread 1 running on core ID 0 mask F (F).
2020/01/27-16:22:14(CET) Log: Starting fill thread 1
2020/01/27-16:22:14(CET) Log: Thread 4 running on core ID 3 mask F (F).
2020/01/27-16:22:14(CET) Log: Starting fill thread 4
2020/01/27-16:22:14(CET) Log: Starting fill thread 2
2020/01/27-16:22:14(CET) Log: Thread 3 running on core ID 2 mask F (F).
2020/01/27-16:22:14(CET) Log: Starting fill thread 3
2020/01/27-16:22:14(CET) Log: Completed 1: Fill thread. Status 1, 4 pages filled
2020/01/27-16:22:14(CET) Log: Completed 3: Fill thread. Status 1, 4 pages filled
2020/01/27-16:22:14(CET) Log: Completed 4: Fill thread. Status 1, 4 pages filled
2020/01/27-16:22:14(CET) Log: Thread 7 running on core ID 3 mask F (F).
2020/01/27-16:22:14(CET) Log: Starting fill thread 7
2020/01/27-16:22:14(CET) Log: Thread 5 running on core ID 2 mask F (F).
2020/01/27-16:22:14(CET) Log: Thread 6 running on core ID 2 mask F (F).
2020/01/27-16:22:14(CET) Log: Starting fill thread 6
2020/01/27-16:22:14(CET) Log: Starting fill thread 5
2020/01/27-16:22:14(CET) Log: Completed 0: Fill thread. Status 1, 4 pages filled
2020/01/27-16:22:14(CET) Log: Completed 6: Fill thread. Status 1, 4 pages filled
2020/01/27-16:22:14(CET) Log: Completed 7: Fill thread. Status 1, 4 pages filled
2020/01/27-16:22:14(CET) Log: Completed 5: Fill thread. Status 1, 4 pages filled
2020/01/27-16:22:14(CET) Log: Completed 2: Fill thread. Status 1, 4 pages filled
2020/01/27-16:22:14(CET) Log: Done filling pages.
2020/01/27-16:22:14(CET) Log: Allocating pages.
2020/01/27-16:22:14(CET) Log: Done allocating pages.
2020/01/27-16:22:14(CET) Log: Region 0: 32.
2020/01/27-16:22:14(CET) Log: Region mask: 0x1
2020/01/27-16:22:14(CET) Log: Installing signal handlers
2020/01/27-16:22:14(CET) Log: Launching worker threads
2020/01/27-16:22:14(CET) Log: Starting worker threads
2020/01/27-16:22:14(CET) Log: Starting invert threads
2020/01/27-16:22:14(CET) Log: Starting disk stress threads
2020/01/27-16:22:14(CET) Log: Starting cpu stress threads
2020/01/27-16:22:14(CET) Log: Initializing WorkerStatus objects
2020/01/27-16:22:14(CET) Log: Spawning worker threads
2020/01/27-16:22:14(CET) Log: Spawning thread 1
2020/01/27-16:22:14(CET) Log: Spawning thread 2
2020/01/27-16:22:14(CET) Log: Spawning thread 3
2020/01/27-16:22:14(CET) Log: available CPU mask - F
2020/01/27-16:22:14(CET) Log: Spawning thread 4
2020/01/27-16:22:14(CET) Log: Spawning thread 0
2020/01/27-16:22:14(CET) Log: available CPU mask - F
2020/01/27-16:22:14(CET) Log: Thread 4 running on core ID 3 mask 8 (8).
2020/01/27-16:22:14(CET) Log: Starting countdown with 5 seconds
2020/01/27-16:22:14(CET) Log: Starting copy thread 4: cpu 8, mem ffffffff
2020/01/27-16:22:14(CET) Log: Thread 1 running on core ID 0 mask 1 (1).
2020/01/27-16:22:14(CET) Log: available CPU mask - F
2020/01/27-16:22:14(CET) Log: Starting copy thread 1: cpu 1, mem ffffffff
2020/01/27-16:22:14(CET) Log: available CPU mask - F
2020/01/27-16:22:14(CET) Log: Thread 3 running on core ID 1 mask 2 (2).
2020/01/27-16:22:14(CET) Log: Starting copy thread 3: cpu 2, mem ffffffff
2020/01/27-16:22:14(CET) Log: Thread 2 running on core ID 2 mask 4 (4).
2020/01/27-16:22:14(CET) Log: Starting copy thread 2: cpu 4, mem ffffffff
2020/01/27-16:22:14(CET) Log: Thread 0 running on core ID 3 mask F (F).
2020/01/27-16:22:14(CET) Log: Starting system error poll thread 0
2020/01/27-16:22:19(CET) Log: Joining worker threads
2020/01/27-16:22:19(CET) Log: Joining thread 1
2020/01/27-16:22:19(CET) Log: Completed 3: Copy thread. Status 1, 3639 pages copied
2020/01/27-16:22:19(CET) Log: Completed 4: Copy thread. Status 1, 3645 pages copied
2020/01/27-16:22:19(CET) Log: Completed 1: Copy thread. Status 1, 3633 pages copied
2020/01/27-16:22:19(CET) Log: Joining thread 2
2020/01/27-16:22:19(CET) Log: Completed 2: Copy thread. Status 1, 3595 pages copied
2020/01/27-16:22:19(CET) Log: Joining thread 3
2020/01/27-16:22:19(CET) Log: Joining thread 4
2020/01/27-16:22:19(CET) Log: Joining thread 0
2020/01/27-16:22:19(CET) Log: Finished system error poll thread 0: 0 errors
2020/01/27-16:22:19(CET) Log: Reads per page histogram
2020/01/27-16:22:19(CET) Log: 128 - 256: 1
2020/01/27-16:22:19(CET) Log: 256 - 512: 19
2020/01/27-16:22:19(CET) Log: 512 - 1024: 12
2020/01/27-16:22:19(CET) Log: Finished countdown, begin to result check
2020/01/27-16:22:19(CET) Log: Finished countdown, begin to result check
2020/01/27-16:22:19(CET) Log: Finished countdown, begin to result check
2020/01/27-16:22:19(CET) Log: Finished countdown, begin to result check
2020/01/27-16:22:19(CET) Log: Finished countdown, begin to result check
2020/01/27-16:22:19(CET) Log: Finished countdown, begin to result check
2020/01/27-16:22:19(CET) Log: Finished countdown, begin to result check
2020/01/27-16:22:19(CET) Log: Finished countdown, begin to result check
2020/01/27-16:22:19(CET) Log: Finished countdown, begin to result check
2020/01/27-16:22:19(CET) Log: Spawning thread 5
2020/01/27-16:22:19(CET) Log: Spawning thread 6
2020/01/27-16:22:19(CET) Log: Spawning thread 7
2020/01/27-16:22:19(CET) Log: Thread 5 running on core ID 0 mask F (F).
2020/01/27-16:22:19(CET) Log: Starting Check thread 5
2020/01/27-16:22:19(CET) Log: Spawning thread 8
2020/01/27-16:22:19(CET) Log: Spawning thread 9
2020/01/27-16:22:19(CET) Log: Spawning thread 10
2020/01/27-16:22:19(CET) Log: Spawning thread 11
2020/01/27-16:22:19(CET) Log: Spawning thread 12
2020/01/27-16:22:19(CET) Log: Joining thread 5
2020/01/27-16:22:19(CET) Log: Thread 12 running on core ID 2 mask F (F).
2020/01/27-16:22:19(CET) Log: Starting Check thread 12
2020/01/27-16:22:19(CET) Log: Thread 6 running on core ID 1 mask F (F).
2020/01/27-16:22:19(CET) Log: Thread 8 running on core ID 3 mask F (F).
2020/01/27-16:22:19(CET) Log: Starting Check thread 8
2020/01/27-16:22:19(CET) Log: Starting Check thread 6
2020/01/27-16:22:19(CET) Log: Thread 9 running on core ID 3 mask F (F).
2020/01/27-16:22:19(CET) Log: Completed 8: Check thread. Status 1, 5 pages checked
2020/01/27-16:22:19(CET) Log: Starting Check thread 9
2020/01/27-16:22:19(CET) Log: Completed 9: Check thread. Status 1, 0 pages checked
2020/01/27-16:22:19(CET) Log: Completed 12: Check thread. Status 1, 5 pages checked
2020/01/27-16:22:19(CET) Log: Completed 5: Check thread. Status 1, 5 pages checked
2020/01/27-16:22:19(CET) Log: Joining thread 6
2020/01/27-16:22:19(CET) Log: Thread 11 running on core ID 2 mask F (F).
2020/01/27-16:22:19(CET) Log: Starting Check thread 11
2020/01/27-16:22:19(CET) Log: Completed 11: Check thread. Status 1, 0 pages checked
2020/01/27-16:22:19(CET) Log: Thread 10 running on core ID 0 mask F (F).
2020/01/27-16:22:20(CET) Log: Starting Check thread 10
2020/01/27-16:22:20(CET) Log: Completed 10: Check thread. Status 1, 0 pages checked
2020/01/27-16:22:19(CET) Log: Thread 7 running on core ID 2 mask F (F).
2020/01/27-16:22:19(CET) Log: Completed 6: Check thread. Status 1, 5 pages checked
2020/01/27-16:22:20(CET) Log: Starting Check thread 7
2020/01/27-16:22:20(CET) Log: Completed 7: Check thread. Status 1, 0 pages checked
2020/01/27-16:22:20(CET) Log: Joining thread 7
2020/01/27-16:22:20(CET) Log: Joining thread 8
2020/01/27-16:22:20(CET) Log: Joining thread 9
2020/01/27-16:22:20(CET) Log: Joining thread 10
2020/01/27-16:22:20(CET) Log: Joining thread 11
2020/01/27-16:22:20(CET) Log: Joining thread 12
2020/01/27-16:22:20(CET) Log: Join all outstanding threads
2020/01/27-16:22:20(CET) Log: Reaping thread status 1
2020/01/27-16:22:20(CET) Log: Thread 1 found 0 hardware incidents
2020/01/27-16:22:20(CET) Log: Reaping thread status 2
2020/01/27-16:22:20(CET) Log: Thread 2 found 0 hardware incidents
2020/01/27-16:22:20(CET) Log: Reaping thread status 3
2020/01/27-16:22:20(CET) Log: Thread 3 found 0 hardware incidents
2020/01/27-16:22:20(CET) Log: Reaping thread status 4
2020/01/27-16:22:20(CET) Log: Thread 4 found 0 hardware incidents
2020/01/27-16:22:20(CET) Log: Reaping thread status 0
2020/01/27-16:22:20(CET) Log: Thread 0 found 0 hardware incidents
2020/01/27-16:22:20(CET) Log: Reaping thread status 5
2020/01/27-16:22:20(CET) Log: Thread 5 found 0 hardware incidents
2020/01/27-16:22:20(CET) Log: Reaping thread status 6
2020/01/27-16:22:20(CET) Log: Thread 6 found 0 hardware incidents
2020/01/27-16:22:20(CET) Log: Reaping thread status 7
2020/01/27-16:22:20(CET) Log: Thread 7 found 0 hardware incidents
2020/01/27-16:22:20(CET) Log: Reaping thread status 8
2020/01/27-16:22:20(CET) Log: Thread 8 found 0 hardware incidents
2020/01/27-16:22:20(CET) Log: Reaping thread status 9
2020/01/27-16:22:20(CET) Log: Thread 9 found 0 hardware incidents
2020/01/27-16:22:20(CET) Log: Reaping thread status 10
2020/01/27-16:22:20(CET) Log: Thread 10 found 0 hardware incidents
2020/01/27-16:22:20(CET) Log: Reaping thread status 11
2020/01/27-16:22:20(CET) Log: Thread 11 found 0 hardware incidents
2020/01/27-16:22:20(CET) Log: Reaping thread status 12
2020/01/27-16:22:20(CET) Log: Thread 12 found 0 hardware incidents
2020/01/27-16:22:20(CET) Stats: Found 0 hardware incidents
2020/01/27-16:22:20(CET) Stats: Completed: 29024.00M in 5.00s 5803.50MB/s, with 0 hardware incidents, 0 errors
2020/01/27-16:22:20(CET) Stats: Memory Copy: 29024.00M at 5804.33MB/s
2020/01/27-16:22:20(CET) Stats: File Copy: 0.00M at 0.00MB/s
2020/01/27-16:22:20(CET) Stats: Net Copy: 0.00M at 0.00MB/s
2020/01/27-16:22:20(CET) Stats: Data Check: 0.00M at 0.00MB/s
2020/01/27-16:22:20(CET) Stats: Invert Data: 0.00M at 0.00MB/s
2020/01/27-16:22:20(CET) Stats: Disk: 0.00M at 0.00MB/s
2020/01/27-16:22:20(CET) Log: Deleting worker threads
2020/01/27-16:22:20(CET) Log: Deleting thread 1
2020/01/27-16:22:20(CET) Log: Deleting thread 2
2020/01/27-16:22:20(CET) Log: Deleting thread 3
2020/01/27-16:22:20(CET) Log: Deleting thread 4
2020/01/27-16:22:20(CET) Log: Deleting thread 0
2020/01/27-16:22:20(CET) Log: Destroying WorkerStatus objects
2020/01/27-16:22:20(CET) Log: Uninstalling signal handlers
2020/01/27-16:22:20(CET)
2020/01/27-16:22:20(CET) Status: PASS - please verify no corrected errors
2020/01/27-16:22:20(CET)
</pre>
4,650
edits