[Intel-gfx] [PATCH] drm/i915/guc: Check that the breadcrumb irq is enabled

Michal Wajdeczko michal.wajdeczko at intel.com
Mon Apr 9 14:08:40 UTC 2018


On Mon, 09 Apr 2018 14:42:19 +0200, Chris Wilson  
<chris at chris-wilson.co.uk> wrote:

> Our execlists emulation for GuC requires use of the breadcrumb following
> every request as a simulcrum for the context-switch interrupt, which we
> then use to drive the submission tasklet. Therefore, when we unpark the
> engine for use with the GuC, we pin the breadcrumb interrupt to keep it
> enabled for the duration. This has to be remain so across all resets,
> wedging and resume, so check we do have the irq enabled when we start
> submitting requests to the GuC and on all submissions thereafter.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Cc: Michał Winiarski <michal.winiarski at intel.com>
> ---
>  drivers/gpu/drm/i915/intel_guc_submission.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c  
> b/drivers/gpu/drm/i915/intel_guc_submission.c
> index 97121230656c..a7957b669b68 100644
> --- a/drivers/gpu/drm/i915/intel_guc_submission.c
> +++ b/drivers/gpu/drm/i915/intel_guc_submission.c
> @@ -758,6 +758,8 @@ static void guc_submission_tasklet(unsigned long  
> data)
>  	struct execlist_port *port = execlists->port;
>  	struct i915_request *rq;
> +	GEM_BUG_ON(!READ_ONCE(engine->breadcrumbs.irq_enabled));
> +
>  	rq = port_request(port);
>  	while (rq && i915_request_completed(rq)) {
>  		trace_i915_request_out(rq);

LGTM, but can you run this with GuC enabled ?

Thanks,
Michal


More information about the Intel-gfx mailing list