From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: hsw rps values regress RPS on Macbook Air Date: Tue, 16 Oct 2012 16:17:44 +0100 Message-ID: <6c3329$6per52@orsmga002.jf.intel.com> References: <87626jv2al.fsf@eliezer.anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 791FB9F50C for ; Tue, 16 Oct 2012 08:18:04 -0700 (PDT) In-Reply-To: <87626jv2al.fsf@eliezer.anholt.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Eric Anholt , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Tue, 09 Oct 2012 13:05:54 -0700, Eric Anholt 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