Amd-pstate lowest non-linear frequency benchmarking

Hi folks,

During kernel 6.12 we’re planning to make a change in the kernel that will set the default amd-pstate performance levels such that the lower bound goes down to “lowest non-linear performance” instead of down to “lowest performance”.

Above this threshold, lower performance levels generally result in increased energy efficiency. Reducing performance below this threshold does not result in total energy savings for a given computation, although it reduces instantaneous power consumption

I’m wondering if I can ask for some benchmarking to support such a move from this community. In order to prototype it here as a PPD PR:
amd-pstate: Program minimum frequency to lowest non-linear frequency (!198) · Merge requests · upower / power-profiles-daemon · GitLab

If the community finds some negative impacts from this we might consider only applying it on balanced + AC or something like that instead.

If you don’t want to use PPD to prototype it you can also do the same in a python/shell script to write the value for each CPU’s amd_pstate_lowest_nonlinear_freq to it’s scaling_min_freq.

Thanks!

1 Like

IMO the lower bound should still be “lowest performance”. It’s like an engine that has max power RPM and max efficiency RPM, the efficiency lowers when above or below the max efficiency RPM, so it’s advised to keep the RPM close to max efficiency doing non-demanding work and to max power when doing demanding work like overtaking or climbing a steep hill. When doing nothing, idle RPM in neutral gear. The fuel consumption would actually be higher if you increase the idle RPM to max efficiency RPM when doing nothing, or, using full throttle at idle RPM. The CPU should behave the same, when doing non-demanding tasks, adjust to “lowest non-linear performance” and when doing nothing i.e. idling on desktop, adjust to “lowest performance”

The lowest bound is still off/parked/sleeping, it may get through it’s wake-ups for less total energy when ruining at lowest non linear vs lowest. Unless there is some gremlin process that is doing very little but all the time, I assume this is part of what mario is trying to find here.

When AMD pstate is in active mode it’s just a request to the platform to aim for this for lower bound, it’s not “absolute”.

But yes it needs some testing to understand with average workloads how the platform does. I do like your analogy. If it negatively affects battery too much we can limit it off battery.