AMD Frequency Invariance Support Comes With Linux 5.11
The previously reported on work for frequency invariance calculations for AMD CPUs with a focus on the AMD EPYC 7002 series has been merged for Linux 5.11 as part of the "sched/core" material.
Following all of the Intel Linux kernel work in recent months around frequency invariance handling for more accurate load tracking and making more accurate frequency scaling decisions, the initial AMD implementation is here with Linux 5.11 as part of the core scheduler updates. In basic terms, the frequency invariance calculation is for addressing 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.
With the AMD implementation the frequency invariance support is relying on a numerical performance state value (0 to 255) as opposed to looking at the current CPU frequency relative to the maximum frequency. ACPI's Collaborative Processor Performance Control interface is queried for that performance state information, but not to be confused with AMD's prior work on their own Zen 2 CPPC CPUFreq driver that seemingly has been dropped for the time being. Due to the use of ACPI CPPC information, this frequency invariance calculation is limited to Zen 2 (and newer) AMD CPUs.
The main user of this support for now is with the CPUFreq "Schedutil" governor that allows making use of the frequency-invariant information for smarter CPU frequency scaling decisions. I'll be running such benchmarks soon once the Linux 5.11 merge window settles down.
This pull was mainlined with the AMD CPU frequency invariance calculation support work by AMD and SUSE. The Linux 5.11 core scheduler updates also include topology and NUMA improvements, better robustness for the global CPU priority tracking, and other mostly small enhancements this cycle.
Following all of the Intel Linux kernel work in recent months around frequency invariance handling for more accurate load tracking and making more accurate frequency scaling decisions, the initial AMD implementation is here with Linux 5.11 as part of the core scheduler updates. In basic terms, the frequency invariance calculation is for addressing 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.
With the AMD implementation the frequency invariance support is relying on a numerical performance state value (0 to 255) as opposed to looking at the current CPU frequency relative to the maximum frequency. ACPI's Collaborative Processor Performance Control interface is queried for that performance state information, but not to be confused with AMD's prior work on their own Zen 2 CPPC CPUFreq driver that seemingly has been dropped for the time being. Due to the use of ACPI CPPC information, this frequency invariance calculation is limited to Zen 2 (and newer) AMD CPUs.
The main user of this support for now is with the CPUFreq "Schedutil" governor that allows making use of the frequency-invariant information for smarter CPU frequency scaling decisions. I'll be running such benchmarks soon once the Linux 5.11 merge window settles down.
This pull was mainlined with the AMD CPU frequency invariance calculation support work by AMD and SUSE. The Linux 5.11 core scheduler updates also include topology and NUMA improvements, better robustness for the global CPU priority tracking, and other mostly small enhancements this cycle.
8 Comments