[Intel-gfx] [PATCH 2/2] drm/i915: load a ring frequency scaling table

Jesse Barnes jbarnes at virtuousgeek.org
Tue Jun 28 19:40:49 CEST 2011


On Mon, 27 Jun 2011 10:54:48 -0700
Eric Anholt <eric at anholt.net> wrote:

> > +	for (gpu_freq = dev_priv->max_delay; gpu_freq >= dev_priv->min_delay;
> > +	     gpu_freq--) {
> > +		int diff = dev_priv->max_delay - gpu_freq;
> > +
> > +		/*
> > +		 * For GPU frequencies less than 750MHz, just use the lowest
> > +		 * ring freq.
> > +		 */
> > +		if (gpu_freq < min_freq)
> > +			ia_freq = 800;
> > +		else
> > +			ia_freq = max_ia_freq - ((diff * scaling_factor) / 2);
> > +		ia_freq = DIV_ROUND_CLOSEST(ia_freq, 100);  
> 
> If the GPU has a wide enough clock range (diff large) and the CPU is low
> enough clocked (max_ia_freq low now), could we end up with the ia_freq <
> 800, and would that be a bad thing?  In other words, should
> scaling_factor be non-constant?

scaling_factor probably should be non-constant, but I don't know what
function it should follow.

ia_freq < 800 shouldn't break anything, but would probably result in
sub-optimal GPU performance.  OTOH it would save power...

-- 
Jesse Barnes, Intel Open Source Technology Center



More information about the Intel-gfx mailing list