Skip to content

Commit

Permalink
drm/i915: Add a few asserts around handling of i915_request_is_active()
Browse files Browse the repository at this point in the history
Let's assert that we only call the execute callbacks on making the
request active, and that we do not execute the request without calling
the callbacks.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200529085809.23691-1-chris@chris-wilson.co.uk
  • Loading branch information
Chris Wilson committed May 29, 2020
1 parent a227569 commit 98b7067
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions drivers/gpu/drm/i915/i915_request.c
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ static void __notify_execute_cb(struct i915_request *rq)

lockdep_assert_held(&rq->lock);

GEM_BUG_ON(!i915_request_is_active(rq));
if (llist_empty(&rq->execute_cb))
return;

Expand Down Expand Up @@ -518,15 +519,15 @@ bool __i915_request_submit(struct i915_request *request)
if (!test_and_set_bit(I915_FENCE_FLAG_ACTIVE, &request->fence.flags)) {
list_move_tail(&request->sched.link, &engine->active.requests);
clear_bit(I915_FENCE_FLAG_PQUEUE, &request->fence.flags);
__notify_execute_cb(request);
}
GEM_BUG_ON(!llist_empty(&request->execute_cb));

if (test_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT, &request->fence.flags) &&
!test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &request->fence.flags) &&
!i915_request_enable_breadcrumb(request))
intel_engine_signal_breadcrumbs(engine);

__notify_execute_cb(request);

spin_unlock(&request->lock);

return result;
Expand Down

0 comments on commit 98b7067

Please sign in to comment.