Chris Wilson <[email protected]> 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 <[email protected]>

Reviewed-by: Mika Kuoppala <[email protected]>

> ---
>  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
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to