=== Collaborative Processor Performance Control (CPPC)

Contact: Olivier Certner <olce@FreeBSD.org> +
Contact: ShengYi Hung <aokblast@FreeBSD.org>

Collaborative Processor Performance Control (CPPC) is a standard introduced by ACPI to allow the OS to manage performance and efficiency levels of CPUs thanks to an abstract performance scale in general uncorrelated to, and more fine-grained, than mere frequency levels.

Work is ongoing again after another kickoff during the Halifax Hackathon at the end of June.

In the works are:

- New minimum, maximum and desired performance knobs for the Intel driver (man:hwpstate_intel[4]).
- Teach man:powerd[8] about these knobs, and provide basic policies around them.
- A knob to set the EPP (Efficiency/Performance Preference) for all CPUs at once, and probably similar ones for the minimum, maximum and desired performance values.
- Conditional enablement of the CPPC functionality of the AMD driver (man:hwpstate_amd[4]) on ACPI's `_CPC` table presence.
  A knob will allow users to bypass this check, and possibly also whether the CPPC features are reported by CPUID.
- A global profile knob with predefined values (such as "Balanced", "Performance", etc.), which sets all other more fine-grained knobs.
  Setting a fine-grained knob explicitly will switch the profile to "Custom".

A number of preliminary cleanups and fixes were committed at the end of June.

Sponsor: The FreeBSD Foundation
