[Intel-gfx] [PATCH 4/7] drm/i915: add batch bo to i915_add_request()
Chris Wilson
chris at chris-wilson.co.uk
Wed Jun 12 12:09:50 CEST 2013
On Wed, Jun 12, 2013 at 12:35:31PM +0300, Mika Kuoppala wrote:
> In order to track down a batch buffer and context which
> caused the ring to hang, store reference to bo into the request struct.
> Request can also cause gpu to hang after the batch in the flush section
> in the ring. To detect this add start of the flush portion offset into the
> request.
>
> Signed-off-by: Mika Kuoppala <mika.kuoppala at intel.com>
> ---
> @@ -2041,8 +2043,10 @@ int __i915_add_request(struct intel_ring_buffer *ring,
>
> request->seqno = intel_ring_get_seqno(ring);
> request->ring = ring;
> + request->head = request_start;
> request->tail = request_ring_position;
> request->ctx = ring->last_context;
> + request->batch_obj = obj;
This could do with a comment explaining the lifetimes of the request vs
batch_obj, and so justifying why we do not need a reference count.
/* Whilst this request exists, batch_obj will be on the
* active_list, and so will hold the active reference. Only when this
* request is retired will the the batch_obj be moved onto the
* inactive_list and lose its active reference. Hence we do not need
* to explicitly hold another reference here.
*/
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list