6

When I do something that spikes the CPU, it seems to throttle the CPU to prevent overheating. This is fine. However when I stop, finish or close the program or process that is pushing the CPU, it seems though as if the throttling never lifts.

My processor is capped at 800Mhz and will not go above.

I have tried:

  1. re-plugging the power cable. It changed nothing.
  2. Restarting the computer. This solves the problem but I do not want to have to do this every time.

Naturally very few applications and programs actually cause this to happen. But when I play games, this happens.

My computer is an Asus UX550VE with an i7700, 16gb ram and a 1050ti and I am running Ubuntu 16.04 LTS

What causes this and how can i remedy it? It's getting annoying to have to restart every time this happens.

3
  • Are you using TLP, cpufreq-utils or powerclamp? Apr 29, 2019 at 21:56
  • @WinEunuuchs2Unix I had cpufrequtils before but removed it some time ago because it didn't seem to work. Using apt purge returns the message that there are no such packages.
    – DannyBoy
    May 2, 2019 at 6:45
  • The "Intel Way" is to use powerclamp to throttle CPUs when they overheat: askubuntu.com/questions/391474/stop-cpu-from-overheating/… It does reduce max speed to lowest setting but it should restore when CPUs cool down. See my answer below for manually restoring max CPU speed after CPUs cool down. May 2, 2019 at 10:55

5 Answers 5

4
+50

The following commands are used in the .gif below:

time sudo updatedb # See 8 CPUs run at 3.5 GHz. Then set 800 MHz Below
echo 800000 | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq
time sudo updatedb # See 8 CPUs run at 800 Mhz. Then set 3.5 GHz Below
echo 3500000 | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq
time sudo updatedb # Time is 3.5 seconds instead of 13.8 seconds

cpu 800 MHz demo.gif

To make a long visual short first find out maximum CPU speed before it is throttled:

rick@alien:~$ cd /sys/devices/system/cpu/cpu0/cpufreq/
───────────────────────────────────────────────────────────────────────────────────────────
rick@alien:/sys/devices/system/cpu/cpu0/cpufreq$ grep -r .
energy_performance_available_preferences:default performance balance_performance balance_power power 
scaling_min_freq:800000
scaling_available_governors:performance powersave
scaling_governor:performance
cpuinfo_max_freq:3500000
related_cpus:0
scaling_cur_freq:3218768
scaling_setspeed:<unsupported>
affected_cpus:0
scaling_max_freq:3500000
cpuinfo_transition_latency:0
energy_performance_preference:performance
scaling_driver:intel_pstate
cpuinfo_min_freq:800000

Notice the line: cpuinfo_max_freq:3500000 above. 3,500.000 MHz is my processors max speed. So to restore maximum speed I use:

echo 3500000 | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq

Most people do it one by one and some say it's not possible to do them all at once but I've never had a problem doing all 8 CPUs at once. If you want to do one at a time you can use:

echo 3500000 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 3500000 | sudo tee /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
         ( etc., etc., etc. )
echo 3500000 | sudo tee /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq

This will restore your CPUs to maximum speed but we still need to find out what package is setting your CPUs to 800 MHz.

4
  • Hey @WinEunuuchs2Unix, what tool did you use to display the stats on the right of the gif ? Dec 9, 2020 at 3:07
  • 1
    @PhilippeDelteil It's called conky which allows you to design any type of system monitor you want based on your own machine / software. Dec 9, 2020 at 12:50
  • @WinEunuuchs2Unix Can you share your conky config file?
    – Rick T
    Aug 31, 2021 at 1:36
  • @RickT It's already been posted here. But there are subtly different gifs here and here. Indeed there are different versions all over Ask Ubuntu Aug 31, 2021 at 2:15
2

We had this issue at my last job (Windows), every so 6 months or so we'd take all of our laptops down the the air compressor and blow out the fans. The Dell model or the particular Intel CPU we all had seemed to be prone to this. It is caused by overheating. We never could figure out why the throttling got stuck but keeping it clean regularly seemed to prevent it. Once someones laptop started acting up again, we would all go use the compressor knowing they would all start acting up soon.

If cleaning out the fans does not help, make sure the fan is running good and that its not obstructed in any way. It's possible the thermal paste is not doing its job, or the fan/heat sync are not tight with the CPU.

1
  • Well I can with 100% confidence say that my computer is clean and the fans are unobstructed. I like the trail that this answer leaves. I shall research more into overheating and clocks not returning. If this leads to a solution, I'll accept your answer!
    – DannyBoy
    Apr 29, 2019 at 10:05
2

I had this with a DELL too, turned out one of those yellow pieces of plastic they use on the motherboard to shield certain things got between the CPU and the heatsink.It never went past 800Mhz. If you are not afraid, remove the heatsink and remove all the paste on the CPU and heatsink. Then apply half a drop of new paste and spread it evenly and tighten the heatsink again. Test and see.(there may have been something stopping the heat transfer.)

1

Does it still cap at 800 MHz running only on battery, without the charger? My roommate had a similar problem (on Windows), where connected to the charger the CPU was around 800 MHz and, without it, it ran fine. It was a faulty charger that didn't give the right voltage.

2
  • Yes, I tried disconnecting and re-connecting the power brick. Unplugged it remained at 800 Mhz and after reconnecting it, it stayed at 800 Mhz.
    – DannyBoy
    Apr 15, 2019 at 6:25
  • I have the opposite problem. When I disconnect my charger, the cpu freq temporarily drops to about 600 MHz, then slowly goes back to 800...
    – Cerin
    Apr 18, 2023 at 18:09
1

You should pay attention to the laptop's temperature. Use lm-sensors:

sudo apt-get install lm-sensors

Then, starts the detection of your hardware sensors:

sudo sensors-detect

Verify that it works:

sensors

It should display something like:

coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +46.0C  (high = +76.0C, crit = +100.0C)

coretemp-isa-0001
Adapter: ISA adapter
Core 1:      +44.0C  (high = +76.0C, crit = +100.0C)

I'm pretty sure it's a throttling problem. You need to use this piece of software, and increase the temperature at which the throttling is starting to downclock your cpu.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .