How to use AMD P-State in Linux

Rick, I reverted all the changes back in Bios, CPPC settings to auto (both of them).
Removed the blacklist from acpi_cpufreq module.

Only changed my kernel cmd line to include: amd_pstate.shared_mem=1 and created the file /etc/modules-load.d/amd-pstate.conf as per Echoa instructions, this was enough to make it work in my gear

Indeed…

This will depend on your Bios, some Auto defaults to ON others it Defaults to OFF. No harm leaving them enabled vs auto.

1 Like

Ya i notice dmesg say’s this?

[    2.513674] amd_pstate: unknown parameter 'enable' ignored

they may have changed the kernel command line parameter since before release. Ill look into it as that means amd_pstate.enable=1 is no longer valid.

I reverted everything and now the dmesg is gone so you are probably right it’s not used anymore.

seems to be because its built as a module and previously i was building it myself into the kernel is why its not needed.

EDIT: Updated OP to fit the current correct instructions for the default Arch Kernel.

Thanks @Echoa & @anon49550872
Seems like it’s how it’s supposed to be. I will run with it now and see how the system works. So far seems normal and working great.

2 Likes

I’ll be testing too, so far so good… I installed turbostat and it seems that its idling around 1500mhz
The problem is that I don’t have data from acpi_cpufreq to compare with…

for me my idle went from 2.2ghz to 550mhz, i dropped maybe 2-3C idle temps nothing special. Everything else has been the same as far as i can tell but Im mostly concerned with saving any little sip of power i can, its like a competition to see how far down i can push my power bill without giving up much if any performance :stuck_out_tongue_closed_eyes:

1 Like

That is exactly what I’m trying to do eheh :slight_smile:

This is what I got, not sure if I’m reading these data correctly

Im not sure thats reading frequency properly, try this

watch -n1 "grep \"^[c]pu MHz\" /proc/cpuinfo"

EDIT:Also some anecdotal info from a laptop user on Phoronix

Seems to be working great on my 4800H. I am at a good 6.5 W idling but that is not very different from what it was before. Yet when working in Unity with not too much GPU load, I get another hour battery time out the new scaling driver, to a good 5 hours @ 45Wh.

1 Like

Wow, getting 550Mhz too :slight_smile:

image

1 Like

That is a lot… if you had 4 hours and now you have five, it means that you got up to 25% more battery life…

Also be aware that this driver is very much targeted at Schedutil as the governor. You will likely see optimal results with Schedutil.

thats just one person, and we cant be sure of this info considering lack of controlled testing in their case. It was designed to save power so it will do that, just how much is debatable.

1 Like

When you open turbostat, it shows that I’m using Schedutil, I didn’t change anything, so I guess its the default for me

sudo turbostat
turbostat version 21.05.04 - Len Brown <lenb@kernel.org>
CPUID(0): AuthenticAMD 0x10 CPUID levels
CPUID(1): family:model:stepping 0x19:21:0 (25:33:0) microcode 0x0
CPUID(0x80000000): max_extended_levels: 0x80000023
CPUID(1): SSE3 MONITOR - - - TSC MSR - HT -
CPUID(6): APERF, No-TURBO, No-DTS, No-PTM, No-HWP, No-HWPnotify, No-HWPwindow, No-HWPepp, No-HWPpkg, No-EPB
CPUID(7): No-SGX
RAPL: 234 sec. Joule Counter Range, at 280 Watts
/dev/cpu_dma_latency: 2000000000 usec (default)
current_driver: acpi_idle
current_governor: menu
current_governor_ro: menu
cpu3: POLL: CPUIDLE CORE POLL IDLE
cpu3: C1: ACPI FFH MWAIT 0x0
cpu3: C2: ACPI IOPORT 0x414
cpu3: cpufreq driver: amd-pstate
cpu3: cpufreq governor: schedutil
cpufreq boost: 1

its the default on Arch for Ryzen CPUs so unless you change it to ondemand or something else most will be good with just the instructions from OP.

Indeed… Unfortunately I won’t be able to compare battery life, I’m on a desktop…
But lets watch the debates now. but 25% is a very promising start point… :slight_smile:

What is your CPU? Is this output from turbostat?

Its a 5600x, yes its the output from turbostat