All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Damien Lespiau <damien.lespiau@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Double check ring is idle before declaring the GPU wedged
Date: Mon, 11 Aug 2014 13:34:11 +0200	[thread overview]
Message-ID: <20140811113411.GO8727@phenom.ffwll.local> (raw)
In-Reply-To: <20140811100710.GA21988@strange.ger.corp.intel.com>

On Mon, Aug 11, 2014 at 11:07:10AM +0100, Damien Lespiau wrote:
> On Mon, Aug 11, 2014 at 10:35:25AM +0100, Chris Wilson wrote:
> > On Mon, Aug 11, 2014 at 10:30:09AM +0100, Damien Lespiau wrote:
> > > On Mon, Aug 11, 2014 at 09:21:35AM +0100, Chris Wilson wrote:
> > > > During ring initialisation, sometimes we observe, though not in
> > > > production hardware, that the idle flag is not set even though the ring
> > > > is empty. Double check before giving up.
> > > > 
> > > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > > > Cc: Damien Lespiau <damien.lespiau@intel.com>
> > > > ---
> > > >  drivers/gpu/drm/i915/intel_ringbuffer.c | 7 ++++++-
> > > >  1 file changed, 6 insertions(+), 1 deletion(-)
> > > > 
> > > > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> > > > index a0831c309eab..d72d5e0e693d 100644
> > > > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> > > > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> > > > @@ -467,7 +467,12 @@ static bool stop_ring(struct intel_engine_cs *ring)
> > > >  		I915_WRITE_MODE(ring, _MASKED_BIT_ENABLE(STOP_RING));
> > > >  		if (wait_for((I915_READ_MODE(ring) & MODE_IDLE) != 0, 1000)) {
> > > >  			DRM_ERROR("%s : timed out trying to stop ring\n", ring->name);
> > > > -			return false;
> > > > +			/* Sometimes we observe that the idle flag is not
> > > > +			 * set even though the ring is empty. So double
> > > > +			 * check before giving up.
> > > > +			 */
> > > > +			if (I915_READ_HEAD(ring) != I915_READ_TAIL(ring))
> > > > +				return false;
> > > 
> > > That means we propably want to just put the user visible error message
> > > there as well?
> > 
> > It is still a 1 second timeout, so having a warning there that something
> > is wrong is important I thought.
> 
> Ah, I missed the "not in production hw" bits of the commit message, It
> may mean simulation and then the guess is that flag is not implemented.
> If that makes us not totally give up, I guess that's something.
> 
> Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>

Queued for -next, thanks for the patch.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

      parent reply	other threads:[~2014-08-11 11:33 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-11  8:21 [PATCH] drm/i915: Double check ring is idle before declaring the GPU wedged Chris Wilson
2014-08-11  9:30 ` Damien Lespiau
2014-08-11  9:35   ` Chris Wilson
2014-08-11 10:07     ` Damien Lespiau
2014-08-11 10:14       ` Chris Wilson
2014-08-11 11:34       ` Daniel Vetter [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140811113411.GO8727@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=damien.lespiau@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.