Intel has introduced a "Running Average Power Limit" Linux kernel driver for their platforms.
Jacob Pan of Intel's Open-Source Technology Center published the "RAPL" Linux kernel driver patches on the kernel mailing list Tuesday. Running Average Power Limit is a feature found on Sandy Bridge and newer for enforcing power consumption limits on processors, among other power-related features.
There's been an earlier "intel_rapl" Linux kernel driver for reporting and restricting power consumption of Intel CPUs on Linux. Additionally, there's been some Intel TurboStat work
and the PowerClamp driver
The initial commit message for this 2 April driver says:
RAPL (Running Average Power Limit) interface provides platform software with the ability to monitor, control, and get notifications on SOC power consumptions. Since its first appearance on Sandy Bridge, more features have being added to extend its usage. In RAPL, platforms are divided into domains for fine grained control. These domains include package, DRAM controller, CPU core (Power Plane 0), graphics uncore (power plane 1), etc.
The purpose of this driver is to expose RAPL for userspace consumption. Overall, RAPL fits in the generic thermal layer in that platform level power capping and monitoring are mainly used for thermal management and thermal layer provides the abstracted interface needed to have portable applications.
Specifically, userspace is presented with per domain cooling device with sysfs links to its kobject. Although RAPL domain provides many parameters for fine tuning, long term power limit is exposed as the single knob via cooling device state. Whereas the rest of the parameters are still accessible via the linked kobject. This simplifies the interface for both simple and advanced use cases.
This new ~1,500 line Linux kernel contribution by Intel can be found currently on the kernel mailing list