CPU Frequency Intel pstate Driver

Hi all,

I’m running ArchLinux.

I set up my FrameWork laptop back in September, and I could have sworn that the CPU frequency scaling worked correctly and went up and down depending on what I was doing.

Now, I see that that CPU frequency is locked at 2800 MHz on 7 cores, and 1 core goes down to 900 MHz

The only work around I have found is the following:

echo passive > /sys/devices/system/cpu/intel_pstate/status
cpupower frequency-set -g ondemand

With that, my frequency drops down to 400 MHz and scales up under load.

To anyone out there with /sys/devices/system/cpu/intel_pstate/status in active

What CPU frequencies are you observing?

P.S. I have had the CPU also clock down to 200 MHz, but that is due to the displayport/USB-C sticker issue. I have removed the adapter, and also fixed the sticker since then, and the pstate driver still seems to be acting weird.

1 Like

Hey Jan,

I’m running Ubuntu 21.04, kernel version 5.11.0-40-generic. I verified that /sys/devices/system/cpu/intel_pstate/status is set to active. Shortly after a cold boot, with nothing but terminal and a resource monitor running, my clock speeds are as follows: 1.18, 1.16, 1.18, 1.25, 1.17, 1.24, 1.14, 1.15 (GHz).

My command was cpufreq-info | grep "frequency is".

Hi Jacob,

Thanks for the reply, do you mind running two more commands and including the output here?

cd /sys/devices/system/cpu/intel_pstate
for x in *; do echo $x; cat $x; echo ""; done

cd /sys/devices/system/cpu/cpufreq/policy1
for x in *; do echo $x; cat $x; echo ""; done

Small update to my own question:

I think htop and cat /proc/cpuinfo are showing incorrect information, when the pstate driver is active: intel_pstate CPU Performance Scaling Driver — The Linux Kernel documentation

The correct place to check is: cat /sys/devices/system/cpu/cpufreq/policy*/scaling_cur_freq

htop shows incorrect information, because it is not using that path: https://github.com/htop-dev/htop/pull/478

I’m able to control the scaling, and actually see the difference in power draw (acpi -V) through the following options in the policy* directories:

scaling_max_freq
scaling_min_freq
energy_performance_preference
scaling_available_governors

Woops, didn’t see these posts. I should’ve set this to “watching” to get notifications.

Sounds like you’ve made progress, but just in case, here’s what I get:

hwp_dynamic_boost
0

max_perf_pct
100

min_perf_pct
8

no_turbo
0

num_pstates
44

status
active

turbo_pct
44

Second part:

affected_cpus
1

base_frequency
2800000

cpuinfo_max_freq
4700000

cpuinfo_min_freq
400000

cpuinfo_transition_latency
0

energy_performance_available_preferences
default performance balance_performance balance_power power 

energy_performance_preference
balance_performance

related_cpus
1

scaling_available_governors
performance powersave

scaling_cur_freq
1281577

scaling_driver
intel_pstate