summaryrefslogtreecommitdiff
path: root/drivers/connector
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2019-09-23 16:28:43 +0100
committerRodrigo Vivi <rodrigo.vivi@intel.com>2019-10-09 14:39:30 -0700
commit68184eb7b09640ac84aeefe31923d70d1fa07292 (patch)
treea3febfb1ddc909b879a32005ba4e2d5d2289e7b9 /drivers/connector
parenta8385f0c3fd3f31ab53726e26229b428d18a51bf (diff)
drm/i915: Fixup preempt-to-busy vs reset of a virtual request
Due to the nature of preempt-to-busy the execlists active tracking and the schedule queue may become temporarily desync'ed (between resubmission to HW and its ack from HW). This means that we may have unwound a request and passed it back to the virtual engine, but it is still inflight on the HW and may even result in a GPU hang. If we detect that GPU hang and try to reset, the hanging request->engine will no longer match the current engine, which means that the request is not on the execlists active list and we should not try to find an older incomplete request. Given that we have deduced this must be a request on a virtual engine, it is the single active request in the context and so must be guilty (as the context is still inflight, it is prevented from being executed on another engine as we process the reset). Fixes: 22b7a426bbe1 ("drm/i915/execlists: Preempt-to-busy") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190923152844.8914-2-chris@chris-wilson.co.uk (cherry picked from commit cb2377a919bbe8107af269c5a31a8d5cfb27d867) Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Diffstat (limited to 'drivers/connector')
0 files changed, 0 insertions, 0 deletions