Message ID | 1466416707-12075-1-git-send-email-michal.winiarski@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Jun 20, 2016 at 11:58:27AM +0200, Michał Winiarski wrote: > If the GPU load is low enough, it's possible that we'll be stuck at idle > frequency rather than transition into softmin frequency requested by > userspace. > > v2: Use intel_set_rps, drop vlv_set_idle > v3: Back to vlv_set_idle, clamp to valid range > v4: Place intel_set_rps at the end > > References: https://bugs.freedesktop.org/show_bug.cgi?id=89728 > Cc: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Imre Deak <imre.deak@intel.com> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> > Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Mind resending this so we get proper CI results? And include the output of pm_rps (since presumably we do fix a bug...) -Chris
On Mon, Jun 20, 2016 at 05:55:16PM +0100, Chris Wilson wrote: > On Mon, Jun 20, 2016 at 11:58:27AM +0200, Michał Winiarski wrote: > > If the GPU load is low enough, it's possible that we'll be stuck at idle > > frequency rather than transition into softmin frequency requested by > > userspace. > > > > v2: Use intel_set_rps, drop vlv_set_idle > > v3: Back to vlv_set_idle, clamp to valid range > > v4: Place intel_set_rps at the end > > > > References: https://bugs.freedesktop.org/show_bug.cgi?id=89728 > > Cc: Chris Wilson <chris@chris-wilson.co.uk> > > Cc: Imre Deak <imre.deak@intel.com> > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> > > Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> > > Mind resending this so we get proper CI results? And include the output > of pm_rps (since presumably we do fix a bug...) I gambled and pushed. -Chris
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index 658a756..c94521cc 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -4844,6 +4844,12 @@ void gen6_rps_busy(struct drm_i915_private *dev_priv) gen6_rps_reset_ei(dev_priv); I915_WRITE(GEN6_PMINTRMSK, gen6_rps_pm_mask(dev_priv, dev_priv->rps.cur_freq)); + + /* Ensure we start at the user's desired frequency */ + intel_set_rps(dev_priv, + clamp(dev_priv->rps.cur_freq, + dev_priv->rps.min_freq_softlimit, + dev_priv->rps.max_freq_softlimit)); } mutex_unlock(&dev_priv->rps.hw_lock); }