[Intel-gfx] hsw rps values regress RPS on Macbook Air

Chris Wilson chris at chris-wilson.co.uk
Tue Oct 16 17:17:44 CEST 2012


On Tue, 09 Oct 2012 13:05:54 -0700, Eric Anholt <eric at anholt.net> wrote:
> On my new MBA with danvet's drm-intel-next-queued, I'm not getting
> working RPS.  vblank_mode=0 glxgears never ups the frequency, and
> vblank_mode=0 openarena only makes it up to 500mhz.  Reverting
> 1ee9ae3244c4789f3184c5123f3b2d7e405b3f4c gets the machine to responsive
> RPS: fully on while the GPU is busy, fully lowered when it's not.

I can confirm this. The issue is that whilst a GL client is active we
never seen a subsequent RPS interrupt, neither up nor down. In
particular, it is the value of UP_EI that throws us off, even though
we do not use the EI mode for determing RPS interrupts.

diff --git a/drivers/gpu/drm/i915/intel_pm.c
b/drivers/gpu/drm/i915/intel_pm.c
index 6b2ea80..4e5fc33 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -2492,7 +2492,7 @@ static void gen6_enable_rps(struct drm_device *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_UP_EI, 100000);
        I915_WRITE(GEN6_RP_DOWN_EI, 350000);
 
        I915_WRITE(GEN6_RP_IDLE_HYSTERSIS, 10);

> Since we're always just looking for all-on or all-off and never see
> workloads that actually want to be somewhere in between, could we please
> just move to race to idle for RPS?

I believe that is more or less the purpose of the AGGRESSIVE_TURBO policy
that is enabled by default, but as with anything to do with RPS the
absence of documentation is remarkable.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list