On Wed, Aug 10, 2016 at 03:19:34PM +0300, Mika Kuoppala wrote:
> Chris Wilson <ch...@chris-wilson.co.uk> writes:
> 
> > Not only does it make for good documentation and debugging aide, but it is
> > also vital for when we want to unwind requests - such as when throwing away
> > an incomplete request.
> >
> > Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
> > Link: 
> > http://patchwork.freedesktop.org/patch/msgid/1470414607-32453-2-git-send-email-arun.siluv...@linux.intel.com
> > ---
> >  drivers/gpu/drm/i915/i915_drv.h         |  1 +
> >  drivers/gpu/drm/i915/i915_gem_request.c | 13 +++++++++----
> >  drivers/gpu/drm/i915/i915_gpu_error.c   |  6 ++++--
> >  3 files changed, 14 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_drv.h 
> > b/drivers/gpu/drm/i915/i915_drv.h
> > index feec00f769e1..040c3b6300ac 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.h
> > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > @@ -557,6 +557,7 @@ struct drm_i915_error_state {
> >             struct drm_i915_error_request {
> >                     long jiffies;
> >                     u32 seqno;
> > +                   u32 head;
> >                     u32 tail;
> >             } *requests;
> >  
> > diff --git a/drivers/gpu/drm/i915/i915_gem_request.c 
> > b/drivers/gpu/drm/i915/i915_gem_request.c
> > index 6a1661643d3d..6c2553715263 100644
> > --- a/drivers/gpu/drm/i915/i915_gem_request.c
> > +++ b/drivers/gpu/drm/i915/i915_gem_request.c
> > @@ -391,6 +391,13 @@ i915_gem_request_alloc(struct intel_engine_cs *engine,
> >     if (ret)
> >             goto err_ctx;
> >  
> > +   /* Record the position of the start of the request so that
> > +    * should we detect the updated seqno part-way through the
> > +    * GPU processing the request, we never over-estimate the
> > +    * position of the head.
> > +    */
> > +   req->head = req->ring->tail;
> > +
> >     return req;
> >  
> >  err_ctx:
> > @@ -467,8 +474,6 @@ void __i915_add_request(struct drm_i915_gem_request 
> > *request,
> >  
> >     trace_i915_gem_request_add(request);
> >  
> > -   request->head = request_start;
> 
> Nuke the local request_start also?

Not quite. It still is used for making sure that the emission during
i915_add_request() fits within the reserved space. There is no other
convenient marker.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to