[Intel-gfx] [PATCH 56/59] drm/i915: Remove 'faked' request from LRC submission

Daniel, Thomas thomas.daniel at intel.com
Thu Mar 19 08:02:04 PDT 2015


> -----Original Message-----
> From: Intel-gfx [mailto:intel-gfx-bounces at lists.freedesktop.org] On Behalf Of
> John.C.Harrison at Intel.com
> Sent: Thursday, March 19, 2015 12:31 PM
> To: Intel-GFX at Lists.FreeDesktop.Org
> Subject: [Intel-gfx] [PATCH 56/59] drm/i915: Remove 'faked' request from LRC
> submission
> 
> From: John Harrison <John.C.Harrison at Intel.com>
> 
> The LRC submission code requires a request for tracking purposes. It does not
> actually require that request to 'complete' it simply uses it for keeping hold
> of reference counts on contexts and such like.
> 
> Previously, the fall back path of polling for space in the ring would start by
> submitting any outstanding work that was sat in the buffer. This submission was
> not done as part of the request that that work was owned by because that
> would
> lead to complications with the request being submitted twice. Instead, a null
> request structure was passed in to the submit call and a fake one was created.
> 
> That fall back path has long since been obsoleted and has now been removed.
> Thus
> there is never any need to fake up a request structure. This patch removes that
> code. A couple of sanity check warnings are added as well, just in case.
> 
> For: VIZ-5115
> Signed-off-by: John Harrison <John.C.Harrison at Intel.com>
> ---
>  drivers/gpu/drm/i915/intel_lrc.c |   22 +++++-----------------
>  1 file changed, 5 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index f21f449..82190ad 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -507,23 +507,11 @@ static int execlists_context_queue(struct
> intel_engine_cs *ring,
>  	if (to != ring->default_context)
>  		intel_lr_context_pin(ring, to);
> 
> -	if (!request) {
> -		/*
> -		 * If there isn't a request associated with this submission,
> -		 * create one as a temporary holder.
> -		 */
> -		request = kzalloc(sizeof(*request), GFP_KERNEL);
> -		if (request == NULL)
> -			return -ENOMEM;
> -		request->ring = ring;
> -		request->ctx = to;
> -		kref_init(&request->ref);
> -		request->uniq = dev_priv->request_uniq++;
> -		i915_gem_context_reference(request->ctx);
> -	} else {
> -		i915_gem_request_reference(request);
> -		WARN_ON(to != request->ctx);
> -	}
> +	WARN_ON(!request);
> +	WARN_ON(to != request->ctx);
> +
> +	i915_gem_request_reference(request);
> +
>  	request->tail = tail;
> 
>  	intel_runtime_pm_get(dev_priv);
> --
> 1.7.9.5
I need this to fix a leak in a forthcoming patch I have.  Thanks!
Reviewed-by: Thomas Daniel <thomas.daniel at intel.com>



More information about the Intel-gfx mailing list