From: Daniel Vetter <daniel@ffwll.ch>
To: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: intel-gfx@lists.freedesktop.org, Tom O'Rourke <Tom.O'Rourke@intel.com>
Subject: Re: [RFC 00/22] Add support for GuC-based SLPC
Date: Tue, 26 Jan 2016 18:00:10 +0100 [thread overview]
Message-ID: <20160126170010.GE11240@phenom.ffwll.local> (raw)
In-Reply-To: <56A794A6.20804@virtuousgeek.org>
On Tue, Jan 26, 2016 at 07:45:42AM -0800, Jesse Barnes wrote:
> On 01/22/2016 09:00 AM, Daniel Vetter wrote:
> > On Wed, Jan 20, 2016 at 06:26:02PM -0800, tom.orourke@intel.com wrote:
> >> 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 is a first request for comments. This series
> >> is not expected to be merged. After changes based on
> >> comments, a later patch series will be sent for merging.
> >>
> >> This series has been tested with SKL guc firmware
> >> versions 4.3 and 4.7. The graphics power management
> >> features in SLPC in those versions are DFPS (Dynamic FPS),
> >> Turbo, and DCC (Duty Cycle Control). DFPS adjusts
> >> requested graphics frequency to maintain target framerate.
> >> Turbo adjusts requested graphics frequency to maintain
> >> target GT busyness. DCC adjusts requested graphics
> >> frequency and stalls guc-scheduler to maintain actual
> >> graphics frequency in efficient range.
> >
> > Either it's been forever long ago or I missed that meeting, so I'll drop
> > my big arch concerns here. We probably need to discuss this internally, at
> > least the benchmark data. Two big items:
> >
> > - How does GuC measure fps rendered to the screen? More specifically, how
> > does it figure out that we missed a frame and kick the throttle up?
>
> Yeah, this has been covered before, both in the design review and with
> the GuC team; I don't think the DFPS feature is ready for Linux usage
> yet, or at least not generally, since afaik it doesn't have a way to
> monitor offscreen rendering at all, so may end up keeping the GPU freq
> lower than it needs to be when several clients are rendering to
> offscreen buffers and passing them to the compositor (depending on the
> compositor behavior at least).
There's also all kinds of issues with the current design, like:
- kernel knows when exactly we missed the vblank to display the next
frame, guc can only control for average fps.
- all the fun you mention about multiple clients.
- what if we have more than 1 display running at different fps?
I'd say we need to keep the boost-deboost stuff alive, e.g. by manually
telling guc that the we want different limits, then resetting those limits
again after the boost is done. Same for fast idling - kernel simply has a
better idea if anyone is about to submit more work (we have execbuf hints
for specific workloads like libva).
Of course this assumes that guc slpc actually obeys our new limit requests
fast enough, so we'd still need to benchmark to make sure it's not slower
than what we have.
> > - This patch series seems to remove the limiting abilities, and also
> > completely no-ops out our boost/deboost features. Can we recover these
> > features?
>
> This is a good question; if the GuC handles this it should probably be mentioned somewhere.
Limiting's still intact, spotted the code to set limits using guc in one of
the last patches. The boost-deboost is the big issue imo, also since it
interferes with our won missed-frame logic.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-01-26 17:00 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-21 2:26 [RFC 00/22] Add support for GuC-based SLPC tom.orourke
2016-01-21 2:26 ` [RFC 01/22] drm/i915: Enable GuC submission, where supported tom.orourke
2016-01-21 2:26 ` [RFC 02/22] drm/i915/slpc: Add has_slpc capability flag tom.orourke
2016-01-21 2:26 ` [RFC 03/22] drm/i915/slpc: Expose guc functions for use with SLPC tom.orourke
2016-01-21 2:26 ` [RFC 04/22] drm/i915/slpc: Use intel_slpc_* functions if supported tom.orourke
2016-01-21 2:26 ` [RFC 05/22] drm/i915/slpc: Enable/Disable RC6 in SLPC flows tom.orourke
2016-01-21 2:26 ` [RFC 06/22] drm/i915/slpc: If using SLPC, do not set frequency tom.orourke
2016-01-22 16:53 ` Daniel Vetter
2016-01-22 17:22 ` Daniel Vetter
2016-01-21 2:26 ` [RFC 07/22] drm/i915/slpc: Enable SLPC in guc if supported tom.orourke
2016-01-21 2:26 ` [RFC 08/22] drm/i915/slpc: Allocate/Release/Initialize SLPC shared data tom.orourke
2016-01-21 2:26 ` [RFC 09/22] drm/i915/slpc: Setup rps frequency values during SLPC init tom.orourke
2016-01-21 2:26 ` [RFC 10/22] drm/i915/slpc: Update current requested frequency tom.orourke
2016-01-21 2:26 ` [RFC 11/22] drm/i915/slpc: Send reset event tom.orourke
2016-01-21 2:26 ` [RFC 12/22] drm/i915/slpc: Send shutdown event tom.orourke
2016-01-21 2:26 ` [RFC 13/22] drm/i915/slpc: Add Display mode event related data structures tom.orourke
2016-01-21 2:26 ` [RFC 14/22] drm/i915/slpc: Notification of Display mode change tom.orourke
2016-01-21 13:24 ` Zanoni, Paulo R
2016-01-28 9:43 ` Kamble, Sagar A
2016-01-22 17:14 ` Ville Syrjälä
2016-01-29 5:00 ` Kamble, Sagar A
2016-01-21 2:26 ` [RFC 15/22] drm/i915/slpc: Notification of Refresh Rate change tom.orourke
2016-01-21 2:26 ` [RFC 16/22] drm/i915/slpc: Add slpc_status enum values tom.orourke
2016-01-21 2:26 ` [RFC 17/22] drm/i915/slpc: Add i915_slpc_info to debugfs tom.orourke
2016-01-21 2:26 ` [RFC 18/22] drm/i915/slpc: Add dfps task info to i915_slpc_info tom.orourke
2016-01-21 2:26 ` [RFC 19/22] drm/i915/slpc: Add parameter unset/set/get functions tom.orourke
2016-01-21 2:26 ` [RFC 20/22] drm/i915/slpc: Add slpc support for max/min freq tom.orourke
2016-01-21 2:26 ` [RFC 21/22] drm/i915/slpc: Add enable/disable debugfs for slpc tom.orourke
2016-01-21 2:26 ` [RFC 22/22] drm/i915/slpc: Add has_slpc to skylake info tom.orourke
2016-01-21 13:50 ` ✗ Fi.CI.BAT: failure for Add support for GuC-based SLPC Patchwork
2016-01-21 23:16 ` O'Rourke, Tom
2016-01-22 17:07 ` Daniel Vetter
2016-01-22 17:00 ` [RFC 00/22] " Daniel Vetter
2016-01-26 15:45 ` Jesse Barnes
2016-01-26 17:00 ` Daniel Vetter [this message]
2016-01-26 17:17 ` Jesse Barnes
2016-01-27 1:17 ` O'Rourke, Tom
2016-02-09 12:08 ` Martin Peres
2016-02-10 7:37 ` Daniel Vetter
2016-02-10 10:31 ` Martin Peres
2016-02-03 20:25 ` Zanoni, Paulo R
2016-02-09 7:03 ` Kamble, Sagar A
2016-02-11 20:10 ` Zanoni, Paulo R
2016-02-09 11:56 ` Martin Peres
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=20160126170010.GE11240@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=Tom.O'Rourke@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jbarnes@virtuousgeek.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.