* [Intel-gfx] [PATCH] drm/i915: Ditch the i915_gem_ww_ctx loop member @ 2021-08-16 8:48 Thomas Hellström 2021-08-16 9:41 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for " Patchwork ` (3 more replies) 0 siblings, 4 replies; 8+ messages in thread From: Thomas Hellström @ 2021-08-16 8:48 UTC (permalink / raw) To: intel-gfx, dri-devel; +Cc: Thomas Hellström, Maarten Lankhorst It's only used by the for_i915_gem_ww() macro and we can use the (typically) on-stack _err variable in its place. While initially setting the _err variable to -EDEADLK to enter the loop, we clear it before actually entering using fetch_and_zero() to avoid empty loops or code not setting the _err variable running forever. Suggested-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> --- drivers/gpu/drm/i915/i915_gem_ww.h | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem_ww.h b/drivers/gpu/drm/i915/i915_gem_ww.h index f6b1a796667b..98348b1e6182 100644 --- a/drivers/gpu/drm/i915/i915_gem_ww.h +++ b/drivers/gpu/drm/i915/i915_gem_ww.h @@ -7,12 +7,13 @@ #include <drm/drm_drv.h> +#include "i915_utils.h" + struct i915_gem_ww_ctx { struct ww_acquire_ctx ctx; struct list_head obj_list; struct drm_i915_gem_object *contended; - unsigned short intr; - unsigned short loop; + bool intr; }; void i915_gem_ww_ctx_init(struct i915_gem_ww_ctx *ctx, bool intr); @@ -23,28 +24,20 @@ void i915_gem_ww_unlock_single(struct drm_i915_gem_object *obj); /* Internal functions used by the inlines! Don't use. */ static inline int __i915_gem_ww_fini(struct i915_gem_ww_ctx *ww, int err) { - ww->loop = 0; if (err == -EDEADLK) { err = i915_gem_ww_ctx_backoff(ww); if (!err) - ww->loop = 1; + err = -EDEADLK; } - if (!ww->loop) + if (err != -EDEADLK) i915_gem_ww_ctx_fini(ww); return err; } -static inline void -__i915_gem_ww_init(struct i915_gem_ww_ctx *ww, bool intr) -{ - i915_gem_ww_ctx_init(ww, intr); - ww->loop = 1; -} - -#define for_i915_gem_ww(_ww, _err, _intr) \ - for (__i915_gem_ww_init(_ww, _intr); (_ww)->loop; \ +#define for_i915_gem_ww(_ww, _err, _intr) \ + for (i915_gem_ww_ctx_init(_ww, _intr), (_err) = -EDEADLK; \ + fetch_and_zero(&_err) == -EDEADLK; \ _err = __i915_gem_ww_fini(_ww, _err)) - #endif -- 2.31.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Ditch the i915_gem_ww_ctx loop member 2021-08-16 8:48 [Intel-gfx] [PATCH] drm/i915: Ditch the i915_gem_ww_ctx loop member Thomas Hellström @ 2021-08-16 9:41 ` Patchwork 2021-08-16 10:12 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork ` (2 subsequent siblings) 3 siblings, 0 replies; 8+ messages in thread From: Patchwork @ 2021-08-16 9:41 UTC (permalink / raw) To: Thomas Hellström; +Cc: intel-gfx == Series Details == Series: drm/i915: Ditch the i915_gem_ww_ctx loop member URL : https://patchwork.freedesktop.org/series/93711/ State : warning == Summary == $ dim checkpatch origin/drm-tip e82160475e8e drm/i915: Ditch the i915_gem_ww_ctx loop member -:67: CHECK:MACRO_ARG_REUSE: Macro argument reuse '_ww' - possible side-effects? #67: FILE: drivers/gpu/drm/i915/i915_gem_ww.h:39: +#define for_i915_gem_ww(_ww, _err, _intr) \ + for (i915_gem_ww_ctx_init(_ww, _intr), (_err) = -EDEADLK; \ + fetch_and_zero(&_err) == -EDEADLK; \ _err = __i915_gem_ww_fini(_ww, _err)) -:67: CHECK:MACRO_ARG_REUSE: Macro argument reuse '_err' - possible side-effects? #67: FILE: drivers/gpu/drm/i915/i915_gem_ww.h:39: +#define for_i915_gem_ww(_ww, _err, _intr) \ + for (i915_gem_ww_ctx_init(_ww, _intr), (_err) = -EDEADLK; \ + fetch_and_zero(&_err) == -EDEADLK; \ _err = __i915_gem_ww_fini(_ww, _err)) total: 0 errors, 0 warnings, 2 checks, 48 lines checked ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Ditch the i915_gem_ww_ctx loop member 2021-08-16 8:48 [Intel-gfx] [PATCH] drm/i915: Ditch the i915_gem_ww_ctx loop member Thomas Hellström 2021-08-16 9:41 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for " Patchwork @ 2021-08-16 10:12 ` Patchwork 2021-08-16 12:05 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork 2021-08-16 13:25 ` [Intel-gfx] [PATCH] " Matthew Auld 3 siblings, 0 replies; 8+ messages in thread From: Patchwork @ 2021-08-16 10:12 UTC (permalink / raw) To: Thomas Hellström; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 2002 bytes --] == Series Details == Series: drm/i915: Ditch the i915_gem_ww_ctx loop member URL : https://patchwork.freedesktop.org/series/93711/ State : success == Summary == CI Bug Log - changes from CI_DRM_10487 -> Patchwork_20829 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/index.html Known issues ------------ Here are the changes found in Patchwork_20829 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@amdgpu/amd_prime@amd-to-i915: - fi-kbl-soraka: NOTRUN -> [SKIP][1] ([fdo#109271]) +1 similar issue [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/fi-kbl-soraka/igt@amdgpu/amd_prime@amd-to-i915.html #### Warnings #### * igt@i915_pm_rpm@basic-rte: - fi-kbl-guc: [SKIP][2] ([fdo#109271]) -> [FAIL][3] ([i915#579]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/fi-kbl-guc/igt@i915_pm_rpm@basic-rte.html [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/fi-kbl-guc/igt@i915_pm_rpm@basic-rte.html [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [i915#579]: https://gitlab.freedesktop.org/drm/intel/issues/579 Participating hosts (37 -> 34) ------------------------------ Missing (3): fi-bdw-samus fi-bsw-cyan bat-jsl-1 Build changes ------------- * Linux: CI_DRM_10487 -> Patchwork_20829 CI-20190529: 20190529 CI_DRM_10487: 51573da73ed1828367d6ea150155b85e347ab747 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_6176: 3d8642170f2947b6aaad211e9e2e474fadedf6f9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_20829: e82160475e8e931a8012bc7ed0cdcc387f562c23 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == e82160475e8e drm/i915: Ditch the i915_gem_ww_ctx loop member == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/index.html [-- Attachment #2: Type: text/html, Size: 2683 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: Ditch the i915_gem_ww_ctx loop member 2021-08-16 8:48 [Intel-gfx] [PATCH] drm/i915: Ditch the i915_gem_ww_ctx loop member Thomas Hellström 2021-08-16 9:41 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for " Patchwork 2021-08-16 10:12 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork @ 2021-08-16 12:05 ` Patchwork 2021-08-16 13:25 ` [Intel-gfx] [PATCH] " Matthew Auld 3 siblings, 0 replies; 8+ messages in thread From: Patchwork @ 2021-08-16 12:05 UTC (permalink / raw) To: Thomas Hellström; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 26186 bytes --] == Series Details == Series: drm/i915: Ditch the i915_gem_ww_ctx loop member URL : https://patchwork.freedesktop.org/series/93711/ State : failure == Summary == CI Bug Log - changes from CI_DRM_10487_full -> Patchwork_20829_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_20829_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_20829_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_20829_full: ### IGT changes ### #### Possible regressions #### * igt@gem_ctx_persistence@many-contexts: - shard-iclb: [PASS][1] -> [DMESG-WARN][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-iclb4/igt@gem_ctx_persistence@many-contexts.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-iclb7/igt@gem_ctx_persistence@many-contexts.html Known issues ------------ Here are the changes found in Patchwork_20829_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_ctx_persistence@legacy-engines-queued: - shard-snb: NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#1099]) +3 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-snb6/igt@gem_ctx_persistence@legacy-engines-queued.html * igt@gem_exec_fair@basic-none@vcs0: - shard-kbl: NOTRUN -> [FAIL][4] ([i915#2842]) +2 similar issues [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl4/igt@gem_exec_fair@basic-none@vcs0.html * igt@gem_exec_fair@basic-none@vecs0: - shard-apl: NOTRUN -> [FAIL][5] ([i915#2842] / [i915#3468]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl2/igt@gem_exec_fair@basic-none@vecs0.html * igt@gem_exec_fair@basic-throttle@rcs0: - shard-glk: [PASS][6] -> [FAIL][7] ([i915#2842]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-glk7/igt@gem_exec_fair@basic-throttle@rcs0.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-glk1/igt@gem_exec_fair@basic-throttle@rcs0.html * igt@gem_exec_suspend@basic-s3: - shard-kbl: [PASS][8] -> [DMESG-WARN][9] ([i915#180]) +1 similar issue [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-kbl2/igt@gem_exec_suspend@basic-s3.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl7/igt@gem_exec_suspend@basic-s3.html * igt@gem_huc_copy@huc-copy: - shard-apl: NOTRUN -> [SKIP][10] ([fdo#109271] / [i915#2190]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl7/igt@gem_huc_copy@huc-copy.html * igt@gem_mmap_gtt@cpuset-big-copy: - shard-iclb: [PASS][11] -> [FAIL][12] ([i915#307]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-iclb7/igt@gem_mmap_gtt@cpuset-big-copy.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-iclb1/igt@gem_mmap_gtt@cpuset-big-copy.html * igt@gem_pread@exhaustion: - shard-snb: NOTRUN -> [WARN][13] ([i915#2658]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-snb6/igt@gem_pread@exhaustion.html * igt@gem_userptr_blits@input-checking: - shard-snb: NOTRUN -> [DMESG-WARN][14] ([i915#3002]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-snb6/igt@gem_userptr_blits@input-checking.html * igt@gem_workarounds@suspend-resume: - shard-apl: [PASS][15] -> [DMESG-WARN][16] ([i915#180]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-apl3/igt@gem_workarounds@suspend-resume.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl7/igt@gem_workarounds@suspend-resume.html * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip: - shard-apl: NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#3777]) +3 similar issues [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl8/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip.html * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip: - shard-skl: NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#3777]) +1 similar issue [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-skl9/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip.html * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0: - shard-apl: NOTRUN -> [SKIP][19] ([fdo#109271]) +285 similar issues [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl7/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html * igt@kms_ccs@pipe-a-ccs-on-another-bo-yf_tiled_ccs: - shard-tglb: NOTRUN -> [SKIP][20] ([i915#3689]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-tglb1/igt@kms_ccs@pipe-a-ccs-on-another-bo-yf_tiled_ccs.html * igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc: - shard-apl: NOTRUN -> [SKIP][21] ([fdo#109271] / [i915#3886]) +12 similar issues [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl1/igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc.html - shard-skl: NOTRUN -> [SKIP][22] ([fdo#109271] / [i915#3886]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-skl9/igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc.html * igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc: - shard-kbl: NOTRUN -> [SKIP][23] ([fdo#109271] / [i915#3886]) +3 similar issues [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl2/igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc.html * igt@kms_chamelium@hdmi-hpd-enable-disable-mode: - shard-tglb: NOTRUN -> [SKIP][24] ([fdo#109284] / [fdo#111827]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-tglb1/igt@kms_chamelium@hdmi-hpd-enable-disable-mode.html * igt@kms_chamelium@vga-hpd-after-suspend: - shard-iclb: NOTRUN -> [SKIP][25] ([fdo#109284] / [fdo#111827]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-iclb5/igt@kms_chamelium@vga-hpd-after-suspend.html * igt@kms_color@pipe-d-ctm-0-5: - shard-skl: NOTRUN -> [SKIP][26] ([fdo#109271]) +48 similar issues [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-skl9/igt@kms_color@pipe-d-ctm-0-5.html * igt@kms_color_chamelium@pipe-a-ctm-blue-to-red: - shard-snb: NOTRUN -> [SKIP][27] ([fdo#109271] / [fdo#111827]) +20 similar issues [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-snb2/igt@kms_color_chamelium@pipe-a-ctm-blue-to-red.html * igt@kms_color_chamelium@pipe-b-ctm-0-5: - shard-skl: NOTRUN -> [SKIP][28] ([fdo#109271] / [fdo#111827]) +1 similar issue [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-skl9/igt@kms_color_chamelium@pipe-b-ctm-0-5.html * igt@kms_color_chamelium@pipe-c-ctm-0-25: - shard-apl: NOTRUN -> [SKIP][29] ([fdo#109271] / [fdo#111827]) +23 similar issues [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl8/igt@kms_color_chamelium@pipe-c-ctm-0-25.html * igt@kms_color_chamelium@pipe-c-ctm-limited-range: - shard-kbl: NOTRUN -> [SKIP][30] ([fdo#109271] / [fdo#111827]) +6 similar issues [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl4/igt@kms_color_chamelium@pipe-c-ctm-limited-range.html * igt@kms_content_protection@atomic-dpms: - shard-apl: NOTRUN -> [TIMEOUT][31] ([i915#1319]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl7/igt@kms_content_protection@atomic-dpms.html * igt@kms_content_protection@uevent: - shard-apl: NOTRUN -> [FAIL][32] ([i915#2105]) [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl7/igt@kms_content_protection@uevent.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions: - shard-skl: [PASS][33] -> [FAIL][34] ([i915#2346]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-skl9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-skl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size: - shard-skl: NOTRUN -> [FAIL][35] ([i915#2346] / [i915#533]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-skl9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-apl: [PASS][36] -> [INCOMPLETE][37] ([i915#180]) [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-apl1/igt@kms_fbcon_fbt@fbc-suspend.html [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl8/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_flip@flip-vs-suspend@c-edp1: - shard-skl: [PASS][38] -> [INCOMPLETE][39] ([i915#198]) [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-skl8/igt@kms_flip@flip-vs-suspend@c-edp1.html [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-skl3/igt@kms_flip@flip-vs-suspend@c-edp1.html * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile: - shard-snb: NOTRUN -> [SKIP][40] ([fdo#109271]) +436 similar issues [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-snb6/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile.html * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-d-frame-sequence: - shard-kbl: NOTRUN -> [SKIP][41] ([fdo#109271] / [i915#533]) +2 similar issues [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl2/igt@kms_pipe_crc_basic@nonblocking-crc-pipe-d-frame-sequence.html * igt@kms_plane_alpha_blend@pipe-a-alpha-7efc: - shard-kbl: NOTRUN -> [FAIL][42] ([fdo#108145] / [i915#265]) [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl4/igt@kms_plane_alpha_blend@pipe-a-alpha-7efc.html * igt@kms_plane_alpha_blend@pipe-c-alpha-basic: - shard-apl: NOTRUN -> [FAIL][43] ([fdo#108145] / [i915#265]) +2 similar issues [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl3/igt@kms_plane_alpha_blend@pipe-c-alpha-basic.html * igt@kms_plane_multiple@atomic-pipe-d-tiling-x: - shard-kbl: NOTRUN -> [SKIP][44] ([fdo#109271]) +82 similar issues [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl2/igt@kms_plane_multiple@atomic-pipe-d-tiling-x.html * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-4: - shard-apl: NOTRUN -> [SKIP][45] ([fdo#109271] / [i915#658]) +4 similar issues [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl1/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-4.html * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-1: - shard-kbl: NOTRUN -> [SKIP][46] ([fdo#109271] / [i915#658]) +1 similar issue [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl4/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-1.html * igt@kms_psr2_sf@plane-move-sf-dmg-area-0: - shard-skl: NOTRUN -> [SKIP][47] ([fdo#109271] / [i915#658]) +1 similar issue [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-skl2/igt@kms_psr2_sf@plane-move-sf-dmg-area-0.html * igt@kms_psr@psr2_primary_blt: - shard-iclb: [PASS][48] -> [SKIP][49] ([fdo#109441]) [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-iclb2/igt@kms_psr@psr2_primary_blt.html [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-iclb7/igt@kms_psr@psr2_primary_blt.html * igt@kms_vblank@pipe-a-ts-continuation-suspend: - shard-apl: NOTRUN -> [DMESG-WARN][50] ([i915#180] / [i915#295]) [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl1/igt@kms_vblank@pipe-a-ts-continuation-suspend.html * igt@kms_vblank@pipe-d-wait-idle: - shard-apl: NOTRUN -> [SKIP][51] ([fdo#109271] / [i915#533]) +2 similar issues [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl8/igt@kms_vblank@pipe-d-wait-idle.html * igt@kms_writeback@writeback-check-output: - shard-apl: NOTRUN -> [SKIP][52] ([fdo#109271] / [i915#2437]) [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl7/igt@kms_writeback@writeback-check-output.html * igt@perf_pmu@rc6-suspend: - shard-skl: [PASS][53] -> [INCOMPLETE][54] ([i915#198] / [i915#2910]) [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-skl6/igt@perf_pmu@rc6-suspend.html [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-skl8/igt@perf_pmu@rc6-suspend.html * igt@sysfs_clients@fair-0: - shard-skl: NOTRUN -> [SKIP][55] ([fdo#109271] / [i915#2994]) +1 similar issue [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-skl9/igt@sysfs_clients@fair-0.html * igt@sysfs_clients@fair-7: - shard-apl: NOTRUN -> [SKIP][56] ([fdo#109271] / [i915#2994]) +6 similar issues [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl8/igt@sysfs_clients@fair-7.html * igt@sysfs_clients@split-50: - shard-kbl: NOTRUN -> [SKIP][57] ([fdo#109271] / [i915#2994]) +3 similar issues [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl4/igt@sysfs_clients@split-50.html #### Possible fixes #### * igt@gem_exec_fair@basic-none-share@rcs0: - shard-tglb: [FAIL][58] ([i915#2842]) -> [PASS][59] [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-tglb8/igt@gem_exec_fair@basic-none-share@rcs0.html [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-tglb8/igt@gem_exec_fair@basic-none-share@rcs0.html * igt@gem_exec_fair@basic-pace@vecs0: - shard-kbl: [FAIL][60] ([i915#2851]) -> [PASS][61] [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-kbl2/igt@gem_exec_fair@basic-pace@vecs0.html [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl6/igt@gem_exec_fair@basic-pace@vecs0.html * igt@gem_exec_fair@basic-throttle@rcs0: - shard-iclb: [FAIL][62] ([i915#2849]) -> [PASS][63] [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-iclb1/igt@gem_exec_fair@basic-throttle@rcs0.html [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-iclb4/igt@gem_exec_fair@basic-throttle@rcs0.html * igt@kms_cursor_crc@pipe-c-cursor-suspend: - shard-kbl: [DMESG-WARN][64] ([i915#180]) -> [PASS][65] +7 similar issues [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-kbl7/igt@kms_cursor_crc@pipe-c-cursor-suspend.html [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl2/igt@kms_cursor_crc@pipe-c-cursor-suspend.html * igt@kms_cursor_edge_walk@pipe-a-128x128-top-edge: - shard-snb: [SKIP][66] ([fdo#109271]) -> [PASS][67] [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-snb2/igt@kms_cursor_edge_walk@pipe-a-128x128-top-edge.html [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-snb5/igt@kms_cursor_edge_walk@pipe-a-128x128-top-edge.html * igt@kms_cursor_edge_walk@pipe-b-128x128-right-edge: - shard-skl: [DMESG-WARN][68] ([i915#1982]) -> [PASS][69] +1 similar issue [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-skl3/igt@kms_cursor_edge_walk@pipe-b-128x128-right-edge.html [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-skl2/igt@kms_cursor_edge_walk@pipe-b-128x128-right-edge.html * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-hdmi-a1-hdmi-a2: - shard-glk: [FAIL][70] ([i915#2122]) -> [PASS][71] [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-glk7/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-hdmi-a1-hdmi-a2.html [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-glk9/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-hdmi-a1-hdmi-a2.html * igt@kms_flip@flip-vs-suspend@a-dp1: - shard-apl: [DMESG-WARN][72] ([i915#180]) -> [PASS][73] +1 similar issue [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-apl1/igt@kms_flip@flip-vs-suspend@a-dp1.html [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-apl2/igt@kms_flip@flip-vs-suspend@a-dp1.html * igt@kms_hdr@bpc-switch-dpms: - shard-skl: [FAIL][74] ([i915#1188]) -> [PASS][75] [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-skl10/igt@kms_hdr@bpc-switch-dpms.html [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-skl5/igt@kms_hdr@bpc-switch-dpms.html * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc: - shard-skl: [FAIL][76] ([fdo#108145] / [i915#265]) -> [PASS][77] +1 similar issue [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-skl5/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-skl6/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html * igt@kms_psr2_su@page_flip: - shard-iclb: [SKIP][78] ([fdo#109642] / [fdo#111068] / [i915#658]) -> [PASS][79] [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-iclb6/igt@kms_psr2_su@page_flip.html [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-iclb2/igt@kms_psr2_su@page_flip.html * igt@kms_psr@psr2_primary_mmap_cpu: - shard-iclb: [SKIP][80] ([fdo#109441]) -> [PASS][81] +1 similar issue [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-iclb8/igt@kms_psr@psr2_primary_mmap_cpu.html [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html * igt@perf@polling-small-buf: - shard-skl: [FAIL][82] ([i915#1722]) -> [PASS][83] [82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-skl6/igt@perf@polling-small-buf.html [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-skl6/igt@perf@polling-small-buf.html * igt@sysfs_heartbeat_interval@mixed@rcs0: - shard-skl: [FAIL][84] ([i915#1731]) -> [PASS][85] [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-skl3/igt@sysfs_heartbeat_interval@mixed@rcs0.html [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-skl10/igt@sysfs_heartbeat_interval@mixed@rcs0.html #### Warnings #### * igt@i915_pm_rc6_residency@rc6-fence: - shard-iclb: [WARN][86] ([i915#2684]) -> [WARN][87] ([i915#1804] / [i915#2684]) [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-iclb1/igt@i915_pm_rc6_residency@rc6-fence.html [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-iclb4/igt@i915_pm_rc6_residency@rc6-fence.html * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-4: - shard-iclb: [SKIP][88] ([i915#2920]) -> [SKIP][89] ([i915#658]) +1 similar issue [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-iclb2/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-4.html [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-iclb7/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-4.html * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-4: - shard-iclb: [SKIP][90] ([i915#658]) -> [SKIP][91] ([i915#2920]) +2 similar issues [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-iclb6/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-4.html [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-4.html * igt@runner@aborted: - shard-kbl: ([FAIL][92], [FAIL][93], [FAIL][94], [FAIL][95], [FAIL][96], [FAIL][97], [FAIL][98], [FAIL][99], [FAIL][100], [FAIL][101]) ([i915#1436] / [i915#180] / [i915#1814] / [i915#3002] / [i915#3363] / [i915#602]) -> ([FAIL][102], [FAIL][103], [FAIL][104], [FAIL][105], [FAIL][106], [FAIL][107], [FAIL][108]) ([i915#180] / [i915#1814] / [i915#3002] / [i915#3363]) [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-kbl3/igt@runner@aborted.html [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-kbl7/igt@runner@aborted.html [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-kbl7/igt@runner@aborted.html [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-kbl7/igt@runner@aborted.html [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-kbl7/igt@runner@aborted.html [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-kbl3/igt@runner@aborted.html [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-kbl4/igt@runner@aborted.html [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-kbl7/igt@runner@aborted.html [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-kbl3/igt@runner@aborted.html [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10487/shard-kbl1/igt@runner@aborted.html [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl1/igt@runner@aborted.html [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl1/igt@runner@aborted.html [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl7/igt@runner@aborted.html [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl3/igt@runner@aborted.html [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl7/igt@runner@aborted.html [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl7/igt@runner@aborted.html [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20829/shard-kbl7/igt@runner@aborted.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#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284 [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 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099 [i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188 [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319 [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436 [i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722 [i915#1731]: https://gitlab.freedesktop.org/drm/intel/issues/1731 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#1804]: https://gitlab.freedesktop.org/drm/intel/issues/1804 [i915#1814]: https://gitlab.freedesktop.org/drm/intel/issues/1814 [i915#198]: https://gitlab.freedesktop.org/drm/intel/issues/198 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2105]: https://gitlab.freedesktop.org/drm/intel/issues/2105 [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437 [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265 [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658 [i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2849]: https://gitlab.freedesktop.org/drm/intel/issues/2849 [i915#2851]: https://gitlab.freedesktop.org/drm/intel/issues/2851 [i915#2910]: https://gitlab.freedesktop.org/drm/intel/issues/2910 [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920 [i915#295]: https://gitlab.freedesktop.org/drm/intel/issues/295 [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994 [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002 [i915#307]: https://gitlab.freedesktop.org/drm/intel/issues/307 [i915#3363]: https://gitlab.freedesktop.org/drm/intel/issues/3363 [i915#3468]: https://gitlab.freedesktop.org/drm/intel/issues/3468 [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 [i915#3777]: https://gitlab.freedesktop.org/drm/intel/issues/3777 [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533 [i915#602]: https://gitlab.freedesktop.org/drm/intel/issues/602 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 Participating hosts (11 -> 10) ------------------------------ Missing (1): shard-rkl Build changes ------------- * Linux: CI_DRM_10487 -> Patchwork_20829 CI-20190529: 20190529 CI_DRM_10487: 51573da73ed1828367d6ea150155b85e347ab747 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_6176: 3d8642170f2947b6aaad211e9e2e474fadedf6f9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_20829: e82160475e8e931a8012bc7ed0cdcc387f562c23 @ 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_20829/index.html [-- Attachment #2: Type: text/html, Size: 33112 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915: Ditch the i915_gem_ww_ctx loop member 2021-08-16 8:48 [Intel-gfx] [PATCH] drm/i915: Ditch the i915_gem_ww_ctx loop member Thomas Hellström ` (2 preceding siblings ...) 2021-08-16 12:05 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork @ 2021-08-16 13:25 ` Matthew Auld 2021-08-16 13:30 ` Thomas Hellström 3 siblings, 1 reply; 8+ messages in thread From: Matthew Auld @ 2021-08-16 13:25 UTC (permalink / raw) To: Thomas Hellström Cc: Intel Graphics Development, ML dri-devel, Maarten Lankhorst On Mon, 16 Aug 2021 at 09:49, Thomas Hellström <thomas.hellstrom@linux.intel.com> wrote: > > It's only used by the for_i915_gem_ww() macro and we can use > the (typically) on-stack _err variable in its place. > > While initially setting the _err variable to -EDEADLK to enter the > loop, we clear it before actually entering using fetch_and_zero() to > avoid empty loops or code not setting the _err variable running forever. > > Suggested-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> > --- > drivers/gpu/drm/i915/i915_gem_ww.h | 23 ++++++++--------------- > 1 file changed, 8 insertions(+), 15 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_ww.h b/drivers/gpu/drm/i915/i915_gem_ww.h > index f6b1a796667b..98348b1e6182 100644 > --- a/drivers/gpu/drm/i915/i915_gem_ww.h > +++ b/drivers/gpu/drm/i915/i915_gem_ww.h > @@ -7,12 +7,13 @@ > > #include <drm/drm_drv.h> > > +#include "i915_utils.h" > + > struct i915_gem_ww_ctx { > struct ww_acquire_ctx ctx; > struct list_head obj_list; > struct drm_i915_gem_object *contended; > - unsigned short intr; > - unsigned short loop; > + bool intr; > }; > > void i915_gem_ww_ctx_init(struct i915_gem_ww_ctx *ctx, bool intr); > @@ -23,28 +24,20 @@ void i915_gem_ww_unlock_single(struct drm_i915_gem_object *obj); > /* Internal functions used by the inlines! Don't use. */ > static inline int __i915_gem_ww_fini(struct i915_gem_ww_ctx *ww, int err) > { > - ww->loop = 0; > if (err == -EDEADLK) { > err = i915_gem_ww_ctx_backoff(ww); > if (!err) > - ww->loop = 1; > + err = -EDEADLK; > } > > - if (!ww->loop) > + if (err != -EDEADLK) > i915_gem_ww_ctx_fini(ww); > > return err; > } > > -static inline void > -__i915_gem_ww_init(struct i915_gem_ww_ctx *ww, bool intr) > -{ > - i915_gem_ww_ctx_init(ww, intr); > - ww->loop = 1; > -} > - > -#define for_i915_gem_ww(_ww, _err, _intr) \ > - for (__i915_gem_ww_init(_ww, _intr); (_ww)->loop; \ > +#define for_i915_gem_ww(_ww, _err, _intr) \ > + for (i915_gem_ww_ctx_init(_ww, _intr), (_err) = -EDEADLK; \ > + fetch_and_zero(&_err) == -EDEADLK; \ Doesn't this now hide "normal" errors, like say get_pages() returning -ENOSPC or so? > _err = __i915_gem_ww_fini(_ww, _err)) > - > #endif > -- > 2.31.1 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915: Ditch the i915_gem_ww_ctx loop member 2021-08-16 13:25 ` [Intel-gfx] [PATCH] " Matthew Auld @ 2021-08-16 13:30 ` Thomas Hellström 2021-08-16 13:34 ` Maarten Lankhorst 0 siblings, 1 reply; 8+ messages in thread From: Thomas Hellström @ 2021-08-16 13:30 UTC (permalink / raw) To: Matthew Auld; +Cc: Intel Graphics Development, ML dri-devel, Maarten Lankhorst On 8/16/21 3:25 PM, Matthew Auld wrote: > On Mon, 16 Aug 2021 at 09:49, Thomas Hellström > <thomas.hellstrom@linux.intel.com> wrote: >> It's only used by the for_i915_gem_ww() macro and we can use >> the (typically) on-stack _err variable in its place. >> >> While initially setting the _err variable to -EDEADLK to enter the >> loop, we clear it before actually entering using fetch_and_zero() to >> avoid empty loops or code not setting the _err variable running forever. >> >> Suggested-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> >> Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> >> --- >> drivers/gpu/drm/i915/i915_gem_ww.h | 23 ++++++++--------------- >> 1 file changed, 8 insertions(+), 15 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/i915_gem_ww.h b/drivers/gpu/drm/i915/i915_gem_ww.h >> index f6b1a796667b..98348b1e6182 100644 >> --- a/drivers/gpu/drm/i915/i915_gem_ww.h >> +++ b/drivers/gpu/drm/i915/i915_gem_ww.h >> @@ -7,12 +7,13 @@ >> >> #include <drm/drm_drv.h> >> >> +#include "i915_utils.h" >> + >> struct i915_gem_ww_ctx { >> struct ww_acquire_ctx ctx; >> struct list_head obj_list; >> struct drm_i915_gem_object *contended; >> - unsigned short intr; >> - unsigned short loop; >> + bool intr; >> }; >> >> void i915_gem_ww_ctx_init(struct i915_gem_ww_ctx *ctx, bool intr); >> @@ -23,28 +24,20 @@ void i915_gem_ww_unlock_single(struct drm_i915_gem_object *obj); >> /* Internal functions used by the inlines! Don't use. */ >> static inline int __i915_gem_ww_fini(struct i915_gem_ww_ctx *ww, int err) >> { >> - ww->loop = 0; >> if (err == -EDEADLK) { >> err = i915_gem_ww_ctx_backoff(ww); >> if (!err) >> - ww->loop = 1; >> + err = -EDEADLK; >> } >> >> - if (!ww->loop) >> + if (err != -EDEADLK) >> i915_gem_ww_ctx_fini(ww); >> >> return err; >> } >> >> -static inline void >> -__i915_gem_ww_init(struct i915_gem_ww_ctx *ww, bool intr) >> -{ >> - i915_gem_ww_ctx_init(ww, intr); >> - ww->loop = 1; >> -} >> - >> -#define for_i915_gem_ww(_ww, _err, _intr) \ >> - for (__i915_gem_ww_init(_ww, _intr); (_ww)->loop; \ >> +#define for_i915_gem_ww(_ww, _err, _intr) \ >> + for (i915_gem_ww_ctx_init(_ww, _intr), (_err) = -EDEADLK; \ >> + fetch_and_zero(&_err) == -EDEADLK; \ > Doesn't this now hide "normal" errors, like say get_pages() returning > -ENOSPC or so? Yes, good catch. We should either just clear the -EDEADLK case, or not clear the error at all.. /Thomas ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915: Ditch the i915_gem_ww_ctx loop member 2021-08-16 13:30 ` Thomas Hellström @ 2021-08-16 13:34 ` Maarten Lankhorst 2021-08-16 13:49 ` Thomas Hellström 0 siblings, 1 reply; 8+ messages in thread From: Maarten Lankhorst @ 2021-08-16 13:34 UTC (permalink / raw) To: Thomas Hellström, Matthew Auld Cc: Intel Graphics Development, ML dri-devel Op 16-08-2021 om 15:30 schreef Thomas Hellström: > > On 8/16/21 3:25 PM, Matthew Auld wrote: >> On Mon, 16 Aug 2021 at 09:49, Thomas Hellström >> <thomas.hellstrom@linux.intel.com> wrote: >>> It's only used by the for_i915_gem_ww() macro and we can use >>> the (typically) on-stack _err variable in its place. >>> >>> While initially setting the _err variable to -EDEADLK to enter the >>> loop, we clear it before actually entering using fetch_and_zero() to >>> avoid empty loops or code not setting the _err variable running forever. >>> >>> Suggested-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> >>> Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> >>> --- >>> drivers/gpu/drm/i915/i915_gem_ww.h | 23 ++++++++--------------- >>> 1 file changed, 8 insertions(+), 15 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/i915/i915_gem_ww.h b/drivers/gpu/drm/i915/i915_gem_ww.h >>> index f6b1a796667b..98348b1e6182 100644 >>> --- a/drivers/gpu/drm/i915/i915_gem_ww.h >>> +++ b/drivers/gpu/drm/i915/i915_gem_ww.h >>> @@ -7,12 +7,13 @@ >>> >>> #include <drm/drm_drv.h> >>> >>> +#include "i915_utils.h" >>> + >>> struct i915_gem_ww_ctx { >>> struct ww_acquire_ctx ctx; >>> struct list_head obj_list; >>> struct drm_i915_gem_object *contended; >>> - unsigned short intr; >>> - unsigned short loop; >>> + bool intr; >>> }; >>> >>> void i915_gem_ww_ctx_init(struct i915_gem_ww_ctx *ctx, bool intr); >>> @@ -23,28 +24,20 @@ void i915_gem_ww_unlock_single(struct drm_i915_gem_object *obj); >>> /* Internal functions used by the inlines! Don't use. */ >>> static inline int __i915_gem_ww_fini(struct i915_gem_ww_ctx *ww, int err) >>> { >>> - ww->loop = 0; >>> if (err == -EDEADLK) { >>> err = i915_gem_ww_ctx_backoff(ww); >>> if (!err) >>> - ww->loop = 1; >>> + err = -EDEADLK; >>> } >>> >>> - if (!ww->loop) >>> + if (err != -EDEADLK) >>> i915_gem_ww_ctx_fini(ww); >>> >>> return err; >>> } >>> >>> -static inline void >>> -__i915_gem_ww_init(struct i915_gem_ww_ctx *ww, bool intr) >>> -{ >>> - i915_gem_ww_ctx_init(ww, intr); >>> - ww->loop = 1; >>> -} >>> - >>> -#define for_i915_gem_ww(_ww, _err, _intr) \ >>> - for (__i915_gem_ww_init(_ww, _intr); (_ww)->loop; \ >>> +#define for_i915_gem_ww(_ww, _err, _intr) \ >>> + for (i915_gem_ww_ctx_init(_ww, _intr), (_err) = -EDEADLK; \ >>> + fetch_and_zero(&_err) == -EDEADLK; \ >> Doesn't this now hide "normal" errors, like say get_pages() returning >> -ENOSPC or so? > > Yes, good catch. We should either just clear the -EDEADLK case, or not clear the error at all.. > > /Thomas I believe not setting _err is a bug anyway. Why would you do such a loop without at least one err = ww_mutex_lock(&ww); ? Infinite loop would catch that at first test. ~Maarten ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915: Ditch the i915_gem_ww_ctx loop member 2021-08-16 13:34 ` Maarten Lankhorst @ 2021-08-16 13:49 ` Thomas Hellström 0 siblings, 0 replies; 8+ messages in thread From: Thomas Hellström @ 2021-08-16 13:49 UTC (permalink / raw) To: Maarten Lankhorst, Matthew Auld; +Cc: Intel Graphics Development, ML dri-devel On 8/16/21 3:34 PM, Maarten Lankhorst wrote: > Op 16-08-2021 om 15:30 schreef Thomas Hellström: >> On 8/16/21 3:25 PM, Matthew Auld wrote: >>> On Mon, 16 Aug 2021 at 09:49, Thomas Hellström >>> <thomas.hellstrom@linux.intel.com> wrote: >>>> It's only used by the for_i915_gem_ww() macro and we can use >>>> the (typically) on-stack _err variable in its place. >>>> >>>> While initially setting the _err variable to -EDEADLK to enter the >>>> loop, we clear it before actually entering using fetch_and_zero() to >>>> avoid empty loops or code not setting the _err variable running forever. >>>> >>>> Suggested-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> >>>> Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> >>>> --- >>>> drivers/gpu/drm/i915/i915_gem_ww.h | 23 ++++++++--------------- >>>> 1 file changed, 8 insertions(+), 15 deletions(-) >>>> >>>> diff --git a/drivers/gpu/drm/i915/i915_gem_ww.h b/drivers/gpu/drm/i915/i915_gem_ww.h >>>> index f6b1a796667b..98348b1e6182 100644 >>>> --- a/drivers/gpu/drm/i915/i915_gem_ww.h >>>> +++ b/drivers/gpu/drm/i915/i915_gem_ww.h >>>> @@ -7,12 +7,13 @@ >>>> >>>> #include <drm/drm_drv.h> >>>> >>>> +#include "i915_utils.h" >>>> + >>>> struct i915_gem_ww_ctx { >>>> struct ww_acquire_ctx ctx; >>>> struct list_head obj_list; >>>> struct drm_i915_gem_object *contended; >>>> - unsigned short intr; >>>> - unsigned short loop; >>>> + bool intr; >>>> }; >>>> >>>> void i915_gem_ww_ctx_init(struct i915_gem_ww_ctx *ctx, bool intr); >>>> @@ -23,28 +24,20 @@ void i915_gem_ww_unlock_single(struct drm_i915_gem_object *obj); >>>> /* Internal functions used by the inlines! Don't use. */ >>>> static inline int __i915_gem_ww_fini(struct i915_gem_ww_ctx *ww, int err) >>>> { >>>> - ww->loop = 0; >>>> if (err == -EDEADLK) { >>>> err = i915_gem_ww_ctx_backoff(ww); >>>> if (!err) >>>> - ww->loop = 1; >>>> + err = -EDEADLK; >>>> } >>>> >>>> - if (!ww->loop) >>>> + if (err != -EDEADLK) >>>> i915_gem_ww_ctx_fini(ww); >>>> >>>> return err; >>>> } >>>> >>>> -static inline void >>>> -__i915_gem_ww_init(struct i915_gem_ww_ctx *ww, bool intr) >>>> -{ >>>> - i915_gem_ww_ctx_init(ww, intr); >>>> - ww->loop = 1; >>>> -} >>>> - >>>> -#define for_i915_gem_ww(_ww, _err, _intr) \ >>>> - for (__i915_gem_ww_init(_ww, _intr); (_ww)->loop; \ >>>> +#define for_i915_gem_ww(_ww, _err, _intr) \ >>>> + for (i915_gem_ww_ctx_init(_ww, _intr), (_err) = -EDEADLK; \ >>>> + fetch_and_zero(&_err) == -EDEADLK; \ >>> Doesn't this now hide "normal" errors, like say get_pages() returning >>> -ENOSPC or so? >> Yes, good catch. We should either just clear the -EDEADLK case, or not clear the error at all.. >> >> /Thomas > I believe not setting _err is a bug anyway. Why would you do such a loop without at least one err = ww_mutex_lock(&ww); ? > > Infinite loop would catch that at first test. OK, I'll skip the clearing then. /Thomas > > ~Maarten > ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-08-16 13:49 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-08-16 8:48 [Intel-gfx] [PATCH] drm/i915: Ditch the i915_gem_ww_ctx loop member Thomas Hellström 2021-08-16 9:41 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for " Patchwork 2021-08-16 10:12 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork 2021-08-16 12:05 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork 2021-08-16 13:25 ` [Intel-gfx] [PATCH] " Matthew Auld 2021-08-16 13:30 ` Thomas Hellström 2021-08-16 13:34 ` Maarten Lankhorst 2021-08-16 13:49 ` Thomas Hellström
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).