All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/6] drm/i915: Finish the wait-for-wedge by retiring all the inflight requests
@ 2018-03-07 13:42 Chris Wilson
  2018-03-07 13:42 ` [PATCH 2/6] drm/i915: Reset ring space estimate after unwinding the request Chris Wilson
                   ` (7 more replies)
  0 siblings, 8 replies; 19+ messages in thread
From: Chris Wilson @ 2018-03-07 13:42 UTC (permalink / raw)
  To: intel-gfx

Before we reset the GPU after marking the device as wedged, we wait for
all the remaining requests to be completed (and marked as EIO).
Afterwards, we should flush the request lists so the next batch start
with the driver in an idle start.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_gem.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index a5bd07338b46..30cd07ebcb8e 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3273,7 +3273,8 @@ bool i915_gem_unset_wedged(struct drm_i915_private *i915)
 	if (!test_bit(I915_WEDGED, &i915->gpu_error.flags))
 		return true;
 
-	/* Before unwedging, make sure that all pending operations
+	/*
+	 * Before unwedging, make sure that all pending operations
 	 * are flushed and errored out - we may have requests waiting upon
 	 * third party fences. We marked all inflight requests as EIO, and
 	 * every execbuf since returned EIO, for consistency we want all
@@ -3291,7 +3292,8 @@ bool i915_gem_unset_wedged(struct drm_i915_private *i915)
 			if (!rq)
 				continue;
 
-			/* We can't use our normal waiter as we want to
+			/*
+			 * We can't use our normal waiter as we want to
 			 * avoid recursively trying to handle the current
 			 * reset. The basic dma_fence_default_wait() installs
 			 * a callback for dma_fence_signal(), which is
@@ -3306,8 +3308,11 @@ bool i915_gem_unset_wedged(struct drm_i915_private *i915)
 				return false;
 		}
 	}
+	i915_retire_requests(i915);
+	GEM_BUG_ON(i915->gt.active_requests);
 
-	/* Undo nop_submit_request. We prevent all new i915 requests from
+	/*
+	 * Undo nop_submit_request. We prevent all new i915 requests from
 	 * being queued (by disallowing execbuf whilst wedged) so having
 	 * waited for all active requests above, we know the system is idle
 	 * and do not have to worry about a thread being inside
-- 
2.16.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2018-03-09 14:23 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-07 13:42 [PATCH 1/6] drm/i915: Finish the wait-for-wedge by retiring all the inflight requests Chris Wilson
2018-03-07 13:42 ` [PATCH 2/6] drm/i915: Reset ring space estimate after unwinding the request Chris Wilson
2018-03-09 13:17   ` Mika Kuoppala
2018-03-09 13:42     ` Chris Wilson
2018-03-09 13:20   ` Chris Wilson
2018-03-07 13:42 ` [PATCH 3/6] drm/i915: Update ring position from request on retiring Chris Wilson
2018-03-09 13:38   ` Mika Kuoppala
2018-03-09 13:56     ` Chris Wilson
2018-03-07 13:42 ` [PATCH 4/6] drm/i915: Include ring->emit in debugging Chris Wilson
2018-03-09 13:41   ` Mika Kuoppala
2018-03-07 13:42 ` [PATCH 5/6] drm/i915: Wrap engine->schedule in RCU locks for set-wedge protection Chris Wilson
2018-03-09 13:49   ` Mika Kuoppala
2018-03-07 13:42 ` [PATCH 6/6] drm/i915: Only call tasklet_kill() on the first prepare_reset Chris Wilson
2018-03-09 14:01   ` Mika Kuoppala
2018-03-09 14:10   ` Chris Wilson
2018-03-09 14:22     ` Chris Wilson
2018-03-07 14:31 ` ✓ Fi.CI.BAT: success for series starting with [1/6] drm/i915: Finish the wait-for-wedge by retiring all the inflight requests Patchwork
2018-03-07 16:55 ` ✓ Fi.CI.IGT: " Patchwork
2018-03-09 12:54 ` [PATCH 1/6] " Mika Kuoppala

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.