Any comments? This issue impact the preemption enabling in host, without the schedule out notification, vgpu will run into wrong state. Thanks -Weinan > -----Original Message----- > From: Li, Weinan Z > Sent: Saturday, February 24, 2018 11:00 AM > To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: intel-gvt-dev@xxxxxxxxxxxxxxxxxxxxx; Li, Weinan Z > <weinan.z.li@xxxxxxxxx>; Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>; Zhenyu > Wang <zhenyuw@xxxxxxxxxxxxxxx> > Subject: [PATCH v2] drm/i915: add schedule out notification of preempted > but completed request > > There is one corner case missing schedule out notification of the preempted > request. The preempted request is just completed when preemption > happen, then it will be canceled and won't be resubmitted later, GVT-g will > lost the schedule out notification. > > Here add schedule out notification if found the preempted request has been > completed. > > v2: > - refine description, add completed check and notification in > execlists_cancel_port_requests. (Chris) > > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Weinan Li <weinan.z.li@xxxxxxxxx> > Signed-off-by: Zhenyu Wang <zhenyuw@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_lrc.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_lrc.c > b/drivers/gpu/drm/i915/intel_lrc.c > index e781c91..24a6e68 100644 > --- a/drivers/gpu/drm/i915/intel_lrc.c > +++ b/drivers/gpu/drm/i915/intel_lrc.c > @@ -657,10 +657,16 @@ static void execlists_dequeue(struct > intel_engine_cs *engine) > > while (num_ports-- && port_isset(port)) { > struct i915_request *rq = port_request(port); > + unsigned int notify; > > GEM_BUG_ON(!execlists->active); > intel_engine_context_out(rq->engine); > - execlists_context_status_change(rq, > INTEL_CONTEXT_SCHEDULE_PREEMPTED); > + > + notify = INTEL_CONTEXT_SCHEDULE_PREEMPTED; > + if (i915_request_completed(rq)) > + notify = INTEL_CONTEXT_SCHEDULE_OUT; > + execlists_context_status_change(rq, notify); > + > i915_request_put(rq); > > memset(port, 0, sizeof(*port)); > -- > 1.9.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx