For compatible processors, by default Ubuntu now uses the intel_pstate CPU frequency governor, whereas it used to use the acpi_cpufreq CPU frequncy governor.
The intel_pstate drive does not have ondemand
mode, but its powersave
mode should be the equivalent of the acpi_cpufreq ondemand
mode. Your system should default to powersave
mode about 1 minute after boot, and via the /etc/init.d/ondemand
script. In the recent past, that script was not properly dealing with the intel_pstate case, but it should have been fixed for all use cases by now. Reference.
To answer your actual questions:
A.) The master min and max frequencies are stored as percentage numbers.
cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
The interpretation of those numbers is a function of the turbo enabled or disabled flag, and in my opinion there is an inconsistency in the definitions.
cat /sys/devices/system/cpu/intel_pstate/no_turbo
Example from my i7-2600K: min freq 1.6GHz; max non-turbo 3.4GHz; max turbo 3.8GHz.
Therefore as percentages:
Turbo off: max = 100%, min = 47.1%
Turbo on: max = 100%, min = 42.1%
$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0
$ cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
42
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100
and
$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
1
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100
$ cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
42
B.) The intel-pstate powersave
mode should be the equivalent of the acpi-cpufreq ondemand
mode.
C.) There is something wrong, resulting in your grief. There have been other reports similar to yours. Myself, I do not know the root issue, but there have also been reports of incompatibilities with cpufrequtils. I do not know if they are true or not, as I don't use any such things. I only use the most primitive level of controls with the intel-pstate driver.
Best Answer
Edit May 13, 2019 - simple bash GUI script
I wrote this simple bash GUI script to change minimum and maximum frequencies:
Original Answer
Discover your Min/Max/Current Frequencies
To discover your frequencies copy and paste this command into your terminal (without the
$
or#
prompts):The minimum frequency, current frequency and maximum frequency is listed for each CPU. In my case it is 8 CPUs, in your case it will be 4 CPUs (dual core x 2 threads per core).
Values are listed in MHz with three decimals. So CPU 0 showing:
How to reset Max Frequency
To change the maximum frequency lower (you can't change it higher) use this command to change it from 2200 Mhz to 1700 Mhz: