Currently the cores of the i.MX8MPlus module are all running at fixed 2 GHz, which contributes to the device becoming really warm/hot really fast even while idling.
Is this normal/expected behaviour?
Will there be or are there already other CPU governors available, which will allow the CPU to lower the clock to stay cooler and to conserve energy?
Hi, on Pocket there are two available governors, performance and schedutil. By default it uses schedutil which is dynamic.
My pocket sitting idle stays 1.6Ghz and when on load bumps to 2.0Ghz. I could force the maximum frequency to 1.2Ghz (or another one) by setting the upper limit, but then it won’t go beyond that when on load (see last command below).
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
1200000 1600000 1800000 2000000
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
performance schedutil
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
schedutil
$ echo 1200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
this does not seem to work. my governor was already set to schedutil but never drops sub 2 GHz even when no core has visible load. I can however set a manual frequency, which is then honored.
When I set the governor to performance it stays at 2 GHz, even if I set it back to schedutil. The available frequencies are the same as you showed.
There seems to be a problem in htop, which can display the cpu frequency. When idle there is always 2 GHz visible, until a manual maximum is set. Then this freq is visible there. I checked with
cat /sys/devices/system/cpu/cpu0/cpufreq/scalin_cur_freq
And there 1600000 is shown, which matches your idle freq.
When I create load it jumps to 2000000, which is the current max freq.
So it seems that it is a bug in htop.
Mine, when idle stays most of the time 1.6, but I can see some 1.2 or 2.0 from time to time.
Anyway, these are minutely cpu temperatures, with a one minute difference between them. First with the schedutil governor which was almost all the time at 1.6, then I forced the frequency to 1.2 and later to 2.0. As you can see there is no much difference between temperatures.
1.6 (aproximately, using a dynamic governor)
temp1: +58.0°C
temp1: +58.0°C
temp1: +58.0°C
temp1: +58.0°C
temp1: +58.0°C
temp1: +58.0°C
temp1: +58.0°C
1.2
temp1: +58.0°C
temp1: +58.0°C
temp1: +58.0°C
temp1: +58.0°C
temp1: +58.0°C
temp1: +58.0°C
temp1: +58.0°C
2.0
temp1: +58.0°C
temp1: +59.0°C
temp1: +59.0°C
temp1: +59.0°C
temp1: +59.0°C
temp1: +59.0°C
temp1: +59.0°C
EDIT: all the time Pocket was idle, not doing anything.
Maybe related to this:
My Pocket is running really hot when idling, about 73C and the battery charge is dropping very fast as well, almost an entire charge in under 2h.
The top of the lid (on the MNT logo) is also very hot to the touch, to the point where I’d say it’s unsafe and a burn hazard.
I have observed the CPU frequency with glances
for a while today with the device just sitting idle on my desk. Most of the time it seems to sit at 1.6GHz, but also jumps to 1.8 a lot.
I also see the high teperature issue with my device. 4 Minutes after boot it reaches >70ºC and does not fall below until powered off or manually set the CPU frequency to 1,2 GHz. Even then it is far from running cool at around 66ºC.
I just did a thermal check with an infrared thermometer and sadly it seems to be a burn hazard, as the top cover (around the copper logo) temperature easily reaches 56ºC.
Even with the freq capped at 1,2 GHz it sits at around 48ºC.
Maybe someone can check my results with their device.