Linux 6.9 To Allow AMD P-State With ACPI CPPC V2 For Threadripper 3000 Series CPUs
The AMD P-State CPU frequency scaling driver works with Zen 2 and newer processors supporting ACPI Collaborative Processor Performance Controls (CPPC) but to date this hasn't worked for Threadripper 3000 series processors with the TRX40 chipset. That though is finally being fixed up with Linux 6.9 thanks to a one-line code change.
The AMD P-State driver like Intel P-State has been great for enhancing the CPU performance/power efficiency of Ryzen processors and better than the generic ACPI CPUFreq driver. But it was noted in a bug report last year that this "amd-pstate" driver could not be loaded for Zen 2 Threadripper processors. The AMD P-State driver would complain of the ACPI "_CPC" object not being present even though ACPI CPPC and AMD Preferred Core are both supported by the processor and the motherboard in question.
As noted in this January article a fix was on the way and came down to a one-liner needed to expand a CPU model ID check. That fix is now queued as of this week into the power management system's "-next" branch ahead of the Linux 6.9 merge window.
The ACPI CPPC kernel code had a check for Family 17 CPUs being between 0x70 and 0x7f, but this needed to be expanded to check between 0x30 and 0x7f to accommodate the Ryzen Threadripper 3000 series CPU IDs. With that, the AMD P-State driver should now successfully load for most (all?) Threadripper 3000 systems with ACPI CPPC enabled in the BIOS.
This patch is in linux-pm.git's linux-next branch for the Linux 6.9 cycle. So for those still rocking very capable Threadripper 3000 series processors on this next kernel version you can expect to see better performance / power efficiency moving forward. A bit unfortunate though that this check wasn't noticed months ago and one of the downsides to AMD having so many different CPU model IDs each generation compared to Intel.
The AMD P-State driver like Intel P-State has been great for enhancing the CPU performance/power efficiency of Ryzen processors and better than the generic ACPI CPUFreq driver. But it was noted in a bug report last year that this "amd-pstate" driver could not be loaded for Zen 2 Threadripper processors. The AMD P-State driver would complain of the ACPI "_CPC" object not being present even though ACPI CPPC and AMD Preferred Core are both supported by the processor and the motherboard in question.
As noted in this January article a fix was on the way and came down to a one-liner needed to expand a CPU model ID check. That fix is now queued as of this week into the power management system's "-next" branch ahead of the Linux 6.9 merge window.
The ACPI CPPC kernel code had a check for Family 17 CPUs being between 0x70 and 0x7f, but this needed to be expanded to check between 0x30 and 0x7f to accommodate the Ryzen Threadripper 3000 series CPU IDs. With that, the AMD P-State driver should now successfully load for most (all?) Threadripper 3000 systems with ACPI CPPC enabled in the BIOS.
This patch is in linux-pm.git's linux-next branch for the Linux 6.9 cycle. So for those still rocking very capable Threadripper 3000 series processors on this next kernel version you can expect to see better performance / power efficiency moving forward. A bit unfortunate though that this check wasn't noticed months ago and one of the downsides to AMD having so many different CPU model IDs each generation compared to Intel.
8 Comments