> -----Original Message-----
> From: intel-gvt-dev [mailto:[email protected]] On
> Behalf Of Dong, Chuanxiao
> Sent: Thursday, March 9, 2017 9:28 AM
> To: Chris Wilson <[email protected]>; [email protected]
> Cc: [email protected]; Wang, Zhi A
> <[email protected]>; Zhenyu Wang <[email protected]>
> Subject: RE: [PATCH] drm/i915/gvt: Remove bogus retry around
> i915_wait_request
> 
> 
> 
> > -----Original Message-----
> > From: Chris Wilson [mailto:[email protected]] On Behalf Of
> > Chris Wilson
> > Sent: Thursday, March 9, 2017 6:08 AM
> > To: [email protected]
> > Cc: [email protected]; Chris Wilson <chris@chris-
> > wilson.co.uk>; Dong, Chuanxiao <[email protected]>; Zhenyu
> Wang
> > <[email protected]>; Wang, Zhi A <[email protected]>
> > Subject: [PATCH] drm/i915/gvt: Remove bogus retry around
> > i915_wait_request
> >
> > 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);
> 
> Thanks Chris for pointing this out. So per the comment, i915_wait_request
> will make sure to return until the request completed, even if a GPU hang
> happened and replay occurred during i915_wait_request(), this function will
> only return after the replay completed, right?

Hi Chris, ping for the above question. I guess the answer is "yes"?

Thanks
Chuanxiao

> 
> >
> >  complete:
> >             gvt_dbg_sched("will complete workload %p, status: %d\n",
> > --
> > 2.11.0
> 
> _______________________________________________
> intel-gvt-dev mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/intel-gvt-dev
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to