[Intel-gfx] [PATCH 042/190] drm/i915: Clean up GPU hang message
Chris Wilson
chris at chris-wilson.co.uk
Mon Jan 11 01:16:53 PST 2016
Remove some redundant kernel messages as we deduce a hung GPU and
capture the error state.
v2: Fix "hang" vs "no progress" message whilst I was there
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
drivers/gpu/drm/i915/i915_irq.c | 21 +++++++--------------
1 file changed, 7 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index d9757d227c86..ce52d7d9ad91 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -3031,8 +3031,7 @@ static void i915_hangcheck_elapsed(struct work_struct *work)
struct drm_device *dev = dev_priv->dev;
struct intel_engine_cs *ring;
int i;
- int busy_count = 0, rings_hung = 0;
- bool stuck[I915_NUM_RINGS] = { 0 };
+ int busy_count = 0;
#define BUSY 1
#define KICK 5
#define HUNG 20
@@ -3108,7 +3107,6 @@ static void i915_hangcheck_elapsed(struct work_struct *work)
break;
case HANGCHECK_HUNG:
ring->hangcheck.score += HUNG;
- stuck[i] = true;
break;
}
}
@@ -3134,17 +3132,12 @@ static void i915_hangcheck_elapsed(struct work_struct *work)
busy_count += busy;
}
- for_each_ring(ring, dev_priv, i) {
- if (ring->hangcheck.score >= HANGCHECK_SCORE_RING_HUNG) {
- DRM_INFO("%s on %s\n",
- stuck[i] ? "stuck" : "no progress",
- ring->name);
- rings_hung++;
- }
- }
-
- if (rings_hung)
- return i915_handle_error(dev, true, "Ring hung");
+ for_each_ring(ring, dev_priv, i)
+ if (ring->hangcheck.score >= HANGCHECK_SCORE_RING_HUNG)
+ return i915_handle_error(dev, true,
+ "%s on %s",
+ ring->hangcheck.action == HANGCHECK_HUNG ? "Hang" : "No progress" ,
+ ring->name);
/* Reset timer in case GPU hangs without another request being added */
if (busy_count)
--
2.7.0.rc3
More information about the Intel-gfx
mailing list