[Intel-gfx] [PATCH] drm/i915/scheduler: Assert that we do not have a dep cycle back to request
Michał Winiarski
michal.winiarski at intel.com
Thu Jan 11 09:38:53 UTC 2018
On Fri, Jan 05, 2018 at 02:13:22PM +0000, Chris Wilson wrote:
> When reprioritising a request, we build a list of its dependencies in
> topological order. This should leave our origin request as the first
> element in our list, if it moves we have a dependency cycle and severe
> breakage. Assert that it doesn't move.
>
> Complete, but expensive checking is done by swfence, this assert is more
> about documenting the topologically ordered list.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Michał Winiarski <michal.winiarski at intel.com>
Reviewed-by: Michał Winiarski <michal.winiarski at intel.com>
-Michał
> ---
> drivers/gpu/drm/i915/intel_lrc.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index 4e150b095a11..42705e3875cd 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -1050,6 +1050,13 @@ static void execlists_schedule(struct drm_i915_gem_request *request, int prio)
> }
> }
>
> + /*
> + * We should never have a dep cycle back to ourselves, leaving
> + * the original request as the origin of our topologically sorted
> + * list.
> + */
> + GEM_BUG_ON(list_first_entry(&dfs, typeof(stack), dfs_link) != &stack);
> +
> /*
> * If we didn't need to bump any existing priorities, and we haven't
> * yet submitted this request (i.e. there is no potential race with
> --
> 2.15.1
>
More information about the Intel-gfx
mailing list