P-states partially disabled (P3+), reenabling ignored by acpi-cpufreq/schedutil govenor

I bought a Laptop with a Ryzen 5 3500U inside. While its a “3000” chip, its still the inferior Zen 1(+) architecture, so I wanted to tweak the cpu a bit for improved battery life and a cooler lap.

Enter zenstates: While voltage per state is locked/ignored (thanks AMD!), I can still reenable P-states 3 to 7. Unfortunately, even after enabling them and setting lower frequency p-states, they aren’t being used: “cpupower frequency-info” shows only the original 3 power states (“Total States: 3”) and the lower cpu frequencies are not being reached.

Why do P3+ states get ignored? How can I reenable them, preferably permanently (after testing for stability)?

P.S. Editing the original P2 state to a lower frequency does drop the minimum frequency further while idling.
P.P.S. Running Kernel 5.7 & Manjaro distro

I would suggest you switching to the powernow-k8 cpu driver which works on k8-k10 cpus

https://wiki.archlinux.org/index.php/CPU_frequency_scaling#CPU_frequency_driver

https://wiki.archlinux.org/index.php/CPU_frequency_scaling#Make_changes_permanent

K10 is the pre ryzen architecture, so while it may work, i doubt it’ll work well…

Have you seen this thread?

Specifically:

Most Ryzen CPU’s only seem to support P-states P0, P1 and P2, keep this in mind.

I wonder if this is a driver issue or a hardware limitation.

1 Like

Oh… Mhh then I guess… I cant enable it, despite zenstates being able to define additional p-states?

Or is there still a way to enable additional p-states? I certainly dunno what I’m talking about, but isn’t this done mostly in software, thus reenabling (custom) lower power p-states theoretically possible?

I’m not sure. That’s what I was implying with my last statement.

I suspect there may be a driver shortcoming.

I’m thinking the best way to find out might be to boot a windows install and see how many states are available from windows.

Will do! I have a portable windows install ready for such occasions. But do you know how to get the available p states in windows?

The CPU’s only support 3 user controlled base P-states.
However this is no issue. The chip will actually automatically interpolate between those P-states as needed. Ryzen has a far more capable dynamic clock system than any previous 10h->16h chips.
And there is little point going below 2GHz, even on first gen 1700X 2.2GHz is very low voltage.

1 Like

I still haven’t figure out how to read used/enabled p-states within windows, but I found the following blog post about “zenstates”:

Ryzen CPUs have 8 p-states available, but only 3 are enabled. You could technically enable more of them, but I doubt the acpi-cpufreq driver will use more.
https://steemit.com/hardware/@tomasbrod/how-to-p-state-owerclock-ryzen-on-linux