[Intel-gfx] [PATCH v4 00/26] Add support for GuC-based SLPC

Sagar Arun Kamble sagar.a.kamble at intel.com
Fri Sep 9 12:51:19 UTC 2016


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
"[Intel-gfx] [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 at 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 at chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter at intel.com>
Cc: Beuchat, Marc <marc.beuchat at intel.com>
Cc: Jeff McGee <jeff.mcgee at intel.com>
Cc: Paulo Zanoni <paulo.r.zanoni at intel.com>


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



More information about the Intel-gfx mailing list