[Intel-gfx] [PATCH 04/10] drm/i915/guc: Add a second client, to be used for preemption

Michał Winiarski michal.winiarski at intel.com
Thu Oct 5 16:00:36 UTC 2017


On Thu, Oct 05, 2017 at 03:22:59PM +0000, Daniele Ceraolo Spurio wrote:
> 
> 
> On 05/10/17 02:13, Michał Winiarski wrote:
> > From: Dave Gordon <david.s.gordon at intel.com>
> > 
> > This second client is created with priority KMD_HIGH, and marked
> > as preemptive. This will allow us to request preemption using GuC actions.
> > 
> > Cc: Chris Wilson <chris at chris-wilson.co.uk>
> > Cc: Jeff Mcgee <jeff.mcgee at intel.com>
> > Cc: Michal Wajdeczko <michal.wajdeczko at intel.com>
> > Cc: Oscar Mateo <oscar.mateo at intel.com>
> > Signed-off-by: Dave Gordon <david.s.gordon at intel.com>
> > Signed-off-by: Michał Winiarski <michal.winiarski at intel.com>
> > ---
> >   drivers/gpu/drm/i915/i915_debugfs.c        |  4 ++++
> >   drivers/gpu/drm/i915/i915_guc_submission.c | 32 ++++++++++++++++++++++++++----
> >   drivers/gpu/drm/i915/intel_uc.h            |  1 +
> >   3 files changed, 33 insertions(+), 4 deletions(-)

[SNIP]

> > diff --git a/drivers/gpu/drm/i915/intel_uc.h b/drivers/gpu/drm/i915/intel_uc.h
> > index 10e8f0ed02e4..c6c6f8513bbf 100644
> > --- a/drivers/gpu/drm/i915/intel_uc.h
> > +++ b/drivers/gpu/drm/i915/intel_uc.h
> > @@ -107,6 +107,7 @@ struct intel_guc {
> >   	struct ida stage_ids;
> >   	struct i915_guc_client *execbuf_client;
> > +	struct i915_guc_client *preempt_client;
> >   	DECLARE_BITMAP(doorbell_bitmap, GUC_NUM_DOORBELLS);
> >   	uint32_t db_cacheline;		/* Cyclic counter mod pagesize	*/
> > 
> 
> 
> I think you also need to update guc_init_doorbell_hw() to handle the new
> client. The comment in there says:
> 
> /* Now for every client (and not only execbuf_client) make sure their
>  * doorbells are known by the GuC */

But I don't want the doorbell for preempt_client...
I'm not submitting anything 'directly' using this client (just indirectly -
through preempt action).

Are you sure we need the doorbell?
Last time I tried to refactor GuC submission to use doorbell per engine, I got
the info that I should *avoid* allocating multiple doorbells.

-Michał

> 
> Daniele


More information about the Intel-gfx mailing list