Ubuntu – Cannot disable CPU Throttling on Ubuntu 16.04 LTS

cpuintel

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.

Best Answer

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."

UPDATE!!!!!!!!!!!

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.

Related Question