提交 7e44fc28 编写于 作者: C Chris Wilson

drm/i915/execlists: Notify context-out for lost requests

When cancelling requests, also send the notification to any listeners
(gvt) that the request is no longer scheduled on hw. They may require to
keep the in/out exactly balanced, and so the reuse after the reset may
confuse the listener.

Fixes: 221ab971 ("drm/i915/execlists: Unwind incomplete requests on resets")
Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
Cc: "Zhenyu Wang" <zhenyuw@linux.intel.com>
Cc: "Wang, Zhi A" <zhi.a.wang@intel.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170926101720.9479-1-chris@chris-wilson.co.ukReviewed-by: NMika Kuoppala <mika.kuoppala@linux.intel.com>
上级 4e9767bc
...@@ -578,7 +578,11 @@ execlist_cancel_port_requests(struct intel_engine_execlists *execlists) ...@@ -578,7 +578,11 @@ execlist_cancel_port_requests(struct intel_engine_execlists *execlists)
unsigned int num_ports = ARRAY_SIZE(execlists->port); unsigned int num_ports = ARRAY_SIZE(execlists->port);
while (num_ports-- && port_isset(port)) { while (num_ports-- && port_isset(port)) {
i915_gem_request_put(port_request(port)); struct drm_i915_gem_request *rq = port_request(port);
execlists_context_status_change(rq, INTEL_CONTEXT_SCHEDULE_OUT);
i915_gem_request_put(rq);
memset(port, 0, sizeof(*port)); memset(port, 0, sizeof(*port));
port++; port++;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册