[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