* [PATCH 1/1] drm/vblank: drop use of DRM_WAIT_ON()
@ 2019-07-18 19:47 Sam Ravnborg
2019-07-18 19:56 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/1] " Patchwork
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Sam Ravnborg @ 2019-07-18 19:47 UTC (permalink / raw)
To: Intel Graphics Development
From e6f70cb90e0c3c90d45017a8257353652b7e0dcc Mon Sep 17 00:00:00 2001
From: Sam Ravnborg <sam@ravnborg.org>
Date: Thu, 30 May 2019 09:38:47 +0200
Subject: [PATCH] drm/vblank: drop use of DRM_WAIT_ON()
DRM_WAIT_ON() is from the deprecated drm_os_linux header and
the modern replacement is the wait_event_*.
The return values differ, so a conversion is needed to
keep the original interface towards userspace.
Introduced a switch/case to make code obvious and to allow
different debug prints depending on the result.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Reviewed-by: Sean Paul <sean@poorly.run>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
---
To verify if it works with the fix.
(Added wat variable to handle the situation where we never wait)
Sam
drivers/gpu/drm/drm_vblank.c | 32 ++++++++++++++++++++++----------
1 file changed, 22 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index 603ab105125d..4e83f1dfd446 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -31,7 +31,6 @@
#include <drm/drm_drv.h>
#include <drm/drm_framebuffer.h>
#include <drm/drm_print.h>
-#include <drm/drm_os_linux.h>
#include <drm/drm_vblank.h>
#include "drm_internal.h"
@@ -1576,7 +1575,7 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,
struct drm_crtc *crtc;
struct drm_vblank_crtc *vblank;
union drm_wait_vblank *vblwait = data;
- int ret;
+ int ret, wait;
u64 req_seq, seq;
unsigned int pipe_index;
unsigned int flags, pipe, high_pipe;
@@ -1669,22 +1668,35 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,
return drm_queue_vblank_event(dev, pipe, req_seq, vblwait, file_priv);
}
+ wait = 1;
if (req_seq != seq) {
DRM_DEBUG("waiting on vblank count %llu, crtc %u\n",
req_seq, pipe);
- DRM_WAIT_ON(ret, vblank->queue, 3 * HZ,
- vblank_passed(drm_vblank_count(dev, pipe),
- req_seq) ||
- !READ_ONCE(vblank->enabled));
+ wait = wait_event_interruptible_timeout(vblank->queue,
+ vblank_passed(drm_vblank_count(dev, pipe), req_seq) ||
+ !READ_ONCE(vblank->enabled),
+ msecs_to_jiffies(3000));
}
- if (ret != -EINTR) {
+ switch (wait) {
+ case 0:
+ /* timeout */
+ ret = -EBUSY;
drm_wait_vblank_reply(dev, pipe, &vblwait->reply);
-
- DRM_DEBUG("crtc %d returning %u to client\n",
+ DRM_DEBUG("timeout waiting for vblank. crtc %d returning %u to client\n",
pipe, vblwait->reply.sequence);
- } else {
+ break;
+ case -ERESTARTSYS:
+ /* interrupted by signal */
+ ret = -EINTR;
DRM_DEBUG("crtc %d vblank wait interrupted by signal\n", pipe);
+ break;
+ default:
+ ret = 0;
+ drm_wait_vblank_reply(dev, pipe, &vblwait->reply);
+ DRM_DEBUG("crtc %d returning %u to client\n",
+ pipe, vblwait->reply.sequence);
+ break;
}
done:
--
2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/1] drm/vblank: drop use of DRM_WAIT_ON()
2019-07-18 19:47 [PATCH 1/1] drm/vblank: drop use of DRM_WAIT_ON() Sam Ravnborg
@ 2019-07-18 19:56 ` Patchwork
2019-07-18 20:15 ` ✓ Fi.CI.BAT: success " Patchwork
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2019-07-18 19:56 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/1] drm/vblank: drop use of DRM_WAIT_ON()
URL : https://patchwork.freedesktop.org/series/63913/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
d52a61072bb5 drm/vblank: drop use of DRM_WAIT_ON()
-:55: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#55: FILE: drivers/gpu/drm/drm_vblank.c:1676:
+ wait = wait_event_interruptible_timeout(vblank->queue,
+ vblank_passed(drm_vblank_count(dev, pipe), req_seq) ||
total: 0 errors, 0 warnings, 1 checks, 58 lines checked
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* ✓ Fi.CI.BAT: success for series starting with [1/1] drm/vblank: drop use of DRM_WAIT_ON()
2019-07-18 19:47 [PATCH 1/1] drm/vblank: drop use of DRM_WAIT_ON() Sam Ravnborg
2019-07-18 19:56 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/1] " Patchwork
@ 2019-07-18 20:15 ` Patchwork
2019-07-19 2:01 ` ✓ Fi.CI.IGT: " Patchwork
2019-07-19 9:39 ` [PATCH 1/1] " Daniel Vetter
3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2019-07-18 20:15 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/1] drm/vblank: drop use of DRM_WAIT_ON()
URL : https://patchwork.freedesktop.org/series/63913/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_6507 -> Patchwork_13694
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/
Known issues
------------
Here are the changes found in Patchwork_13694 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850: [PASS][1] -> [INCOMPLETE][2] ([fdo#107718])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html
* igt@prime_vgem@basic-fence-flip:
- fi-ilk-650: [PASS][3] -> [DMESG-WARN][4] ([fdo#106387])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/fi-ilk-650/igt@prime_vgem@basic-fence-flip.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/fi-ilk-650/igt@prime_vgem@basic-fence-flip.html
#### Possible fixes ####
* igt@i915_pm_rpm@module-reload:
- fi-icl-dsi: [INCOMPLETE][5] ([fdo#107713] / [fdo#108840]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/fi-icl-dsi/igt@i915_pm_rpm@module-reload.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/fi-icl-dsi/igt@i915_pm_rpm@module-reload.html
* igt@kms_chamelium@dp-edid-read:
- fi-kbl-7500u: [WARN][7] ([fdo#109483]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/fi-kbl-7500u/igt@kms_chamelium@dp-edid-read.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/fi-kbl-7500u/igt@kms_chamelium@dp-edid-read.html
* igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u: [FAIL][9] ([fdo#109485]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
* igt@kms_frontbuffer_tracking@basic:
- {fi-icl-u4}: [FAIL][11] ([fdo#103167]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/fi-icl-u4/igt@kms_frontbuffer_tracking@basic.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/fi-icl-u4/igt@kms_frontbuffer_tracking@basic.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#106387]: https://bugs.freedesktop.org/show_bug.cgi?id=106387
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
[fdo#108840]: https://bugs.freedesktop.org/show_bug.cgi?id=108840
[fdo#109483]: https://bugs.freedesktop.org/show_bug.cgi?id=109483
[fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
Participating hosts (53 -> 47)
------------------------------
Additional (1): fi-bsw-n3050
Missing (7): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus
Build changes
-------------
* Linux: CI_DRM_6507 -> Patchwork_13694
CI_DRM_6507: a607eef7a42e6788090f1ff4de30ed821ad87ad9 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5102: 6038ace76016d8892f4d13aef5301f71ca1a6e2d @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_13694: d52a61072bb50e83ea8d1e82dffe1b55ff8f7a70 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
d52a61072bb5 drm/vblank: drop use of DRM_WAIT_ON()
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* ✓ Fi.CI.IGT: success for series starting with [1/1] drm/vblank: drop use of DRM_WAIT_ON()
2019-07-18 19:47 [PATCH 1/1] drm/vblank: drop use of DRM_WAIT_ON() Sam Ravnborg
2019-07-18 19:56 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/1] " Patchwork
2019-07-18 20:15 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2019-07-19 2:01 ` Patchwork
2019-07-19 9:39 ` [PATCH 1/1] " Daniel Vetter
3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2019-07-19 2:01 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/1] drm/vblank: drop use of DRM_WAIT_ON()
URL : https://patchwork.freedesktop.org/series/63913/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_6507_full -> Patchwork_13694_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Known issues
------------
Here are the changes found in Patchwork_13694_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live_hangcheck:
- shard-iclb: [PASS][1] -> [INCOMPLETE][2] ([fdo#107713] / [fdo#108569])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-iclb5/igt@i915_selftest@live_hangcheck.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-iclb6/igt@i915_selftest@live_hangcheck.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-skl: [PASS][3] -> [FAIL][4] ([fdo#103833])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-skl8/igt@kms_fbcon_fbt@fbc-suspend.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-skl9/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite:
- shard-iclb: [PASS][5] -> [FAIL][6] ([fdo#103167]) +6 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-iclb5/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-blt:
- shard-skl: [PASS][7] -> [FAIL][8] ([fdo#108040])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-skl8/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-blt.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-skl9/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-suspend:
- shard-kbl: [PASS][9] -> [DMESG-WARN][10] ([fdo#108566]) +1 similar issue
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-kbl7/igt@kms_frontbuffer_tracking@fbc-suspend.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-suspend.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt:
- shard-skl: [PASS][11] -> [FAIL][12] ([fdo#103167]) +2 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-skl8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-skl9/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt.html
* igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
- shard-apl: [PASS][13] -> [DMESG-WARN][14] ([fdo#108566]) +1 similar issue
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-apl4/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-apl6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
* igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:
- shard-skl: [PASS][15] -> [FAIL][16] ([fdo#108145])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-skl8/igt@kms_plane_alpha_blend@pipe-a-coverage-7efc.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-skl9/igt@kms_plane_alpha_blend@pipe-a-coverage-7efc.html
* igt@kms_plane_lowres@pipe-a-tiling-y:
- shard-iclb: [PASS][17] -> [FAIL][18] ([fdo#103166])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-iclb6/igt@kms_plane_lowres@pipe-a-tiling-y.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-iclb8/igt@kms_plane_lowres@pipe-a-tiling-y.html
* igt@kms_psr2_su@frontbuffer:
- shard-iclb: [PASS][19] -> [SKIP][20] ([fdo#109642] / [fdo#111068])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-iclb4/igt@kms_psr2_su@frontbuffer.html
* igt@kms_psr@psr2_primary_page_flip:
- shard-iclb: [PASS][21] -> [SKIP][22] ([fdo#109441])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-iclb5/igt@kms_psr@psr2_primary_page_flip.html
* igt@kms_setmode@basic:
- shard-kbl: [PASS][23] -> [FAIL][24] ([fdo#99912])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-kbl3/igt@kms_setmode@basic.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-kbl3/igt@kms_setmode@basic.html
* igt@perf@oa-exponents:
- shard-glk: [PASS][25] -> [FAIL][26] ([fdo#105483])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-glk7/igt@perf@oa-exponents.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-glk4/igt@perf@oa-exponents.html
#### Possible fixes ####
* igt@i915_pm_rps@waitboost:
- shard-skl: [FAIL][27] ([fdo#102250]) -> [PASS][28]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-skl9/igt@i915_pm_rps@waitboost.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-skl5/igt@i915_pm_rps@waitboost.html
* igt@i915_suspend@fence-restore-tiled2untiled:
- shard-apl: [DMESG-WARN][29] ([fdo#108566]) -> [PASS][30] +2 similar issues
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-apl4/igt@i915_suspend@fence-restore-tiled2untiled.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-apl6/igt@i915_suspend@fence-restore-tiled2untiled.html
* igt@kms_flip@flip-vs-expired-vblank:
- shard-skl: [FAIL][31] ([fdo#105363]) -> [PASS][32] +1 similar issue
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-skl3/igt@kms_flip@flip-vs-expired-vblank.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-skl6/igt@kms_flip@flip-vs-expired-vblank.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-hsw: [INCOMPLETE][33] ([fdo#103540]) -> [PASS][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-hsw8/igt@kms_flip@flip-vs-suspend-interruptible.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-hsw4/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render:
- shard-iclb: [FAIL][35] ([fdo#103167]) -> [PASS][36] +5 similar issues
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-iclb8/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-iclb7/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render.html
* igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min:
- shard-skl: [FAIL][37] ([fdo#108145]) -> [PASS][38]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-skl7/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-skl8/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html
* igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl: [FAIL][39] ([fdo#108145] / [fdo#110403]) -> [PASS][40]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-skl1/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-skl8/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
* igt@kms_psr@psr2_sprite_plane_move:
- shard-iclb: [SKIP][41] ([fdo#109441]) -> [PASS][42] +1 similar issue
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-iclb3/igt@kms_psr@psr2_sprite_plane_move.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
* igt@perf@blocking:
- shard-skl: [FAIL][43] ([fdo#110728]) -> [PASS][44] +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-skl9/igt@perf@blocking.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-skl2/igt@perf@blocking.html
#### Warnings ####
* igt@i915_pm_rpm@modeset-lpsp-stress:
- shard-apl: [SKIP][45] ([fdo#109271]) -> [INCOMPLETE][46] ([fdo#103927])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6507/shard-apl6/igt@i915_pm_rpm@modeset-lpsp-stress.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/shard-apl7/igt@i915_pm_rpm@modeset-lpsp-stress.html
[fdo#102250]: https://bugs.freedesktop.org/show_bug.cgi?id=102250
[fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
[fdo#103833]: https://bugs.freedesktop.org/show_bug.cgi?id=103833
[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
[fdo#105483]: https://bugs.freedesktop.org/show_bug.cgi?id=105483
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#108040]: https://bugs.freedesktop.org/show_bug.cgi?id=108040
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
[fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110403]: https://bugs.freedesktop.org/show_bug.cgi?id=110403
[fdo#110728]: https://bugs.freedesktop.org/show_bug.cgi?id=110728
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
Participating hosts (10 -> 10)
------------------------------
No changes in participating hosts
Build changes
-------------
* Linux: CI_DRM_6507 -> Patchwork_13694
CI_DRM_6507: a607eef7a42e6788090f1ff4de30ed821ad87ad9 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5102: 6038ace76016d8892f4d13aef5301f71ca1a6e2d @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_13694: d52a61072bb50e83ea8d1e82dffe1b55ff8f7a70 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13694/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] drm/vblank: drop use of DRM_WAIT_ON()
2019-07-18 19:47 [PATCH 1/1] drm/vblank: drop use of DRM_WAIT_ON() Sam Ravnborg
` (2 preceding siblings ...)
2019-07-19 2:01 ` ✓ Fi.CI.IGT: " Patchwork
@ 2019-07-19 9:39 ` Daniel Vetter
2019-07-19 11:14 ` Sam Ravnborg
3 siblings, 1 reply; 6+ messages in thread
From: Daniel Vetter @ 2019-07-19 9:39 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: Intel Graphics Development
On Thu, Jul 18, 2019 at 09:47:09PM +0200, Sam Ravnborg wrote:
> From e6f70cb90e0c3c90d45017a8257353652b7e0dcc Mon Sep 17 00:00:00 2001
> From: Sam Ravnborg <sam@ravnborg.org>
> Date: Thu, 30 May 2019 09:38:47 +0200
> Subject: [PATCH] drm/vblank: drop use of DRM_WAIT_ON()
>
> DRM_WAIT_ON() is from the deprecated drm_os_linux header and
> the modern replacement is the wait_event_*.
>
> The return values differ, so a conversion is needed to
> keep the original interface towards userspace.
> Introduced a switch/case to make code obvious and to allow
> different debug prints depending on the result.
>
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Reviewed-by: Sean Paul <sean@poorly.run>
A bit bold to keep the r-b for this substantial bugfix to the patch.
Also not per-patch changelog here. Plus doesn't seem to be on dri-devel
somehow.
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> ---
>
> To verify if it works with the fix.
> (Added wat variable to handle the situation where we never wait)
>
> Sam
>
> drivers/gpu/drm/drm_vblank.c | 32 ++++++++++++++++++++++----------
> 1 file changed, 22 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index 603ab105125d..4e83f1dfd446 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
> @@ -31,7 +31,6 @@
> #include <drm/drm_drv.h>
> #include <drm/drm_framebuffer.h>
> #include <drm/drm_print.h>
> -#include <drm/drm_os_linux.h>
> #include <drm/drm_vblank.h>
>
> #include "drm_internal.h"
> @@ -1576,7 +1575,7 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,
> struct drm_crtc *crtc;
> struct drm_vblank_crtc *vblank;
> union drm_wait_vblank *vblwait = data;
> - int ret;
> + int ret, wait;
> u64 req_seq, seq;
> unsigned int pipe_index;
> unsigned int flags, pipe, high_pipe;
> @@ -1669,22 +1668,35 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,
> return drm_queue_vblank_event(dev, pipe, req_seq, vblwait, file_priv);
> }
>
> + wait = 1;
Instead of this hack I think better to remap the ret value in the if
condition. This here is really hard to read.
-Daniel
> if (req_seq != seq) {
> DRM_DEBUG("waiting on vblank count %llu, crtc %u\n",
> req_seq, pipe);
> - DRM_WAIT_ON(ret, vblank->queue, 3 * HZ,
> - vblank_passed(drm_vblank_count(dev, pipe),
> - req_seq) ||
> - !READ_ONCE(vblank->enabled));
> + wait = wait_event_interruptible_timeout(vblank->queue,
> + vblank_passed(drm_vblank_count(dev, pipe), req_seq) ||
> + !READ_ONCE(vblank->enabled),
> + msecs_to_jiffies(3000));
> }
>
> - if (ret != -EINTR) {
> + switch (wait) {
> + case 0:
> + /* timeout */
> + ret = -EBUSY;
> drm_wait_vblank_reply(dev, pipe, &vblwait->reply);
> -
> - DRM_DEBUG("crtc %d returning %u to client\n",
> + DRM_DEBUG("timeout waiting for vblank. crtc %d returning %u to client\n",
> pipe, vblwait->reply.sequence);
> - } else {
> + break;
> + case -ERESTARTSYS:
> + /* interrupted by signal */
> + ret = -EINTR;
> DRM_DEBUG("crtc %d vblank wait interrupted by signal\n", pipe);
> + break;
> + default:
> + ret = 0;
> + drm_wait_vblank_reply(dev, pipe, &vblwait->reply);
> + DRM_DEBUG("crtc %d returning %u to client\n",
> + pipe, vblwait->reply.sequence);
> + break;
> }
>
> done:
> --
> 2.20.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] drm/vblank: drop use of DRM_WAIT_ON()
2019-07-19 9:39 ` [PATCH 1/1] " Daniel Vetter
@ 2019-07-19 11:14 ` Sam Ravnborg
0 siblings, 0 replies; 6+ messages in thread
From: Sam Ravnborg @ 2019-07-19 11:14 UTC (permalink / raw)
To: Daniel Vetter; +Cc: Intel Graphics Development
Hi Daniel.
On Fri, Jul 19, 2019 at 11:39:26AM +0200, Daniel Vetter wrote:
> On Thu, Jul 18, 2019 at 09:47:09PM +0200, Sam Ravnborg wrote:
> > From e6f70cb90e0c3c90d45017a8257353652b7e0dcc Mon Sep 17 00:00:00 2001
> > From: Sam Ravnborg <sam@ravnborg.org>
> > Date: Thu, 30 May 2019 09:38:47 +0200
> > Subject: [PATCH] drm/vblank: drop use of DRM_WAIT_ON()
> >
> > DRM_WAIT_ON() is from the deprecated drm_os_linux header and
> > the modern replacement is the wait_event_*.
> >
> > The return values differ, so a conversion is needed to
> > keep the original interface towards userspace.
> > Introduced a switch/case to make code obvious and to allow
> > different debug prints depending on the result.
> >
> > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> > Reviewed-by: Sean Paul <sean@poorly.run>
>
> A bit bold to keep the r-b for this substantial bugfix to the patch.
>
> Also not per-patch changelog here. Plus doesn't seem to be on dri-devel
> somehow.
It was a quick hack that I just throw after IGT for testing and did not
really consider that there are subscribers on the mailing list too.
Should have dealt with this like any public patch.
The patch in question handle the situation where req_seq equals seq.
This was not correct before.
I looked at the IGT test results while they were running and concluded
that the run was bad - was suprised to see it passed this morning.
Anyway, as pointed out on irc and in your other mail, there is a
significant difference in polling or just waiting with some explicit
wakeups.
So in v3 I have just opencoded DRM_WAIT_ON() - but I will post this only
after I have done some more local testing.
Hopefully tonight if the weather is not too good.
If, on the other hand, you think I should try to move forward with
wait_event_* then I will address your feedback below.
It needs to be simpler and more clear what is going on.
Sam
>
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> > Cc: David Airlie <airlied@linux.ie>
> > Cc: Daniel Vetter <daniel@ffwll.ch>
> > ---
> >
> > To verify if it works with the fix.
> > (Added wat variable to handle the situation where we never wait)
> >
> > Sam
> >
> > drivers/gpu/drm/drm_vblank.c | 32 ++++++++++++++++++++++----------
> > 1 file changed, 22 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > index 603ab105125d..4e83f1dfd446 100644
> > --- a/drivers/gpu/drm/drm_vblank.c
> > +++ b/drivers/gpu/drm/drm_vblank.c
> > @@ -31,7 +31,6 @@
> > #include <drm/drm_drv.h>
> > #include <drm/drm_framebuffer.h>
> > #include <drm/drm_print.h>
> > -#include <drm/drm_os_linux.h>
> > #include <drm/drm_vblank.h>
> >
> > #include "drm_internal.h"
> > @@ -1576,7 +1575,7 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,
> > struct drm_crtc *crtc;
> > struct drm_vblank_crtc *vblank;
> > union drm_wait_vblank *vblwait = data;
> > - int ret;
> > + int ret, wait;
> > u64 req_seq, seq;
> > unsigned int pipe_index;
> > unsigned int flags, pipe, high_pipe;
> > @@ -1669,22 +1668,35 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,
> > return drm_queue_vblank_event(dev, pipe, req_seq, vblwait, file_priv);
> > }
> >
> > + wait = 1;
>
> Instead of this hack I think better to remap the ret value in the if
> condition. This here is really hard to read.
> -Daniel
>
> > if (req_seq != seq) {
> > DRM_DEBUG("waiting on vblank count %llu, crtc %u\n",
> > req_seq, pipe);
> > - DRM_WAIT_ON(ret, vblank->queue, 3 * HZ,
> > - vblank_passed(drm_vblank_count(dev, pipe),
> > - req_seq) ||
> > - !READ_ONCE(vblank->enabled));
> > + wait = wait_event_interruptible_timeout(vblank->queue,
> > + vblank_passed(drm_vblank_count(dev, pipe), req_seq) ||
> > + !READ_ONCE(vblank->enabled),
> > + msecs_to_jiffies(3000));
> > }
> >
> > - if (ret != -EINTR) {
> > + switch (wait) {
> > + case 0:
> > + /* timeout */
> > + ret = -EBUSY;
> > drm_wait_vblank_reply(dev, pipe, &vblwait->reply);
> > -
> > - DRM_DEBUG("crtc %d returning %u to client\n",
> > + DRM_DEBUG("timeout waiting for vblank. crtc %d returning %u to client\n",
> > pipe, vblwait->reply.sequence);
> > - } else {
> > + break;
> > + case -ERESTARTSYS:
> > + /* interrupted by signal */
> > + ret = -EINTR;
> > DRM_DEBUG("crtc %d vblank wait interrupted by signal\n", pipe);
> > + break;
> > + default:
> > + ret = 0;
> > + drm_wait_vblank_reply(dev, pipe, &vblwait->reply);
> > + DRM_DEBUG("crtc %d returning %u to client\n",
> > + pipe, vblwait->reply.sequence);
> > + break;
> > }
> >
> > done:
> > --
> > 2.20.1
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-07-19 11:14 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-18 19:47 [PATCH 1/1] drm/vblank: drop use of DRM_WAIT_ON() Sam Ravnborg
2019-07-18 19:56 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/1] " Patchwork
2019-07-18 20:15 ` ✓ Fi.CI.BAT: success " Patchwork
2019-07-19 2:01 ` ✓ Fi.CI.IGT: " Patchwork
2019-07-19 9:39 ` [PATCH 1/1] " Daniel Vetter
2019-07-19 11:14 ` Sam Ravnborg
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.