On Thu, Oct 22, 2015 at 05:49:56PM +0100, Dave Gordon wrote: > On 19/10/15 16:32, Tomas Elf wrote: > >Grab execlist lock when cleaning up execlist queues after GPU reset to avoid > >concurrency problems between the context event interrupt handler and the reset > >path immediately following a GPU reset. > > > >* v2 (Chris Wilson): > >Do execlist check and use simpler form of spinlock functions. > > > >Signed-off-by: Tomas Elf <tomas.elf@xxxxxxxxx> > >--- > > drivers/gpu/drm/i915/i915_gem.c | 23 ++++++++++++++--------- > > 1 file changed, 14 insertions(+), 9 deletions(-) > > LGTM. > > Reviewed-by: Dave Gordon <david.s.gordon@xxxxxxxxx> Queued for -next, thanks for the patch. -Daniel > > >diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > >index e57061a..2c7a0b7 100644 > >--- a/drivers/gpu/drm/i915/i915_gem.c > >+++ b/drivers/gpu/drm/i915/i915_gem.c > >@@ -2753,18 +2753,23 @@ static void i915_gem_reset_ring_cleanup(struct drm_i915_private *dev_priv, > > * are the ones that keep the context and ringbuffer backing objects > > * pinned in place. > > */ > >- while (!list_empty(&ring->execlist_queue)) { > >- struct drm_i915_gem_request *submit_req; > > > >- submit_req = list_first_entry(&ring->execlist_queue, > >- struct drm_i915_gem_request, > >- execlist_link); > >- list_del(&submit_req->execlist_link); > >+ if (i915.enable_execlists) { > >+ spin_lock_irq(&ring->execlist_lock); > >+ while (!list_empty(&ring->execlist_queue)) { > >+ struct drm_i915_gem_request *submit_req; > > > >- if (submit_req->ctx != ring->default_context) > >- intel_lr_context_unpin(submit_req); > >+ submit_req = list_first_entry(&ring->execlist_queue, > >+ struct drm_i915_gem_request, > >+ execlist_link); > >+ list_del(&submit_req->execlist_link); > > > >- i915_gem_request_unreference(submit_req); > >+ if (submit_req->ctx != ring->default_context) > >+ intel_lr_context_unpin(submit_req); > >+ > >+ i915_gem_request_unreference(submit_req); > >+ } > >+ spin_unlock_irq(&ring->execlist_lock); > > } > > > > /* > > > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx