AMD Posts P-State Linux Patches For New "Guided Autonomous Mode"
AMD engineers this morning sent out the patches for implementing a "guided autonomous mode" within their P-State driver for use on Ryzen/EPYC platforms of Zen 2 and newer. Zen 2 and newer is a hard requirement for AMD P-State due to being dependent upon the ACPI Collaborative Processor Performance Control (CPPC) functionality.
Of the new AMD P-State Guided Autonomous Mode, it's summed up in the new patch series as:
From ACPI spec below 3 modes for CPPC can be defined:
1. Non autonomous: OS scaling governor specifies operating frequency/performance level through `Desired Performance` register and PMFW follows that.
2. Guided autonomous: OS scaling governor specifies min and max frequencies/ performance levels through `Minimum Performance` and `Maximum Performance` register, and PMFW can autonomously select an operating frequency in this range.
3. Fully autonomous: OS only hints (via EPP) to PMFW for the required energy performance preference for the workload and PMFW autonomously scales the frequency.
Currently (1) is supported by amd_pstate as passive mode, and (3) is implemented by EPP support. This change is to support (2).
In guided autonomous mode the min_perf is based on the input from the scaling governor. For example, in case of schedutil this value depends on the current utilization. And max_perf is set to max capacity.
To activate guided auto mode ``amd_pstate=guided`` command line parameter has to be passed in the kernel.
Benchmarks conducted by AMD show the AMD P-State Guided Autonomous Mode to perform particularly well with their new EPYC "Genoa" server platforms. The EPYC performance is much better with the guided mode than in the default passive mode currently in the kernel. The P-State EPP support continues to work its way to the mainline kernel. The AMD P-State Guided Autonomous Mode also helps EPYC perform better than using the older, generic ACPI CPUFreq driver for better raw performance though can lead to slightly higher power use in some scenarios.
See this patch series for the 200+ lines of new code working out the AMD P-State Guided Autonomous Mode support. Though given the timing of these patches being posted, it's unlikely we'll see them reviewed and readied in time for the imminent Linux v6.2 kernel merge window and thus will likely have to wait until 6.3+ next year before seeing this mainlined. But with AMD's results showing this mode performing better than ACPI CPUFreq is a good sign and that work on the amd_pstate driver seems to be getting squared away.