[Intel-gfx] [PATCH] drm/i915/guc: don't ever forward VBlank to the GuC

Daniel Vetter daniel at ffwll.ch
Mon Jun 20 12:58:02 UTC 2016


On Mon, Jun 20, 2016 at 11:23:31AM +0100, Dave Gordon wrote:
> If a context waiting for VBlank were switched out, the GuC would
> have to receive the VBlank interrupt so that it could resubmit
> the context. However, we don't use the GuC internal scheduler,
> and we always set the CTX_CTRL_INHIBIT_SYN_CTX_SWITCH bit in the
> RING_CONTEXT_CONTROL register, so this case cannot arise.
> 
> Consequently, the GuC doesn't need to see VBlanks, and we may be
> waking it up unnecessarily by sending them. So let's not ...
> 
> Signed-off-by: Dave Gordon <david.s.gordon at intel.com>

Missing v2, and commit message should mention why we shut vblanks down
entirely for the guc. With that fixed:

Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>

I'm soonish on vacations, so pls ask Tvrkto or someone else to push.
-Daniel

> ---
>  drivers/gpu/drm/i915/intel_guc_loader.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_guc_loader.c b/drivers/gpu/drm/i915/intel_guc_loader.c
> index 8fe96a2..5d989d2 100644
> --- a/drivers/gpu/drm/i915/intel_guc_loader.c
> +++ b/drivers/gpu/drm/i915/intel_guc_loader.c
> @@ -105,8 +105,8 @@ static void direct_interrupts_to_guc(struct drm_i915_private *dev_priv)
>  	int irqs;
>  	u32 tmp;
>  
> -	/* tell all command streamers to forward interrupts and vblank to GuC */
> -	irqs = _MASKED_FIELD(GFX_FORWARD_VBLANK_MASK, GFX_FORWARD_VBLANK_ALWAYS);
> +	/* tell all command streamers to forward interrupts (but not vblank) to GuC */
> +	irqs = _MASKED_FIELD(GFX_FORWARD_VBLANK_MASK, GFX_FORWARD_VBLANK_NEVER);
>  	irqs |= _MASKED_BIT_ENABLE(GFX_INTERRUPT_STEERING);
>  	for_each_engine(engine, dev_priv)
>  		I915_WRITE(RING_MODE_GEN7(engine), irqs);
> -- 
> 1.9.1
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the Intel-gfx mailing list