SLPC (Single Loop Power Controller) is a replacement for some host-based power management features. The SLPC implementation runs in firmware on GuC. This series has been tested with SKL/BXT GuC firmware version 9.18 which is yet to be released. Performance and power testing(SKL) with these patches and 9.18 firmware is at parity and in some cases better than host RPS today on various Linux benchmarks. 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; this includes an adaptive boost turbo method (Disabled currently) BALANCER adjusts balance between power budgets for IA and GT in power limited scenarios and based on affinity of workload to IA/GT. BALANCER is only active when all display pipes are in "game" mode. DCC (Duty Cycle Control) adjusts requested graphics frequency and stalls guc-scheduler to maintain actual graphics frequency in efficient range. The last series can be found in the archive at " [PATCH v4 00/21] Add support for GuC-based SLPC" https://lists.freedesktop.org/archives/intel-gfx/2016-April/094445.html This series incorporates feedback from code reviews on earlier series. It drops the display mode notification patches as it is not needed for Turbo part of GTPERF. This series also adds new interface changes for SLPC support on 9.18 GuC Firmware which is not yet published. Will like to get review started prior to firmware is published. SLPC will get enabled on adding support for v9.18 firmware. v2: Addressed review comments on v1. Removed patch to enable SLPC by default. v3: Addressed WARNING in igt@drv_module_reload_basic flagged by trybot BAT. Added change for sanitizing GT PM during reset. Added separate patch for sysfs interface to know HW requested frequency. Also, earlier patches did not go as series hence were not correctly picked up by BAT. v4: Changes to multiple patches. CI BAT is passing. Performance run on SKL GT2 done and shows perf at parity with Host Turbo. For BXT, SLPC improves performance when GuC is enabled compared to Host Turbo and SLPC is at par with Base except for some minor drops. This series keeps only support of v9.18 firmware for better readability. If needed, other SLPC interfaces for different GuC version will be added later. Incorporated change related slice suggested by Dave. (rebase miss). VIZ-6773, VIZ-6889, VIZ-6890 Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Cc: Daniel Vetter <daniel.vetter@xxxxxxxxx> Cc: Beuchat, Marc <marc.beuchat@xxxxxxxxx> Cc: Jeff McGee <jeff.mcgee@xxxxxxxxx> Cc: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx> Sagar Arun Kamble (7): drm/i915: Remove RPM suspend dependency on rps.enabled and related changes drm/i915/slpc: Only Enable GTPERF, Disable DCC, Balancer, IBC, FPS Stall drm/i915/slpc: Update freq min/max softlimits drm/i915/slpc: Check GuC load status in SLPC active check drm/i915/slpc: Keep RP SW Mode enabled while disabling rps drm/i915: Add sysfs interface to know the HW requested frequency drm/i915: Mark GuC load status as PENDING in i915_drm_resume_early Tom O'Rourke (19): drm/i915/slpc: Expose guc functions for use with SLPC drm/i915/slpc: Add has_slpc capability flag drm/i915/slpc: Add SKL SLPC Support drm/i915/slpc: Add enable_slpc module parameter drm/i915/slpc: Sanitize SLPC version drm/i915/slpc: Use intel_slpc_* functions if supported drm/i915/slpc: Enable SLPC in guc if supported drm/i915/slpc: If using SLPC, do not set frequency drm/i915/slpc: Allocate/Release/Initialize SLPC shared data drm/i915/slpc: Update sysfs/debugfs interfaces for frequency parameters drm/i915/slpc: Send reset event drm/i915/slpc: Send shutdown event drm/i915/slpc: Add slpc_status enum values drm/i915/slpc: Add parameter unset/set/get functions drm/i915/slpc: Add slpc support for max/min freq drm/i915/slpc: Add enable/disable debugfs for slpc drm/i915/slpc: Add i915_slpc_info to debugfs drm/i915/slpc: Add Broxton SLPC support drm/i915/slpc: Enable SLPC, where supported drivers/gpu/drm/i915/Makefile | 3 +- drivers/gpu/drm/i915/i915_debugfs.c | 491 ++++++++++++++++++++++++++++- drivers/gpu/drm/i915/i915_drv.c | 21 +- drivers/gpu/drm/i915/i915_drv.h | 4 +- drivers/gpu/drm/i915/i915_guc_submission.c | 16 +- drivers/gpu/drm/i915/i915_params.c | 6 + drivers/gpu/drm/i915/i915_params.h | 1 + drivers/gpu/drm/i915/i915_pci.c | 3 + drivers/gpu/drm/i915/i915_sysfs.c | 49 +++ drivers/gpu/drm/i915/intel_drv.h | 13 + drivers/gpu/drm/i915/intel_guc.h | 11 + drivers/gpu/drm/i915/intel_guc_loader.c | 30 ++ drivers/gpu/drm/i915/intel_pm.c | 133 ++++++-- drivers/gpu/drm/i915/intel_runtime_pm.c | 3 +- drivers/gpu/drm/i915/intel_slpc.c | 389 +++++++++++++++++++++++ drivers/gpu/drm/i915/intel_slpc.h | 215 +++++++++++++ 16 files changed, 1334 insertions(+), 54 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_slpc.c create mode 100644 drivers/gpu/drm/i915/intel_slpc.h -- 1.9.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx