public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH v3] drm/i915/guc: don't ever forward VBlank to the GuC
@ 2016-06-24 14:57 Dave Gordon
  2016-06-24 15:25 ` ✓ Ro.CI.BAT: success for " Patchwork
  2016-06-27 12:19 ` [PATCH v3] " Tvrtko Ursulin
  0 siblings, 2 replies; 4+ messages in thread
From: Dave Gordon @ 2016-06-24 14:57 UTC (permalink / raw)
  To: intel-gfx

If a context waiting for VBlank were switched out, switching
in the next context and generating a CSB event in the process,
then the GuC would have to put the context back in the queue,
and then observe the subsequent VBlank interrupt so that it
could resubmit the suspended context.

However, we always set the CTX_CTRL_INHIBIT_SYN_CTX_SWITCH bit
in the RING_CONTEXT_CONTROL register, so this case cannot occur.
Furthermore we don't use the GuC's internal scheduler or allow
it to auto-resubmit workloads.  Consequently, the GuC doesn't
need to see VBlanks, and by sending them to it we may be waking
it up unnecessarily, which might reduce RC6 residency and
increase power consumption.

So this patch removes the setting of the GFC_FORWARD_VBLANK
field from the code that diverts interrupts towards the GuC.
(The code to direct interrupts to the host, OTOH, continues to
explicitly set the field to "never send VBlanks to the GuC".)

v3:
    Remove the line of code completely (original set the field
    to ALWAYS forward, v1 changed it to CONDITIONAL forwarding,
    v2 explicitly set it to NEVER, v3 just doesn't touch it at
    all, as we know it's already set to NEVER).

Signed-off-by: Dave Gordon <david.s.gordon@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> (previous version)
---
 drivers/gpu/drm/i915/intel_guc_loader.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_guc_loader.c b/drivers/gpu/drm/i915/intel_guc_loader.c
index 8fe96a2..4f6311a 100644
--- a/drivers/gpu/drm/i915/intel_guc_loader.c
+++ b/drivers/gpu/drm/i915/intel_guc_loader.c
@@ -87,7 +87,7 @@ static void direct_interrupts_to_host(struct drm_i915_private *dev_priv)
 	struct intel_engine_cs *engine;
 	int irqs;
 
-	/* tell all command streamers NOT to forward interrupts and vblank to GuC */
+	/* tell all command streamers NOT to forward interrupts or vblank to GuC */
 	irqs = _MASKED_FIELD(GFX_FORWARD_VBLANK_MASK, GFX_FORWARD_VBLANK_NEVER);
 	irqs |= _MASKED_BIT_DISABLE(GFX_INTERRUPT_STEERING);
 	for_each_engine(engine, dev_priv)
@@ -105,9 +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);
-	irqs |= _MASKED_BIT_ENABLE(GFX_INTERRUPT_STEERING);
+	/* tell all command streamers to forward interrupts (but not vblank) to GuC */
+	irqs = _MASKED_BIT_ENABLE(GFX_INTERRUPT_STEERING);
 	for_each_engine(engine, dev_priv)
 		I915_WRITE(RING_MODE_GEN7(engine), irqs);
 
-- 
1.9.1

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

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* ✓ Ro.CI.BAT: success for drm/i915/guc: don't ever forward VBlank to the GuC
  2016-06-24 14:57 [PATCH v3] drm/i915/guc: don't ever forward VBlank to the GuC Dave Gordon
@ 2016-06-24 15:25 ` Patchwork
  2016-06-27 12:22   ` Tvrtko Ursulin
  2016-06-27 12:19 ` [PATCH v3] " Tvrtko Ursulin
  1 sibling, 1 reply; 4+ messages in thread
From: Patchwork @ 2016-06-24 15:25 UTC (permalink / raw)
  To: Dave Gordon; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/guc: don't ever forward VBlank to the GuC
URL   : https://patchwork.freedesktop.org/series/9145/
State : success

== Summary ==

Series 9145v1 drm/i915/guc: don't ever forward VBlank to the GuC
http://patchwork.freedesktop.org/api/1.0/series/9145/revisions/1/mbox

Test gem_exec_flush:
        Subgroup basic-batch-kernel-default-cmd:
                fail       -> PASS       (ro-byt-n2820)
Test kms_pipe_crc_basic:
        Subgroup suspend-read-crc-pipe-b:
                dmesg-warn -> SKIP       (ro-bdw-i5-5250u)
        Subgroup suspend-read-crc-pipe-c:
                dmesg-warn -> SKIP       (ro-bdw-i5-5250u)

fi-hsw-i7-4770k  total:228  pass:194  dwarn:0   dfail:0   fail:1   skip:33 
fi-skl-i5-6260u  total:228  pass:202  dwarn:0   dfail:0   fail:1   skip:25 
fi-snb-i7-2600   total:228  pass:174  dwarn:0   dfail:0   fail:1   skip:53 
ro-bdw-i5-5250u  total:227  pass:201  dwarn:1   dfail:1   fail:1   skip:23 
ro-bdw-i7-5600u  total:227  pass:189  dwarn:0   dfail:1   fail:0   skip:37 
ro-bsw-n3050     total:227  pass:175  dwarn:1   dfail:1   fail:2   skip:48 
ro-byt-n2820     total:227  pass:178  dwarn:0   dfail:1   fail:3   skip:45 
ro-hsw-i3-4010u  total:227  pass:194  dwarn:0   dfail:1   fail:1   skip:31 
ro-hsw-i7-4770r  total:227  pass:194  dwarn:0   dfail:1   fail:1   skip:31 
ro-ilk-i7-620lm  total:227  pass:154  dwarn:0   dfail:1   fail:2   skip:70 
ro-ilk1-i5-650   total:222  pass:154  dwarn:0   dfail:1   fail:2   skip:65 
ro-ivb-i7-3770   total:227  pass:185  dwarn:0   dfail:1   fail:1   skip:40 
ro-ivb2-i7-3770  total:227  pass:189  dwarn:0   dfail:1   fail:1   skip:36 
ro-skl3-i5-6260u total:227  pass:205  dwarn:1   dfail:1   fail:1   skip:19 
ro-snb-i7-2620M  total:227  pass:178  dwarn:0   dfail:1   fail:1   skip:47 
fi-kbl-qkkr failed to connect after reboot
fi-skl-i7-6700k failed to connect after reboot
ro-bdw-i7-5557U failed to connect after reboot

Results at /archive/results/CI_IGT_test/RO_Patchwork_1301/

66e29f4 drm-intel-nightly: 2016y-06m-24d-13h-47m-00s UTC integration manifest
403064e drm/i915/guc: don't ever forward VBlank to the GuC

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v3] drm/i915/guc: don't ever forward VBlank to the GuC
  2016-06-24 14:57 [PATCH v3] drm/i915/guc: don't ever forward VBlank to the GuC Dave Gordon
  2016-06-24 15:25 ` ✓ Ro.CI.BAT: success for " Patchwork
@ 2016-06-27 12:19 ` Tvrtko Ursulin
  1 sibling, 0 replies; 4+ messages in thread
From: Tvrtko Ursulin @ 2016-06-27 12:19 UTC (permalink / raw)
  To: Dave Gordon, intel-gfx


On 24/06/16 15:57, Dave Gordon wrote:
> If a context waiting for VBlank were switched out, switching
> in the next context and generating a CSB event in the process,
> then the GuC would have to put the context back in the queue,
> and then observe the subsequent VBlank interrupt so that it
> could resubmit the suspended context.
>
> However, we always set the CTX_CTRL_INHIBIT_SYN_CTX_SWITCH bit
> in the RING_CONTEXT_CONTROL register, so this case cannot occur.
> Furthermore we don't use the GuC's internal scheduler or allow
> it to auto-resubmit workloads.  Consequently, the GuC doesn't
> need to see VBlanks, and by sending them to it we may be waking
> it up unnecessarily, which might reduce RC6 residency and
> increase power consumption.
>
> So this patch removes the setting of the GFC_FORWARD_VBLANK
> field from the code that diverts interrupts towards the GuC.
> (The code to direct interrupts to the host, OTOH, continues to
> explicitly set the field to "never send VBlanks to the GuC".)
>
> v3:
>      Remove the line of code completely (original set the field
>      to ALWAYS forward, v1 changed it to CONDITIONAL forwarding,
>      v2 explicitly set it to NEVER, v3 just doesn't touch it at
>      all, as we know it's already set to NEVER).
>
> Signed-off-by: Dave Gordon <david.s.gordon@intel.com>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> (previous version)
> ---
>   drivers/gpu/drm/i915/intel_guc_loader.c | 7 +++----
>   1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_guc_loader.c b/drivers/gpu/drm/i915/intel_guc_loader.c
> index 8fe96a2..4f6311a 100644
> --- a/drivers/gpu/drm/i915/intel_guc_loader.c
> +++ b/drivers/gpu/drm/i915/intel_guc_loader.c
> @@ -87,7 +87,7 @@ static void direct_interrupts_to_host(struct drm_i915_private *dev_priv)
>   	struct intel_engine_cs *engine;
>   	int irqs;
>
> -	/* tell all command streamers NOT to forward interrupts and vblank to GuC */
> +	/* tell all command streamers NOT to forward interrupts or vblank to GuC */
>   	irqs = _MASKED_FIELD(GFX_FORWARD_VBLANK_MASK, GFX_FORWARD_VBLANK_NEVER);
>   	irqs |= _MASKED_BIT_DISABLE(GFX_INTERRUPT_STEERING);
>   	for_each_engine(engine, dev_priv)
> @@ -105,9 +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);
> -	irqs |= _MASKED_BIT_ENABLE(GFX_INTERRUPT_STEERING);
> +	/* tell all command streamers to forward interrupts (but not vblank) to GuC */
> +	irqs = _MASKED_BIT_ENABLE(GFX_INTERRUPT_STEERING);
>   	for_each_engine(engine, dev_priv)
>   		I915_WRITE(RING_MODE_GEN7(engine), irqs);
>
>

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: ✓ Ro.CI.BAT: success for drm/i915/guc: don't ever forward VBlank to the GuC
  2016-06-24 15:25 ` ✓ Ro.CI.BAT: success for " Patchwork
@ 2016-06-27 12:22   ` Tvrtko Ursulin
  0 siblings, 0 replies; 4+ messages in thread
From: Tvrtko Ursulin @ 2016-06-27 12:22 UTC (permalink / raw)
  To: intel-gfx, Dave Gordon


On 24/06/16 16:25, Patchwork wrote:
> == Series Details ==
>
> Series: drm/i915/guc: don't ever forward VBlank to the GuC
> URL   : https://patchwork.freedesktop.org/series/9145/
> State : success
>
> == Summary ==
>
> Series 9145v1 drm/i915/guc: don't ever forward VBlank to the GuC
> http://patchwork.freedesktop.org/api/1.0/series/9145/revisions/1/mbox
>
> Test gem_exec_flush:
>          Subgroup basic-batch-kernel-default-cmd:
>                  fail       -> PASS       (ro-byt-n2820)
> Test kms_pipe_crc_basic:
>          Subgroup suspend-read-crc-pipe-b:
>                  dmesg-warn -> SKIP       (ro-bdw-i5-5250u)
>          Subgroup suspend-read-crc-pipe-c:
>                  dmesg-warn -> SKIP       (ro-bdw-i5-5250u)
>
> fi-hsw-i7-4770k  total:228  pass:194  dwarn:0   dfail:0   fail:1   skip:33
> fi-skl-i5-6260u  total:228  pass:202  dwarn:0   dfail:0   fail:1   skip:25
> fi-snb-i7-2600   total:228  pass:174  dwarn:0   dfail:0   fail:1   skip:53
> ro-bdw-i5-5250u  total:227  pass:201  dwarn:1   dfail:1   fail:1   skip:23
> ro-bdw-i7-5600u  total:227  pass:189  dwarn:0   dfail:1   fail:0   skip:37
> ro-bsw-n3050     total:227  pass:175  dwarn:1   dfail:1   fail:2   skip:48
> ro-byt-n2820     total:227  pass:178  dwarn:0   dfail:1   fail:3   skip:45
> ro-hsw-i3-4010u  total:227  pass:194  dwarn:0   dfail:1   fail:1   skip:31
> ro-hsw-i7-4770r  total:227  pass:194  dwarn:0   dfail:1   fail:1   skip:31
> ro-ilk-i7-620lm  total:227  pass:154  dwarn:0   dfail:1   fail:2   skip:70
> ro-ilk1-i5-650   total:222  pass:154  dwarn:0   dfail:1   fail:2   skip:65
> ro-ivb-i7-3770   total:227  pass:185  dwarn:0   dfail:1   fail:1   skip:40
> ro-ivb2-i7-3770  total:227  pass:189  dwarn:0   dfail:1   fail:1   skip:36
> ro-skl3-i5-6260u total:227  pass:205  dwarn:1   dfail:1   fail:1   skip:19
> ro-snb-i7-2620M  total:227  pass:178  dwarn:0   dfail:1   fail:1   skip:47
> fi-kbl-qkkr failed to connect after reboot
> fi-skl-i7-6700k failed to connect after reboot
> ro-bdw-i7-5557U failed to connect after reboot
>
> Results at /archive/results/CI_IGT_test/RO_Patchwork_1301/
>
> 66e29f4 drm-intel-nightly: 2016y-06m-24d-13h-47m-00s UTC integration manifest
> 403064e drm/i915/guc: don't ever forward VBlank to the GuC

Merged to dinq, thanks for the patch.

Regards,

Tvrtko

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-06-27 12:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-06-24 14:57 [PATCH v3] drm/i915/guc: don't ever forward VBlank to the GuC Dave Gordon
2016-06-24 15:25 ` ✓ Ro.CI.BAT: success for " Patchwork
2016-06-27 12:22   ` Tvrtko Ursulin
2016-06-27 12:19 ` [PATCH v3] " Tvrtko Ursulin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox