Overclocking Pi 3
-
@bazmonkey Interesting info on the governor and thermal throttling there - looks like I need to do some more research!
[Edit] can you point me in the direction of more information on this? I've only seen details on the governor, but not the mechanism of thermal throttling.
-
@RetroResolution said in Overclocking Pi 3:
[Edit] can you point me in the direction of more information on this? I've only seen details on the governor, but not the mechanism of thermal throttling.
It's basically like this: the cpufreq governor is what the kernel is using to decide what CPU frequency to ask for (possibly based on load). Underneath that is the firmware, which truly decides what CPU frequency you get. Besides taking into account what the kernel would like, it internally forces the CPU to the min frequency (600MHz on a Pi 3) and disables any overvoltage if the temp goes over some value.
This is a good detailed read on how the governors actually work. Note: no mention of temperature at all.
The firmware is closed-source. You can tell, though, that it's not working by adjusting the governor. One of my poor fellas being forced to throttle:
pi@funkatron:/sys/devices/system/cpu/cpu0/cpufreq $ while read file; do echo "$file - $(sudo cat $file)"; done <<< "$(ls)"; vcgencmd measure_temp
affected_cpus - 0 1 2 3
cpuinfo_cur_freq - 1300000
cpuinfo_max_freq - 1300000
cpuinfo_min_freq - 600000
cpuinfo_transition_latency - 355000
related_cpus - 0 1 2 3
scaling_available_frequencies - 600000 1300000
scaling_available_governors - conservative ondemand userspace powersave performance
scaling_cur_freq - 1300000
scaling_driver - BCM2835 CPUFreq
scaling_governor - ondemand
scaling_max_freq - 1300000
scaling_min_freq - 600000
scaling_setspeed - <unsupported>
temp=84.9'Cpi@funkatron:/sys/devices/system/cpu/cpu0/cpufreq $ while read file; do echo "$file - $(sudo cat $file)"; done <<< "$(ls)"; vcgencmd measure_temp
affected_cpus - 0 1 2 3
cpuinfo_cur_freq - 600000
cpuinfo_max_freq - 1300000
cpuinfo_min_freq - 600000
cpuinfo_transition_latency - 355000
related_cpus - 0 1 2 3
scaling_available_frequencies - 600000 1300000
scaling_available_governors - conservative ondemand userspace powersave performance
scaling_cur_freq - 1300000
scaling_driver - BCM2835 CPUFreq
scaling_governor - ondemand
scaling_max_freq - 1300000
scaling_min_freq - 600000
scaling_setspeed - <unsupported>
temp=84.4'CThe frequency isn't being adjusted by something like setting the governor to powersave, nor is it forcing down the maximum frequency of the ondemand governor. The "scaling_driver" is the governor's driver for actually adjusting the CPU's frequency: it's not what's driving the governor. The kernel sees that the frequency is throttled, but isn't privy to why. So... it's gotta be in the firmware somewhere.
-
@bazmonkey that's excellent, thanks for the detailed insight, I really appreciate it. In many ways the Pi is the gift that keeps on giving - complex enough to do amazing things, but logical enough that it's possible to learn how that complexity is manifested.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.