On Wed, Nov 12, 2014 at 10:53:26AM +0000, Nick Hoath wrote:
                seq_putc(m, '\n');
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index afa9c35..0fe238c 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -2027,6 +2027,28 @@ struct drm_i915_gem_request {
>       struct list_head free_list;
>  
>       uint32_t uniq;
> +
> +     /**
> +      * The ELSP only accepts two elements at a time, so we queue 
> context/tail
> +      * pairs on a given queue (ring->execlist_queue) until the hardware is
> +      * available. The queue serves a double purpose: we also use it to keep 
> track
> +      * of the up to 2 contexts currently in the hardware (usually one in 
> execution
> +      * and the other queued up by the GPU): We only remove elements from 
> the head
> +      * of the queue when the hardware informs us that an element has been
> +      * completed.
> +      *
> +      * All accesses to the queue are mediated by a spinlock 
> (ring->execlist_lock).
> +      */
> +
> +     /** Execlist link in the submission queue.*/
> +     struct list_head execlist_link;

This is redundant. The request should only be one of the pending or active
lists at any time.

> +     /** Execlists workqueue for processing this request in a bottom half */
> +     struct work_struct work;

For what purpose? This is not needed.

> +     /** Execlists no. of times this request has been sent to the ELSP */
> +     int elsp_submitted;

A request can only be submitted exactly once at any time. This
bookkeeping is not part of the request.

Still not detangled I am afraid.
-Chris

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

Reply via email to