[Intel-gfx] [PATCH 2/3] drm/i915: Always propagate the invocation to i915_schedule

Mika Kuoppala mika.kuoppala at linux.intel.com
Fri Mar 6 10:05:30 UTC 2020


Chris Wilson <chris at chris-wilson.co.uk> writes:

> We only call i915_schedule() when we know we have changed the priority
> on a request and so require to propagate any change in priority to its
> signalers (for PI). By unconditionally checking all of our signalers, we
> avoid skipping changes made prior to construction of the request (as the
> request may be waited upon before submission when used in parallel).
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

Reviewed-by: Mika Kuoppala <mika.kuoppala at linux.intel.com>

> ---
>  drivers/gpu/drm/i915/i915_scheduler.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_scheduler.c b/drivers/gpu/drm/i915/i915_scheduler.c
> index be770f2419b1..52f71e83e088 100644
> --- a/drivers/gpu/drm/i915/i915_scheduler.c
> +++ b/drivers/gpu/drm/i915/i915_scheduler.c
> @@ -227,10 +227,10 @@ static void kick_submission(struct intel_engine_cs *engine,
>  static void __i915_schedule(struct i915_sched_node *node,
>  			    const struct i915_sched_attr *attr)
>  {
> +	const int prio = max(attr->priority, node->attr.priority);
>  	struct intel_engine_cs *engine;
>  	struct i915_dependency *dep, *p;
>  	struct i915_dependency stack;
> -	const int prio = attr->priority;
>  	struct sched_cache cache;
>  	LIST_HEAD(dfs);
>  
> @@ -238,9 +238,6 @@ static void __i915_schedule(struct i915_sched_node *node,
>  	lockdep_assert_held(&schedule_lock);
>  	GEM_BUG_ON(prio == I915_PRIORITY_INVALID);
>  
> -	if (prio <= READ_ONCE(node->attr.priority))
> -		return;
> -
>  	if (node_signaled(node))
>  		return;
>  
> -- 
> 2.25.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list