AMD+SUSE Tackling Frequency Invariance For AMD EPYC 7002 CPUs
Over the past year we have seen a lot of Linux kernel work for dealing with frequency invariance but to now that on the x86 side has been focused on Intel Xeon processors. Now through the cooperation of AMD with patches led by SUSE, frequency invariance is being worked on for the EPYC 7002 "Rome" processors.
Frequency invariance ultimately is about more accurate load tracking and being able to make better frequency scaling decisions. All the fine details around frequency invariance can be found outlined via the Kernel.org documentation. Fundamentally it's regarding the issue of tasks appearing larger if the CPU is running slower so the frequency invariance takes into account the current frequency relative to the maximum possible frequency (or with the way these AMD patches are implemented, relative to the maximum possible performance state).
With the pending AMD Rome implementation, ACPI is queried for figuring out the maximum boost performance state of the system via the CPPC (Collaborative Processor Performance Control) support that is new to Zen 2 and thus why Zen 1 CPUs are not supported by this code. The CPPC performance value is used as opposed to the boost clock frequency itself for lack of being able to properly determine that on the current AMD processors but in relative terms still works out all the same.
The AMD EPYC frequency invariance patches for the Linux kernel remain under review and discussion on the kernel mailing list.
No performance figures were provided by the developers on these AMD patches, so it will be fun to benchmark it when the time comes. At least on the Intel side the frequency invariance support with Xeon processors has allowed for better performance and efficiency. It will be interesting to see how this AMD frequency invariance support pans out with the Linux Schedutil governor that makes use of scheduler utilization data for making its frequency scaling decisions. The patches also note it will serve as a baseline for comparison should AMD ever get back to working on their previously proposed AMD CPPC CPUFreq driver that hasn't seen any new public activity since the patches were first volleyed back in July 2019 after Zen 2 was first announced with ACPI CPPC support.