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