[TRACKING] Option to force enable CPPC in AMD FW13 bios for better performance and battery life with amd_pstate

Is it possible to add the menu option to force enable CPPC in the bios? Because without this option amd_pstate doesn’t work correctly. It’s normally located at AMD CBS > NBIO Common options > SMU Common Options > CPPC, but adding it to Advanced is fine.

CPPC is supported at the hardware level.

lscpu | grep cppc

However amd_pstate_epp isn’t working correctly on the 7840U FW13, if CPPC isn’t forced enabled in the bios then amd_pstate will default to cppc_cpufreq which performs the same as acpi_cpufreq which performs the same as on windows so no performance or battery life improvements. So despite cpupower saying amd_pstate_epp it isn’t true amd_pstate.

cpupower frequency-info

You can easily test to confirm, run a game or game benchmark of your choosing on amd_pstate then switch back to acpi_cpufreq and rerun, if it performs the same with a small delta within 1-5fps then amd_pstate isn’t working correctly (as I understand it should).


I can upload a video to confirm if more information is necessary.

7 Likes

Hurgh?

CPPC telemetry is exposed just fine without the SMU option -

prefcore patches are currently not in mainline - is that what you are thinking of?

No. I really do mean if CPPC isn’t forced enabled in the bios then there wouldn’t be any performance and battery life improvements from amd_pstate since amd_pstate would default to cppc_cpufreq which is exactly the same as acpi_cpufreq.

I’m sure this is still applicable but I used to own a 5825U and installed linux on it, even once I enabled amd_pstate, performance remained the same as acpi_cpufreq until I forced enable CPPC in the bios, got an extra 10-20fps and additional 1-2 hours of battery life.

Even if lscpu shows CPPC, it only shows the hardware supports CPPC not that it’s working, I had the exact same issue with a 6800U machine I owned.

1 Like

It looks like you can see the CPPC registers from the sysfs filesystem. Try this command and you should see the values changing periodically, which to me shows it is enabled and working. Ctrl+c to quit.
watch -d cat /sys/devices/system/cpu/cpu*/acpi_cppc/feedback_ctrs

I found this in the kernel documentation: Collaborative Processor Performance Control (CPPC) — The Linux Kernel documentation

Now, whether or not anything makes use of CPPC is another question. As jwp mentioned, there is a patch pending for the kernel related to amd-pstate preferred cores, which makes use of CPPC to select the “best” core. You can see that patch and read a bit about it on the LKML: [PATCH V12 0/7] amd-pstate preferred core - Meng Li

1 Like

That’s strange, if CPPC is enabled and working, why is there is no performance differences compared to acpi_cpufreq? This is something I noticed on 6000 and 7000.

I don’t have a machine available to test so you’ll have to trust I’m not making it up but when I tried this initially on a 5825U, there was performance improvements with amd_pstate when CPPC is forced enabled in the bios.

Maybe the switch to RDNA2 and 3 doesn’t see a huge performance uplift compared to Vega but all the benchmarks comparing acpi_cpufreq to amd_pstate (assuming CPPC is enabled) shows some improvement even if it’s minor.

Welcome to the community!

I don’t have anything to contribute. If you find a bug and can provide steps to replicate it here locally, feel free to file a ticket and we can take a look.

1 Like

Following with interest!

For the very few who are interested, I’ve submitted a support ticket and after several back and forth, was told it has been escalated to our group internally responsible for this matter and they will be with me soon.

Hopefully the FW team can provide this option since it’s a necessity for getting the most out of amd_pstate.

3 Likes

Couldn’t edit my post but got an update.

Appreciate you including all the needed details and I am escalating this to the engineering escalations team for review.

Hopefully an option to force enable CPPC in the bios will be available soon.

2 Likes

Got an update

Thank you for your patience, this case was escalated for review with our Engineering team, who have verified with AMD that Pstate behavior is working as expected and that CPPC is not a feature of the Ryzen 7040 Platform.

That’s rather interesting, I’m guessing the option to force enable it doesn’t exist for 6000 and 7000.

1 Like

Thanks for reporting back :pray:

1 Like