[Intel-gfx] [PATCH 3/3] drm/i915: Record error state capture reason

Chris Wilson chris at chris-wilson.co.uk
Wed Feb 12 09:13:50 CET 2014


On Tue, Feb 11, 2014 at 06:32:24PM -0800, Ben Widawsky wrote:
> > @@ -3234,7 +3241,9 @@ static irqreturn_t i8xx_irq_handler(int irq, void *arg)
> >  		 */
> >  		spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
> >  		if (iir & I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT)
> > -			i915_handle_error(dev, false);
> > +			i915_handle_error(dev, false,
> > +					  "Command parser error, iir 0x%08x",
> > +					  iir);
> >  
> >  		for_each_pipe(pipe) {
> >  			int reg = PIPESTAT(pipe);
> > @@ -3416,7 +3425,9 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
> >  		 */
> >  		spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
> >  		if (iir & I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT)
> > -			i915_handle_error(dev, false);
> > +			i915_handle_error(dev, false,
> > +					  "Command parser error, iir 0x%08x",
> > +					  iir);
> >  
> >  		for_each_pipe(pipe) {
> >  			int reg = PIPESTAT(pipe);
> > @@ -3653,7 +3664,9 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
> >  		 */
> >  		spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
> >  		if (iir & I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT)
> > -			i915_handle_error(dev, false);
> > +			i915_handle_error(dev, false,
> > +					  "Command parser error, iir 0x%08x",
> > +					  iir);
> >  
> 
> Since you're not directly using any of the DRM_ printers, we lose the
> file/line. Would you care to add __FILE__/__LINE? I think it would be
> helpful - not sure what others thing.

In a user-facing message, I don't think so. In the error state we have
the GPU generation and reason, so we know which irq handler fired in
that case. I don't see what extra information func:line gives us since
the messenger (the irq handler) is pretty uninteresting wrt the hang.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list