From: Sagar Arun Kamble <sagar.a.kamble@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: "Beuchat, Marc" <marc.beuchat@intel.com>,
Daniel Vetter <daniel.vetter@intel.com>
Subject: [PATCH v5 00/22] Add support for GuC-based SLPC
Date: Mon, 14 Nov 2016 16:07:07 +0530 [thread overview]
Message-ID: <1479119849-20187-1-git-send-email-sagar.a.kamble@intel.com> (raw)
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 and APL GuC firmware v9 (not released
yet). Current GuC firmware's SLPC interfaces are updated in v9.
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.
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.
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.
This series keeps only support of 9.18 firmware for better readability.
If needed, other SLPC interfaces for different GuC version will be
added later.
v5: This series incorporates feedback from code reviews on earlier series and
adds following new changes:
1. More changes for separation of RPS and RC6 handling for Gen9.
2. Tied up SLPC enabling with GuC load/GuC submission sequence.
3. SLPC structures are defined explicitly for event input/output.
4. Definition of SLPC parameter control and task control functions
agnostic to the underlying param definitions as they might
change with GuC versions and prepared helpers for common tasks.
5. Transition of i915 overrides done through host to guc events
to shared data and single reset event.
6. Handling SLPC status post reset through shared memory.
7. Derived helpers for setting frequency limits.
8. Removed sysfs interface to know RPNSWREQ as it is available in
debugfs interface i915_frequency_info.
9. Simple igt test to verify SLPC configuration by i915 in various
driver scenarios is prepared.
VIZ-6773, VIZ-6889, VIZ-6890
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Beuchat, Marc <marc.beuchat@intel.com>
Cc: Jeff McGee <jeff.mcgee@intel.com>
Sagar Arun Kamble (3):
drm/i915/gen9: Separate RPS and RC6 handling
drm/i915/slpc: Only enable GTPERF task, Disable other tasks/parameters
drm/i915/slpc: Preserve min/max frequency softlimits on re-activation
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 enable_slpc module parameter
drm/i915/slpc: Sanitize GuC 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 debugfs interfaces for frequency parameters
drm/i915/slpc: Add slpc communication interfaces
drm/i915/slpc: Send reset event and handle SLPC enabling
drm/i915/slpc: Send shutdown event
drm/i915/slpc: Add parameter unset/set/get functions
drm/i915/slpc: Add support for min/max frequency control
drm/i915/slpc: Add enable/disable controls for slpc tasks
drm/i915/slpc: Add i915_slpc_info to debugfs
drm/i915/slpc: Add SKL SLPC Support
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 | 382 ++++++++++++++++++-
drivers/gpu/drm/i915/i915_drv.c | 17 +-
drivers/gpu/drm/i915/i915_drv.h | 4 +
drivers/gpu/drm/i915/i915_gem.c | 8 +
drivers/gpu/drm/i915/i915_guc_submission.c | 25 +-
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 | 36 +-
drivers/gpu/drm/i915/intel_guc.h | 5 +
drivers/gpu/drm/i915/intel_guc_loader.c | 45 ++-
drivers/gpu/drm/i915/intel_pm.c | 106 +++++-
drivers/gpu/drm/i915/intel_slpc.c | 586 +++++++++++++++++++++++++++++
drivers/gpu/drm/i915/intel_slpc.h | 252 +++++++++++++
15 files changed, 1440 insertions(+), 39 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-11-14 10:35 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-14 10:37 Sagar Arun Kamble [this message]
2016-11-14 10:37 ` [PATCH v5 01/22] drm/i915/gen9: Separate RPS and RC6 handling Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 02/22] drm/i915/slpc: Expose GuC functions for use with SLPC Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 03/22] drm/i915/slpc: Add has_slpc capability flag Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 04/22] drm/i915/slpc: Add enable_slpc module parameter Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 05/22] drm/i915/slpc: Sanitize GuC version Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 06/22] drm/i915/slpc: Use intel_slpc_* functions if supported Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 07/22] drm/i915/slpc: Enable SLPC in GuC " Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 08/22] drm/i915/slpc: If using SLPC, do not set frequency Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 09/22] drm/i915/slpc: Allocate/Release/Initialize SLPC shared data Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 10/22] drm/i915/slpc: Update debugfs interfaces for frequency parameters Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 11/22] drm/i915/slpc: Add slpc communication interfaces Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 12/22] drm/i915/slpc: Send reset event and handle SLPC enabling Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 13/22] drm/i915/slpc: Send shutdown event Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 14/22] drm/i915/slpc: Add parameter unset/set/get functions Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 15/22] drm/i915/slpc: Add support for min/max frequency control Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 16/22] drm/i915/slpc: Add enable/disable controls for slpc tasks Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 17/22] drm/i915/slpc: Add i915_slpc_info to debugfs Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 18/22] drm/i915/slpc: Only enable GTPERF task, Disable other tasks/parameters Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 19/22] drm/i915/slpc: Preserve min/max frequency softlimits on re-activation Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 20/22] drm/i915/slpc: Add SKL SLPC Support Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 21/22] drm/i915/slpc: Add Broxton SLPC support Sagar Arun Kamble
2016-11-14 10:37 ` [PATCH v5 22/22] drm/i915/slpc: Enable SLPC, where supported Sagar Arun Kamble
2016-11-14 11:17 ` ✓ Fi.CI.BAT: success for Add support for GuC-based SLPC (rev6) 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=1479119849-20187-1-git-send-email-sagar.a.kamble@intel.com \
--to=sagar.a.kamble@intel.com \
--cc=daniel.vetter@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=marc.beuchat@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;
as well as URLs for NNTP newsgroup(s).