I am trying to turn off CPU throttling on my computer but haven't been successful. Could anyone help me to figure out the problem?

My desktop has Intel Core i7-7700 3.60 GHz on board and is installed Ubuntu 16.04 LTS kernel 4.4.0-83-generic. My step are as followed:

  1. Disabling SpeedStep option in BIOS configuration to prevent the CPU from automatically reducing clock

    What is Intel SpeedStep

    Bios-SpeedStep disable

  2. Changing the grup file to disable intel_pstate drive and ACPI

    Disable intel_pstate drive

    gksu gedit /etc/default/grub
    # Find the line GRUB_CMDLINE_LINUX_DEFAULT="splash quiet"
    # Append this line GRUB_CMDLINE_LINUX_DEFAULT="splash quiet acpi=off intel_pstate=disable"
    sudo update-grub
    sudo reboot
  3. Changing the CPU frequency governor from powersave to performance to have all cpu operating at their maximum clock rate.

    Switching to performance governor

    sudo apt-get install linux-tools-common linux-tools-4.4.0-83-generic
    sudo cpupower frequency-set -g performance
  4. Manually set clock rates of my 8 cpu cores to maximum (4200 MHz)

    cd /sys/devices/system/cpu/cpu<X>/cpufreq
    cp cpuinfo_max_freq scaling_max_freq

    Where X is the index of cores {0, 1, ..., 7}

  5. Then I did several tricks as suggested by Filipe FB in Disabling CPU Throttling Ubuntu.

    Sadly, after performing all of the above steps, I still could not config cores clock to a fix value. Here are

    cat /proc/cpuinfo | grep MHz   # showed me
    cpu MHz     : 3473.578
    cpu MHz     : 3600.140
    cpu MHz     : 3600.140
    cpu MHz     : 3036.515
    cpu MHz     : 2613.656
    cpu MHz     : 3120.046
    cpu MHz     : 3425.203
    cpu MHz     : 3600.000

The worst thing is, when I check if the intel_pstate drive has been disabled with this command

cat /sys/devices/system/cpu/cpu<X>/cpufreq/scaling_driver

The annoying string intel_pstate displays all the time, which indicates that it is still enabled. I have ran out of solutions, is there any missing step.

Thank in advance.

  • Even when using the performance mode governor, the CPU can scale back the CPU frequency by itself under conditions of no load. If you are still showing the intel_pstate CPU frequency driver, then you made a mistake trying to disable it. Oct 31, 2017 at 14:03
  • Do you understand the reason for CPU throttling? It's to prevent unnecessary power usage, and to prevent cooling fans from running wildly, and to prevent the CPU's from overheating. Best you put everything back the way you found it, and be happy. Also, isn't there a better choice than acpi=off for your computer?
    – heynnema
    Oct 31, 2017 at 15:31
  • @heynnema I have reason for doing that, I need to install ATLAS on my computer and disabling throttling is the first requirement
    – Dan Do
    Nov 1, 2017 at 10:29
  • @DougSmythies Could you point it out, please?
    – Dan Do
    Nov 1, 2017 at 10:29
  • Please edit your question adding your actual grub contents, not the comment saying what you should do. Oh, the ATLAS problem, which is really their fault. Nov 1, 2017 at 14:04

5 Answers 5


You are probably being bit by the thermald.

Here is a copy of a post I made on the issue concerning linux Mint 18:

"If you have a high performance and/or gaming PC you really need to set the default temperature used by Thermal Daemon to something higher than 55 °C (131 °F). The example temperature in the config file is 75°C (167 °F), but some brilliant soul decided that the default for all PCs should be one temp of 55 °C. When processing videos with Handbrake I can hit 89 °C with all 8 threads at 100%. When you reach 55°C thermald starts throttling your PC which means it is going to take that much longer to get anything done. The hotter you get the more aggressive the method it uses to slow you down. I have had it literally do a hard lock up of my desktop it became so aggressive. The config file is in /etc/thermald/thermal-conf.xml."

"Look for the first line. Change 55000 (55 °C) to something higher like 75000 (75 °C). 75 °C is the default in the example section of the config file. I personally set it to 90000 (90 °C). In all of my days as a computer user and repairman I have never seen a cpu be damaged by heat. Basically at 100 °C your cpu locks up (in Windows you get a blue screen). Unless your overclocking I just don't see the need for the thermald at all. However, uninstalling it doesn't fix the issue as your kernel appears to have a built in module to do the same thing. Raising the default temp is the best course if you want your PC to operate at its best performance."

"I upgraded my laptop cpu from an i7-4810mq to a i7-4940mx extreme edition cpu which operates at 3.1ghz normal and 3.8ghz quad turbo. Before changing the default temp my machine would turbo to 3.2ghz and 3.6ghz tops. After changing the default temp it now maxes out at the top turbo of 3.8ghz."


I would like to add an update to my post on throttling cpus. Instead of changing the temp that thermald throttles at I now do the following...

Remove thermald:

sudo apt purge thermald

According to the makers for thermald is was designed for cell phones which have NO cooling system at all. It was not made to run on laptops or desktops. On a laptop or desktop it will hurt performance. For me it caused even up to a full hard lockup.

Blacklist throttling technologies - add the 3 lines to the file:

sudo nano /etc/modprobe.d/blacklist-throttling.conf

blacklist intel_powerclamp
blacklist intel_rapl
blacklist intel_rapl_perf

save and exit nano with ctrl+o and then ctrl+x.

Update all your ramdisks for all kernels:

sudo update-initramfs -u -k all

Test: reboot and make sure thermald is not running and none of the above intel throttling modules are running either.

lsmod | grep -i intel

Results: For the very time since I bought a gaming laptop and upgraded to a intel i7 4940mx I got the max speed of the laptop during heavy loads. I tested using handbrake, blender, and other heavy load software. While running i7z (sudo i7z) to view cpu speeds and turbo speeds there was no drop in speed due to throttling.

  • Does this (purging thermald) still work with 19.04? I am having the same issue regarding CPUs throttling.
    – BenjB
    Aug 4, 2019 at 22:01
  • It works fine with 18.04 (linux mint 19) also. I have switched to a full amd pc so only need to remove thermald and nothing else. Aug 6, 2019 at 10:16
  • thanks. I was asking because I am having a similar issue: see here but removing themald did not solve the issue.
    – BenjB
    Aug 6, 2019 at 18:34
  • are you intel or amd? Aug 9, 2019 at 0:55
  • I am on AMD @Roger
    – BenjB
    Aug 9, 2019 at 2:53

Your system is using intel_pstate driver and, instead of disabling it, you might want to take advantage of it.

Setting this driver's governor is very easy. To set all CPUs to maximum frequency, just use the following command:

echo 100 | sudo tee /sys/devices/system/cpu/intel_pstate/min_perf_pct

To do the opposite, and force low power on the CPUs, issue:

echo 20 | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct

Where 20 is the percentage of maximum performance you want to allow. Setting this to 10% will probably result in extremely sluggish GUI, but you can try and see.

Sources: kernel.org


I'm running Ubuntu 18.10 on a Dell XPS 13 (9365) with a CPU i7-7Y75.

Since this laptop does not have a fan, cpu throttling put my CPU almost at rest (going from 3.5 Ghz to 1.1 Ghz and sometimes 900 Mhz).

I solved it using this program:


Good luck.


Most of the time the reason for this cpu throttling is a faulty sensor called BD PROCHOT.

“BD PROCHOT" stands for bi-directional prochot. PROCHOT stands for processor hot. This signal is what initiates thermal throttling so the CPU can slow down and keep from overheating.

The cause of the signal activation usually are aging power adapter, aging battery, or bad sensor on matherboard. Each of cause can activate BD PROCHOT.

The register address of BD PROCHOT signal bit on CPU is 0x1FC. The bit[0] is the signal sign. So on Linux, the solution is use msr-tool to write the bit[0] to 0.


sudo apt install msr-tools
sudo modprobe msr

clear the bit[0], the output bitwise and with 0xFFFFE. Write back the value:

sudo wrmsr 0x1FC value

now you can check the CPU frequency using:

lscpu | grep MHz

To auto turn off the BD PROCHOT on every boot: Write these steps in a shell script and Give permission:

chmod +x shellfile

Add the path of the script to the last line of rc.local.

sudo vim /etc/rc.local

you can find a detailed description and the necessary scripts on this Github repo and solution credit go to him.

  • The solution on the github repos is close but you should probably and with 0xFFFFFFFE not 0xFFFFE as he says. For me at least the initial setting of 0x1fc had a bit set in the sixth byte position. So a full command to clear the PROCHOT bit looks like: wrmsr 0x1fc $(printf '0x%x\n' $((0x$(rdmsr 0x1FC) & 0xFFFFFFFE))) Feb 24, 2023 at 23:09

I am running dual boot Ubuntu 18.04 LTS and Windows 10 on ThinkPad T15 with CPU i7-10510u. Surprisingly I had the same problem with CPU throttling even if this laptop is listed as Ubuntu certified hardware. As it is mentioned pre-installed Ubuntu probably contains additional software.

I finally solved it installing this program:

Thank you

You must log in to answer this question.

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