On Wed, Aug 10, 2016 at 03:19:34PM +0300, Mika Kuoppala wrote: > Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> 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 <chris@xxxxxxxxxxxxxxxxxx> > > Link: http://patchwork.freedesktop.org/patch/msgid/1470414607-32453-2-git-send-email-arun.siluvery@xxxxxxxxxxxxxxx > > --- > > 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@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx