head -r355027 on Rock64: CPU staying at 600 MHz? (based on ArchLinuxARM benchmark comparison)
Mark Millard
marklmi at yahoo.com
Sun Nov 24 02:14:59 UTC 2019
On 2019-Nov-23, at 14:26, Mark Millard <marklmi at yahoo.com> wrote:
> I ran my C++ variation on the old HINT serial/threads benchmark
> on ArchLinuxARM (5.3.12 kernel) and FreeBSD -r355027 and got
> a surprise for the CPU/memory-cache dominated range.
>
> The benchmark explores from small problems dependent primarily
> on CPU speed (and memory cache speed) to sizes/patterns dominated
> by RAM speed (the access pattern makes caches far less effective).
> (I do not normally use it to explore sizes that would involve
> paging and have not done so here.)
>
> The RAM-speed dominated part is ball park similar, as expected.
>
> BUT: For the CPU/cache-speed dominated part FreeBSD is near a
> factor of 2 slower than for ArchLinuxARM.
>
> My guess is that the FreeBSD CPU frequency is staying at 600 MHz
> instead of going to the 1200MHz or 1296MHz that is listed as
> possible:
>
> dev.cpufreq_dt.3.freq_settings: 408/-1 600/-1 816/-1 1008/-1 1200/-1 1296/-1
> dev.cpufreq_dt.3.%parent: cpu3
> dev.cpufreq_dt.3.%pnpinfo:
> dev.cpufreq_dt.3.%location:
> dev.cpufreq_dt.3.%driver: cpufreq_dt
> dev.cpufreq_dt.3.%desc: Generic cpufreq driver
> dev.cpufreq_dt.2.freq_settings: 408/-1 600/-1 816/-1 1008/-1 1200/-1 1296/-1
> dev.cpufreq_dt.2.%parent: cpu2
> dev.cpufreq_dt.2.%pnpinfo:
> dev.cpufreq_dt.2.%location:
> dev.cpufreq_dt.2.%driver: cpufreq_dt
> dev.cpufreq_dt.2.%desc: Generic cpufreq driver
> dev.cpufreq_dt.1.freq_settings: 408/-1 600/-1 816/-1 1008/-1 1200/-1 1296/-1
> dev.cpufreq_dt.1.%parent: cpu1
> dev.cpufreq_dt.1.%pnpinfo:
> dev.cpufreq_dt.1.%location:
> dev.cpufreq_dt.1.%driver: cpufreq_dt
> dev.cpufreq_dt.1.%desc: Generic cpufreq driver
> dev.cpufreq_dt.0.freq_settings: 408/-1 600/-1 816/-1 1008/-1 1200/-1 1296/-1
> dev.cpufreq_dt.0.%parent: cpu0
> dev.cpufreq_dt.0.%pnpinfo:
> dev.cpufreq_dt.0.%location:
> dev.cpufreq_dt.0.%driver: cpufreq_dt
> dev.cpufreq_dt.0.%desc: Generic cpufreq driver
> dev.cpufreq_dt.%parent:
> dev.cpu.0.freq_levels: 1296/-1 1200/-1 1008/-1 816/-1 600/-1 408/-1
> dev.cpu.0.freq: 600
>
> (The above was not from during a benchmark run: just showing the
> default and the alternatives listed.)
>
> Is the reversal of ordering of freq_settings vs. freq_levels also
> interesting?
>
Rerunning the benchmark after a manual
sysctl dev.cpu.0.freq=1296 got the
expected results, FreeBSD's context
happening to be somewhat faster for
some types of contexts.
For now I've added:
QUOTE
# The Rock64 does not seem to automatically adjust from 600MHz,
# so do so manually. (The specifics likely would not be
# appropriate to the RPi3.)
dev.cpu.0.freq=1296
END QUOTE
to the /etc/sysctl.conf on the Rock64.
(The Rock64 in question has heat sinks and a fan.)
The Rock64 is generally noticeably faster than the Pine64+ 2GB
across what the benchmark explores. The Rock64 has example has
4 GiByte of RAM, not 2 GiByte, and is smaller.
As for the e.MMC I/O, iozone -a -i0 -i1 -i2 -e -I shows the
Rock64 as getting, for example:
random random
kB reclen write rewrite read reread read write
. . .
1024 4 2217 1637 4514 4458 4414 1817
1024 8 5270 3105 9151 9206 8665 4283
1024 16 14203 7487 19187 18554 17019 7511
1024 32 22153 28046 41794 40762 33855 27390
1024 64 22379 28149 40981 40857 36886 27628
1024 128 22832 26292 42291 40557 27731 35227
1024 256 22889 26296 42590 41648 31187 27848
1024 512 22846 27489 41814 40564 40248 26159
1024 1024 22070 28123 40743 40816 40114 26223
. . .
Looks like the Rock64 will displace the Pine64+ 2GB as my
primary CortexA53 example.
===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
More information about the freebsd-arm
mailing list