[Intel-gfx] [PATCH] drm/i915: Always flush the active worker before returning from the wait

Matthew Auld matthew.auld at intel.com
Fri Jan 22 10:27:21 UTC 2021


On 21/01/2021 23:28, Chris Wilson wrote:
> The first thing the active retirement worker does is decrement the
> i915_active count.
> 
> The first thing we do during i915_active_wait is try to increment the
> i915_active count, but only if already active [non-zero].
> 
> The wait may see that the retirement is already started and so marked the
> i915_active as idle, and skip waiting for the retirement handler.
> However, the caller of i915_active_wait may immediately free the
> i915_active upon returning (e.g. i915_vma_destroy) so we must not return
> before the concurrent access from the worker are completed. We must
> always flush the worker.
> 
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2473
> Fixes: 274cbf20fd10 ("drm/i915: Push the i915_active.retire into a worker")
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Matthew Auld <matthew.auld at intel.com>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> Cc: <stable at vger.kernel.org> # v5.5+
Reviewed-by: Matthew Auld <matthew.auld at intel.com>


More information about the Intel-gfx mailing list