Repository navigation
Crypto performance challenge
Quentin Delhaye edited this page May 5, 2026
·
8 revisions
The main SoC on the board is a Quad-core 32-bit Qualcomm Krait 400 CPU to can go up to 2.26GHz.
To check the thermal zone in the SoC:
citro@board:~$ for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(cat $i/type)"; done
/sys/class/thermal/thermal_zone0: pm8841-thermal
/sys/class/thermal/thermal_zone1: q6-dsp-thermal
/sys/class/thermal/thermal_zone10: gpu-bottom-thermal
/sys/class/thermal/thermal_zone11: pm8941-thermal
/sys/class/thermal/thermal_zone2: modemtx-thermal
/sys/class/thermal/thermal_zone3: video-thermal
/sys/class/thermal/thermal_zone4: wlan-thermal
/sys/class/thermal/thermal_zone5: cpu0-thermal
/sys/class/thermal/thermal_zone6: cpu1-thermal
/sys/class/thermal/thermal_zone7: cpu2-thermal
/sys/class/thermal/thermal_zone8: cpu3-thermal
/sys/class/thermal/thermal_zone9: gpu-top-thermalThe main zones that will be of interest to us thus are 5 through 8, the cpu* thermal zones. For example, we can keep an eye on cpu1 by calling watch -n 0.1 "cat /sys/class/thermal/thermal_zone6/temp"
Knobs to play with:
- CPU affinity
- Find a way to disable some cores
- Use Neon instructions
- Change the frequency management policy:
/sys/module/cpufreq/parameters/default_governor
To monitor CPU frequency, first enable its tracing:
echo 1 | sudo tee /sys/kernel/tracing/events/power/cpu_frequency/enableThe default CPU governor is conservative:
citro@board:~/LKM/vault$ cat /sys/module/cpufreq/parameters/default_governor
conservative- Why don't we have a
cpufreqsubfolder in/sys/devices/system/cpu/cpu*/, even though the parameterCONFIG_CPU_FREQ=yis baked into the kernel? Without it, we don't have control over the CPU governor. - Why can't we manage which CPU is online, even though
CONFIG_HOTPLUG_CPU=yis active in the kernel? It should be in/sys/devices/system/cpu/cpu*/online, allowing us to disable some core, lowering the power dissipation, potentially increasing the frequency of the remaining cores.
→ Stuck ? Check the troubleshooting page.
→ More resources.
→ Suggest updates and new topics by submitting an issue.