Quoting Mika Kuoppala (2019-06-14 15:34:21) > > @@ -296,14 +296,8 @@ static void __i915_schedule(struct i915_sched_node *node, > > GEM_BUG_ON(node_to_request(node)->engine != engine); > > > > node->attr.priority = prio; > > - if (!list_empty(&node->link)) { > > - GEM_BUG_ON(intel_engine_is_virtual(engine)); > > - if (!cache.priolist) > > - cache.priolist = > > - i915_sched_lookup_priolist(engine, > > - prio); > > - list_move_tail(&node->link, cache.priolist); > > - } else { > > + > > + if (list_empty(&node->link)) { > > /* > > * If the request is not in the priolist queue because > > * it is not yet runnable, then it doesn't contribute > > @@ -312,8 +306,16 @@ static void __i915_schedule(struct i915_sched_node *node, > > * queue; but in that case we may still need to reorder > > * the inflight requests. > > */ > > - if (!i915_sw_fence_done(&node_to_request(node)->submit)) > > - continue; > > Was smooth ride until here. Where did this go? > > > + continue; > > + } > > + > > + if (!intel_engine_is_virtual(engine) && > > + !i915_request_is_active(node_to_request(node))) { > > Is this the replacement? But it is now inside the virtual check which > was bug on previously. Yes. It is because we are reusing rq->sched.link now, and keeping the rq->link as solely a link along rq->timeline->requests. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx