From: Daniel Vetter <daniel@ffwll.ch>
To: Chris Wilson <chris@chris-wilson.co.uk>,
Daniel Vetter <daniel@ffwll.ch>,
"O'Rourke, Tom" <Tom.O'Rourke@intel.com>,
intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 1/2] drm/i915: Use efficient frequency for HSW/BDW
Date: Wed, 12 Nov 2014 09:37:52 +0100 [thread overview]
Message-ID: <20141112083751.GH25711@phenom.ffwll.local> (raw)
In-Reply-To: <20141111161222.GG8220@nuc-i3427.alporthouse.com>
On Tue, Nov 11, 2014 at 04:12:22PM +0000, Chris Wilson wrote:
> On Tue, Nov 11, 2014 at 04:13:09PM +0100, Daniel Vetter wrote:
> > On Sat, Nov 08, 2014 at 08:25:04AM +0000, Chris Wilson wrote:
> > > On Fri, Nov 07, 2014 at 02:25:38PM -0800, O'Rourke, Tom wrote:
> > > > On Fri, Nov 07, 2014 at 10:41:26AM +0000, Chris Wilson wrote:
> > > > > On Wed, Nov 05, 2014 at 05:31:34PM -0800, Tom.O'Rourke@intel.com wrote:
> > > > > > From: Tom O'Rourke <Tom.O'Rourke@intel.com>
> > > > > >
> > > > > > Updated gen6|8_enable_rps() for Haswell and Broadwell
> > > > > > to use the efficient frequency read from pcode.
> > > > > >
> > > > > > Added hsw_use_efficient_freq() to read efficient
> > > > > > frequency (aka RPe) from pcode. The efficiency is
> > > > > > based on the frequency/power ratio (MHz/W); this is
> > > > > > considering GT power and not package power. The
> > > > > > efficent frequency is the highest frequency for which
> > > > > > the frequency/power ratio is within some threshold of
> > > > > > the highest frequency/power ratio.
> > > > > >
> > > > > > Also set the min_freq_softlimit to the efficient
> > > > > > frequency. A fixed decrease in frequency results in
> > > > > > smaller decrease in power at frequencies less than RPe
> > > > > > than at frequencies above RPe.
> > > > > >
> > > > > > Signed-off-by: Tom O'Rourke <Tom.O'Rourke@intel.com>
> > > > > > ---
> > > > > > drivers/gpu/drm/i915/i915_reg.h | 1 +
> > > > > > drivers/gpu/drm/i915/intel_pm.c | 22 ++++++++++++++++++++++
> > > > > > 2 files changed, 23 insertions(+)
> > > > > >
> > > > > > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> > > > > > index d43fa0e..6fbfdec 100644
> > > > > > --- a/drivers/gpu/drm/i915/i915_reg.h
> > > > > > +++ b/drivers/gpu/drm/i915/i915_reg.h
> > > > > > @@ -6010,6 +6010,7 @@ enum punit_power_well {
> > > > > > #define GEN6_ENCODE_RC6_VID(mv) (((mv) - 245) / 5)
> > > > > > #define GEN6_DECODE_RC6_VID(vids) (((vids) * 5) + 245)
> > > > > > #define DISPLAY_IPS_CONTROL 0x19
> > > > > > +#define HSW_PCODE_DYNAMIC_DUTY_CYCLE_CONTROL 0x1A
> > > > > > #define GEN6_PCODE_DATA 0x138128
> > > > > > #define GEN6_PCODE_FREQ_IA_RATIO_SHIFT 8
> > > > > > #define GEN6_PCODE_FREQ_RING_RATIO_SHIFT 16
> > > > > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> > > > > > index 300d7e5..e4347d9 100644
> > > > > > --- a/drivers/gpu/drm/i915/intel_pm.c
> > > > > > +++ b/drivers/gpu/drm/i915/intel_pm.c
> > > > > > @@ -4706,6 +4706,18 @@ static void parse_rp_state_cap(struct drm_i915_private *dev_priv, u32 rp_state_c
> > > > > > dev_priv->rps.min_freq_softlimit = dev_priv->rps.min_freq;
> > > > > > }
> > > > > >
> > > > > > +static void hsw_use_efficient_freq(struct drm_i915_private *dev_priv)
> > > > >
> > > > > use_efficient_freq() ?
> > > > >
> > > > > Shouldn't this be:
> > > > >
> > > > > parse_rp_state_cap()
> > > > > {
> > > > > ...
> > > > > dev_priv->rps.efficient_freq = rps_rpe_freq(dev_priv);
> > > > > ...
> > > > > }
> > > > >
> > > > The parse_rp_state_cap() function is for parsing the
> > > > RP_STATE_CAP register. The pcode read to get the
> > > > efficient frequency seems out of scope.
> > >
> > > Rename it then. The function that sets rpe seems to be the ideal point
> > > to set rpe...
> >
> > Well reading the rpe value seems to be platforms specific. I think
> > updating the comment as I've suggested is good enough, even when not
> > really pretty.
>
> So why not add it to piece of platform specific code we already had for
> the rpe value?
>
> Besides which the point that use_efficient_freq() is a poor function
> name seems to have fallen by the wayside.
Ok I've actually looked at the code and vlv/chv is completely separate. So
yeah I think best to drop the default value from parse_rp_state_cap, drop
the use_efficient_freq func and just open-code stuff like in vlv with an
if/else. Less code, less comments (no more XXX, yay!) and should be
clearer.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - 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:[~2014-11-12 8:37 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-06 1:31 [PATCH 0/2] Update turbo (rps) min frequency for HSW/BDW Tom.O'Rourke
2014-11-06 1:31 ` [PATCH 1/2] drm/i915: Use efficient " Tom.O'Rourke
2014-11-07 9:50 ` Daniel Vetter
2014-11-07 22:20 ` O'Rourke, Tom
2014-11-11 15:11 ` Daniel Vetter
2014-11-07 10:41 ` Chris Wilson
2014-11-07 22:25 ` O'Rourke, Tom
2014-11-08 8:25 ` Chris Wilson
2014-11-11 15:13 ` Daniel Vetter
2014-11-11 16:12 ` Chris Wilson
2014-11-12 8:37 ` Daniel Vetter [this message]
2014-11-06 1:31 ` [PATCH 2/2] drm/i915: Keep min freq above floor on HSW/BDW Tom.O'Rourke
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=20141112083751.GH25711@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=Tom.O'Rourke@intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=intel-gfx@lists.freedesktop.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.