intel_pstate driver not being loaded when added to grub file
I have a
Processor Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz
Memory 16305MB (2531MB used)
Machine Type Laptop
Operating System Ubuntu 20.04.3 LTS
In my /etc/default/grub file I have the line
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=enable"
I did a sudo update-grub after the changes but when I do a cpupower frequency-info or a cpufreq-info --driver it says the driver used is intel_cpufreq
rt@sys76:~$ cpufreq-info --driver
intel_cpufreq
rt@sys76:~$ cpupower frequency-info
analyzing CPU 0:
driver: intel_cpufreq
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 20.0 us
hardware limits: 800 MHz - 3.40 GHz
available cpufreq governors: conservative ondemand userspace powersave performance schedutil
current policy: frequency should be within 1.70 GHz and 3.40 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 798 MHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes
rt@sys76:~$
How can I get the cpufreq-info --driver to use intel_pstate driver?
Your processor, i7-4700MQ, predates HWP (HardWare Pstate) control. The migration path as determined by the kernel power management group, for these Intel processors is to default towards the intel_pstate CPU frequency scaling driver being in passive mode using the schedutil scaling governor. To that end this commit was done:
commit 33aa46f252c703e42c81a76696cd0c240f2281e4 Author: Rafael J. Wysocki [email protected] Date: Wed Mar 25 15:03:35 2020 +0100
cpufreq: intel_pstate: Use passive mode by default without HWP After recent changes allowing scale-invariant utilization to be used on x86, the schedutil governor on top of intel_pstate in the passive mode should be on par with (or better than) the active mode "powersave" algorithm of intel_pstate on systems in which hardware-managed P-states (HWP) are not used, so it should not be necessary to use the internal scaling algorithm in those cases. Accordingly, modify intel_pstate to start in the passive mode by default if the processor at hand does not support HWP of if the driver is requested to avoid using HWP through the kernel command line. Among other things, that will allow utilization clamps and the support for RT/DL tasks in the schedutil governor to be utilized on systems in which intel_pstate is used.
You are actually using the intel_pstate CPU frequency scaling driver, however it is in passive mode. Try this:
echo active | sudo tee /sys/devices/system/cpu/intel_pstate/status
and then check:
cat /sys/devices/system/cpu/intel_pstate/status
If that works as expected then change your grub line to:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=active"
and see if it boots the way you want.
Note that the CPU Frequency scaling driver intel_cpufreq
is just the intel_pstate
driver in passive mode.
Example:
doug@s19:~/temp$ grep . /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver:intel_cpufreq
/sys/devices/system/cpu/cpu10/cpufreq/scaling_driver:intel_cpufreq
/sys/devices/system/cpu/cpu11/cpufreq/scaling_driver:intel_cpufreq
/sys/devices/system/cpu/cpu1/cpufreq/scaling_driver:intel_cpufreq
/sys/devices/system/cpu/cpu2/cpufreq/scaling_driver:intel_cpufreq
/sys/devices/system/cpu/cpu3/cpufreq/scaling_driver:intel_cpufreq
/sys/devices/system/cpu/cpu4/cpufreq/scaling_driver:intel_cpufreq
/sys/devices/system/cpu/cpu5/cpufreq/scaling_driver:intel_cpufreq
/sys/devices/system/cpu/cpu6/cpufreq/scaling_driver:intel_cpufreq
/sys/devices/system/cpu/cpu7/cpufreq/scaling_driver:intel_cpufreq
/sys/devices/system/cpu/cpu8/cpufreq/scaling_driver:intel_cpufreq
/sys/devices/system/cpu/cpu9/cpufreq/scaling_driver:intel_cpufreq
doug@s19:~/temp$ cat /sys/devices/system/cpu/intel_pstate/status
passive
doug@s19:~/temp$ echo active | sudo tee /sys/devices/system/cpu/intel_pstate/status
active
doug@s19:~/temp$ grep . /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu10/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu11/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu1/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu2/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu3/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu4/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu5/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu6/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu7/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu8/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu9/cpufreq/scaling_driver:intel_pstate