aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/gt/intel_engine_pm.c
diff options
context:
space:
mode:
authorChris Wilson <[email protected]>2020-07-31 16:48:31 +0100
committerJoonas Lahtinen <[email protected]>2020-09-07 13:29:32 +0300
commitc18636f76344fd544c5b444d030a2d1d74bb0103 (patch)
tree91091de6d4226582bf94acd687a898cadf00aefc /drivers/gpu/drm/i915/gt/intel_engine_pm.c
parentaf5c6fcf403288e8656143549881c3eb716cae53 (diff)
drm/i915: Remove requirement for holding i915_request.lock for breadcrumbs
Since the breadcrumb enabling/cancelling itself is serialised by the breadcrumbs.irq_lock, with a bit of care we can remove the outer serialisation with i915_request.lock for concurrent dma_fence_enable_signaling(). This has the important side-effect of eliminating the nested i915_request.lock within request submission. The challenge in serialisation is around the unsubmission where we take an active request that wants a breadcrumb on the signaling engine and put it to sleep. We do not want a concurrent dma_fence_enable_signaling() to attach a breadcrumb as we unsubmit, so we must mark the request as no longer active before serialising with the concurrent enable-signaling. On retire, we serialise with the concurrent enable-signaling, but instead of clearing ACTIVE, we mark it as SIGNALED. Signed-off-by: Chris Wilson <[email protected]> Cc: Tvrtko Ursulin <[email protected]> Reviewed-by: Tvrtko Ursulin <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] Signed-off-by: Rodrigo Vivi <[email protected]> [Joonas: Rebased and reordered into drm-intel-gt-next branch] Signed-off-by: Joonas Lahtinen <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/i915/gt/intel_engine_pm.c')
0 files changed, 0 insertions, 0 deletions