[Intel-gfx] [PATCH 2/3] drm/i915: Boost RPS frequency for CPU stalls

Chris Wilson chris at chris-wilson.co.uk
Wed Oct 2 02:33:24 CEST 2013


On Tue, Oct 01, 2013 at 03:39:40PM -0700, Jesse Barnes wrote:
> On Tue, 1 Oct 2013 23:23:32 +0100
> Chris Wilson <chris at chris-wilson.co.uk> wrote:
> 
> > On Tue, Oct 01, 2013 at 02:54:26PM -0700, Jesse Barnes wrote:
> > > On Wed, 25 Sep 2013 17:34:56 +0100
> > > Chris Wilson <chris at chris-wilson.co.uk> wrote:
> > > 
> > > > +void gen6_rps_idle(struct drm_i915_private *dev_priv)
> > > > +{
> > > > +	mutex_lock(&dev_priv->rps.hw_lock);
> > > > +	if (dev_priv->info->is_valleyview)
> > > > +		valleyview_set_rps(dev_priv->dev, dev_priv->rps.min_delay);
> > > > +	else
> > > > +		gen6_set_rps(dev_priv->dev, dev_priv->rps.min_delay);
> > > > +	mutex_unlock(&dev_priv->rps.hw_lock);
> > > > +}
> > > 
> > > Looks pretty good, but I think these should be rpe_delay instead.  Not
> > > much point in going down to a less efficient frequency...
> > 
> > Less efficient for what? My concern here is only with power draw when
> > idle. As soon as we start to render again (well very shortly afterwards
> > with this particular iteration) we bump up to rpe and then beyond.
> > 
> > Correct me if I am wrong but rpe is an inflection point rather than a
> > minumum?
> 
> So yes, running at a lower than RPe freq will use less power, but it'll
> also be less efficient (perf/power) than doing the same rendering at
> RPe.

Right, so I think so long as autotuning works, we can run at low power,
low efficiency for as long as that is capable of sustaining the desired
throughput and latency. And the heuristics we have here are pretty good
at detecting when more power is required.

> But if we're really idle, RC6 will kick in and the freq won't matter
> (as long as it gets down to RPe anyway, since on VLV that's the only
> way we'll get down to Vmin when we shut down).

I guess we do have one issue whereby min_delay can be overriden by the
user. So perhaps that should be rpn, or maybe it would be clearer as
vmin_delay.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list