-
- Downloads
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 <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by:
Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200731154834.8378-1-chris@chris-wilson.co.uk
Showing
- drivers/gpu/drm/i915/gt/intel_breadcrumbs.c 84 additions, 46 deletionsdrivers/gpu/drm/i915/gt/intel_breadcrumbs.c
- drivers/gpu/drm/i915/gt/intel_lrc.c 0 additions, 14 deletionsdrivers/gpu/drm/i915/gt/intel_lrc.c
- drivers/gpu/drm/i915/i915_request.c 16 additions, 23 deletionsdrivers/gpu/drm/i915/i915_request.c
Loading
Please register or sign in to comment