commit 8f1117abb408 ("drm/i915/gvt: handle workload lifecycle properly")
includes some nonsense to retry a indefinite wait - i915_wait_request()
does not return until the request is completed when used from an
uninterruptible context.

Fixes: 8f1117abb408 ("drm/i915/gvt: handle workload lifecycle properly"
Signed-off-by: Chris Wilson <[email protected]>
Cc: Chuanxiao Dong <[email protected]>
Cc: Zhenyu Wang <[email protected]>
Cc: Zhi Wang <[email protected]>
---
 drivers/gpu/drm/i915/gvt/scheduler.c | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c 
b/drivers/gpu/drm/i915/gvt/scheduler.c
index cfd9f7a38c27..8024904c0d58 100644
--- a/drivers/gpu/drm/i915/gvt/scheduler.c
+++ b/drivers/gpu/drm/i915/gvt/scheduler.c
@@ -465,19 +465,7 @@ static int workload_thread(void *priv)
 
                gvt_dbg_sched("ring id %d wait workload %p\n",
                                workload->ring_id, workload);
-retry:
-               i915_wait_request(workload->req,
-                                        0, MAX_SCHEDULE_TIMEOUT);
-               /* I915 has replay mechanism and a request will be replayed
-                * if there is i915 reset. So the seqno will be updated anyway.
-                * If the seqno is not updated yet after waiting, which means
-                * the replay may still be in progress and we can wait again.
-                */
-               if (!i915_gem_request_completed(workload->req)) {
-                       gvt_dbg_sched("workload %p not completed, wait again\n",
-                                       workload);
-                       goto retry;
-               }
+               i915_wait_request(workload->req, 0, MAX_SCHEDULE_TIMEOUT);
 
 complete:
                gvt_dbg_sched("will complete workload %p, status: %d\n",
-- 
2.11.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to