Hi
everyone,
I'm
currently measuring the memory bandwidth of the Genode Armv8
Linux Virtualization by running tinymembench[1] and lmbench's
memory bandwidth[2]. On the NXP I.mx8 the results of both
benchmarks showed a degradation of roughly 25 to 35 percent
(depending on the exact benchmark) compared to native Linux.
I
tried to ensure comparability with the native setup by disabling
in native Linux all but one core and fixing this core's
frequency to 1 GHz (which should be the frequency Genode uses).
Both setups use the same Kernel version.
To
improve the performance I played with the register values
controlling caching (clear HCR_EL2.CD - enable S2 Data
cacheability; VTCR_EL2.Irgn0 and VTCR_EL2.Orgn0 respectively set
to b11 - set Normal memory, Inner/Outer Write-Back Read-allocate
No Write-Allocate Cachable). However, this had no significant
effect.
What's
your opinion on that? Based on your experience with
virtualization, do these values surprise you or is this an
expected degradation?
All
the best,
Chris