From: tom.orourke@intel.com
To: intel-gfx@lists.freedesktop.org
Cc: paulo.r.zanoni@intel.com, Tom O'Rourke <Tom.O'Rourke@intel.com>
Subject: [PATCH v2 00/26] Add support for GuC-based SLPC
Date: Tue, 8 Mar 2016 16:34:03 -0800 [thread overview]
Message-ID: <1457483669-155235-1-git-send-email-tom.orourke@intel.com> (raw)
From: Tom O'Rourke <Tom.O'Rourke@intel.com>
SLPC (Single Loop Power Controller) is a replacement for
some host-based power management features. The SLPC
implemenation runs in firmware on GuC.
This series has been tested with SKL guc firmware
version 6.1 and BXT guc version 5.1.
The graphics power management features in SLPC in those
versions 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.
BALANCER adjusts balance between power budgets for IA
and GT in power limited scenarios. 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.
This series is a followup to the request for comments
"[Intel-gfx] [RFC 00/22] Add support for GuC-based SLPC"
https://lists.freedesktop.org/archives/intel-gfx/2016-January/085830.html
Thank you to Paulo for his valuable review of the RFC
series. Thank you also to Ville, Daniel, Jesse, and
Martin for their helpful comments.
We (Tom and Sagar) have attempted to incorporate these
suggestions in this series. We also adapted to a new
SLPC interface version that reflects an internal
reorganization within the firmware. The biggest change
refactored the tasks. The DFPS and Turbo tasks were
merged into the GTPERF task. The IBC (Intelligent Bias
Control) feature that had been grouped with Turbo was
split out into the BALANCER task.
The requested frequency can be fixed by setting min and
max to the same value. As before, the actual frequency
is controlled by the punit.
In addition to the debugfs files to enable/disable each
task, there is a module parameter to completely disable
SLPC. By default, SLPC will be disabled by module parameter.
Benchmarks showing power/performance results are expected
before enabling SLPC by default.
We anticipate DFPS and BALANCER will not be effective on
Linux systems due to difficulty determining frame rate
with a compositor and display not in "game" mode.
GTPERF (Turbo) and DCC should be effective.
Patches 22/26 to 26/26 are included for convenience in
testing this series and are not intended to be merged at
this time. SLPC requires guc submission and should be
disabled if guc submission is not enabled.
VIZ-6773, VIZ-6889
Dave Gordon (1):
DO NOT MERGE: drm/i915: Enable GuC submission, where supported
Peter Antoine (1):
DO NOT MERGE: drm/i915: resize the GuC WOPCM for rc6
Sagar Arun Kamble (3):
drm/i915/slpc: Add Display mode event related data structures
drm/i915/slpc: Notification of Display mode change
drm/i915/slpc: Notification of Refresh Rate change
Tom O'Rourke (21):
drm/i915/slpc: Expose guc functions for use with SLPC
drm/i915/slpc: Add has_slpc capability flag
drm/i915/slpc: Add slpc_version_check
drm/i915/slpc: Add enable_slpc module parameter
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: Setup rps frequency values during SLPC init
drm/i915/slpc: Update current requested frequency
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 broxton support
drm/i915/slpc: Add i915_slpc_info to debugfs
DO NOT MERGE: drm/i915: Change SKL guc version wanted to 6.0
DO NOT MERGE: drm/i915/bxt: Add Broxton to guc loader
DO NOT MERGE: drm/i915: Enable SLPC, where supported
drivers/gpu/drm/i915/Makefile | 5 +-
drivers/gpu/drm/i915/i915_debugfs.c | 456 +++++++++++++++++++++++++++
drivers/gpu/drm/i915/i915_drv.c | 2 +
drivers/gpu/drm/i915/i915_drv.h | 2 +
drivers/gpu/drm/i915/i915_guc_reg.h | 3 +-
drivers/gpu/drm/i915/i915_guc_submission.c | 6 +-
drivers/gpu/drm/i915/i915_params.c | 10 +-
drivers/gpu/drm/i915/i915_params.h | 1 +
drivers/gpu/drm/i915/i915_sysfs.c | 20 ++
drivers/gpu/drm/i915/intel_display.c | 2 +
drivers/gpu/drm/i915/intel_dp.c | 2 +
drivers/gpu/drm/i915/intel_drv.h | 12 +
drivers/gpu/drm/i915/intel_guc.h | 13 +
drivers/gpu/drm/i915/intel_guc_loader.c | 53 +++-
drivers/gpu/drm/i915/intel_pm.c | 41 ++-
drivers/gpu/drm/i915/intel_slpc.c | 484 +++++++++++++++++++++++++++++
drivers/gpu/drm/i915/intel_slpc.h | 209 +++++++++++++
17 files changed, 1299 insertions(+), 22 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@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next reply other threads:[~2016-03-09 0:34 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-09 0:34 tom.orourke [this message]
2016-03-09 0:34 ` [PATCH 01/26] drm/i915/slpc: Expose guc functions for use with SLPC tom.orourke
2016-03-09 0:34 ` [PATCH 02/26] drm/i915/slpc: Add has_slpc capability flag tom.orourke
2016-03-09 0:34 ` [PATCH 03/26] drm/i915/slpc: Add slpc_version_check tom.orourke
2016-03-09 0:34 ` [PATCH 04/26] drm/i915/slpc: Add enable_slpc module parameter tom.orourke
2016-03-09 0:34 ` [PATCH 05/26] drm/i915/slpc: Use intel_slpc_* functions if supported tom.orourke
2016-03-09 0:34 ` [PATCH 06/26] drm/i915/slpc: Enable SLPC in guc " tom.orourke
2016-03-09 0:34 ` [PATCH 07/26] drm/i915/slpc: If using SLPC, do not set frequency tom.orourke
2016-03-09 0:34 ` [PATCH 08/26] drm/i915/slpc: Allocate/Release/Initialize SLPC shared data tom.orourke
2016-03-09 0:34 ` [PATCH 09/26] drm/i915/slpc: Setup rps frequency values during SLPC init tom.orourke
2016-03-09 0:34 ` [PATCH 10/26] drm/i915/slpc: Update current requested frequency tom.orourke
2016-03-09 0:34 ` [PATCH 11/26] drm/i915/slpc: Send reset event tom.orourke
2016-03-09 0:34 ` [PATCH 12/26] drm/i915/slpc: Send shutdown event tom.orourke
2016-03-09 0:34 ` [PATCH 13/26] drm/i915/slpc: Add Display mode event related data structures tom.orourke
2016-03-09 0:34 ` [PATCH 14/26] drm/i915/slpc: Notification of Display mode change tom.orourke
2016-03-09 0:34 ` [PATCH 15/26] drm/i915/slpc: Notification of Refresh Rate change tom.orourke
2016-03-09 0:34 ` [PATCH 16/26] drm/i915/slpc: Add slpc_status enum values tom.orourke
2016-03-09 0:34 ` [PATCH 17/26] drm/i915/slpc: Add parameter unset/set/get functions tom.orourke
2016-03-09 0:34 ` [PATCH 18/26] drm/i915/slpc: Add slpc support for max/min freq tom.orourke
2016-03-09 0:34 ` [PATCH 19/26] drm/i915/slpc: Add enable/disable debugfs for slpc tom.orourke
2016-03-09 0:34 ` [PATCH 20/26] drm/i915/slpc: Add broxton support tom.orourke
2016-03-09 0:34 ` [PATCH 21/26] drm/i915/slpc: Add i915_slpc_info to debugfs tom.orourke
2016-03-09 0:34 ` [PATCH 22/26] DO NOT MERGE: drm/i915: Change SKL guc version wanted to 6.0 tom.orourke
2016-03-09 0:34 ` [PATCH 23/26] DO NOT MERGE: drm/i915/bxt: Add Broxton to guc loader tom.orourke
2016-03-09 0:34 ` [PATCH 24/26] DO NOT MERGE: drm/i915: resize the GuC WOPCM for rc6 tom.orourke
2016-03-09 0:34 ` [PATCH 25/26] DO NOT MERGE: drm/i915: Enable GuC submission, where supported tom.orourke
2016-03-09 0:34 ` [PATCH 26/26] DO NOT MERGE: drm/i915: Enable SLPC, " tom.orourke
2016-03-09 8:03 ` ✗ Fi.CI.BAT: failure for Add support for GuC-based SLPC (rev2) Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1457483669-155235-1-git-send-email-tom.orourke@intel.com \
--to=tom.orourke@intel.com \
--cc=Tom.O'Rourke@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=paulo.r.zanoni@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox