Yesterday I installed a fresh Proxmox node on my new server with an AMD Epyc Milan processor. During first install, I got the following error message:
pve kernel: [Firmware Bug]: ACPI: Invalid BIOS _PSS frequency found for processor 0: 0x0 MHz
This repeated itself for every core (32 in total).
Proxmox installed fine despite this, but does present an issue in daily use. The CPU max frequency is reported as 2200 MHz in lscpu and this is also the maximum frequency that the CPU is running at. As the CPU can do 3700MHz, this is really an issue.
I’ve tested the server extensively with a bare metal Windows install, and there the CPU worked perfectly on the highest CPU frequency, scaled back, throttle up etc, just how it should work. For me, this rules out a bios setting (unless there is an issue with Proxmox and the ACPI state).
Found the post and went thru it. Output of cpupower:
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: Cannot determine or is not supported.
hardware limits: 1.50 GHz - 2.73 GHz
available frequency steps: 2.20 GHz, 1.50 GHz
available cpufreq governors: conservative ondemand userspace powersave performance schedutil
current policy: frequency should be within 1.50 GHz and 2.20 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency: 2.20 GHz (asserted by call to hardware)
boost state support:
Supported: yes
Active: no
Boost States: 0
Total States: 3
Pstate-P0: 3600MHz
Pstate-P1: 2000MHz
Pstate-P2: 2100MHz
Don’t skip around on a post like that because you can look over it because you don’t know what you don’t know. It’s in that order for a reason.
Solve the cpupower stuff first because it creates a service then check the device in proc/look at the output for boost and finally you can reboot and see if it sticks. Probsbly not. So you can create a services to echo boost back into /proc . . .
I did follow the instructions step by step, @wendell and even changed systemctl enable turbo-boost to systemctl enable enable-turbo as posted in the comments.
As I didn’t get the correct result, I went over the whole post a few times to be sure I didn’t miss anything.
Problem is/was that it din’t seem to do anything and the Turbo boost didn’t become active. As last resort, I went into the bios and adjusted a few things:
Set ‘DFC States’ to Enabled
Set EfficiencymodeEn to Enabled
Set cTDP and PPL to 180W (max for my CPU)
After restart:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: Cannot determine or is not supported.
hardware limits: 1.50 GHz - 3.73 GHz
available frequency steps: 3.00 GHz, 2.20 GHz, 1.50 GHz
available cpufreq governors: conservative ondemand userspace powersave performance schedutil
current policy: frequency should be within 1.50 GHz and 3.00 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency: 1.50 GHz (asserted by call to hardware)
boost state support:
Supported: yes
Active: no
Boost States: 0
Total States: 3
Pstate-P0: 3600MHz
Pstate-P1: 2000MHz
Pstate-P2: 2100MHz
So although the Boost State Active is till off, the Pstates are reported correctly and also the output of lscpu shows that it actually working:
CPU MHz: 3543.6503
CPU max MHz: 3729.4919
CPU min MHz: 1500.0000
So, conclusion for me: setting correct cTDP and PPL was needed in order to get the correct frequencies.