[Intel-gfx] [PATCH 8/8] drm/i915: Keep track of reserved execlist ports
Chris Wilson
chris at chris-wilson.co.uk
Tue Sep 12 09:35:32 UTC 2017
Quoting Mika Kuoppala (2017-09-12 09:36:18)
> @@ -1351,12 +1363,16 @@ static void reset_common_ring(struct intel_engine_cs *engine,
> return;
> }
>
> - if (request->ctx != port_request(port)->ctx) {
> - i915_gem_request_put(port_request(port));
> - execlist_port_complete(el, port);
> - }
> + if (execlist_active_ports(el)) {
> + struct execlist_port *port = execlist_port_head(el);
>
> - GEM_BUG_ON(request->ctx != port_request(port)->ctx);
This needs a FIXME at least.
For starters we need to drop requests until the ctx match (i.e. while
(rq->ctx != port_request(port)->ctx)) and then we have the issue that we
may have the same ctx multiple times in an N slot elsp. So
while (rq->ctx != port_rquest(port)->ctx || i915_gem_request_completed(port_request(port)))
?
-Chris
More information about the Intel-gfx
mailing list