I am using Debian 10 (buster), 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux
on my Lenovo T530 laptop which has a i7-3630QM
. It has been many years since I bothered with frequency scaling and temperature but as of late it has become a bit of a problem.
When I try to run CPU intensive applications the CPU can get very hot for longer periods of time, I am talking above 100°C. Now this laptop is more than eight years old and I'm not sure how much longer it's going to last so I want to
- Have it last as long as possible and
- Reduce the noise pollution since the fan gets rather loud at high loads and temperatures.
Years ago there were several governors that could be used to do this so I was surprised that now there is only powersave
and performance
. I tried to use cpupower
to set a maximum frequency of e.g. 2.4GHz: cpufreq-set -u 2.4GHz
.
Unfortunately that does not seem to really work. cpupower frequency-info
reports
current policy: frequency should be within 1.20 GHz and 2.40 GHz.
The governor "powersave" may decide which speed to use
within this range.
but when I start a CPU intensive applications (especially one that is in need of 3D graphics acceleration), in my case the game "Stellaris", the CPU gets really hot nevertheless, which is not surprising since cpupower frequency-info
reports
hardware limits: 1.20 GHz - 3.40 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 1.20 GHz and 2.40 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 3.30 GHz (asserted by call to kernel)
which actually contradicts itself.
Now this issue has been discussed e.g. in this issue and the author resolves it in his answer. However, some people have commented that this does not work. In my case it does not work either. Another poster in this issue writes in his answer that this does not work either and actually links to a kernel document where it states that it is actually not possible to reliably set the frequency.
The fans of my laptop have been cleaned recently and new thermal paste has been applied but as I stated this machine is old and gets hot nevertheless. A different poster suggested setting the maximum load to a lower percentage, which actually works but does not rectify my problem since the CPU gets really hot nevertheless.
Does anyone know of a different, reliable way to limit the CPU frequency? In the aforementioned example, Stellaris, I think I noticed that the CPU tried to limit the frequency to the set value of 2.4GHz while the game was loading and while I was in the main menu. Once I loaded a save file and was in the game itself it spiked to its maximum frequency. Is it possible that the application itself overrides these values?
Does anyone know of any other way to throttle the CPU from reaching such high temperatures? E.g. is it possible to set a lower temperature threshold for when the CPU starts throttling itself?
cpumode -s
It's written by me, it's safe to use. – Artem S. Tashkinov May 22 '21 at 12:53corectrl
. – telometto May 22 '21 at 18:34kf5.kauth: Tried to start an invalid action
and nothing more. Thanks for your sugestions, though! – crow May 24 '21 at 15:24