Firmware-Based Power Management For Intel Graphics Advances

SLPC can be more efficient than host-based power management features, but as previously covered, it's putting it off into the firmware. Not everyone is happy about Intel's binary-only GuC firmware that is present for Skylake hardware and newer.
Intel's Sagar Arun Kamble provided a refresher over the capabilities of the Single Loop Power Controller:
The SLPC implementation runs in firmware on GuC. This series has been tested with SKL/APL/KBL GuC firmware v9.GuC-based SLPC support for the Intel DRM driver is a big addition at 23 patches amounting to nearly two thousand new lines of code. This SLPC support will be available for Skylake, Broxton, and Kabylake hardware. The code is available for review here.
The graphics power management features in SLPC in this version are called GTPERF, BALANCER, and DCC.
GTPERF is a combination of DFPS (Dynamic FPS) and Turbo. DFPS adjusts requested graphics frequency to maintain target framerate. Turbo adjusts requested graphics frequency to maintain target GT busyness.
BALANCER adjusts balance between power budgets for IA and GT in power limited scenarios.
DCC (Duty Cycle Control) adjusts requested graphics frequency and stalls guc-scheduler to maintain actual graphics frequency in efficient range.
This patch series activates only GTPERF Turbo in GuC SLPC.
The code is up to its sixth revision so perhaps we'll finally see it land soon, maybe for Linux 4.12. When it does land it will enable this firmware-based power management by default on the supported hardware but can be toggled at boot-time via the i915.enable_slpc argument. When the code lands, I'll run some power tests to see how it compares to the existing power management implementation.
4 Comments