intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v7 00/21] Add support for GuC-based SLPC
@ 2017-03-22 10:03 Sagar Arun Kamble
  2017-03-22 10:03 ` [PATCH v7 01/21] drm/i915/debugfs: Create generic string tokenize function and update CRC control parsing Sagar Arun Kamble
                   ` (21 more replies)
  0 siblings, 22 replies; 26+ messages in thread
From: Sagar Arun Kamble @ 2017-03-22 10:03 UTC (permalink / raw)
  To: intel-gfx; +Cc: Beuchat, Marc, Daniel Vetter

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/APL/KBL GuC firmware 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.

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.

v6: This series adds following new changes:
	1. Updated intel_guc_send for SLPC to receive output data from GuC.
	2. Added task overrides and min frequency overrides in intel_slpc_init.
	   min frequency is set to Rpe.
	3. New debugfs interface added to set/unset/read SLPC parameters
	   other than tasks and frequencies. SLPC reset post parameter update
	   added.
	4. SLPC parameters persist as part of i915-GuC shared data hence not
	   overriding frequency limits while re-enabling SLPC.
	5. Other minor fixes to clear pm_rps_events, clflush the shared data.

v7: This series adds following new changes:
	1. Reordered patches. SLPC communication interfaces (structures and
	   functions) are pulled into patches earlier in the series.
	2. Eliminated dependency on i915.enable_slpc at various functions where
	   rps_enabled is available.
	3. s/i915_ggtt_offset/guc_ggtt_offset and sanitization of parameter
	   in intel_uc_sanitize_options.

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: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com>
Cc: Jeff McGee <jeff.mcgee@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Cc: Oscar Mateo <oscar.mateo@intel.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>

Sagar Arun Kamble (11):
  drm/i915/debugfs: Create generic string tokenize function and update
    CRC control parsing
  drm/i915/gen9+: Separate RPS and RC6 handling
  drm/i915/slpc: Lay out SLPC init/enable/disable/cleanup helpers
  drm/i915/slpc: Add SLPC communication interfaces
  drm/i915/slpc: Add parameter set/unset/get, task control/status
    functions
  drm/i915/slpc: Allocate/Release/Initialize SLPC shared data
  drm/i915/slpc: Send RESET event to enable SLPC
  drm/i915/slpc: Add support for min/max frequency control
  drm/i915/slpc: Add debugfs support to read/write/revert the parameters
  drm/i915/slpc: Add SLPC banner to RPS debugfs interfaces.
  drm/i915/slpc: Add Kabylake SLPC support

Tom O'Rourke (10):
  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: Enable SLPC in GuC if supported
  drm/i915/slpc: Send SHUTDOWN event
  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           |   1 +
 drivers/gpu/drm/i915/i915_debugfs.c     | 243 +++++++-
 drivers/gpu/drm/i915/i915_drv.c         |  11 +-
 drivers/gpu/drm/i915/i915_drv.h         |  12 +-
 drivers/gpu/drm/i915/i915_irq.c         |   5 +
 drivers/gpu/drm/i915/i915_params.c      |   6 +
 drivers/gpu/drm/i915/i915_params.h      |   1 +
 drivers/gpu/drm/i915/i915_pci.c         |   5 +
 drivers/gpu/drm/i915/i915_sysfs.c       |  36 +-
 drivers/gpu/drm/i915/intel_csr.c        |   5 -
 drivers/gpu/drm/i915/intel_drv.h        |   1 +
 drivers/gpu/drm/i915/intel_guc_loader.c |   8 +
 drivers/gpu/drm/i915/intel_pipe_crc.c   |  88 +--
 drivers/gpu/drm/i915/intel_pm.c         | 116 +++-
 drivers/gpu/drm/i915/intel_slpc.c       | 970 ++++++++++++++++++++++++++++++++
 drivers/gpu/drm/i915/intel_slpc.h       | 274 +++++++++
 drivers/gpu/drm/i915/intel_uc.c         |  69 ++-
 drivers/gpu/drm/i915/intel_uc.h         |   7 +
 18 files changed, 1765 insertions(+), 93 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

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2017-03-23  4:54 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-22 10:03 [PATCH v7 00/21] Add support for GuC-based SLPC Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 01/21] drm/i915/debugfs: Create generic string tokenize function and update CRC control parsing Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 02/21] drm/i915/gen9+: Separate RPS and RC6 handling Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 03/21] drm/i915/slpc: Add has_slpc capability flag Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 04/21] drm/i915/slpc: Add enable_slpc module parameter Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 05/21] drm/i915/slpc: Sanitize GuC version Sagar Arun Kamble
2017-03-22 15:18   ` Michal Wajdeczko
2017-03-22 15:30     ` Joonas Lahtinen
2017-03-23  4:54       ` Kamble, Sagar A
2017-03-22 10:03 ` [PATCH v7 06/21] drm/i915/slpc: Lay out SLPC init/enable/disable/cleanup helpers Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 07/21] drm/i915/slpc: Enable SLPC in GuC if supported Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 08/21] drm/i915/slpc: Add SLPC communication interfaces Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 09/21] drm/i915/slpc: Add parameter set/unset/get, task control/status functions Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 10/21] drm/i915/slpc: Allocate/Release/Initialize SLPC shared data Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 11/21] drm/i915/slpc: Send RESET event to enable SLPC Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 12/21] drm/i915/slpc: Send SHUTDOWN event Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 13/21] drm/i915/slpc: Add support for min/max frequency control Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 14/21] drm/i915/slpc: Add debugfs support to read/write/revert the parameters Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 15/21] drm/i915/slpc: Add enable/disable controls for SLPC tasks Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 16/21] drm/i915/slpc: Add i915_slpc_info to debugfs Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 17/21] drm/i915/slpc: Add SLPC banner to RPS debugfs interfaces Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 18/21] drm/i915/slpc: Add SKL SLPC Support Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 19/21] drm/i915/slpc: Add Broxton SLPC support Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 20/21] drm/i915/slpc: Add Kabylake " Sagar Arun Kamble
2017-03-22 10:03 ` [PATCH v7 21/21] drm/i915/slpc: Enable SLPC, where supported Sagar Arun Kamble
2017-03-22 10:20 ` ✓ Fi.CI.BAT: success for Add support for GuC-based SLPC (rev9) Patchwork

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).