All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomas Elf <tomas.elf@intel.com>
To: John.C.Harrison@Intel.com, Intel-GFX@Lists.FreeDesktop.Org
Subject: Re: [PATCH 49/53] drm/i915: Make intel_logical_ring_begin() static
Date: Mon, 09 Mar 2015 23:24:28 +0000	[thread overview]
Message-ID: <54FE2BAC.8040702@intel.com> (raw)
In-Reply-To: <1424366285-29232-50-git-send-email-John.C.Harrison@Intel.com>

On 19/02/2015 17:18, John.C.Harrison@Intel.com wrote:
> From: John Harrison <John.C.Harrison@Intel.com>
>
> The only usage of intel_logical_ring_begin() is within intel_lrc.c so it can be
> made static. To avoid a forward declaration at the top of the file, it and bunch
> of other functions have been shuffled upwards.
>
> For: VIZ-5115
> Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
> ---
>   drivers/gpu/drm/i915/intel_lrc.c |  394 +++++++++++++++++++-------------------
>   drivers/gpu/drm/i915/intel_lrc.h |    3 -
>   2 files changed, 197 insertions(+), 200 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index 5212b54..b40501d 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -606,6 +606,203 @@ static int execlists_move_to_gpu(struct drm_i915_gem_request *req,
>   	return logical_ring_invalidate_all_caches(req);
>   }
>
> +static int logical_ring_wait_request(struct intel_ringbuffer *ringbuf,
> +				     int bytes)
> +{
> +	struct intel_engine_cs *ring = ringbuf->ring;
> +	struct drm_i915_gem_request *request;
> +	int ret;
> +
> +	if (intel_ring_space(ringbuf) >= bytes)
> +		return 0;
> +
> +	list_for_each_entry(request, &ring->request_list, list) {
> +		/*
> +		 * The request queue is per-engine, so can contain requests
> +		 * from multiple ringbuffers. Here, we must ignore any that
> +		 * aren't from the ringbuffer we're considering.
> +		 */
> +		struct intel_context *ctx = request->ctx;
> +		if (ctx->engine[ring->id].ringbuf != ringbuf)
> +			continue;
> +
> +		/* Would completion of this request free enough space? */
> +		if (__intel_ring_space(request->tail, ringbuf->tail,
> +				       ringbuf->size) >= bytes) {
> +			break;
> +		}
> +	}
> +
> +	if (&request->list == &ring->request_list)
> +		return -ENOSPC;
> +
> +	ret = i915_wait_request(request);
> +	if (ret)
> +		return ret;
> +
> +	i915_gem_retire_requests_ring(ring);
> +
> +	return intel_ring_space(ringbuf) >= bytes ? 0 : -ENOSPC;
> +}
> +
> +/*
> + * intel_logical_ring_advance_and_submit() - advance the tail and submit the workload
> + * @ringbuf: Logical Ringbuffer to advance.
> + *
> + * The tail is updated in our logical ringbuffer struct, not in the actual context. What
> + * really happens during submission is that the context and current tail will be placed
> + * on a queue waiting for the ELSP to be ready to accept a new context submission. At that
> + * point, the tail *inside* the context is updated and the ELSP written to.
> + */
> +static void
> +intel_logical_ring_advance_and_submit(struct intel_ringbuffer *ringbuf,
> +				      struct intel_context *ctx,
> +				      struct drm_i915_gem_request *request)
> +{
> +	struct intel_engine_cs *ring = ringbuf->ring;
> +
> +	intel_logical_ring_advance(ringbuf);
> +
> +	if (intel_ring_stopped(ring))
> +		return;
> +
> +	execlists_context_queue(ring, ctx, ringbuf->tail, request);
> +}
> +
> +static int logical_ring_wait_for_space(struct intel_ringbuffer *ringbuf,
> +				       struct intel_context *ctx,
> +				       int bytes)
> +{
> +	struct intel_engine_cs *ring = ringbuf->ring;
> +	struct drm_device *dev = ring->dev;
> +	struct drm_i915_private *dev_priv = dev->dev_private;
> +	unsigned long end;
> +	int ret;
> +
> +	ret = logical_ring_wait_request(ringbuf, bytes);
> +	if (ret != -ENOSPC)
> +		return ret;
> +
> +	/* Force the context submission in case we have been skipping it */
> +	intel_logical_ring_advance_and_submit(ringbuf, ctx, NULL);
> +
> +	/* With GEM the hangcheck timer should kick us out of the loop,
> +	 * leaving it early runs the risk of corrupting GEM state (due
> +	 * to running on almost untested codepaths). But on resume
> +	 * timers don't work yet, so prevent a complete hang in that
> +	 * case by choosing an insanely large timeout. */
> +	end = jiffies + 60 * HZ;
> +
> +	ret = 0;
> +	do {
> +		if (intel_ring_space(ringbuf) >= bytes)
> +			break;
> +
> +		msleep(1);
> +
> +		if (dev_priv->mm.interruptible && signal_pending(current)) {
> +			ret = -ERESTARTSYS;
> +			break;
> +		}
> +
> +		ret = i915_gem_check_wedge(&dev_priv->gpu_error,
> +					   dev_priv->mm.interruptible);
> +		if (ret)
> +			break;
> +
> +		if (time_after(jiffies, end)) {
> +			ret = -EBUSY;
> +			break;
> +		}
> +	} while (1);
> +
> +	return ret;
> +}
> +
> +static int logical_ring_wrap_buffer(struct intel_ringbuffer *ringbuf,
> +				    struct intel_context *ctx)
> +{
> +	uint32_t __iomem *virt;
> +	int rem = ringbuf->size - ringbuf->tail;
> +
> +	if (ringbuf->space < rem) {
> +		int ret = logical_ring_wait_for_space(ringbuf, ctx, rem);
> +
> +		if (ret)
> +			return ret;
> +	}
> +
> +	virt = ringbuf->virtual_start + ringbuf->tail;
> +	rem /= 4;
> +	while (rem--)
> +		iowrite32(MI_NOOP, virt++);
> +
> +	ringbuf->tail = 0;
> +	intel_ring_update_space(ringbuf);
> +
> +	return 0;
> +}
> +
> +static int logical_ring_prepare(struct intel_ringbuffer *ringbuf,
> +				struct intel_context *ctx, int bytes)
> +{
> +	int ret;
> +
> +	if (unlikely(ringbuf->tail + bytes > ringbuf->effective_size)) {
> +		ret = logical_ring_wrap_buffer(ringbuf, ctx);
> +		if (unlikely(ret))
> +			return ret;
> +	}
> +
> +	if (unlikely(ringbuf->space < bytes)) {
> +		ret = logical_ring_wait_for_space(ringbuf, ctx, bytes);
> +		if (unlikely(ret))
> +			return ret;
> +	}
> +
> +	return 0;
> +}
> +
> +/**
> + * intel_logical_ring_begin() - prepare the logical ringbuffer to accept some commands
> + *
> + * @ringbuf: Logical ringbuffer.
> + * @num_dwords: number of DWORDs that we plan to write to the ringbuffer.
> + *
> + * The ringbuffer might not be ready to accept the commands right away (maybe it needs to
> + * be wrapped, or wait a bit for the tail to be updated). This function takes care of that
> + * and also preallocates a request (every workload submission is still mediated through
> + * requests, same as it did with legacy ringbuffer submission).
> + *
> + * Return: non-zero if the ringbuffer is not ready to be written to.
> + */
> +static int intel_logical_ring_begin(struct intel_ringbuffer *ringbuf,
> +				    struct intel_context *ctx, int num_dwords)
> +{
> +	struct drm_i915_gem_request *req;
> +	struct intel_engine_cs *ring = ringbuf->ring;
> +	struct drm_device *dev = ring->dev;
> +	struct drm_i915_private *dev_priv = dev->dev_private;
> +	int ret;
> +
> +	ret = i915_gem_check_wedge(&dev_priv->gpu_error,
> +				   dev_priv->mm.interruptible);
> +	if (ret)
> +		return ret;
> +
> +	ret = logical_ring_prepare(ringbuf, ctx, num_dwords * sizeof(uint32_t));
> +	if (ret)
> +		return ret;
> +
> +	/* Preallocate the olr before touching the ring */
> +	ret = intel_logical_ring_alloc_request(ring, ctx, &req);
> +	if (ret)
> +		return ret;
> +
> +	ringbuf->space -= num_dwords * sizeof(uint32_t);
> +	return 0;
> +}
> +
>   /**
>    * execlists_submission() - submit a batchbuffer for execution, Execlists style
>    * @dev: DRM device.
> @@ -783,30 +980,6 @@ int logical_ring_flush_all_caches(struct drm_i915_gem_request *req)
>   	return 0;
>   }
>
> -/*
> - * intel_logical_ring_advance_and_submit() - advance the tail and submit the workload
> - * @ringbuf: Logical Ringbuffer to advance.
> - *
> - * The tail is updated in our logical ringbuffer struct, not in the actual context. What
> - * really happens during submission is that the context and current tail will be placed
> - * on a queue waiting for the ELSP to be ready to accept a new context submission. At that
> - * point, the tail *inside* the context is updated and the ELSP written to.
> - */
> -static void
> -intel_logical_ring_advance_and_submit(struct intel_ringbuffer *ringbuf,
> -				      struct intel_context *ctx,
> -				      struct drm_i915_gem_request *request)
> -{
> -	struct intel_engine_cs *ring = ringbuf->ring;
> -
> -	intel_logical_ring_advance(ringbuf);
> -
> -	if (intel_ring_stopped(ring))
> -		return;
> -
> -	execlists_context_queue(ring, ctx, ringbuf->tail, request);
> -}
> -
>   static int intel_lr_context_pin(struct intel_engine_cs *ring,
>   		struct intel_context *ctx)
>   {
> @@ -901,179 +1074,6 @@ int intel_logical_ring_alloc_request(struct intel_engine_cs *ring,
>   	return 0;
>   }
>
> -static int logical_ring_wait_request(struct intel_ringbuffer *ringbuf,
> -				     int bytes)
> -{
> -	struct intel_engine_cs *ring = ringbuf->ring;
> -	struct drm_i915_gem_request *request;
> -	int ret;
> -
> -	if (intel_ring_space(ringbuf) >= bytes)
> -		return 0;
> -
> -	list_for_each_entry(request, &ring->request_list, list) {
> -		/*
> -		 * The request queue is per-engine, so can contain requests
> -		 * from multiple ringbuffers. Here, we must ignore any that
> -		 * aren't from the ringbuffer we're considering.
> -		 */
> -		struct intel_context *ctx = request->ctx;
> -		if (ctx->engine[ring->id].ringbuf != ringbuf)
> -			continue;
> -
> -		/* Would completion of this request free enough space? */
> -		if (__intel_ring_space(request->tail, ringbuf->tail,
> -				       ringbuf->size) >= bytes) {
> -			break;
> -		}
> -	}
> -
> -	if (&request->list == &ring->request_list)
> -		return -ENOSPC;
> -
> -	ret = i915_wait_request(request);
> -	if (ret)
> -		return ret;
> -
> -	i915_gem_retire_requests_ring(ring);
> -
> -	return intel_ring_space(ringbuf) >= bytes ? 0 : -ENOSPC;
> -}
> -
> -static int logical_ring_wait_for_space(struct intel_ringbuffer *ringbuf,
> -				       struct intel_context *ctx,
> -				       int bytes)
> -{
> -	struct intel_engine_cs *ring = ringbuf->ring;
> -	struct drm_device *dev = ring->dev;
> -	struct drm_i915_private *dev_priv = dev->dev_private;
> -	unsigned long end;
> -	int ret;
> -
> -	ret = logical_ring_wait_request(ringbuf, bytes);
> -	if (ret != -ENOSPC)
> -		return ret;
> -
> -	/* Force the context submission in case we have been skipping it */
> -	intel_logical_ring_advance_and_submit(ringbuf, ctx, NULL);
> -
> -	/* With GEM the hangcheck timer should kick us out of the loop,
> -	 * leaving it early runs the risk of corrupting GEM state (due
> -	 * to running on almost untested codepaths). But on resume
> -	 * timers don't work yet, so prevent a complete hang in that
> -	 * case by choosing an insanely large timeout. */
> -	end = jiffies + 60 * HZ;
> -
> -	ret = 0;
> -	do {
> -		if (intel_ring_space(ringbuf) >= bytes)
> -			break;
> -
> -		msleep(1);
> -
> -		if (dev_priv->mm.interruptible && signal_pending(current)) {
> -			ret = -ERESTARTSYS;
> -			break;
> -		}
> -
> -		ret = i915_gem_check_wedge(&dev_priv->gpu_error,
> -					   dev_priv->mm.interruptible);
> -		if (ret)
> -			break;
> -
> -		if (time_after(jiffies, end)) {
> -			ret = -EBUSY;
> -			break;
> -		}
> -	} while (1);
> -
> -	return ret;
> -}
> -
> -static int logical_ring_wrap_buffer(struct intel_ringbuffer *ringbuf,
> -				    struct intel_context *ctx)
> -{
> -	uint32_t __iomem *virt;
> -	int rem = ringbuf->size - ringbuf->tail;
> -
> -	if (ringbuf->space < rem) {
> -		int ret = logical_ring_wait_for_space(ringbuf, ctx, rem);
> -
> -		if (ret)
> -			return ret;
> -	}
> -
> -	virt = ringbuf->virtual_start + ringbuf->tail;
> -	rem /= 4;
> -	while (rem--)
> -		iowrite32(MI_NOOP, virt++);
> -
> -	ringbuf->tail = 0;
> -	intel_ring_update_space(ringbuf);
> -
> -	return 0;
> -}
> -
> -static int logical_ring_prepare(struct intel_ringbuffer *ringbuf,
> -				struct intel_context *ctx, int bytes)
> -{
> -	int ret;
> -
> -	if (unlikely(ringbuf->tail + bytes > ringbuf->effective_size)) {
> -		ret = logical_ring_wrap_buffer(ringbuf, ctx);
> -		if (unlikely(ret))
> -			return ret;
> -	}
> -
> -	if (unlikely(ringbuf->space < bytes)) {
> -		ret = logical_ring_wait_for_space(ringbuf, ctx, bytes);
> -		if (unlikely(ret))
> -			return ret;
> -	}
> -
> -	return 0;
> -}
> -
> -/**
> - * intel_logical_ring_begin() - prepare the logical ringbuffer to accept some commands
> - *
> - * @ringbuf: Logical ringbuffer.
> - * @num_dwords: number of DWORDs that we plan to write to the ringbuffer.
> - *
> - * The ringbuffer might not be ready to accept the commands right away (maybe it needs to
> - * be wrapped, or wait a bit for the tail to be updated). This function takes care of that
> - * and also preallocates a request (every workload submission is still mediated through
> - * requests, same as it did with legacy ringbuffer submission).
> - *
> - * Return: non-zero if the ringbuffer is not ready to be written to.
> - */
> -int intel_logical_ring_begin(struct intel_ringbuffer *ringbuf,
> -			     struct intel_context *ctx, int num_dwords)
> -{
> -	struct drm_i915_gem_request *req;
> -	struct intel_engine_cs *ring = ringbuf->ring;
> -	struct drm_device *dev = ring->dev;
> -	struct drm_i915_private *dev_priv = dev->dev_private;
> -	int ret;
> -
> -	ret = i915_gem_check_wedge(&dev_priv->gpu_error,
> -				   dev_priv->mm.interruptible);
> -	if (ret)
> -		return ret;
> -
> -	ret = logical_ring_prepare(ringbuf, ctx, num_dwords * sizeof(uint32_t));
> -	if (ret)
> -		return ret;
> -
> -	/* Preallocate the olr before touching the ring */
> -	ret = intel_logical_ring_alloc_request(ring, ctx, &req);
> -	if (ret)
> -		return ret;
> -
> -	ringbuf->space -= num_dwords * sizeof(uint32_t);
> -	return 0;
> -}
> -
>   static int intel_logical_ring_workarounds_emit(struct drm_i915_gem_request *req)
>   {
>   	int ret, i;
> diff --git a/drivers/gpu/drm/i915/intel_lrc.h b/drivers/gpu/drm/i915/intel_lrc.h
> index 40848b0..dceecc6 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.h
> +++ b/drivers/gpu/drm/i915/intel_lrc.h
> @@ -65,9 +65,6 @@ static inline void intel_logical_ring_emit(struct intel_ringbuffer *ringbuf,
>   	iowrite32(data, ringbuf->virtual_start + ringbuf->tail);
>   	ringbuf->tail += 4;
>   }
> -int intel_logical_ring_begin(struct intel_ringbuffer *ringbuf,
> -			     struct intel_context *ctx,
> -			     int num_dwords);
>
>   /* Logical Ring Contexts */
>   void intel_lr_context_free(struct intel_context *ctx);
>

Reviewed-by: Tomas Elf <tomas.elf@intel.com>

Thanks,
Tomas
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2015-03-09 23:24 UTC|newest]

Thread overview: 234+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-13 11:48 [PATCH 00/51] Remove the outstanding_lazy_request John.C.Harrison
2015-02-13 11:48 ` [PATCH 01/51] drm/i915: Rename 'flags' to 'dispatch_flags' for better code reading John.C.Harrison
2015-02-25 21:34   ` Daniel Vetter
2015-02-27 12:14     ` John Harrison
2015-02-27 13:15       ` Daniel Vetter
2015-02-13 11:48 ` [PATCH 02/51] drm/i915: Add missing trace point to LRC execbuff code path John.C.Harrison
2015-02-13 11:48 ` [PATCH 03/51] drm/i915: Cache ringbuf pointer in request structure John.C.Harrison
2015-02-25 21:50   ` Daniel Vetter
2015-02-13 11:48 ` [PATCH 04/51] drm/i915: Merged the many do_execbuf() parameters into a structure John.C.Harrison
2015-02-25 21:52   ` Daniel Vetter
2015-02-27 12:22     ` John Harrison
2015-02-27 13:35       ` Daniel Vetter
2015-02-27 18:22         ` John Harrison
2015-02-27 18:43           ` Daniel Vetter
2015-02-13 11:48 ` [PATCH 05/51] drm/i915: Add return code check to i915_gem_execbuffer_retire_commands() John.C.Harrison
2015-02-25 22:17   ` Daniel Vetter
2015-02-26  2:26     ` Daniel Vetter
2015-03-05 13:06       ` John Harrison
2015-03-05 14:44         ` Daniel Vetter
2015-03-05 15:06           ` John Harrison
2015-03-05 16:14             ` Daniel Vetter
2015-03-06 11:38               ` John Harrison
2015-03-06 15:57                 ` Daniel Vetter
2015-03-06 17:40                   ` Dave Gordon
2015-03-09  8:01                     ` Daniel Vetter
2015-02-13 11:48 ` [PATCH 06/51] drm/i915: Wrap request allocation with a function pointer John.C.Harrison
2015-02-13 11:48 ` [PATCH 07/51] drm/i915: Early alloc request in execbuff John.C.Harrison
2015-02-25 22:22   ` Daniel Vetter
2015-02-27 12:27     ` John Harrison
2015-02-27 13:40       ` Daniel Vetter
2015-02-13 11:48 ` [PATCH 08/51] drm/i915: Update alloc_request to return the allocated request John.C.Harrison
2015-02-13 12:21   ` Chris Wilson
2015-02-25 21:08     ` Daniel Vetter
2015-02-27 12:34       ` John Harrison
2015-02-27 13:43         ` Daniel Vetter
2015-02-13 11:48 ` [PATCH 09/51] drm/i915: Add request to execbuf params and add explicit cleanup John.C.Harrison
2015-02-13 11:48 ` [PATCH 10/51] drm/i915: Update the dispatch tracepoint to use params->request John.C.Harrison
2015-02-13 11:48 ` [PATCH 11/51] drm/i915: Update move_to_gpu() to take a request structure John.C.Harrison
2015-02-13 11:48 ` [PATCH 12/51] drm/i915: Update execbuffer_move_to_active() " John.C.Harrison
2015-02-13 11:48 ` [PATCH 13/51] drm/i915: Add flag to i915_add_request() to skip the cache flush John.C.Harrison
2015-02-13 11:48 ` [PATCH 14/51] drm/i915: Update pin_to_display_plane() to do explicit request management John.C.Harrison
2015-02-25 22:35   ` Daniel Vetter
2015-02-13 11:48 ` [PATCH 15/51] drm/i915: Update i915_gem_object_sync() to take a request structure John.C.Harrison
2015-02-13 11:48 ` [PATCH 16/51] drm/i915: Update i915_gpu_idle() to manage its own request John.C.Harrison
2015-02-13 11:48 ` [PATCH 17/51] drm/i915: Split i915_ppgtt_init_hw() in half - generic and per ring John.C.Harrison
2015-02-13 11:48 ` [PATCH 18/51] drm/i915: Moved the for_each_ring loop outside of i915_gem_context_enable() John.C.Harrison
2015-02-13 11:48 ` [PATCH 19/51] drm/i915: Add explicit request management to i915_gem_init_hw() John.C.Harrison
2015-02-13 11:48 ` [PATCH 20/51] drm/i915: Update ppgtt_init_ring() & context_enable() to take requests John.C.Harrison
2015-02-13 11:48 ` [PATCH 21/51] drm/i915: Set context in request from creation even in legacy mode John.C.Harrison
2015-02-13 11:48 ` [PATCH 22/51] drm/i915: Update i915_switch_context() to take a request structure John.C.Harrison
2015-02-13 11:48 ` [PATCH 23/51] drm/i915: Update do_switch() " John.C.Harrison
2015-02-13 11:48 ` [PATCH 24/51] drm/i915: Update deferred context creation to do explicit request management John.C.Harrison
2015-02-13 12:15   ` Chris Wilson
2015-02-18 15:27     ` John Harrison
2015-02-25 21:15       ` Daniel Vetter
2015-02-27 12:45         ` John Harrison
2015-02-27 13:50           ` Daniel Vetter
2015-02-13 11:48 ` [PATCH 25/51] drm/i915: Update init_context() to take a request structure John.C.Harrison
2015-02-13 11:48 ` [PATCH 26/51] drm/i915: Update render_state_init() " John.C.Harrison
2015-02-13 11:48 ` [PATCH 27/51] drm/i915: Update overlay code to do explicit request management John.C.Harrison
2015-02-13 11:48 ` [PATCH 28/51] drm/i915: Update queue_flip() " John.C.Harrison
2015-02-13 11:48 ` [PATCH 29/51] drm/i915: Update add_request() to take a request structure John.C.Harrison
2015-02-13 11:48 ` [PATCH 30/51] drm/i915: Update [vma|object]_move_to_active() to take request structures John.C.Harrison
2015-02-13 11:48 ` [PATCH 31/51] drm/i915: Update l3_remap to take a request structure John.C.Harrison
2015-02-13 11:48 ` [PATCH 32/51] drm/i915: Update mi_set_context() " John.C.Harrison
2015-02-13 11:48 ` [PATCH 33/51] drm/i915: Update a bunch of execbuffer heplers to take request structures John.C.Harrison
2015-02-13 11:48 ` [PATCH 34/51] drm/i915: Update workarounds_emit() " John.C.Harrison
2015-02-13 11:48 ` [PATCH 35/51] drm/i915: Update flush_all_caches() " John.C.Harrison
2015-02-13 11:48 ` [PATCH 36/51] drm/i915: Update switch_mm() to take a request structure John.C.Harrison
2015-02-13 11:48 ` [PATCH 37/51] drm/i915: Update ring->flush() to take a requests structure John.C.Harrison
2015-02-13 11:48 ` [PATCH 38/51] drm/i915: Update some flush helpers to take request structures John.C.Harrison
2015-02-13 11:48 ` [PATCH 39/51] drm/i915: Update ring->emit_flush() to take a request structure John.C.Harrison
2015-02-13 11:48 ` [PATCH 40/51] drm/i915: Update ring->add_request() " John.C.Harrison
2015-02-13 11:48 ` [PATCH 41/51] drm/i915: Update ring->emit_request() " John.C.Harrison
2015-02-13 11:48 ` [PATCH 42/51] drm/i915: Update ring->dispatch_execbuffer() " John.C.Harrison
2015-02-13 11:48 ` [PATCH 43/51] drm/i915: Update ring->emit_bb_start() " John.C.Harrison
2015-02-13 11:48 ` [PATCH 44/51] drm/i915: Update ring->sync_to() " John.C.Harrison
2015-02-13 11:48 ` [PATCH 45/51] drm/i915: Update ring->signal() " John.C.Harrison
2015-02-13 11:48 ` [PATCH 46/51] drm/i915: Update cacheline_align() " John.C.Harrison
2015-02-13 11:48 ` [PATCH 47/51] drm/i915: Update ironlake_enable_rc6() to do explicit request management John.C.Harrison
2015-02-13 12:19   ` Chris Wilson
2015-02-13 16:58     ` John Harrison
2015-02-13 17:03       ` Chris Wilson
2015-02-18 14:28         ` John Harrison
2015-02-25 21:31           ` Daniel Vetter
2015-02-27 12:49             ` John Harrison
2015-02-27 13:56               ` Daniel Vetter
2015-02-27 13:03             ` Ville Syrjälä
2015-02-27 13:53               ` Daniel Vetter
2015-02-13 11:48 ` [PATCH 48/51] drm/i915: Update intel_ring_begin() to take a request structure John.C.Harrison
2015-02-13 12:20   ` Chris Wilson
2015-02-18 15:37     ` John Harrison
2015-02-13 11:48 ` [PATCH 49/51] drm/i915: Update intel_logical_ring_begin() " John.C.Harrison
2015-02-13 12:17   ` Chris Wilson
2015-02-13 17:04     ` John Harrison
2015-02-13 11:48 ` [PATCH 50/51] drm/i915: Remove the now obsolete intel_ring_get_request() John.C.Harrison
2015-02-13 11:49 ` [PATCH 51/51] drm/i915: Remove the now obsolete 'outstanding_lazy_request' John.C.Harrison
2015-02-19 17:17 ` [PATCH 00/53] Remove the outstanding_lazy_request John.C.Harrison
2015-02-19 17:17   ` [PATCH 01/53] drm/i915: Rename 'flags' to 'dispatch_flags' for better code reading John.C.Harrison
2015-03-05 13:21     ` Tomas Elf
2015-03-06 12:30       ` John Harrison
2015-02-19 17:17   ` [PATCH 02/53] drm/i915: Add missing trace point to LRC execbuff code path John.C.Harrison
2015-03-05 13:26     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 03/53] drm/i915: Cache ringbuf pointer in request structure John.C.Harrison
2015-03-05 13:56     ` Tomas Elf
2015-03-06 12:28       ` John Harrison
2015-02-19 17:17   ` [PATCH 04/53] drm/i915: Merged the many do_execbuf() parameters into a structure John.C.Harrison
2015-03-05 13:37     ` John.C.Harrison
2015-03-05 14:30     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 05/53] drm/i915: Add return code check to i915_gem_execbuffer_retire_commands() John.C.Harrison
2015-03-05 14:45     ` Tomas Elf
2015-03-06 16:15       ` Daniel Vetter
2015-02-19 17:17   ` [PATCH 06/53] drm/i915: Wrap request allocation with a function pointer John.C.Harrison
2015-03-05 15:01     ` Tomas Elf
2015-03-05 16:20       ` Daniel Vetter
2015-02-19 17:17   ` [PATCH 07/53] drm/i915: Early alloc request in execbuff John.C.Harrison
2015-03-05 15:11     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 08/53] drm/i915: Update alloc_request to return the allocated request John.C.Harrison
2015-03-05 15:27     ` Tomas Elf
2015-03-05 15:46       ` John Harrison
2015-03-05 20:13         ` Tomas Elf
2015-03-06 16:18           ` Daniel Vetter
2015-03-06 17:36             ` John Harrison
2015-03-06 20:17               ` Tomas Elf
2015-02-19 17:17   ` [PATCH 09/53] drm/i915: Add request to execbuf params and add explicit cleanup John.C.Harrison
2015-03-05 15:37     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 10/53] drm/i915: Update the dispatch tracepoint to use params->request John.C.Harrison
2015-03-05 15:43     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 11/53] drm/i915: Update move_to_gpu() to take a request structure John.C.Harrison
2015-03-05 15:54     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 12/53] drm/i915: Update execbuffer_move_to_active() " John.C.Harrison
2015-03-05 16:03     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 13/53] drm/i915: Add flag to i915_add_request() to skip the cache flush John.C.Harrison
2015-02-19 17:17   ` [PATCH 14/53] drm/i915: Update pin_to_display_plane() to do explicit request management John.C.Harrison
2015-03-05 16:21     ` Tomas Elf
2015-03-05 16:22     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 15/53] drm/i915: Update i915_gem_object_sync() to take a request structure John.C.Harrison
2015-03-05 16:40     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 16/53] drm/i915: Update i915_gpu_idle() to manage its own request John.C.Harrison
2015-03-05 16:45     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 17/53] drm/i915: Split i915_ppgtt_init_hw() in half - generic and per ring John.C.Harrison
2015-02-24 13:55     ` Daniel, Thomas
2015-03-05 16:53     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 18/53] drm/i915: Moved the for_each_ring loop outside of i915_gem_context_enable() John.C.Harrison
2015-03-05 17:04     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 19/53] drm/i915: Add explicit request management to i915_gem_init_hw() John.C.Harrison
2015-03-05 17:13     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 20/53] drm/i915: Update ppgtt_init_ring() & context_enable() to take requests John.C.Harrison
2015-03-05 17:57     ` Tomas Elf
     [not found]       ` <5502DC35.6020700@Intel.com>
2015-03-13 13:35         ` Tomas Elf
2015-02-19 17:17   ` [PATCH 21/53] drm/i915: Set context in request from creation even in legacy mode John.C.Harrison
2015-03-05 13:42     ` John.C.Harrison
2015-03-05 18:02     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 22/53] drm/i915: Update i915_switch_context() to take a request structure John.C.Harrison
2015-03-05 18:08     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 23/53] drm/i915: Update do_switch() " John.C.Harrison
2015-03-05 18:11     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 24/53] drm/i915: Update deferred context creation to do explicit request management John.C.Harrison
2015-03-05 18:16     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 25/53] drm/i915: Update init_context() to take a request structure John.C.Harrison
2015-03-05 18:38     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 26/53] drm/i915: Update render_state_init() " John.C.Harrison
2015-03-05 18:43     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 27/53] drm/i915: Update overlay code to do explicit request management John.C.Harrison
2015-03-05 18:51     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 28/53] drm/i915: Update queue_flip() " John.C.Harrison
2015-03-05 19:29     ` Tomas Elf
2015-03-06 16:30       ` Daniel Vetter
2015-02-19 17:17   ` [PATCH 29/53] drm/i915: Update add_request() to take a request structure John.C.Harrison
2015-03-05 19:35     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 30/53] drm/i915: Update [vma|object]_move_to_active() to take request structures John.C.Harrison
2015-03-05 19:39     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 31/53] drm/i915: Update l3_remap to take a request structure John.C.Harrison
2015-03-05 19:44     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 32/53] drm/i915: Update mi_set_context() " John.C.Harrison
2015-03-05 19:52     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 33/53] drm/i915: Update a bunch of execbuffer heplers to take request structures John.C.Harrison
2015-03-05 19:58     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 34/53] drm/i915: Update workarounds_emit() " John.C.Harrison
2015-03-09 20:17     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 35/53] drm/i915: Update flush_all_caches() " John.C.Harrison
2015-03-09 20:23     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 36/53] drm/i915: Update switch_mm() to take a request structure John.C.Harrison
2015-03-09 20:33     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 37/53] drm/i915: Update ring->flush() to take a requests structure John.C.Harrison
2015-03-09 20:40     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 38/53] drm/i915: Update some flush helpers to take request structures John.C.Harrison
2015-03-09 20:46     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 39/53] drm/i915: Update ring->emit_flush() to take a request structure John.C.Harrison
2015-03-09 20:51     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 40/53] drm/i915: Update ring->add_request() " John.C.Harrison
2015-03-09 21:02     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 41/53] drm/i915: Update ring->emit_request() " John.C.Harrison
2015-03-09 21:07     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 42/53] drm/i915: Update ring->dispatch_execbuffer() " John.C.Harrison
2015-03-09 21:16     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 43/53] drm/i915: Update ring->emit_bb_start() " John.C.Harrison
2015-03-09 21:29     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 44/53] drm/i915: Update ring->sync_to() " John.C.Harrison
2015-03-09 21:49     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 45/53] drm/i915: Update ring->signal() " John.C.Harrison
2015-03-09 22:04     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 46/53] drm/i915: Update cacheline_align() " John.C.Harrison
2015-03-09 22:16     ` Tomas Elf
2015-02-19 17:17   ` [PATCH 47/53] drm/i915: Update ironlake_enable_rc6() to do explicit request management John.C.Harrison
2015-02-19 17:18   ` [PATCH 48/53] drm/i915: Update intel_ring_begin() to take a request structure John.C.Harrison
2015-03-09 22:39     ` Tomas Elf
2015-02-19 17:18   ` [PATCH 49/53] drm/i915: Make intel_logical_ring_begin() static John.C.Harrison
2015-03-09 23:24     ` Tomas Elf [this message]
2015-02-19 17:18   ` [PATCH 50/53] drm/i915: Update intel_logical_ring_begin() to take a request structure John.C.Harrison
2015-03-09 23:33     ` Tomas Elf
2015-02-19 17:18   ` [PATCH 51/53] drm/i915: Remove the now obsolete intel_ring_get_request() John.C.Harrison
2015-03-09 23:35     ` Tomas Elf
2015-02-19 17:18   ` [PATCH 52/53] drm/i915: Remove the now obsolete 'outstanding_lazy_request' John.C.Harrison
2015-03-09 23:51     ` Tomas Elf
2015-03-10 10:18       ` Daniel Vetter
2015-03-13 13:32         ` John Harrison
2015-03-13 17:09           ` Daniel Vetter
2015-02-19 17:18   ` [PATCH 53/53] drm/i915: Move the request/file and request/pid association to creation time John.C.Harrison
2015-03-10  0:12     ` Tomas Elf
2015-03-05 13:57   ` [PATCH 54/56] drm/i915: Rename 'do_execbuf' to 'execbuf_submit' John.C.Harrison
2015-03-05 13:57     ` [PATCH 55/56] drm/i915: Remove 'faked' request from LRC submission John.C.Harrison
2015-03-05 14:49       ` Daniel Vetter
2015-03-11 14:53         ` John Harrison
2015-03-11 16:14           ` Daniel Vetter
2015-03-11 16:44             ` Jesse Barnes
2015-03-11 20:45               ` John Harrison
2015-03-05 13:57     ` [PATCH 56/56] drm/i915: Update a bunch of LRC functions to take requests John.C.Harrison
2015-03-10 23:18     ` [PATCH 54/56] drm/i915: Rename 'do_execbuf' to 'execbuf_submit' Tomas Elf
2015-03-05 14:03   ` [PATCH 01/53] drm/i915: Remove ironlake rc6 support John.C.Harrison
2015-03-05 15:22     ` Daniel Vetter
2015-03-05 15:36       ` John Harrison
2015-03-06 16:32         ` Daniel Vetter
2015-03-10 23:02     ` Tomas Elf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54FE2BAC.8040702@intel.com \
    --to=tomas.elf@intel.com \
    --cc=Intel-GFX@Lists.FreeDesktop.Org \
    --cc=John.C.Harrison@Intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.