]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/gt: Move the defer_request waiter active assertion
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 25 Jan 2021 14:00:57 +0000 (14:00 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 24 Mar 2021 18:30:35 +0000 (19:30 +0100)
commit184d52bb79e75f5d3b40c7f9f424db8a65da3d14
treea02b57b232ab9dca4ab954446b43340f8b7c3e6d
parent0dad8cc0eba390e47f4921062e1e2ee58d830c4d
drm/i915/gt: Move the defer_request waiter active assertion

In defer_request() we start with the request we just unsubmitted (that
should be the active request on the gpu) and then defer all of its
waiters. No waiter should be ahead of the active request, so none should
be marked as active. That assert failed.

Of particular note this machine was undergoing persistent GPU resets due
to underlying HW issues, so that may be a clue. A request is also marked
as active when it is retired, regardless of current queue status, and so
this assertion failure may be a result of the queue being completed by
the reset and then subsequently processed by the tasklet.

We can filter out retired requests here by doing the assertion check
after the is-ready check (active is a subset of being ready).

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2978
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/20210125140136.10494-2-chris@chris-wilson.co.uk
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/gt/intel_execlists_submission.c