All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yu Dai <yu.dai@intel.com>
To: Peter Antoine <peter.antoine@intel.com>, intel-gfx@lists.freedesktop.org
Cc: daniel.vetter@ffwll.ch, dave.gordon@intel.com
Subject: Re: [PATCH 3/3] drm/i915: Wait after context init with GuC Submission
Date: Mon, 11 Jan 2016 08:40:44 -0800	[thread overview]
Message-ID: <5693DB0C.9080309@intel.com> (raw)
In-Reply-To: <1452265434-25169-4-git-send-email-peter.antoine@intel.com>

Reviewed-by: Alex Dai <yu.dai@intel.com>

On 01/08/2016 07:03 AM, Peter Antoine wrote:
> Per-context initialisation GPU instructions (which are injected directly
> into the ringbuffer rather than being submitted as a batch) should not
> be allowed to mix with user-generated batches in the same submission; it
> will cause confusion for the GuC (which might merge a subsequent
> preemptive request with the non-preemptive initialisation code), and for
> the scheduler, which wouldn't know how to re-inject a non-batch request
> if it were the victim of preemption.
>
> Therefore, we should wait for the initialisation request to complete
> before making the newly-initialised context available for user-mode
> submissions.
>
> Here, we add a call to i915_wait_request() after each existing call to
> i915_add_request_no_flush() (in i915_gem_init_hw(), for the default
> per-engine contexts, and intel_lr_context_deferred_create(), for all
> others).
>
> Adapted from Dave Gordon's patch, which is adapted from Alex's earlier
> patch, which added the wait only to intel_lr_context_render_state_init().
>
> Issue: https://jira01.devtools.intel.com/browse/VIZ-6638
> Signed-off-by: Dave Gordon <david.s.gordon@intel.com>
> Signed-off-by: Peter Antoine <peter.antoine@intel.com>
> ---
>   drivers/gpu/drm/i915/i915_gem.c  | 10 ++++++++++
>   drivers/gpu/drm/i915/intel_lrc.c | 11 +++++++++++
>   2 files changed, 21 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 5be4433..e71bf90 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -4847,6 +4847,16 @@ i915_gem_init_hw(struct drm_device *dev)
>   		}
>   
>   		i915_add_request_no_flush(req);
> +
> +		/*
> +		 * GuC firmware will try to collapse its DPC work queue if the
> +		 * new one is for same context. So the following breadcrumb
> +		 * could be amended to this batch and submitted as one batch.
> +		 * Wait here to make sure the context state init is finished
> +		 * before any other submission to GuC.
> +		 */
> +		if (i915.enable_guc_submission)
> +			ret = i915_wait_request(req);
>   	}
>   
>   out:
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index 3aa6147..f18fb11 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -2499,6 +2499,17 @@ int intel_lr_context_deferred_alloc(struct intel_context *ctx,
>   			goto error_ringbuf;
>   		}
>   		i915_add_request_no_flush(req);
> +
> +		/*
> +		 * GuC firmware will try to collapse its DPC work queue
> +		 * if the new one is for same context. So the
> +		 * following breadcrumb could be amended to this batch
> +		 * and submitted as one batch. Wait here to make sure
> +		 * the context state init is finished before any other
> +		 * submission to GuC.
> +		 */
> +		if (i915.enable_guc_submission)
> +			ret = i915_wait_request(req);
>   	}
>   	return 0;
>   

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

  parent reply	other threads:[~2016-01-11 16:44 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-08 15:03 [PATCH 0/3] Enabling GuC Loading on Broxton Peter Antoine
2016-01-08 15:03 ` [PATCH 1/3] drm/i915: Adding Broxton GuC Loader Support Peter Antoine
2016-01-11 16:40   ` Yu Dai
2016-01-08 15:03 ` [PATCH 2/3] drm/i915: resize the GuC WOPCM for rc6 Peter Antoine
2016-01-11 16:40   ` Yu Dai
2016-01-19 23:52   ` Yu Dai
2016-01-20 17:48   ` Jeff McGee
2016-01-08 15:03 ` [PATCH 3/3] drm/i915: Wait after context init with GuC Submission Peter Antoine
2016-01-08 15:19   ` Chris Wilson
2016-01-11 15:48     ` Antoine, Peter
2016-01-11 16:40   ` Yu Dai [this message]
2016-01-11 10:13 ` ✗ warning: Fi.CI.BAT Patchwork
2016-01-12 16:23   ` Daniel Vetter

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=5693DB0C.9080309@intel.com \
    --to=yu.dai@intel.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dave.gordon@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=peter.antoine@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.