CPU frequency never rises above 600 MHz under load, even with arm_freq = 1200
Copying over from GitHub issue #59, opened on 2019.04.19 by genpfault:
Using the SDL2 build as a benchmark I'm seeing the Buster kernel take ~2x as long to compile vs. the current RaspiOS kernel:
Buster:
$ time nice make -j 4
real 7m44.169s
user 27m46.941s
sys 2m17.021s
Raspbian:
$ time nice make -j 4
real 3m14.458s
user 11m50.851s
sys 0m39.507s
SDL build procedure:
sudo apt install cmake git-core libgbm-dev
sudo apt build-dep libsdl2
git clone https://github.com/SDL-mirror/SDL.git
cd SDL
git checkout 54cddf8952802fa94f359d21c6da46979e10ce0
mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release
time nice make -j 4
Buster system info:
vcgencmd built from https://github.com/raspberrypi/userland
$ uname -a
Linux rpi3 4.19.0-4-arm64 #1 SMP Debian 4.19.28-2 (2019-03-15) aarch64 GNU/Linux
$ cat /boot/firmware/cmdline.txt
console=tty0 console=ttyS1,115200 root=LABEL=RASPIROOT rw elevator=deadline fsck.repair=yes net.ifnames=0 cma=256M rootwait
$ cat /boot/firmware/config.txt | grep -v '#'
arm_control=0x200
enable_uart=1
kernel=vmlinuz-4.19.0-4-arm64
initramfs initrd.img-4.19.0-4-arm64
$ vcgencmd get_config int | grep -E 'arm_freq|core_freq|gpu_freq|sdram_freq'
arm_freq=1200
core_freq=250
gpu_freq=300
sdram_freq=450
$ vcgencmd get_mem arm && vcgencmd get_mem gpu
arm=948M
gpu=76M
# idle
$ vcgencmd measure_clock arm && vcgencmd measure_temp
frequency(45)=600000000
temp=48.3'C
# about 75% through the 'make'
$ vcgencmd measure_clock arm && vcgencmd measure_temp
frequency(45)=600000000
temp=64.5'C
RaspiOS system info:
# version/source info:
https://www.raspberrypi.org/downloads/raspbian/
https://downloads.raspberrypi.org/raspbian_lite_latest
Version: April 2019
Release date: 2019-04-08
Kernel version: 4.14
SHA-256: 03ec326d45c6eb6cef848cf9a1d6c7315a9410b49a276a6b28e67a40b11fdfcf
$ uname -a
Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux
$ cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=0db4cca0-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
$ cat /boot/config.txt | grep -v '#'
dtparam=audio=on
$ vcgencmd get_config int | grep -E 'arm_freq|core_freq|gpu_freq|sdram_freq'
arm_freq=1200
core_freq=400
gpu_freq=300
sdram_freq=450
$ vcgencmd get_mem arm && vcgencmd get_mem gpu
arm=948M
gpu=76M
# idle
$ vcgencmd measure_clock arm && vcgencmd measure_temp
frequency(45)=600000000
temp=46.2'C
# about 75% through the 'make'
$ vcgencmd measure_clock arm && vcgencmd measure_temp
frequency(45)=1200000000
temp=76.8'C
For Buster the firmware reports the arm_freq = 1200
config but the actual measure_clock arm
frequency never goes above 600 MHz, even under load.
Edited by Diederik de Haas