* [PATCH] drm/i915: Keep vblanks enabled during the entire pipe update
@ 2017-03-14 17:54 ville.syrjala
2017-03-15 8:32 ` ✗ Fi.CI.BAT: failure for " Patchwork
2017-03-15 8:44 ` ✓ Fi.CI.BAT: success " Patchwork
0 siblings, 2 replies; 3+ messages in thread
From: ville.syrjala @ 2017-03-14 17:54 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
We currently hold a vblank referenced while trying to evade the
vblank, but we drop it as soon as we've done that. After all the
planes have been committed we are quite likely to grab a new vblank
reference for delivering the flip event. This causes the vblank
interrupt to do a enable->enable->disable ping-pong during many
commits. If we instead hang on to the original vblank reference
across the entire commit we can eliminate that ping-pong.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_sprite.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index b931d0bd7a64..bf353e9130b8 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -137,8 +137,6 @@ void intel_pipe_update_start(struct intel_crtc *crtc)
finish_wait(wq, &wait);
- drm_crtc_vblank_put(&crtc->base);
-
crtc->debug.scanline_start = scanline;
crtc->debug.start_vbl_time = ktime_get();
crtc->debug.start_vbl_count = intel_crtc_get_vblank_counter(crtc);
@@ -185,6 +183,15 @@ void intel_pipe_update_end(struct intel_crtc *crtc, struct intel_flip_work *work
crtc->base.state->event = NULL;
}
+ /*
+ * The reference was taken in intel_pipe_update_start(). It could
+ * have been dropped as soon as the vblank was evaded, but we hold
+ * on to it until this time to avoid the extra vblank interrupt
+ * enable->disable->enable ping-pong whenever we have to deliver
+ * an event.
+ */
+ drm_crtc_vblank_put(&crtc->base);
+
local_irq_enable();
if (intel_vgpu_active(dev_priv))
--
2.10.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 3+ messages in thread
* ✗ Fi.CI.BAT: failure for drm/i915: Keep vblanks enabled during the entire pipe update
2017-03-14 17:54 [PATCH] drm/i915: Keep vblanks enabled during the entire pipe update ville.syrjala
@ 2017-03-15 8:32 ` Patchwork
2017-03-15 8:44 ` ✓ Fi.CI.BAT: success " Patchwork
1 sibling, 0 replies; 3+ messages in thread
From: Patchwork @ 2017-03-15 8:32 UTC (permalink / raw)
To: ville.syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Keep vblanks enabled during the entire pipe update
URL : https://patchwork.freedesktop.org/series/21234/
State : failure
== Summary ==
Series 21234v1 drm/i915: Keep vblanks enabled during the entire pipe update
https://patchwork.freedesktop.org/api/1.0/series/21234/revisions/1/mbox/
Test gem_exec_flush:
Subgroup basic-batch-kernel-default-uc:
pass -> FAIL (fi-snb-2600) fdo#100007
Subgroup basic-uc-pro-default:
pass -> INCOMPLETE (fi-skl-6770hq) fdo#100130
pass -> INCOMPLETE (fi-skl-6700hq) fdo#100130
Subgroup basic-uc-prw-default:
pass -> INCOMPLETE (fi-skl-6260u)
Test kms_cursor_legacy:
Subgroup basic-busy-flip-before-cursor-atomic:
fail -> PASS (fi-snb-2520m)
fdo#100007 https://bugs.freedesktop.org/show_bug.cgi?id=100007
fdo#100130 https://bugs.freedesktop.org/show_bug.cgi?id=100130
fi-bdw-5557u total:278 pass:267 dwarn:0 dfail:0 fail:0 skip:11 time: 459s
fi-bsw-n3050 total:278 pass:239 dwarn:0 dfail:0 fail:0 skip:39 time: 579s
fi-bxt-j4205 total:278 pass:259 dwarn:0 dfail:0 fail:0 skip:19 time: 533s
fi-bxt-t5700 total:278 pass:258 dwarn:0 dfail:0 fail:0 skip:20 time: 541s
fi-byt-j1900 total:278 pass:251 dwarn:0 dfail:0 fail:0 skip:27 time: 501s
fi-byt-n2820 total:278 pass:247 dwarn:0 dfail:0 fail:0 skip:31 time: 499s
fi-ilk-650 total:278 pass:228 dwarn:0 dfail:0 fail:0 skip:50 time: 435s
fi-ivb-3770 total:278 pass:260 dwarn:0 dfail:0 fail:0 skip:18 time: 498s
fi-skl-6260u total:54 pass:52 dwarn:0 dfail:0 fail:0 skip:1 time: 0s
fi-skl-6700hq total:53 pass:45 dwarn:0 dfail:0 fail:0 skip:7 time: 0s
fi-skl-6770hq total:53 pass:51 dwarn:0 dfail:0 fail:0 skip:1 time: 0s
fi-snb-2520m total:278 pass:250 dwarn:0 dfail:0 fail:0 skip:28 time: 549s
fi-snb-2600 total:278 pass:248 dwarn:0 dfail:0 fail:1 skip:29 time: 424s
fi-skl-6700k failed to collect. IGT log at Patchwork_4170/fi-skl-6700k/igt.log
c641417b70c6b78efca29ae732d7cbf5716ac6d5 drm-tip: 2017y-03m-14d-16h-04m-56s UTC integration manifest
c7b8870 drm/i915: Keep vblanks enabled during the entire pipe update
== Logs ==
For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_4170/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 3+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: Keep vblanks enabled during the entire pipe update
2017-03-14 17:54 [PATCH] drm/i915: Keep vblanks enabled during the entire pipe update ville.syrjala
2017-03-15 8:32 ` ✗ Fi.CI.BAT: failure for " Patchwork
@ 2017-03-15 8:44 ` Patchwork
1 sibling, 0 replies; 3+ messages in thread
From: Patchwork @ 2017-03-15 8:44 UTC (permalink / raw)
To: ville.syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Keep vblanks enabled during the entire pipe update
URL : https://patchwork.freedesktop.org/series/21234/
State : success
== Summary ==
Series 21234v1 drm/i915: Keep vblanks enabled during the entire pipe update
https://patchwork.freedesktop.org/api/1.0/series/21234/revisions/1/mbox/
Test gem_exec_flush:
Subgroup basic-batch-kernel-default-uc:
pass -> FAIL (fi-snb-2600) fdo#100007
Subgroup basic-uc-pro-default:
pass -> INCOMPLETE (fi-skl-6700hq) fdo#100130
pass -> INCOMPLETE (fi-skl-6770hq) fdo#100130
Subgroup basic-uc-prw-default:
pass -> INCOMPLETE (fi-skl-6260u) fdo#100130
Test kms_cursor_legacy:
Subgroup basic-busy-flip-before-cursor-atomic:
fail -> PASS (fi-snb-2520m)
fdo#100007 https://bugs.freedesktop.org/show_bug.cgi?id=100007
fdo#100130 https://bugs.freedesktop.org/show_bug.cgi?id=100130
fi-bdw-5557u total:278 pass:267 dwarn:0 dfail:0 fail:0 skip:11 time: 459s
fi-bsw-n3050 total:278 pass:239 dwarn:0 dfail:0 fail:0 skip:39 time: 579s
fi-bxt-j4205 total:278 pass:259 dwarn:0 dfail:0 fail:0 skip:19 time: 533s
fi-bxt-t5700 total:278 pass:258 dwarn:0 dfail:0 fail:0 skip:20 time: 541s
fi-byt-j1900 total:278 pass:251 dwarn:0 dfail:0 fail:0 skip:27 time: 501s
fi-byt-n2820 total:278 pass:247 dwarn:0 dfail:0 fail:0 skip:31 time: 499s
fi-ilk-650 total:278 pass:228 dwarn:0 dfail:0 fail:0 skip:50 time: 435s
fi-ivb-3770 total:278 pass:260 dwarn:0 dfail:0 fail:0 skip:18 time: 498s
fi-skl-6260u total:54 pass:52 dwarn:0 dfail:0 fail:0 skip:1 time: 0s
fi-skl-6700hq total:53 pass:45 dwarn:0 dfail:0 fail:0 skip:7 time: 0s
fi-skl-6770hq total:53 pass:51 dwarn:0 dfail:0 fail:0 skip:1 time: 0s
fi-snb-2520m total:278 pass:250 dwarn:0 dfail:0 fail:0 skip:28 time: 549s
fi-snb-2600 total:278 pass:248 dwarn:0 dfail:0 fail:1 skip:29 time: 424s
fi-skl-6700k failed to collect. IGT log at Patchwork_4170/fi-skl-6700k/igt.log
c641417b70c6b78efca29ae732d7cbf5716ac6d5 drm-tip: 2017y-03m-14d-16h-04m-56s UTC integration manifest
c7b8870 drm/i915: Keep vblanks enabled during the entire pipe update
== Logs ==
For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_4170/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-03-15 8:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-14 17:54 [PATCH] drm/i915: Keep vblanks enabled during the entire pipe update ville.syrjala
2017-03-15 8:32 ` ✗ Fi.CI.BAT: failure for " Patchwork
2017-03-15 8:44 ` ✓ Fi.CI.BAT: success " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.