Re: AMD, CPPC, etc

From: Olivier Certner <olce_at_freebsd.org>
Date: Mon, 25 May 2026 15:33:28 UTC
> At work, we run powerd on all our video streaming servers to save power by
> ramping the cpu frequency up in times of high demand, and then back down
> for low demand times.... it saves a lot of power.

Yes, I'm aware (see our discussion with Andrew).  Unless I'm mistaken, you're not using vanilla powerd(8) though.  It's a very interesting use case, and something we would like to do in base FreeBSD coupled with CPPC.

> But to interpret our performance data, we have to record the settings since 90% cpu at 800MHz is
> way different than 90% at 3GHz... whatever we do here has to be observeable.

This is where problems may come with CPPC, despite its parameters being observable.  I remember reading somewhere (ACPI spec probably; don't have time to check right now) that the performance levels are to be *roughly* linear (they may have meant affine instead).  As long as AMD continues to use only frequency levels to implement some CPPC performance level, affine regression could be perfect (but even that should be tested).  If/when that changes, you will find yourself having to calibrate some model of CPPC levels to be able to compare 90% CPU at perf' level 127 and let's say 85% CPU at perf' level 128, and may never be able to do so with sufficient precision (depending on the exact hardware mechanisms used to implement the levels).

Regards.

-- 
Olivier Certner