Message ID | 1464012583-22480-1-git-send-email-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, May 23, 2016 at 05:09:41PM +0300, ville.syrjala@linux.intel.com wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > SNB (and IVB too I suppose) starts to misbehave if the GPU gets stuck > in an infinite batch buffer loop. The GPU apparently hogs something > critical and CPUs start to lose interrupts and whatnot. We can keep > the system limping along by unmasking some interrupts in > GEN6_PMINTRMSK. The EI up interrupt has been previously chosen for > that task, so let's never mask it. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/i915/intel_pm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > index 29bdd79d9039..576e98744a2d 100644 > --- a/drivers/gpu/drm/i915/intel_pm.c > +++ b/drivers/gpu/drm/i915/intel_pm.c > @@ -4719,7 +4719,7 @@ void gen6_rps_idle(struct drm_i915_private *dev_priv) > else > gen6_set_rps(dev_priv, dev_priv->rps.idle_freq); > dev_priv->rps.last_adj = 0; > - I915_WRITE(GEN6_PMINTRMSK, 0xffffffff); > + I915_WRITE(GEN6_PMINTRMSK, gen6_rps_pm_mask(dev_priv, ~0)); gen6_sanitize_rps_pm_mask() With that, Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> -Chris
On Mon, May 23, 2016 at 03:30:04PM +0100, Chris Wilson wrote: > On Mon, May 23, 2016 at 05:09:41PM +0300, ville.syrjala@linux.intel.com wrote: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > SNB (and IVB too I suppose) starts to misbehave if the GPU gets stuck > > in an infinite batch buffer loop. The GPU apparently hogs something > > critical and CPUs start to lose interrupts and whatnot. We can keep > > the system limping along by unmasking some interrupts in > > GEN6_PMINTRMSK. The EI up interrupt has been previously chosen for > > that task, so let's never mask it. > > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > --- > > drivers/gpu/drm/i915/intel_pm.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > > index 29bdd79d9039..576e98744a2d 100644 > > --- a/drivers/gpu/drm/i915/intel_pm.c > > +++ b/drivers/gpu/drm/i915/intel_pm.c > > @@ -4719,7 +4719,7 @@ void gen6_rps_idle(struct drm_i915_private *dev_priv) > > else > > gen6_set_rps(dev_priv, dev_priv->rps.idle_freq); > > dev_priv->rps.last_adj = 0; > > - I915_WRITE(GEN6_PMINTRMSK, 0xffffffff); > > + I915_WRITE(GEN6_PMINTRMSK, gen6_rps_pm_mask(dev_priv, ~0)); > > gen6_sanitize_rps_pm_mask() Doh. That's what I had on the other machine. Shouldn't copy patches by retyping them by hand. > > With that, > Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> > -Chris > > -- > Chris Wilson, Intel Open Source Technology Centre
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index 29bdd79d9039..576e98744a2d 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -4719,7 +4719,7 @@ void gen6_rps_idle(struct drm_i915_private *dev_priv) else gen6_set_rps(dev_priv, dev_priv->rps.idle_freq); dev_priv->rps.last_adj = 0; - I915_WRITE(GEN6_PMINTRMSK, 0xffffffff); + I915_WRITE(GEN6_PMINTRMSK, gen6_rps_pm_mask(dev_priv, ~0)); } mutex_unlock(&dev_priv->rps.hw_lock);