* [PATCH v2] drm: make drm_file use keyed wakeups
@ 2020-04-24 16:26 ` Kenny Levinsen
0 siblings, 0 replies; 15+ messages in thread
From: Kenny Levinsen @ 2020-04-24 16:26 UTC (permalink / raw)
To: intel-gfx, dri-devel
Cc: daniel, airlied, tzimmermann, mripard, maarten.lankhorst,
linux-kernel, Kenny Levinsen
Some processes, such as systemd, are only polling for EPOLLERR|EPOLLHUP.
As drm_file uses unkeyed wakeups, such a poll can receive many spurious
wakeups from uninteresting events if, for example, the file description
is subscribed to vblank events. This is the case with systemd, as it
polls a file description from logind that is shared with the users'
compositor.
Use keyed wakeups to allow the wakeup target to more efficiently discard
these uninteresting events.
Signed-off-by: Kenny Levinsen <kl@kl.wtf>
---
drivers/gpu/drm/drm_file.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
index c4c704e01961..ec25b3d979d9 100644
--- a/drivers/gpu/drm/drm_file.c
+++ b/drivers/gpu/drm/drm_file.c
@@ -608,7 +608,8 @@ ssize_t drm_read(struct file *filp, char __user *buffer,
file_priv->event_space -= length;
list_add(&e->link, &file_priv->event_list);
spin_unlock_irq(&dev->event_lock);
- wake_up_interruptible(&file_priv->event_wait);
+ wake_up_interruptible_poll(&file_priv->event_wait,
+ EPOLLIN | EPOLLRDNORM);
break;
}
@@ -804,7 +805,8 @@ void drm_send_event_locked(struct drm_device *dev, struct drm_pending_event *e)
list_del(&e->pending_link);
list_add_tail(&e->link,
&e->file_priv->event_list);
- wake_up_interruptible(&e->file_priv->event_wait);
+ wake_up_interruptible_poll(&e->file_priv->event_wait,
+ EPOLLIN | EPOLLRDNORM);
}
EXPORT_SYMBOL(drm_send_event_locked);
--
2.26.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2] drm: make drm_file use keyed wakeups
@ 2020-04-24 16:26 ` Kenny Levinsen
0 siblings, 0 replies; 15+ messages in thread
From: Kenny Levinsen @ 2020-04-24 16:26 UTC (permalink / raw)
To: intel-gfx, dri-devel; +Cc: airlied, linux-kernel, Kenny Levinsen, tzimmermann
Some processes, such as systemd, are only polling for EPOLLERR|EPOLLHUP.
As drm_file uses unkeyed wakeups, such a poll can receive many spurious
wakeups from uninteresting events if, for example, the file description
is subscribed to vblank events. This is the case with systemd, as it
polls a file description from logind that is shared with the users'
compositor.
Use keyed wakeups to allow the wakeup target to more efficiently discard
these uninteresting events.
Signed-off-by: Kenny Levinsen <kl@kl.wtf>
---
drivers/gpu/drm/drm_file.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
index c4c704e01961..ec25b3d979d9 100644
--- a/drivers/gpu/drm/drm_file.c
+++ b/drivers/gpu/drm/drm_file.c
@@ -608,7 +608,8 @@ ssize_t drm_read(struct file *filp, char __user *buffer,
file_priv->event_space -= length;
list_add(&e->link, &file_priv->event_list);
spin_unlock_irq(&dev->event_lock);
- wake_up_interruptible(&file_priv->event_wait);
+ wake_up_interruptible_poll(&file_priv->event_wait,
+ EPOLLIN | EPOLLRDNORM);
break;
}
@@ -804,7 +805,8 @@ void drm_send_event_locked(struct drm_device *dev, struct drm_pending_event *e)
list_del(&e->pending_link);
list_add_tail(&e->link,
&e->file_priv->event_list);
- wake_up_interruptible(&e->file_priv->event_wait);
+ wake_up_interruptible_poll(&e->file_priv->event_wait,
+ EPOLLIN | EPOLLRDNORM);
}
EXPORT_SYMBOL(drm_send_event_locked);
--
2.26.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Intel-gfx] [PATCH v2] drm: make drm_file use keyed wakeups
@ 2020-04-24 16:26 ` Kenny Levinsen
0 siblings, 0 replies; 15+ messages in thread
From: Kenny Levinsen @ 2020-04-24 16:26 UTC (permalink / raw)
To: intel-gfx, dri-devel
Cc: airlied, linux-kernel, mripard, Kenny Levinsen, tzimmermann
Some processes, such as systemd, are only polling for EPOLLERR|EPOLLHUP.
As drm_file uses unkeyed wakeups, such a poll can receive many spurious
wakeups from uninteresting events if, for example, the file description
is subscribed to vblank events. This is the case with systemd, as it
polls a file description from logind that is shared with the users'
compositor.
Use keyed wakeups to allow the wakeup target to more efficiently discard
these uninteresting events.
Signed-off-by: Kenny Levinsen <kl@kl.wtf>
---
drivers/gpu/drm/drm_file.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
index c4c704e01961..ec25b3d979d9 100644
--- a/drivers/gpu/drm/drm_file.c
+++ b/drivers/gpu/drm/drm_file.c
@@ -608,7 +608,8 @@ ssize_t drm_read(struct file *filp, char __user *buffer,
file_priv->event_space -= length;
list_add(&e->link, &file_priv->event_list);
spin_unlock_irq(&dev->event_lock);
- wake_up_interruptible(&file_priv->event_wait);
+ wake_up_interruptible_poll(&file_priv->event_wait,
+ EPOLLIN | EPOLLRDNORM);
break;
}
@@ -804,7 +805,8 @@ void drm_send_event_locked(struct drm_device *dev, struct drm_pending_event *e)
list_del(&e->pending_link);
list_add_tail(&e->link,
&e->file_priv->event_list);
- wake_up_interruptible(&e->file_priv->event_wait);
+ wake_up_interruptible_poll(&e->file_priv->event_wait,
+ EPOLLIN | EPOLLRDNORM);
}
EXPORT_SYMBOL(drm_send_event_locked);
--
2.26.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm: make drm_file use keyed wakeups (rev2)
2020-04-24 16:26 ` Kenny Levinsen
(?)
(?)
@ 2020-04-24 17:39 ` Patchwork
-1 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2020-04-24 17:39 UTC (permalink / raw)
To: Kenny Levinsen; +Cc: intel-gfx
== Series Details ==
Series: drm: make drm_file use keyed wakeups (rev2)
URL : https://patchwork.freedesktop.org/series/76444/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
3ac07bd26367 drm: make drm_file use keyed wakeups
-:28: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#28: FILE: drivers/gpu/drm/drm_file.c:617:
+ wake_up_interruptible_poll(&file_priv->event_wait,
+ EPOLLIN | EPOLLRDNORM);
-:38: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#38: FILE: drivers/gpu/drm/drm_file.c:814:
+ wake_up_interruptible_poll(&e->file_priv->event_wait,
+ EPOLLIN | EPOLLRDNORM);
total: 0 errors, 0 warnings, 2 checks, 18 lines checked
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm: make drm_file use keyed wakeups (rev2)
2020-04-24 16:26 ` Kenny Levinsen
` (2 preceding siblings ...)
(?)
@ 2020-04-24 18:03 ` Patchwork
-1 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2020-04-24 18:03 UTC (permalink / raw)
To: Kenny Levinsen; +Cc: intel-gfx
== Series Details ==
Series: drm: make drm_file use keyed wakeups (rev2)
URL : https://patchwork.freedesktop.org/series/76444/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_8361 -> Patchwork_17457
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/index.html
Known issues
------------
Here are the changes found in Patchwork_17457 that come from known issues:
### IGT changes ###
#### Warnings ####
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-kbl-guc: [FAIL][1] ([i915#665] / [i915#704]) -> [SKIP][2] ([fdo#109271])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/fi-kbl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/fi-kbl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[i915#665]: https://gitlab.freedesktop.org/drm/intel/issues/665
[i915#704]: https://gitlab.freedesktop.org/drm/intel/issues/704
Participating hosts (49 -> 44)
------------------------------
Additional (1): fi-kbl-7560u
Missing (6): fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus
Build changes
-------------
* CI: CI-20190529 -> None
* Linux: CI_DRM_8361 -> Patchwork_17457
CI-20190529: 20190529
CI_DRM_8361: b4686529aa525cedc337041c3e2741a93c1a0449 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5610: 71fed15724898a8f914666093352a964b70a62fc @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_17457: 3ac07bd263679cf208def1dfedb6297cca9f7ff2 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
3ac07bd26367 drm: make drm_file use keyed wakeups
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Intel-gfx] ✓ Fi.CI.IGT: success for drm: make drm_file use keyed wakeups (rev2)
2020-04-24 16:26 ` Kenny Levinsen
` (3 preceding siblings ...)
(?)
@ 2020-04-24 20:54 ` Patchwork
-1 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2020-04-24 20:54 UTC (permalink / raw)
To: Kenny Levinsen; +Cc: intel-gfx
== Series Details ==
Series: drm: make drm_file use keyed wakeups (rev2)
URL : https://patchwork.freedesktop.org/series/76444/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_8361_full -> Patchwork_17457_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Known issues
------------
Here are the changes found in Patchwork_17457_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_params@invalid-bsd-ring:
- shard-iclb: [PASS][1] -> [SKIP][2] ([fdo#109276])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-iclb1/igt@gem_exec_params@invalid-bsd-ring.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-iclb3/igt@gem_exec_params@invalid-bsd-ring.html
* igt@i915_pm_dc@dc6-dpms:
- shard-iclb: [PASS][3] -> [FAIL][4] ([i915#454])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-iclb8/igt@i915_pm_dc@dc6-dpms.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-iclb6/igt@i915_pm_dc@dc6-dpms.html
* igt@i915_suspend@fence-restore-tiled2untiled:
- shard-kbl: [PASS][5] -> [DMESG-WARN][6] ([i915#180]) +1 similar issue
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-kbl6/igt@i915_suspend@fence-restore-tiled2untiled.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-kbl7/igt@i915_suspend@fence-restore-tiled2untiled.html
* igt@kms_hdr@bpc-switch-dpms:
- shard-skl: [PASS][7] -> [FAIL][8] ([i915#1188])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-skl10/igt@kms_hdr@bpc-switch-dpms.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-skl2/igt@kms_hdr@bpc-switch-dpms.html
* igt@kms_pipe_crc_basic@hang-read-crc-pipe-a:
- shard-kbl: [PASS][9] -> [FAIL][10] ([i915#53] / [i915#93] / [i915#95])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-kbl2/igt@kms_pipe_crc_basic@hang-read-crc-pipe-a.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-kbl6/igt@kms_pipe_crc_basic@hang-read-crc-pipe-a.html
- shard-apl: [PASS][11] -> [FAIL][12] ([i915#53] / [i915#95])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-apl7/igt@kms_pipe_crc_basic@hang-read-crc-pipe-a.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-apl6/igt@kms_pipe_crc_basic@hang-read-crc-pipe-a.html
* igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
- shard-apl: [PASS][13] -> [DMESG-WARN][14] ([i915#180]) +2 similar issues
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-apl8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-apl8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
* igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl: [PASS][15] -> [FAIL][16] ([fdo#108145] / [i915#265]) +1 similar issue
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-skl1/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-skl4/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
* igt@kms_psr@psr2_primary_page_flip:
- shard-iclb: [PASS][17] -> [SKIP][18] ([fdo#109441]) +1 similar issue
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-iclb4/igt@kms_psr@psr2_primary_page_flip.html
#### Possible fixes ####
* igt@gen9_exec_parse@allowed-single:
- shard-skl: [DMESG-WARN][19] ([i915#716]) -> [PASS][20]
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-skl3/igt@gen9_exec_parse@allowed-single.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-skl3/igt@gen9_exec_parse@allowed-single.html
* igt@i915_suspend@forcewake:
- shard-skl: [INCOMPLETE][21] ([i915#69]) -> [PASS][22]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-skl6/igt@i915_suspend@forcewake.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-skl8/igt@i915_suspend@forcewake.html
* igt@kms_cursor_crc@pipe-b-cursor-suspend:
- shard-skl: [INCOMPLETE][23] ([i915#300]) -> [PASS][24]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-skl6/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-skl8/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
* igt@kms_cursor_legacy@pipe-c-torture-bo:
- shard-hsw: [DMESG-WARN][25] ([i915#128]) -> [PASS][26]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-hsw2/igt@kms_cursor_legacy@pipe-c-torture-bo.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-hsw1/igt@kms_cursor_legacy@pipe-c-torture-bo.html
* {igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a2}:
- shard-glk: [FAIL][27] ([i915#79]) -> [PASS][28]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-glk8/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a2.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-glk2/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a2.html
* {igt@kms_flip@flip-vs-suspend-interruptible@b-vga1}:
- shard-snb: [INCOMPLETE][29] ([i915#82]) -> [PASS][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-snb1/igt@kms_flip@flip-vs-suspend-interruptible@b-vga1.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-snb6/igt@kms_flip@flip-vs-suspend-interruptible@b-vga1.html
* {igt@kms_flip@flip-vs-suspend@b-hdmi-a1}:
- shard-hsw: [INCOMPLETE][31] ([i915#61]) -> [PASS][32]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-hsw4/igt@kms_flip@flip-vs-suspend@b-hdmi-a1.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-hsw2/igt@kms_flip@flip-vs-suspend@b-hdmi-a1.html
* {igt@kms_flip@flip-vs-suspend@c-dp1}:
- shard-apl: [DMESG-WARN][33] ([i915#180]) -> [PASS][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-apl4/igt@kms_flip@flip-vs-suspend@c-dp1.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-apl7/igt@kms_flip@flip-vs-suspend@c-dp1.html
* igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min:
- shard-skl: [FAIL][35] ([fdo#108145] / [i915#265]) -> [PASS][36]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-skl1/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-skl4/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min.html
* igt@kms_psr@psr2_primary_mmap_cpu:
- shard-iclb: [SKIP][37] ([fdo#109441]) -> [PASS][38] +1 similar issue
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-iclb6/igt@kms_psr@psr2_primary_mmap_cpu.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
* {igt@perf@blocking-parameterized}:
- shard-iclb: [FAIL][39] ([i915#1542]) -> [PASS][40]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-iclb7/igt@perf@blocking-parameterized.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-iclb2/igt@perf@blocking-parameterized.html
#### Warnings ####
* igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait:
- shard-snb: [SKIP][41] ([fdo#109271]) -> [INCOMPLETE][42] ([i915#82])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-snb5/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-snb1/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
* igt@i915_pm_rpm@system-suspend-execbuf:
- shard-snb: [INCOMPLETE][43] ([i915#82]) -> [SKIP][44] ([fdo#109271])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-snb2/igt@i915_pm_rpm@system-suspend-execbuf.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-snb1/igt@i915_pm_rpm@system-suspend-execbuf.html
* igt@kms_plane_alpha_blend@pipe-c-alpha-basic:
- shard-apl: [FAIL][45] ([fdo#108145] / [i915#265] / [i915#95]) -> [FAIL][46] ([fdo#108145] / [i915#265])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-apl6/igt@kms_plane_alpha_blend@pipe-c-alpha-basic.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-apl2/igt@kms_plane_alpha_blend@pipe-c-alpha-basic.html
* igt@kms_psr2_su@page_flip:
- shard-iclb: [FAIL][47] ([i915#608]) -> [SKIP][48] ([fdo#109642] / [fdo#111068])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8361/shard-iclb2/igt@kms_psr2_su@page_flip.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17457/shard-iclb4/igt@kms_psr2_su@page_flip.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
[i915#128]: https://gitlab.freedesktop.org/drm/intel/issues/128
[i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#198]: https://gitlab.freedesktop.org/drm/intel/issues/198
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#300]: https://gitlab.freedesktop.org/drm/intel/issues/300
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#53]: https://gitlab.freedesktop.org/drm/intel/issues/53
[i915#608]: https://gitlab.freedesktop.org/drm/intel/issues/608
[i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61
[i915#69]: https://gitlab.freedesktop.org/drm/intel/issues/69
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#82]: https://gitlab.freedesktop.org/drm/intel/issues/82
[i915#93]: https://gitlab.freedesktop.org/drm/intel/issues/93
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
Participating hosts (10 -> 10)
------------------------------
No changes in participating hosts
Build changes
-------------
* CI: CI-20190529 -> None
* Linux: CI_DRM_8361 -> Patchwork_17457
CI-20190529: 20190529
CI_DRM_8361: b4686529aa525cedc337041c3e2741a93c1a0449 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5610: 71fed15724898a8f914666093352a964b70a62fc @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_17457: 3ac07bd263679cf208def1dfedb6297cca9f7ff2 @ 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_17457/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2] drm: make drm_file use keyed wakeups
2020-04-24 16:26 ` Kenny Levinsen
(?)
@ 2020-04-28 15:14 ` Daniel Vetter
-1 siblings, 0 replies; 15+ messages in thread
From: Daniel Vetter @ 2020-04-28 15:14 UTC (permalink / raw)
To: Kenny Levinsen
Cc: intel-gfx, dri-devel, daniel, airlied, tzimmermann, mripard,
maarten.lankhorst, linux-kernel
On Fri, Apr 24, 2020 at 06:26:15PM +0200, Kenny Levinsen wrote:
> Some processes, such as systemd, are only polling for EPOLLERR|EPOLLHUP.
> As drm_file uses unkeyed wakeups, such a poll can receive many spurious
> wakeups from uninteresting events if, for example, the file description
> is subscribed to vblank events. This is the case with systemd, as it
> polls a file description from logind that is shared with the users'
> compositor.
>
> Use keyed wakeups to allow the wakeup target to more efficiently discard
> these uninteresting events.
>
> Signed-off-by: Kenny Levinsen <kl@kl.wtf>
Hm I applied v1 and I'm not spotting what's different here, and there's no
changelog explaining what changed ...
Please send a fixup if there's anything important missing.
-Daniel
> ---
> drivers/gpu/drm/drm_file.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
> index c4c704e01961..ec25b3d979d9 100644
> --- a/drivers/gpu/drm/drm_file.c
> +++ b/drivers/gpu/drm/drm_file.c
> @@ -608,7 +608,8 @@ ssize_t drm_read(struct file *filp, char __user *buffer,
> file_priv->event_space -= length;
> list_add(&e->link, &file_priv->event_list);
> spin_unlock_irq(&dev->event_lock);
> - wake_up_interruptible(&file_priv->event_wait);
> + wake_up_interruptible_poll(&file_priv->event_wait,
> + EPOLLIN | EPOLLRDNORM);
> break;
> }
>
> @@ -804,7 +805,8 @@ void drm_send_event_locked(struct drm_device *dev, struct drm_pending_event *e)
> list_del(&e->pending_link);
> list_add_tail(&e->link,
> &e->file_priv->event_list);
> - wake_up_interruptible(&e->file_priv->event_wait);
> + wake_up_interruptible_poll(&e->file_priv->event_wait,
> + EPOLLIN | EPOLLRDNORM);
> }
> EXPORT_SYMBOL(drm_send_event_locked);
>
> --
> 2.26.1
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2] drm: make drm_file use keyed wakeups
@ 2020-04-28 15:14 ` Daniel Vetter
0 siblings, 0 replies; 15+ messages in thread
From: Daniel Vetter @ 2020-04-28 15:14 UTC (permalink / raw)
To: Kenny Levinsen; +Cc: airlied, intel-gfx, linux-kernel, dri-devel, tzimmermann
On Fri, Apr 24, 2020 at 06:26:15PM +0200, Kenny Levinsen wrote:
> Some processes, such as systemd, are only polling for EPOLLERR|EPOLLHUP.
> As drm_file uses unkeyed wakeups, such a poll can receive many spurious
> wakeups from uninteresting events if, for example, the file description
> is subscribed to vblank events. This is the case with systemd, as it
> polls a file description from logind that is shared with the users'
> compositor.
>
> Use keyed wakeups to allow the wakeup target to more efficiently discard
> these uninteresting events.
>
> Signed-off-by: Kenny Levinsen <kl@kl.wtf>
Hm I applied v1 and I'm not spotting what's different here, and there's no
changelog explaining what changed ...
Please send a fixup if there's anything important missing.
-Daniel
> ---
> drivers/gpu/drm/drm_file.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
> index c4c704e01961..ec25b3d979d9 100644
> --- a/drivers/gpu/drm/drm_file.c
> +++ b/drivers/gpu/drm/drm_file.c
> @@ -608,7 +608,8 @@ ssize_t drm_read(struct file *filp, char __user *buffer,
> file_priv->event_space -= length;
> list_add(&e->link, &file_priv->event_list);
> spin_unlock_irq(&dev->event_lock);
> - wake_up_interruptible(&file_priv->event_wait);
> + wake_up_interruptible_poll(&file_priv->event_wait,
> + EPOLLIN | EPOLLRDNORM);
> break;
> }
>
> @@ -804,7 +805,8 @@ void drm_send_event_locked(struct drm_device *dev, struct drm_pending_event *e)
> list_del(&e->pending_link);
> list_add_tail(&e->link,
> &e->file_priv->event_list);
> - wake_up_interruptible(&e->file_priv->event_wait);
> + wake_up_interruptible_poll(&e->file_priv->event_wait,
> + EPOLLIN | EPOLLRDNORM);
> }
> EXPORT_SYMBOL(drm_send_event_locked);
>
> --
> 2.26.1
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Intel-gfx] [PATCH v2] drm: make drm_file use keyed wakeups
@ 2020-04-28 15:14 ` Daniel Vetter
0 siblings, 0 replies; 15+ messages in thread
From: Daniel Vetter @ 2020-04-28 15:14 UTC (permalink / raw)
To: Kenny Levinsen
Cc: airlied, intel-gfx, linux-kernel, dri-devel, mripard, tzimmermann
On Fri, Apr 24, 2020 at 06:26:15PM +0200, Kenny Levinsen wrote:
> Some processes, such as systemd, are only polling for EPOLLERR|EPOLLHUP.
> As drm_file uses unkeyed wakeups, such a poll can receive many spurious
> wakeups from uninteresting events if, for example, the file description
> is subscribed to vblank events. This is the case with systemd, as it
> polls a file description from logind that is shared with the users'
> compositor.
>
> Use keyed wakeups to allow the wakeup target to more efficiently discard
> these uninteresting events.
>
> Signed-off-by: Kenny Levinsen <kl@kl.wtf>
Hm I applied v1 and I'm not spotting what's different here, and there's no
changelog explaining what changed ...
Please send a fixup if there's anything important missing.
-Daniel
> ---
> drivers/gpu/drm/drm_file.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
> index c4c704e01961..ec25b3d979d9 100644
> --- a/drivers/gpu/drm/drm_file.c
> +++ b/drivers/gpu/drm/drm_file.c
> @@ -608,7 +608,8 @@ ssize_t drm_read(struct file *filp, char __user *buffer,
> file_priv->event_space -= length;
> list_add(&e->link, &file_priv->event_list);
> spin_unlock_irq(&dev->event_lock);
> - wake_up_interruptible(&file_priv->event_wait);
> + wake_up_interruptible_poll(&file_priv->event_wait,
> + EPOLLIN | EPOLLRDNORM);
> break;
> }
>
> @@ -804,7 +805,8 @@ void drm_send_event_locked(struct drm_device *dev, struct drm_pending_event *e)
> list_del(&e->pending_link);
> list_add_tail(&e->link,
> &e->file_priv->event_list);
> - wake_up_interruptible(&e->file_priv->event_wait);
> + wake_up_interruptible_poll(&e->file_priv->event_wait,
> + EPOLLIN | EPOLLRDNORM);
> }
> EXPORT_SYMBOL(drm_send_event_locked);
>
> --
> 2.26.1
>
--
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] 15+ messages in thread
* Re: [PATCH v2] drm: make drm_file use keyed wakeups
2020-04-24 16:26 ` Kenny Levinsen
(?)
@ 2020-04-29 11:19 ` kl
-1 siblings, 0 replies; 15+ messages in thread
From: kl @ 2020-04-29 11:19 UTC (permalink / raw)
To: Daniel Vetter
Cc: intel-gfx, dri-devel, airlied, tzimmermann, mripard,
maarten.lankhorst, linux-kernel
April 28, 2020 5:14 PM, "Daniel Vetter" <daniel@ffwll.ch> wrote:
> On Fri, Apr 24, 2020 at 06:26:15PM +0200, Kenny Levinsen wrote:
>
>> Some processes, such as systemd, are only polling for EPOLLERR|EPOLLHUP.
>> As drm_file uses unkeyed wakeups, such a poll can receive many spurious
>> wakeups from uninteresting events if, for example, the file description
>> is subscribed to vblank events. This is the case with systemd, as it
>> polls a file description from logind that is shared with the users'
>> compositor.
>>
>> Use keyed wakeups to allow the wakeup target to more efficiently discard
>> these uninteresting events.
>>
>> Signed-off-by: Kenny Levinsen <kl@kl.wtf>
>
> Hm I applied v1 and I'm not spotting what's different here, and there's no
> changelog explaining what changed ...
>
> Please send a fixup if there's anything important missing.
> -Daniel
>
It's only the summary that differed as you and sravn requested in #dri-devel, so it's probably fine.
I should have explained the change. I'm still trying to get the hang of the email-based workflow. :)
Best regards,
Kenny Levinsen
>> ---
>> drivers/gpu/drm/drm_file.c | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
>> index c4c704e01961..ec25b3d979d9 100644
>> --- a/drivers/gpu/drm/drm_file.c
>> +++ b/drivers/gpu/drm/drm_file.c
>> @@ -608,7 +608,8 @@ ssize_t drm_read(struct file *filp, char __user *buffer,
>> file_priv->event_space -= length;
>> list_add(&e->link, &file_priv->event_list);
>> spin_unlock_irq(&dev->event_lock);
>> - wake_up_interruptible(&file_priv->event_wait);
>> + wake_up_interruptible_poll(&file_priv->event_wait,
>> + EPOLLIN | EPOLLRDNORM);
>> break;
>> }
>>
>> @@ -804,7 +805,8 @@ void drm_send_event_locked(struct drm_device *dev, struct drm_pending_event *e)
>> list_del(&e->pending_link);
>> list_add_tail(&e->link,
>> &e->file_priv->event_list);
>> - wake_up_interruptible(&e->file_priv->event_wait);
>> + wake_up_interruptible_poll(&e->file_priv->event_wait,
>> + EPOLLIN | EPOLLRDNORM);
>> }
>> EXPORT_SYMBOL(drm_send_event_locked);
>>
>> --
>> 2.26.1
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2] drm: make drm_file use keyed wakeups
@ 2020-04-29 11:19 ` kl
0 siblings, 0 replies; 15+ messages in thread
From: kl @ 2020-04-29 11:19 UTC (permalink / raw)
To: Daniel Vetter; +Cc: airlied, intel-gfx, linux-kernel, dri-devel, tzimmermann
April 28, 2020 5:14 PM, "Daniel Vetter" <daniel@ffwll.ch> wrote:
> On Fri, Apr 24, 2020 at 06:26:15PM +0200, Kenny Levinsen wrote:
>
>> Some processes, such as systemd, are only polling for EPOLLERR|EPOLLHUP.
>> As drm_file uses unkeyed wakeups, such a poll can receive many spurious
>> wakeups from uninteresting events if, for example, the file description
>> is subscribed to vblank events. This is the case with systemd, as it
>> polls a file description from logind that is shared with the users'
>> compositor.
>>
>> Use keyed wakeups to allow the wakeup target to more efficiently discard
>> these uninteresting events.
>>
>> Signed-off-by: Kenny Levinsen <kl@kl.wtf>
>
> Hm I applied v1 and I'm not spotting what's different here, and there's no
> changelog explaining what changed ...
>
> Please send a fixup if there's anything important missing.
> -Daniel
>
It's only the summary that differed as you and sravn requested in #dri-devel, so it's probably fine.
I should have explained the change. I'm still trying to get the hang of the email-based workflow. :)
Best regards,
Kenny Levinsen
>> ---
>> drivers/gpu/drm/drm_file.c | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
>> index c4c704e01961..ec25b3d979d9 100644
>> --- a/drivers/gpu/drm/drm_file.c
>> +++ b/drivers/gpu/drm/drm_file.c
>> @@ -608,7 +608,8 @@ ssize_t drm_read(struct file *filp, char __user *buffer,
>> file_priv->event_space -= length;
>> list_add(&e->link, &file_priv->event_list);
>> spin_unlock_irq(&dev->event_lock);
>> - wake_up_interruptible(&file_priv->event_wait);
>> + wake_up_interruptible_poll(&file_priv->event_wait,
>> + EPOLLIN | EPOLLRDNORM);
>> break;
>> }
>>
>> @@ -804,7 +805,8 @@ void drm_send_event_locked(struct drm_device *dev, struct drm_pending_event *e)
>> list_del(&e->pending_link);
>> list_add_tail(&e->link,
>> &e->file_priv->event_list);
>> - wake_up_interruptible(&e->file_priv->event_wait);
>> + wake_up_interruptible_poll(&e->file_priv->event_wait,
>> + EPOLLIN | EPOLLRDNORM);
>> }
>> EXPORT_SYMBOL(drm_send_event_locked);
>>
>> --
>> 2.26.1
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Intel-gfx] [PATCH v2] drm: make drm_file use keyed wakeups
@ 2020-04-29 11:19 ` kl
0 siblings, 0 replies; 15+ messages in thread
From: kl @ 2020-04-29 11:19 UTC (permalink / raw)
To: Daniel Vetter
Cc: airlied, intel-gfx, linux-kernel, dri-devel, mripard, tzimmermann
April 28, 2020 5:14 PM, "Daniel Vetter" <daniel@ffwll.ch> wrote:
> On Fri, Apr 24, 2020 at 06:26:15PM +0200, Kenny Levinsen wrote:
>
>> Some processes, such as systemd, are only polling for EPOLLERR|EPOLLHUP.
>> As drm_file uses unkeyed wakeups, such a poll can receive many spurious
>> wakeups from uninteresting events if, for example, the file description
>> is subscribed to vblank events. This is the case with systemd, as it
>> polls a file description from logind that is shared with the users'
>> compositor.
>>
>> Use keyed wakeups to allow the wakeup target to more efficiently discard
>> these uninteresting events.
>>
>> Signed-off-by: Kenny Levinsen <kl@kl.wtf>
>
> Hm I applied v1 and I'm not spotting what's different here, and there's no
> changelog explaining what changed ...
>
> Please send a fixup if there's anything important missing.
> -Daniel
>
It's only the summary that differed as you and sravn requested in #dri-devel, so it's probably fine.
I should have explained the change. I'm still trying to get the hang of the email-based workflow. :)
Best regards,
Kenny Levinsen
>> ---
>> drivers/gpu/drm/drm_file.c | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
>> index c4c704e01961..ec25b3d979d9 100644
>> --- a/drivers/gpu/drm/drm_file.c
>> +++ b/drivers/gpu/drm/drm_file.c
>> @@ -608,7 +608,8 @@ ssize_t drm_read(struct file *filp, char __user *buffer,
>> file_priv->event_space -= length;
>> list_add(&e->link, &file_priv->event_list);
>> spin_unlock_irq(&dev->event_lock);
>> - wake_up_interruptible(&file_priv->event_wait);
>> + wake_up_interruptible_poll(&file_priv->event_wait,
>> + EPOLLIN | EPOLLRDNORM);
>> break;
>> }
>>
>> @@ -804,7 +805,8 @@ void drm_send_event_locked(struct drm_device *dev, struct drm_pending_event *e)
>> list_del(&e->pending_link);
>> list_add_tail(&e->link,
>> &e->file_priv->event_list);
>> - wake_up_interruptible(&e->file_priv->event_wait);
>> + wake_up_interruptible_poll(&e->file_priv->event_wait,
>> + EPOLLIN | EPOLLRDNORM);
>> }
>> EXPORT_SYMBOL(drm_send_event_locked);
>>
>> --
>> 2.26.1
>
> --
> 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] 15+ messages in thread
* Re: [PATCH v2] drm: make drm_file use keyed wakeups
2020-04-29 11:19 ` kl
(?)
@ 2020-04-30 14:04 ` Daniel Vetter
-1 siblings, 0 replies; 15+ messages in thread
From: Daniel Vetter @ 2020-04-30 14:04 UTC (permalink / raw)
To: kl
Cc: Daniel Vetter, intel-gfx, dri-devel, airlied, tzimmermann,
mripard, maarten.lankhorst, linux-kernel
On Wed, Apr 29, 2020 at 11:19:07AM +0000, kl@kl.wtf wrote:
> April 28, 2020 5:14 PM, "Daniel Vetter" <daniel@ffwll.ch> wrote:
>
> > On Fri, Apr 24, 2020 at 06:26:15PM +0200, Kenny Levinsen wrote:
> >
> >> Some processes, such as systemd, are only polling for EPOLLERR|EPOLLHUP.
> >> As drm_file uses unkeyed wakeups, such a poll can receive many spurious
> >> wakeups from uninteresting events if, for example, the file description
> >> is subscribed to vblank events. This is the case with systemd, as it
> >> polls a file description from logind that is shared with the users'
> >> compositor.
> >>
> >> Use keyed wakeups to allow the wakeup target to more efficiently discard
> >> these uninteresting events.
> >>
> >> Signed-off-by: Kenny Levinsen <kl@kl.wtf>
> >
> > Hm I applied v1 and I'm not spotting what's different here, and there's no
> > changelog explaining what changed ...
> >
> > Please send a fixup if there's anything important missing.
> > -Daniel
> >
>
> It's only the summary that differed as you and sravn requested in #dri-devel, so it's probably fine.
>
> I should have explained the change. I'm still trying to get the hang of the email-based workflow. :)
Oops sorry, I generally run as a stateless maintainer so forgot :-/
And yes email based workflow is full of warts, it's a pain.
-Daniel
>
> Best regards,
> Kenny Levinsen
>
> >> ---
> >> drivers/gpu/drm/drm_file.c | 6 ++++--
> >> 1 file changed, 4 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
> >> index c4c704e01961..ec25b3d979d9 100644
> >> --- a/drivers/gpu/drm/drm_file.c
> >> +++ b/drivers/gpu/drm/drm_file.c
> >> @@ -608,7 +608,8 @@ ssize_t drm_read(struct file *filp, char __user *buffer,
> >> file_priv->event_space -= length;
> >> list_add(&e->link, &file_priv->event_list);
> >> spin_unlock_irq(&dev->event_lock);
> >> - wake_up_interruptible(&file_priv->event_wait);
> >> + wake_up_interruptible_poll(&file_priv->event_wait,
> >> + EPOLLIN | EPOLLRDNORM);
> >> break;
> >> }
> >>
> >> @@ -804,7 +805,8 @@ void drm_send_event_locked(struct drm_device *dev, struct drm_pending_event *e)
> >> list_del(&e->pending_link);
> >> list_add_tail(&e->link,
> >> &e->file_priv->event_list);
> >> - wake_up_interruptible(&e->file_priv->event_wait);
> >> + wake_up_interruptible_poll(&e->file_priv->event_wait,
> >> + EPOLLIN | EPOLLRDNORM);
> >> }
> >> EXPORT_SYMBOL(drm_send_event_locked);
> >>
> >> --
> >> 2.26.1
> >
> > --
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > http://blog.ffwll.ch
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2] drm: make drm_file use keyed wakeups
@ 2020-04-30 14:04 ` Daniel Vetter
0 siblings, 0 replies; 15+ messages in thread
From: Daniel Vetter @ 2020-04-30 14:04 UTC (permalink / raw)
To: kl; +Cc: airlied, intel-gfx, linux-kernel, dri-devel, tzimmermann
On Wed, Apr 29, 2020 at 11:19:07AM +0000, kl@kl.wtf wrote:
> April 28, 2020 5:14 PM, "Daniel Vetter" <daniel@ffwll.ch> wrote:
>
> > On Fri, Apr 24, 2020 at 06:26:15PM +0200, Kenny Levinsen wrote:
> >
> >> Some processes, such as systemd, are only polling for EPOLLERR|EPOLLHUP.
> >> As drm_file uses unkeyed wakeups, such a poll can receive many spurious
> >> wakeups from uninteresting events if, for example, the file description
> >> is subscribed to vblank events. This is the case with systemd, as it
> >> polls a file description from logind that is shared with the users'
> >> compositor.
> >>
> >> Use keyed wakeups to allow the wakeup target to more efficiently discard
> >> these uninteresting events.
> >>
> >> Signed-off-by: Kenny Levinsen <kl@kl.wtf>
> >
> > Hm I applied v1 and I'm not spotting what's different here, and there's no
> > changelog explaining what changed ...
> >
> > Please send a fixup if there's anything important missing.
> > -Daniel
> >
>
> It's only the summary that differed as you and sravn requested in #dri-devel, so it's probably fine.
>
> I should have explained the change. I'm still trying to get the hang of the email-based workflow. :)
Oops sorry, I generally run as a stateless maintainer so forgot :-/
And yes email based workflow is full of warts, it's a pain.
-Daniel
>
> Best regards,
> Kenny Levinsen
>
> >> ---
> >> drivers/gpu/drm/drm_file.c | 6 ++++--
> >> 1 file changed, 4 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
> >> index c4c704e01961..ec25b3d979d9 100644
> >> --- a/drivers/gpu/drm/drm_file.c
> >> +++ b/drivers/gpu/drm/drm_file.c
> >> @@ -608,7 +608,8 @@ ssize_t drm_read(struct file *filp, char __user *buffer,
> >> file_priv->event_space -= length;
> >> list_add(&e->link, &file_priv->event_list);
> >> spin_unlock_irq(&dev->event_lock);
> >> - wake_up_interruptible(&file_priv->event_wait);
> >> + wake_up_interruptible_poll(&file_priv->event_wait,
> >> + EPOLLIN | EPOLLRDNORM);
> >> break;
> >> }
> >>
> >> @@ -804,7 +805,8 @@ void drm_send_event_locked(struct drm_device *dev, struct drm_pending_event *e)
> >> list_del(&e->pending_link);
> >> list_add_tail(&e->link,
> >> &e->file_priv->event_list);
> >> - wake_up_interruptible(&e->file_priv->event_wait);
> >> + wake_up_interruptible_poll(&e->file_priv->event_wait,
> >> + EPOLLIN | EPOLLRDNORM);
> >> }
> >> EXPORT_SYMBOL(drm_send_event_locked);
> >>
> >> --
> >> 2.26.1
> >
> > --
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > http://blog.ffwll.ch
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Intel-gfx] [PATCH v2] drm: make drm_file use keyed wakeups
@ 2020-04-30 14:04 ` Daniel Vetter
0 siblings, 0 replies; 15+ messages in thread
From: Daniel Vetter @ 2020-04-30 14:04 UTC (permalink / raw)
To: kl; +Cc: airlied, intel-gfx, linux-kernel, dri-devel, mripard, tzimmermann
On Wed, Apr 29, 2020 at 11:19:07AM +0000, kl@kl.wtf wrote:
> April 28, 2020 5:14 PM, "Daniel Vetter" <daniel@ffwll.ch> wrote:
>
> > On Fri, Apr 24, 2020 at 06:26:15PM +0200, Kenny Levinsen wrote:
> >
> >> Some processes, such as systemd, are only polling for EPOLLERR|EPOLLHUP.
> >> As drm_file uses unkeyed wakeups, such a poll can receive many spurious
> >> wakeups from uninteresting events if, for example, the file description
> >> is subscribed to vblank events. This is the case with systemd, as it
> >> polls a file description from logind that is shared with the users'
> >> compositor.
> >>
> >> Use keyed wakeups to allow the wakeup target to more efficiently discard
> >> these uninteresting events.
> >>
> >> Signed-off-by: Kenny Levinsen <kl@kl.wtf>
> >
> > Hm I applied v1 and I'm not spotting what's different here, and there's no
> > changelog explaining what changed ...
> >
> > Please send a fixup if there's anything important missing.
> > -Daniel
> >
>
> It's only the summary that differed as you and sravn requested in #dri-devel, so it's probably fine.
>
> I should have explained the change. I'm still trying to get the hang of the email-based workflow. :)
Oops sorry, I generally run as a stateless maintainer so forgot :-/
And yes email based workflow is full of warts, it's a pain.
-Daniel
>
> Best regards,
> Kenny Levinsen
>
> >> ---
> >> drivers/gpu/drm/drm_file.c | 6 ++++--
> >> 1 file changed, 4 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
> >> index c4c704e01961..ec25b3d979d9 100644
> >> --- a/drivers/gpu/drm/drm_file.c
> >> +++ b/drivers/gpu/drm/drm_file.c
> >> @@ -608,7 +608,8 @@ ssize_t drm_read(struct file *filp, char __user *buffer,
> >> file_priv->event_space -= length;
> >> list_add(&e->link, &file_priv->event_list);
> >> spin_unlock_irq(&dev->event_lock);
> >> - wake_up_interruptible(&file_priv->event_wait);
> >> + wake_up_interruptible_poll(&file_priv->event_wait,
> >> + EPOLLIN | EPOLLRDNORM);
> >> break;
> >> }
> >>
> >> @@ -804,7 +805,8 @@ void drm_send_event_locked(struct drm_device *dev, struct drm_pending_event *e)
> >> list_del(&e->pending_link);
> >> list_add_tail(&e->link,
> >> &e->file_priv->event_list);
> >> - wake_up_interruptible(&e->file_priv->event_wait);
> >> + wake_up_interruptible_poll(&e->file_priv->event_wait,
> >> + EPOLLIN | EPOLLRDNORM);
> >> }
> >> EXPORT_SYMBOL(drm_send_event_locked);
> >>
> >> --
> >> 2.26.1
> >
> > --
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > http://blog.ffwll.ch
--
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] 15+ messages in thread
end of thread, other threads:[~2020-04-30 14:04 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-24 16:26 [PATCH v2] drm: make drm_file use keyed wakeups Kenny Levinsen
2020-04-24 16:26 ` [Intel-gfx] " Kenny Levinsen
2020-04-24 16:26 ` Kenny Levinsen
2020-04-24 17:39 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm: make drm_file use keyed wakeups (rev2) Patchwork
2020-04-24 18:03 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2020-04-24 20:54 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2020-04-28 15:14 ` [PATCH v2] drm: make drm_file use keyed wakeups Daniel Vetter
2020-04-28 15:14 ` [Intel-gfx] " Daniel Vetter
2020-04-28 15:14 ` Daniel Vetter
2020-04-29 11:19 ` kl
2020-04-29 11:19 ` [Intel-gfx] " kl
2020-04-29 11:19 ` kl
2020-04-30 14:04 ` Daniel Vetter
2020-04-30 14:04 ` [Intel-gfx] " Daniel Vetter
2020-04-30 14:04 ` Daniel Vetter
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.