[Intel-gfx] [PATCH] drm/i915: use hsw rps tuning values everywhere on gen6+
Paul Menzel
paulepanter at users.sourceforge.net
Wed Aug 15 16:05:00 CEST 2012
Am Mittwoch, den 15.08.2012, 10:41 +0200 schrieb Daniel Vetter:
> James Bottomley reported [1] a massive power regression, due to the
> enabling of semaphores by default in 3.5. A workaround for him is to
> again disable semaphores. And indeed, his system has a very hard time
> to entre rc6 with semaphores enabled.
s,entre,enter,
> Ben Widawsky run around with a kill-a-watt a lot and noticed:
> - There are indeed a few rare systems that seem to have a hard time
> entering rc6 when desktop-idle.
> - One machine, The Indestructible Toshiba regressed in this behaviour
Never heard that Toshiba name.
> between 3.5 and 3.6 in a merge commit! So rc6 behaviour with the
> current setting seems to be highly timing dependent and not robust
> at all.
> - The behaviour James reported wrt semaphores seems to be a freak
> timing thing that only happens on his specific machine, confirming
> that enabling semaphores shouldn't reduce rc6 residency.
>
> Now furthermore the Google ChromeOS guys reported [2] a while ago that
> at least on some machines a simply a blinking cursor can keep the gpu
> turbo at the highest frequency. This is because the current rps limits
> used on snb/ivb are highly asymmetric.
>
> On the theory that gpu turbo and rc6 tuning values are related, we've
> tried whether the much saner looking (since much less asymmetric) rps
> tuning values used for hsw would also help entering rc6 more robustly.
>
> And it seems to work.
>
> Reference[1]: http://lists.freedesktop.org/archives/dri-devel/2012-July/025675.html
> Reference[2]: http://lists.freedesktop.org/archives/intel-gfx/2012-July/018692.html
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53393
> Tested-by: Ben Widawsky <ben at bwidawsk.net>
Did James already confirm, that this fixes his problem?
> Cc: stable at vger.kernel.org
> Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> ---
> drivers/gpu/drm/i915/intel_pm.c | 15 ++++-----------
> 1 file changed, 4 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index d64dffb..cf10a1d 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -2482,17 +2482,10 @@ static void gen6_enable_rps(struct drm_device *dev)
> dev_priv->rps.max_delay << 24 |
> dev_priv->rps.min_delay << 16);
>
> - if (IS_HASWELL(dev)) {
> - I915_WRITE(GEN6_RP_UP_THRESHOLD, 59400);
> - I915_WRITE(GEN6_RP_DOWN_THRESHOLD, 245000);
> - I915_WRITE(GEN6_RP_UP_EI, 66000);
> - I915_WRITE(GEN6_RP_DOWN_EI, 350000);
> - } else {
> - I915_WRITE(GEN6_RP_UP_THRESHOLD, 10000);
> - I915_WRITE(GEN6_RP_DOWN_THRESHOLD, 1000000);
> - I915_WRITE(GEN6_RP_UP_EI, 100000);
> - I915_WRITE(GEN6_RP_DOWN_EI, 5000000);
> - }
> + I915_WRITE(GEN6_RP_UP_THRESHOLD, 59400);
> + I915_WRITE(GEN6_RP_DOWN_THRESHOLD, 245000);
> + I915_WRITE(GEN6_RP_UP_EI, 66000);
> + I915_WRITE(GEN6_RP_DOWN_EI, 350000);
>
> I915_WRITE(GEN6_RP_IDLE_HYSTERSIS, 10);
> I915_WRITE(GEN6_RP_CONTROL,
Acked-by: Paul Menzel <paulepanter at users.sourceforge.net>
Thanks,
Paul
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20120815/43c0afd9/attachment.sig>
More information about the Intel-gfx
mailing list