* [Intel-gfx] [PATCH 1/2] drm/i915: Swap ggtt_vma during legacy cursor update
@ 2023-06-29 15:35 Maarten Lankhorst
2023-06-29 15:35 ` [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update Maarten Lankhorst
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Maarten Lankhorst @ 2023-06-29 15:35 UTC (permalink / raw)
To: intel-gfx
Xe is lacking the ability to re-use the ggtt_vma when updating cursor.
Instead of pinning from the new plane_state, move the ggtt_vma from
old_plane_state to new_plane_state.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_cursor.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c
index 4962247911d41..6f34098ea314d 100644
--- a/drivers/gpu/drm/i915/display/intel_cursor.c
+++ b/drivers/gpu/drm/i915/display/intel_cursor.c
@@ -688,9 +688,8 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
if (ret)
goto out_free;
- ret = intel_plane_pin_fb(new_plane_state);
- if (ret)
- goto out_free;
+ /* magic trick! */
+ swap(new_plane_state->ggtt_vma, old_plane_state->ggtt_vma);
intel_frontbuffer_flush(to_intel_frontbuffer(new_plane_state->hw.fb),
ORIGIN_CURSOR_UPDATE);
--
2.39.2
^ permalink raw reply related [flat|nested] 11+ messages in thread* [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update 2023-06-29 15:35 [Intel-gfx] [PATCH 1/2] drm/i915: Swap ggtt_vma during legacy cursor update Maarten Lankhorst @ 2023-06-29 15:35 ` Maarten Lankhorst 2023-06-29 19:15 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Swap ggtt_vma during legacy cursor update Patchwork ` (2 subsequent siblings) 3 siblings, 0 replies; 11+ messages in thread From: Maarten Lankhorst @ 2023-06-29 15:35 UTC (permalink / raw) To: intel-gfx Move hw_done to cleanup, to ensure we only unpin cursor fb after we received a flip event. This disables the legacy_cursor_update immediate completion of flip_done events, and waits for flip_done before cleaning up. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> --- drivers/gpu/drm/i915/display/intel_display.c | 15 ++++++++++++++- .../gpu/drm/i915/display/intel_display_types.h | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 43bcd3d011bf5..38c3eb8d95789 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -6864,6 +6864,9 @@ static void intel_atomic_cleanup_work(struct work_struct *work) struct intel_crtc *crtc; int i; + if (state->cursor_update) + drm_atomic_helper_wait_for_flip_done(&i915->drm, &state->base); + for_each_old_intel_crtc_in_state(state, crtc, old_crtc_state, i) intel_color_cleanup_commit(old_crtc_state); @@ -7062,7 +7065,8 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state) * - switch over to the vblank wait helper in the core after that since * we don't need out special handling any more. */ - drm_atomic_helper_wait_for_flip_done(dev, &state->base); + if (!state->cursor_update) + drm_atomic_helper_wait_for_flip_done(dev, &state->base); for_each_new_intel_crtc_in_state(state, crtc, new_crtc_state, i) { if (new_crtc_state->do_async_flip) @@ -7247,6 +7251,15 @@ int intel_atomic_commit(struct drm_device *dev, struct drm_atomic_state *_state, state->base.legacy_cursor_update = false; } + if (state->base.legacy_cursor_update) { + /* + * If this is a legacy cursor update, handle like a normal update, + * but wait before calling cleanup + */ + state->base.legacy_cursor_update = false; + state->cursor_update = true; + } + ret = intel_atomic_prepare_commit(state); if (ret) { drm_dbg_atomic(&dev_priv->drm, diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h index c85cf8adc7a69..01f7c8d24179c 100644 --- a/drivers/gpu/drm/i915/display/intel_display_types.h +++ b/drivers/gpu/drm/i915/display/intel_display_types.h @@ -646,7 +646,7 @@ struct intel_atomic_state { /* Internal commit, as opposed to userspace/client initiated one */ bool internal; - bool dpll_set, modeset; + bool dpll_set, modeset, cursor_update; struct intel_shared_dpll_state shared_dpll[I915_NUM_PLLS]; -- 2.39.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Swap ggtt_vma during legacy cursor update 2023-06-29 15:35 [Intel-gfx] [PATCH 1/2] drm/i915: Swap ggtt_vma during legacy cursor update Maarten Lankhorst 2023-06-29 15:35 ` [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update Maarten Lankhorst @ 2023-06-29 19:15 ` Patchwork 2023-06-30 5:52 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork 2023-07-25 20:26 ` [Intel-gfx] [PATCH 1/2] " Shankar, Uma 3 siblings, 0 replies; 11+ messages in thread From: Patchwork @ 2023-06-29 19:15 UTC (permalink / raw) To: Maarten Lankhorst; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 7161 bytes --] == Series Details == Series: series starting with [1/2] drm/i915: Swap ggtt_vma during legacy cursor update URL : https://patchwork.freedesktop.org/series/120018/ State : success == Summary == CI Bug Log - changes from CI_DRM_13337 -> Patchwork_120018v1 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/index.html Participating hosts (41 -> 40) ------------------------------ Missing (1): fi-snb-2520m Known issues ------------ Here are the changes found in Patchwork_120018v1 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_lmem_swapping@parallel-random-engines: - bat-mtlp-8: NOTRUN -> [SKIP][1] ([i915#4613]) +3 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/bat-mtlp-8/igt@gem_lmem_swapping@parallel-random-engines.html * igt@i915_pm_rps@basic-api: - bat-mtlp-8: NOTRUN -> [SKIP][2] ([i915#6621]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/bat-mtlp-8/igt@i915_pm_rps@basic-api.html * igt@i915_selftest@live@gt_mocs: - bat-mtlp-8: NOTRUN -> [DMESG-FAIL][3] ([i915#7059]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/bat-mtlp-8/igt@i915_selftest@live@gt_mocs.html * igt@i915_selftest@live@migrate: - bat-dg2-11: [PASS][4] -> [DMESG-WARN][5] ([i915#7699]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/bat-dg2-11/igt@i915_selftest@live@migrate.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/bat-dg2-11/igt@i915_selftest@live@migrate.html * igt@i915_selftest@live@requests: - bat-mtlp-8: NOTRUN -> [ABORT][6] ([i915#7982]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/bat-mtlp-8/igt@i915_selftest@live@requests.html * igt@i915_selftest@live@reset: - bat-rpls-2: [PASS][7] -> [ABORT][8] ([i915#4983] / [i915#7461] / [i915#7913] / [i915#8347]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/bat-rpls-2/igt@i915_selftest@live@reset.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/bat-rpls-2/igt@i915_selftest@live@reset.html * igt@kms_pipe_crc_basic@suspend-read-crc: - fi-bsw-nick: NOTRUN -> [SKIP][9] ([fdo#109271]) +1 similar issue [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/fi-bsw-nick/igt@kms_pipe_crc_basic@suspend-read-crc.html * igt@prime_vgem@basic-fence-read: - bat-mtlp-8: NOTRUN -> [SKIP][10] ([i915#3708]) +2 similar issues [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/bat-mtlp-8/igt@prime_vgem@basic-fence-read.html * igt@prime_vgem@basic-gtt: - bat-mtlp-8: NOTRUN -> [SKIP][11] ([i915#3708] / [i915#4077]) +1 similar issue [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/bat-mtlp-8/igt@prime_vgem@basic-gtt.html #### Possible fixes #### * igt@i915_pm_rpm@basic-pci-d3-state: - bat-mtlp-8: [ABORT][12] ([i915#7077] / [i915#7977]) -> [PASS][13] [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/bat-mtlp-8/igt@i915_pm_rpm@basic-pci-d3-state.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/bat-mtlp-8/igt@i915_pm_rpm@basic-pci-d3-state.html * igt@i915_selftest@live@execlists: - fi-bsw-nick: [ABORT][14] ([i915#7913]) -> [PASS][15] [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/fi-bsw-nick/igt@i915_selftest@live@execlists.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/fi-bsw-nick/igt@i915_selftest@live@execlists.html * igt@i915_selftest@live@gt_heartbeat: - fi-apl-guc: [DMESG-FAIL][16] ([i915#5334]) -> [PASS][17] [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_selftest@live@gt_pm: - bat-rpls-2: [DMESG-FAIL][18] ([i915#4258] / [i915#7913]) -> [PASS][19] [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/bat-rpls-2/igt@i915_selftest@live@gt_pm.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/bat-rpls-2/igt@i915_selftest@live@gt_pm.html * igt@i915_selftest@live@slpc: - bat-mtlp-6: [DMESG-WARN][20] ([i915#6367]) -> [PASS][21] [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/bat-mtlp-6/igt@i915_selftest@live@slpc.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/bat-mtlp-6/igt@i915_selftest@live@slpc.html #### Warnings #### * igt@kms_psr@primary_mmap_gtt: - bat-rplp-1: [SKIP][22] ([i915#1072]) -> [ABORT][23] ([i915#8442] / [i915#8668]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/bat-rplp-1/igt@kms_psr@primary_mmap_gtt.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/bat-rplp-1/igt@kms_psr@primary_mmap_gtt.html [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#7059]: https://gitlab.freedesktop.org/drm/intel/issues/7059 [i915#7077]: https://gitlab.freedesktop.org/drm/intel/issues/7077 [i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461 [i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699 [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913 [i915#7977]: https://gitlab.freedesktop.org/drm/intel/issues/7977 [i915#7982]: https://gitlab.freedesktop.org/drm/intel/issues/7982 [i915#8347]: https://gitlab.freedesktop.org/drm/intel/issues/8347 [i915#8442]: https://gitlab.freedesktop.org/drm/intel/issues/8442 [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668 Build changes ------------- * Linux: CI_DRM_13337 -> Patchwork_120018v1 CI-20190529: 20190529 CI_DRM_13337: 6f8963ce33be65c67e53b16fa18325e12ab76861 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7356: 66452bb0118e8d3a78d054cef50a60a9858a00a9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_120018v1: 6f8963ce33be65c67e53b16fa18325e12ab76861 @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits d1f1a3383eda drm/i915: Handle legacy cursor update as normal update a06f5e90585d drm/i915: Swap ggtt_vma during legacy cursor update == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/index.html [-- Attachment #2: Type: text/html, Size: 8324 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* [Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [1/2] drm/i915: Swap ggtt_vma during legacy cursor update 2023-06-29 15:35 [Intel-gfx] [PATCH 1/2] drm/i915: Swap ggtt_vma during legacy cursor update Maarten Lankhorst 2023-06-29 15:35 ` [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update Maarten Lankhorst 2023-06-29 19:15 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Swap ggtt_vma during legacy cursor update Patchwork @ 2023-06-30 5:52 ` Patchwork 2023-07-25 20:26 ` [Intel-gfx] [PATCH 1/2] " Shankar, Uma 3 siblings, 0 replies; 11+ messages in thread From: Patchwork @ 2023-06-30 5:52 UTC (permalink / raw) To: Maarten Lankhorst; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 25077 bytes --] == Series Details == Series: series starting with [1/2] drm/i915: Swap ggtt_vma during legacy cursor update URL : https://patchwork.freedesktop.org/series/120018/ State : failure == Summary == CI Bug Log - changes from CI_DRM_13337_full -> Patchwork_120018v1_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_120018v1_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_120018v1_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (8 -> 8) ------------------------------ No changes in participating hosts Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_120018v1_full: ### IGT changes ### #### Possible regressions #### * igt@kms_async_flips@test-cursor@pipe-a-hdmi-a-2: - shard-glk: [PASS][1] -> [FAIL][2] +8 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-glk7/igt@kms_async_flips@test-cursor@pipe-a-hdmi-a-2.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-glk4/igt@kms_async_flips@test-cursor@pipe-a-hdmi-a-2.html * igt@kms_async_flips@test-cursor@pipe-a-vga-1: - shard-snb: [PASS][3] -> [FAIL][4] +5 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-snb4/igt@kms_async_flips@test-cursor@pipe-a-vga-1.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-snb5/igt@kms_async_flips@test-cursor@pipe-a-vga-1.html * igt@kms_async_flips@test-cursor@pipe-b-dp-1: - shard-apl: [PASS][5] -> [FAIL][6] +4 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-apl6/igt@kms_async_flips@test-cursor@pipe-b-dp-1.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-apl2/igt@kms_async_flips@test-cursor@pipe-b-dp-1.html * igt@kms_async_flips@test-cursor@pipe-b-dp-4: - shard-dg2: NOTRUN -> [FAIL][7] +3 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-11/igt@kms_async_flips@test-cursor@pipe-b-dp-4.html * igt@kms_async_flips@test-cursor@pipe-b-hdmi-a-1: - shard-tglu: [PASS][8] -> [FAIL][9] +6 similar issues [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-tglu-3/igt@kms_async_flips@test-cursor@pipe-b-hdmi-a-1.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-tglu-7/igt@kms_async_flips@test-cursor@pipe-b-hdmi-a-1.html * igt@kms_async_flips@test-cursor@pipe-b-hdmi-a-2: - shard-rkl: [PASS][10] -> [FAIL][11] +6 similar issues [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-rkl-3/igt@kms_async_flips@test-cursor@pipe-b-hdmi-a-2.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-rkl-2/igt@kms_async_flips@test-cursor@pipe-b-hdmi-a-2.html * igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size: - shard-dg2: [PASS][12] -> [FAIL][13] +4 similar issues [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg2-10/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-11/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@kms_async_flips@test-cursor@pipe-b-hdmi-a-4: - {shard-dg1}: [PASS][14] -> [FAIL][15] +7 similar issues [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg1-14/igt@kms_async_flips@test-cursor@pipe-b-hdmi-a-4.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg1-15/igt@kms_async_flips@test-cursor@pipe-b-hdmi-a-4.html Known issues ------------ Here are the changes found in Patchwork_120018v1_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_eio@in-flight-suspend: - shard-dg2: [PASS][16] -> [FAIL][17] ([fdo#103375]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg2-10/igt@gem_eio@in-flight-suspend.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-5/igt@gem_eio@in-flight-suspend.html * igt@gem_exec_balancer@full-pulse: - shard-dg2: [PASS][18] -> [FAIL][19] ([i915#6032]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg2-8/igt@gem_exec_balancer@full-pulse.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-10/igt@gem_exec_balancer@full-pulse.html * igt@gem_exec_fair@basic-none@bcs0: - shard-rkl: [PASS][20] -> [FAIL][21] ([i915#2842]) +3 similar issues [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-rkl-1/igt@gem_exec_fair@basic-none@bcs0.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-rkl-1/igt@gem_exec_fair@basic-none@bcs0.html * igt@gem_exec_whisper@basic-fds-forked-all: - shard-tglu: [PASS][22] -> [INCOMPLETE][23] ([i915#6755] / [i915#7392]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-tglu-6/igt@gem_exec_whisper@basic-fds-forked-all.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-tglu-8/igt@gem_exec_whisper@basic-fds-forked-all.html * igt@gem_lmem_swapping@heavy-verify-random-ccs: - shard-apl: NOTRUN -> [SKIP][24] ([fdo#109271] / [i915#4613]) +1 similar issue [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-apl4/igt@gem_lmem_swapping@heavy-verify-random-ccs.html * igt@gem_userptr_blits@dmabuf-sync: - shard-apl: NOTRUN -> [SKIP][25] ([fdo#109271] / [i915#3323]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-apl4/igt@gem_userptr_blits@dmabuf-sync.html * igt@gen9_exec_parse@allowed-single: - shard-glk: [PASS][26] -> [ABORT][27] ([i915#5566]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-glk4/igt@gen9_exec_parse@allowed-single.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-glk9/igt@gen9_exec_parse@allowed-single.html * igt@i915_pm_rpm@dpms-non-lpsp: - shard-rkl: [PASS][28] -> [SKIP][29] ([i915#1397]) +1 similar issue [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-rkl-6/igt@i915_pm_rpm@dpms-non-lpsp.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-rkl-7/igt@i915_pm_rpm@dpms-non-lpsp.html * igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait: - shard-dg2: [PASS][30] -> [SKIP][31] ([i915#1397]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg2-8/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-10/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-vga-1-linear: - shard-snb: NOTRUN -> [SKIP][32] ([fdo#109271]) +15 similar issues [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-snb2/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-vga-1-linear.html * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip: - shard-apl: NOTRUN -> [SKIP][33] ([fdo#109271]) +41 similar issues [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-apl4/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html * igt@kms_ccs@pipe-c-bad-aux-stride-y_tiled_gen12_rc_ccs_cc: - shard-apl: NOTRUN -> [SKIP][34] ([fdo#109271] / [i915#3886]) +1 similar issue [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-apl4/igt@kms_ccs@pipe-c-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html * igt@kms_content_protection@srm@pipe-a-dp-1: - shard-apl: NOTRUN -> [TIMEOUT][35] ([i915#7173]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-apl4/igt@kms_content_protection@srm@pipe-a-dp-1.html * igt@kms_content_protection@srm@pipe-a-dp-2: - shard-dg2: NOTRUN -> [TIMEOUT][36] ([i915#7173]) +1 similar issue [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-12/igt@kms_content_protection@srm@pipe-a-dp-2.html * igt@kms_cursor_crc@cursor-onscreen-32x32: - shard-apl: NOTRUN -> [SKIP][37] ([fdo#109271] / [i915#4579]) +2 similar issues [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-apl4/igt@kms_cursor_crc@cursor-onscreen-32x32.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-blt: - shard-dg2: [PASS][38] -> [FAIL][39] ([i915#6880]) [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg2-11/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-blt.html [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-10/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-blt.html * igt@kms_hdr@bpc-switch-suspend: - shard-rkl: NOTRUN -> [SKIP][40] ([i915#3555] / [i915#4579]) [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-rkl-2/igt@kms_hdr@bpc-switch-suspend.html * igt@kms_hdr@static-toggle-dpms: - shard-dg2: NOTRUN -> [SKIP][41] ([i915#3555] / [i915#4579]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-10/igt@kms_hdr@static-toggle-dpms.html * igt@kms_plane_scaling@intel-max-src-size@pipe-a-dp-4: - shard-dg2: NOTRUN -> [FAIL][42] ([i915#8292]) [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-11/igt@kms_plane_scaling@intel-max-src-size@pipe-a-dp-4.html * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-a-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][43] ([i915#5176]) +3 similar issues [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-rkl-6/igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-a-hdmi-a-2.html * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-b-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][44] ([i915#4579] / [i915#5176]) +3 similar issues [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-rkl-6/igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-b-hdmi-a-2.html * igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-d-hdmi-a-1: - shard-dg2: NOTRUN -> [SKIP][45] ([i915#4579] / [i915#5235]) +3 similar issues [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-10/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-d-hdmi-a-1.html * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-a-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][46] ([i915#5235]) [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-rkl-4/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-a-hdmi-a-2.html * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-b-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][47] ([i915#4579] / [i915#5235]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-rkl-4/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-b-hdmi-a-2.html * igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20@pipe-b-hdmi-a-1: - shard-snb: NOTRUN -> [SKIP][48] ([fdo#109271] / [i915#4579]) +9 similar issues [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-snb1/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20@pipe-b-hdmi-a-1.html * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-a-dp-4: - shard-dg2: NOTRUN -> [SKIP][49] ([i915#5235]) +11 similar issues [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-11/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-a-dp-4.html * igt@kms_sysfs_edid_timing: - shard-dg2: [PASS][50] -> [FAIL][51] ([IGT#2]) [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg2-11/igt@kms_sysfs_edid_timing.html [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-10/igt@kms_sysfs_edid_timing.html * igt@perf@enable-disable@0-rcs0: - shard-dg2: [PASS][52] -> [FAIL][53] ([i915#8724]) [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg2-7/igt@perf@enable-disable@0-rcs0.html [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-11/igt@perf@enable-disable@0-rcs0.html #### Possible fixes #### * igt@drm_fdinfo@most-busy-check-all@rcs0: - shard-rkl: [FAIL][54] ([i915#7742]) -> [PASS][55] [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-rkl-2/igt@drm_fdinfo@most-busy-check-all@rcs0.html [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-rkl-2/igt@drm_fdinfo@most-busy-check-all@rcs0.html * igt@gem_barrier_race@remote-request@rcs0: - {shard-dg1}: [ABORT][56] ([i915#7461] / [i915#8234]) -> [PASS][57] [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg1-18/igt@gem_barrier_race@remote-request@rcs0.html [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg1-18/igt@gem_barrier_race@remote-request@rcs0.html * igt@gem_create@hog-create@smem0: - shard-dg2: [FAIL][58] ([i915#5892] / [i915#7679]) -> [PASS][59] [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg2-1/igt@gem_create@hog-create@smem0.html [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-6/igt@gem_create@hog-create@smem0.html * igt@gem_ctx_isolation@preservation-s3@vcs1: - shard-dg2: [FAIL][60] ([fdo#103375]) -> [PASS][61] +3 similar issues [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg2-5/igt@gem_ctx_isolation@preservation-s3@vcs1.html [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-7/igt@gem_ctx_isolation@preservation-s3@vcs1.html * igt@gem_eio@unwedge-stress: - {shard-dg1}: [FAIL][62] ([i915#5784]) -> [PASS][63] [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg1-17/igt@gem_eio@unwedge-stress.html [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg1-19/igt@gem_eio@unwedge-stress.html * igt@gem_exec_fair@basic-pace@vecs0: - shard-rkl: [FAIL][64] ([i915#2842]) -> [PASS][65] +1 similar issue [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-rkl-7/igt@gem_exec_fair@basic-pace@vecs0.html [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-rkl-4/igt@gem_exec_fair@basic-pace@vecs0.html * igt@gen9_exec_parse@allowed-single: - shard-apl: [ABORT][66] ([i915#5566]) -> [PASS][67] [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-apl7/igt@gen9_exec_parse@allowed-single.html [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-apl4/igt@gen9_exec_parse@allowed-single.html * igt@i915_pm_rc6_residency@rc6-idle@rcs0: - {shard-dg1}: [FAIL][68] ([i915#3591]) -> [PASS][69] +1 similar issue [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg1-14/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp: - shard-dg2: [SKIP][70] ([i915#1397]) -> [PASS][71] +1 similar issue [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg2-10/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-5/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html - shard-rkl: [SKIP][72] ([i915#1397]) -> [PASS][73] +1 similar issue [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-rkl-7/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-rkl-4/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html * igt@i915_pm_rpm@modeset-lpsp: - {shard-dg1}: [SKIP][74] ([i915#1397]) -> [PASS][75] [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg1-17/igt@i915_pm_rpm@modeset-lpsp.html [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg1-19/igt@i915_pm_rpm@modeset-lpsp.html * igt@i915_suspend@basic-s3-without-i915: - shard-rkl: [FAIL][76] ([fdo#103375]) -> [PASS][77] [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-rkl-6/igt@i915_suspend@basic-s3-without-i915.html [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-rkl-2/igt@i915_suspend@basic-s3-without-i915.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions: - shard-glk: [FAIL][78] ([i915#2346]) -> [PASS][79] [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html * igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2: - shard-glk: [FAIL][80] ([i915#79]) -> [PASS][81] [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-glk9/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-glk7/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html * igt@kms_frontbuffer_tracking@fbc-badstride: - shard-dg2: [FAIL][82] ([i915#6880]) -> [PASS][83] [82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg2-10/igt@kms_frontbuffer_tracking@fbc-badstride.html [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-12/igt@kms_frontbuffer_tracking@fbc-badstride.html * igt@perf_pmu@busy-double-start@vecs0: - {shard-dg1}: [FAIL][84] ([i915#4349]) -> [PASS][85] +1 similar issue [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg1-12/igt@perf_pmu@busy-double-start@vecs0.html [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg1-14/igt@perf_pmu@busy-double-start@vecs0.html #### Warnings #### * igt@kms_content_protection@type1: - shard-dg2: [SKIP][86] ([i915#4579] / [i915#7118] / [i915#7162]) -> [SKIP][87] ([i915#4579] / [i915#7118]) [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-dg2-11/igt@kms_content_protection@type1.html [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-5/igt@kms_content_protection@type1.html * igt@kms_fbcon_fbt@psr-suspend: - shard-rkl: [SKIP][88] ([fdo#110189] / [i915#3955]) -> [SKIP][89] ([i915#3955]) [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-rkl-1/igt@kms_fbcon_fbt@psr-suspend.html [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-rkl-7/igt@kms_fbcon_fbt@psr-suspend.html * igt@kms_force_connector_basic@force-load-detect: - shard-rkl: [SKIP][90] ([fdo#109285]) -> [SKIP][91] ([fdo#109285] / [i915#4098]) [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-rkl-6/igt@kms_force_connector_basic@force-load-detect.html [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-rkl-2/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_multipipe_modeset@basic-max-pipe-crc-check: - shard-rkl: [SKIP][92] ([i915#4070] / [i915#4816]) -> [SKIP][93] ([i915#4816]) [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13337/shard-rkl-2/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-rkl-4/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2 [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615 [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323 [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591 [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955 [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070 [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098 [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349 [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4816]: https://gitlab.freedesktop.org/drm/intel/issues/4816 [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852 [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235 [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289 [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566 [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784 [i915#5892]: https://gitlab.freedesktop.org/drm/intel/issues/5892 [i915#6032]: https://gitlab.freedesktop.org/drm/intel/issues/6032 [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095 [i915#6755]: https://gitlab.freedesktop.org/drm/intel/issues/6755 [i915#6880]: https://gitlab.freedesktop.org/drm/intel/issues/6880 [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118 [i915#7162]: https://gitlab.freedesktop.org/drm/intel/issues/7162 [i915#7173]: https://gitlab.freedesktop.org/drm/intel/issues/7173 [i915#7392]: https://gitlab.freedesktop.org/drm/intel/issues/7392 [i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461 [i915#7679]: https://gitlab.freedesktop.org/drm/intel/issues/7679 [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79 [i915#8234]: https://gitlab.freedesktop.org/drm/intel/issues/8234 [i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247 [i915#8292]: https://gitlab.freedesktop.org/drm/intel/issues/8292 [i915#8502]: https://gitlab.freedesktop.org/drm/intel/issues/8502 [i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708 [i915#8709]: https://gitlab.freedesktop.org/drm/intel/issues/8709 [i915#8724]: https://gitlab.freedesktop.org/drm/intel/issues/8724 Build changes ------------- * Linux: CI_DRM_13337 -> Patchwork_120018v1 CI-20190529: 20190529 CI_DRM_13337: 6f8963ce33be65c67e53b16fa18325e12ab76861 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7356: 66452bb0118e8d3a78d054cef50a60a9858a00a9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_120018v1: 6f8963ce33be65c67e53b16fa18325e12ab76861 @ 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_120018v1/index.html [-- Attachment #2: Type: text/html, Size: 28087 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915: Swap ggtt_vma during legacy cursor update 2023-06-29 15:35 [Intel-gfx] [PATCH 1/2] drm/i915: Swap ggtt_vma during legacy cursor update Maarten Lankhorst ` (2 preceding siblings ...) 2023-06-30 5:52 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork @ 2023-07-25 20:26 ` Shankar, Uma 3 siblings, 0 replies; 11+ messages in thread From: Shankar, Uma @ 2023-07-25 20:26 UTC (permalink / raw) To: Maarten Lankhorst, intel-gfx@lists.freedesktop.org > -----Original Message----- > From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Maarten > Lankhorst > Sent: Thursday, June 29, 2023 9:05 PM > To: intel-gfx@lists.freedesktop.org > Subject: [Intel-gfx] [PATCH 1/2] drm/i915: Swap ggtt_vma during legacy cursor > update > > Xe is lacking the ability to re-use the ggtt_vma when updating cursor. > Instead of pinning from the new plane_state, move the ggtt_vma from > old_plane_state to new_plane_state. > > Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > --- > drivers/gpu/drm/i915/display/intel_cursor.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c > b/drivers/gpu/drm/i915/display/intel_cursor.c > index 4962247911d41..6f34098ea314d 100644 > --- a/drivers/gpu/drm/i915/display/intel_cursor.c > +++ b/drivers/gpu/drm/i915/display/intel_cursor.c > @@ -688,9 +688,8 @@ intel_legacy_cursor_update(struct drm_plane *_plane, > if (ret) > goto out_free; > > - ret = intel_plane_pin_fb(new_plane_state); > - if (ret) > - goto out_free; > + /* magic trick! */ > + swap(new_plane_state->ggtt_vma, old_plane_state->ggtt_vma); There are failures in CI due to the change, this causes device busy issue. https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120018v1/shard-dg2-11/igt@kms_async_flips@test-cursor@pipe-b-dp-4.html Please cross check once. Regards, Uma Shankar > intel_frontbuffer_flush(to_intel_frontbuffer(new_plane_state->hw.fb), > ORIGIN_CURSOR_UPDATE); > -- > 2.39.2 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH 1/2] drm/i915: Swap ggtt_vma during legacy cursor update @ 2023-08-14 6:50 Maarten Lankhorst 2023-08-14 6:50 ` [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update Maarten Lankhorst 0 siblings, 1 reply; 11+ messages in thread From: Maarten Lankhorst @ 2023-08-14 6:50 UTC (permalink / raw) To: intel-gfx From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> --- drivers/gpu/drm/i915/display/intel_cursor.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c index 8ed8a623fa98..b1a77b89585d 100644 --- a/drivers/gpu/drm/i915/display/intel_cursor.c +++ b/drivers/gpu/drm/i915/display/intel_cursor.c @@ -690,9 +690,8 @@ intel_legacy_cursor_update(struct drm_plane *_plane, if (ret) goto out_free; - ret = intel_plane_pin_fb(new_plane_state); - if (ret) - goto out_free; + /* magic trick! */ + swap(new_plane_state->ggtt_vma, old_plane_state->ggtt_vma); intel_frontbuffer_flush(to_intel_frontbuffer(new_plane_state->hw.fb), ORIGIN_CURSOR_UPDATE); -- 2.39.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update 2023-08-14 6:50 Maarten Lankhorst @ 2023-08-14 6:50 ` Maarten Lankhorst 2023-08-18 8:37 ` kernel test robot 0 siblings, 1 reply; 11+ messages in thread From: Maarten Lankhorst @ 2023-08-14 6:50 UTC (permalink / raw) To: intel-gfx From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Abuse the vblank worker to make the changes as small as possible. We need a way to sync flip_done, but if we wait on flip_done, all async tests start failing. Changes since v1: - Prevent null deref when crtc is inactive. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> --- drivers/gpu/drm/i915/display/intel_crtc.c | 28 +++++++++++++------- drivers/gpu/drm/i915/display/intel_crtc.h | 6 +++-- drivers/gpu/drm/i915/display/intel_display.c | 10 ++++--- 3 files changed, 30 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c index f06b987f5558..be6959c6eb0d 100644 --- a/drivers/gpu/drm/i915/display/intel_crtc.c +++ b/drivers/gpu/drm/i915/display/intel_crtc.c @@ -389,11 +389,17 @@ int intel_crtc_init(struct drm_i915_private *dev_priv, enum pipe pipe) return ret; } -static bool intel_crtc_needs_vblank_work(const struct intel_crtc_state *crtc_state) +static bool intel_crtc_needs_vblank_work(const struct intel_atomic_state *state, + const struct intel_crtc_state *crtc_state) { - return crtc_state->hw.active && - !intel_crtc_needs_modeset(crtc_state) && - !crtc_state->preload_luts && + if (!crtc_state->hw.active || intel_crtc_needs_modeset(crtc_state)) + return false; + + /* Init for legacy cursor update, so we can sync on teardown */ + if (state->base.legacy_cursor_update) + return true; + + return !crtc_state->preload_luts && intel_crtc_needs_color_update(crtc_state); } @@ -438,7 +444,7 @@ void intel_wait_for_vblank_workers(struct intel_atomic_state *state) int i; for_each_new_intel_crtc_in_state(state, crtc, crtc_state, i) { - if (!intel_crtc_needs_vblank_work(crtc_state)) + if (!intel_crtc_needs_vblank_work(state, crtc_state)) continue; drm_vblank_work_flush(&crtc_state->vblank_work); @@ -470,6 +476,7 @@ static int intel_mode_vblank_start(const struct drm_display_mode *mode) /** * intel_pipe_update_start() - start update of a set of display registers + * @state: the intel atomic state * @new_crtc_state: the new crtc state * * Mark the start of an update to pipe registers that should be updated @@ -480,7 +487,8 @@ static int intel_mode_vblank_start(const struct drm_display_mode *mode) * until a subsequent call to intel_pipe_update_end(). That is done to * avoid random delays. */ -void intel_pipe_update_start(struct intel_crtc_state *new_crtc_state) +void intel_pipe_update_start(struct intel_atomic_state *state, + struct intel_crtc_state *new_crtc_state) { struct intel_crtc *crtc = to_intel_crtc(new_crtc_state->uapi.crtc); struct drm_i915_private *dev_priv = to_i915(crtc->base.dev); @@ -497,7 +505,7 @@ void intel_pipe_update_start(struct intel_crtc_state *new_crtc_state) if (new_crtc_state->do_async_flip) return; - if (intel_crtc_needs_vblank_work(new_crtc_state)) + if (intel_crtc_needs_vblank_work(state, new_crtc_state)) intel_crtc_vblank_work_init(new_crtc_state); if (new_crtc_state->vrr.enable) { @@ -635,13 +643,15 @@ static void dbg_vblank_evade(struct intel_crtc *crtc, ktime_t end) {} /** * intel_pipe_update_end() - end update of a set of display registers + * @state: the intel atomic state * @new_crtc_state: the new crtc state * * Mark the end of an update started with intel_pipe_update_start(). This * re-enables interrupts and verifies the update was actually completed * before a vblank. */ -void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state) +void intel_pipe_update_end(struct intel_atomic_state *state, + struct intel_crtc_state *new_crtc_state) { struct intel_crtc *crtc = to_intel_crtc(new_crtc_state->uapi.crtc); enum pipe pipe = crtc->pipe; @@ -669,7 +679,7 @@ void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state) * Would be slightly nice to just grab the vblank count and arm the * event outside of the critical section - the spinlock might spin for a * while ... */ - if (intel_crtc_needs_vblank_work(new_crtc_state)) { + if (intel_crtc_needs_vblank_work(state, new_crtc_state)) { drm_vblank_work_schedule(&new_crtc_state->vblank_work, drm_crtc_accurate_vblank_count(&crtc->base) + 1, false); diff --git a/drivers/gpu/drm/i915/display/intel_crtc.h b/drivers/gpu/drm/i915/display/intel_crtc.h index 51a4c8df9e65..ca7f45a454a0 100644 --- a/drivers/gpu/drm/i915/display/intel_crtc.h +++ b/drivers/gpu/drm/i915/display/intel_crtc.h @@ -36,8 +36,10 @@ void intel_crtc_state_reset(struct intel_crtc_state *crtc_state, u32 intel_crtc_get_vblank_counter(struct intel_crtc *crtc); void intel_crtc_vblank_on(const struct intel_crtc_state *crtc_state); void intel_crtc_vblank_off(const struct intel_crtc_state *crtc_state); -void intel_pipe_update_start(struct intel_crtc_state *new_crtc_state); -void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state); +void intel_pipe_update_start(struct intel_atomic_state *state, + struct intel_crtc_state *new_crtc_state); +void intel_pipe_update_end(struct intel_atomic_state *state, + struct intel_crtc_state *new_crtc_state); void intel_wait_for_vblank_workers(struct intel_atomic_state *state); struct intel_crtc *intel_first_crtc(struct drm_i915_private *i915); struct intel_crtc *intel_crtc_for_pipe(struct drm_i915_private *i915, diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 45a932c9b1b3..f083ef0f53d4 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -6611,7 +6611,7 @@ static void intel_update_crtc(struct intel_atomic_state *state, intel_crtc_planes_update_noarm(state, crtc); /* Perform vblank evasion around commit operation */ - intel_pipe_update_start(new_crtc_state); + intel_pipe_update_start(state, new_crtc_state); commit_pipe_pre_planes(state, crtc); @@ -6619,7 +6619,7 @@ static void intel_update_crtc(struct intel_atomic_state *state, commit_pipe_post_planes(state, crtc); - intel_pipe_update_end(new_crtc_state); + intel_pipe_update_end(state, new_crtc_state); /* * We usually enable FIFO underrun interrupts as part of the @@ -6921,6 +6921,9 @@ static void intel_atomic_cleanup_work(struct work_struct *work) struct intel_crtc *crtc; int i; + if (state->base.legacy_cursor_update) + intel_wait_for_vblank_workers(state); + for_each_old_intel_crtc_in_state(state, crtc, old_crtc_state, i) intel_color_cleanup_commit(old_crtc_state); @@ -7116,7 +7119,8 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state) if (state->modeset) intel_set_cdclk_post_plane_update(state); - intel_wait_for_vblank_workers(state); + if (!state->base.legacy_cursor_update) + intel_wait_for_vblank_workers(state); /* FIXME: We should call drm_atomic_helper_commit_hw_done() here * already, but still need the state for the delayed optimization. To -- 2.39.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update 2023-08-14 6:50 ` [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update Maarten Lankhorst @ 2023-08-18 8:37 ` kernel test robot 0 siblings, 0 replies; 11+ messages in thread From: kernel test robot @ 2023-08-18 8:37 UTC (permalink / raw) To: Maarten Lankhorst; +Cc: oe-lkp, intel-gfx, oliver.sang Hello, kernel test robot noticed "BUG:KASAN:slab-use-after-free_in_intel_wait_for_vblank_workers" on: commit: cfd54d37e5cd9511b5a4a98bba6d4b2f596149cf ("[Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update") url: https://github.com/intel-lab-lkp/linux/commits/Maarten-Lankhorst/drm-i915-Handle-legacy-cursor-update-as-normal-update/20230814-145051 base: git://anongit.freedesktop.org/drm/drm-tip drm-tip patch link: https://lore.kernel.org/all/20230814065006.47160-2-dev@lankhorst.se/ patch subject: [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update in testcase: igt version: igt-x86_64-0f075441-1_20230520 with following parameters: group: group-23 compiler: gcc-12 test machine: 20 threads 1 sockets (Commet Lake) with 16G memory (please refer to attached dmesg/kmsg for entire log/backtrace) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <oliver.sang@intel.com> | Closes: https://lore.kernel.org/oe-lkp/202308181627.2fec1157-oliver.sang@intel.com kern :err : [ 162.196982] BUG: KASAN: slab-use-after-free in intel_wait_for_vblank_workers (drivers/gpu/drm/i915/display/intel_crtc.c:395 drivers/gpu/drm/i915/display/intel_crtc.c:447) i915 kern :err : [ 162.206530] Read of size 1 at addr ffff88811d8dc150 by task kworker/0:0H/8 kern :err : [ 162.216391] CPU: 0 PID: 8 Comm: kworker/0:0H Not tainted 6.5.0-rc6-00947-gcfd54d37e5cd #1 kern :err : [ 162.225319] Workqueue: events_highpri intel_atomic_cleanup_work [i915] kern :err : [ 162.232683] Call Trace: kern :err : [ 162.235861] <TASK> kern :err : [ 162.238688] dump_stack_lvl (lib/dump_stack.c:107 (discriminator 1)) kern :err : [ 162.243085] print_address_description+0x2c/0x3a0 kern :err : [ 162.249618] ? intel_wait_for_vblank_workers (drivers/gpu/drm/i915/display/intel_crtc.c:395 drivers/gpu/drm/i915/display/intel_crtc.c:447) i915 kern :err : [ 162.256370] print_report (mm/kasan/report.c:476) kern :err : [ 162.260681] ? kasan_addr_to_slab (mm/kasan/common.c:35) kern :err : [ 162.265515] ? intel_wait_for_vblank_workers (drivers/gpu/drm/i915/display/intel_crtc.c:395 drivers/gpu/drm/i915/display/intel_crtc.c:447) i915 kern :err : [ 162.272267] kasan_report (mm/kasan/report.c:590) kern :err : [ 162.276584] ? intel_wait_for_vblank_workers (drivers/gpu/drm/i915/display/intel_crtc.c:395 drivers/gpu/drm/i915/display/intel_crtc.c:447) i915 kern :err : [ 162.283336] intel_wait_for_vblank_workers (drivers/gpu/drm/i915/display/intel_crtc.c:395 drivers/gpu/drm/i915/display/intel_crtc.c:447) i915 kern :err : [ 162.289911] intel_atomic_cleanup_work (drivers/gpu/drm/i915/display/intel_display.c:6901) i915 kern :err : [ 162.296191] ? drm_dev_put (drivers/gpu/drm/drm_drv.c:827) drm kern :err : [ 162.301672] process_one_work (kernel/workqueue.c:2605) kern :err : [ 162.306507] worker_thread (include/linux/list.h:292 kernel/workqueue.c:2752) kern :err : [ 162.311080] ? rescuer_thread (kernel/workqueue.c:2694) kern :err : [ 162.315828] kthread (kernel/kthread.c:389) kern :err : [ 162.319791] ? kthread_complete_and_exit (kernel/kthread.c:342) kern :err : [ 162.325323] ret_from_fork (arch/x86/kernel/process.c:151) kern :err : [ 162.329630] ? kthread_complete_and_exit (kernel/kthread.c:342) kern :err : [ 162.335181] ret_from_fork_asm (arch/x86/entry/entry_64.S:312) kern :err : [ 162.339840] </TASK> kern :err : [ 162.344980] Allocated by task 4201: kern :warn : [ 162.349214] kasan_save_stack (mm/kasan/common.c:46) kern :warn : [ 162.353787] kasan_set_track (mm/kasan/common.c:52) kern :warn : [ 162.358270] __kasan_kmalloc (mm/kasan/common.c:374 mm/kasan/common.c:383) kern :warn : [ 162.362757] __kmalloc_node_track_caller (include/linux/kasan.h:196 mm/slab_common.c:985 mm/slab_common.c:1005) kern :warn : [ 162.368283] kmemdup (mm/util.c:131) kern :warn : [ 162.372075] intel_crtc_duplicate_state (include/linux/fortify-string.h:765 drivers/gpu/drm/i915/display/intel_atomic.c:242) i915 kern :warn : [ 162.378364] drm_atomic_get_crtc_state (drivers/gpu/drm/drm_atomic.c:363) drm kern :warn : [ 162.384453] drm_atomic_get_plane_state (drivers/gpu/drm/drm_atomic.c:567) drm kern :warn : [ 162.390622] drm_atomic_helper_update_plane (drivers/gpu/drm/drm_atomic_helper.c:3127) drm_kms_helper kern :warn : [ 162.397997] drm_mode_cursor_universal (drivers/gpu/drm/drm_plane.c:1086) drm kern :warn : [ 162.404086] drm_mode_cursor_common (drivers/gpu/drm/drm_plane.c:1172) drm kern :warn : [ 162.409973] drm_mode_cursor_ioctl (drivers/gpu/drm/drm_plane.c:1188) drm kern :warn : [ 162.415628] drm_ioctl_kernel (drivers/gpu/drm/drm_ioctl.c:795) drm kern :warn : [ 162.420933] drm_ioctl (drivers/gpu/drm/drm_ioctl.c:893) drm kern :warn : [ 162.425627] __x64_sys_ioctl (fs/ioctl.c:52 fs/ioctl.c:870 fs/ioctl.c:856 fs/ioctl.c:856) kern :warn : [ 162.430284] do_syscall_64 (arch/x86/entry/common.c:50 arch/x86/entry/common.c:80) kern :warn : [ 162.434590] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:120) kern :err : [ 162.442600] Freed by task 266: kern :warn : [ 162.446384] kasan_save_stack (mm/kasan/common.c:46) kern :warn : [ 162.450957] kasan_set_track (mm/kasan/common.c:52) kern :warn : [ 162.455435] kasan_save_free_info (mm/kasan/generic.c:524) kern :warn : [ 162.460355] __kasan_slab_free (mm/kasan/common.c:238 mm/kasan/common.c:200 mm/kasan/common.c:244) kern :warn : [ 162.465185] __kmem_cache_free (mm/slub.c:1818 mm/slub.c:3801 mm/slub.c:3814) kern :warn : [ 162.470016] drm_atomic_state_default_clear (drivers/gpu/drm/drm_atomic.c:228) drm kern :warn : [ 162.476541] intel_atomic_state_clear (drivers/gpu/drm/i915/display/intel_atomic.c:343) i915 kern :warn : [ 162.482512] __drm_atomic_state_free (drivers/gpu/drm/drm_atomic.c:313) drm kern :warn : [ 162.488342] intel_atomic_helper_free_state (drivers/gpu/drm/i915/display/intel_display.c:6850) i915 kern :warn : [ 162.494833] process_one_work (kernel/workqueue.c:2605) kern :warn : [ 162.499668] worker_thread (include/linux/list.h:292 kernel/workqueue.c:2752) kern :warn : [ 162.504244] kthread (kernel/kthread.c:389) kern :warn : [ 162.508205] ret_from_fork (arch/x86/kernel/process.c:151) kern :warn : [ 162.512521] ret_from_fork_asm (arch/x86/entry/entry_64.S:312) kern :err : [ 162.519398] The buggy address belongs to the object at ffff88811d8dc000 which belongs to the cache kmalloc-8k of size 8192 kern :err : [ 162.533366] The buggy address is located 336 bytes inside of freed 8192-byte region [ffff88811d8dc000, ffff88811d8de000) kern :err : [ 162.549380] The buggy address belongs to the physical page: kern :warn : [ 162.555691] page:00000000f71065d9 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x11d8d8 kern :warn : [ 162.565835] head:00000000f71065d9 order:3 entire_mapcount:0 nr_pages_mapped:0 pincount:0 kern :warn : [ 162.574675] flags: 0x17ffffc0010200(slab|head|node=0|zone=2|lastcpupid=0x1fffff) kern :warn : [ 162.582819] page_type: 0xffffffff() kern :warn : [ 162.587049] raw: 0017ffffc0010200 ffff88810c843180 dead000000000122 0000000000000000 kern :warn : [ 162.595537] raw: 0000000000000000 0000000080020002 00000001ffffffff 0000000000000000 kern :warn : [ 162.604024] page dumped because: kasan: bad access detected kern :err : [ 162.612551] Memory state around the buggy address: kern :err : [ 162.618082] ffff88811d8dc000: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb kern :err : [ 162.626051] ffff88811d8dc080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb kern :err : [ 162.634018] >ffff88811d8dc100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb kern :err : [ 162.641981] ^ kern :err : [ 162.648551] ffff88811d8dc180: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb kern :err : [ 162.656516] ffff88811d8dc200: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb kern :err : [ 162.664482] ================================================================== kern :warn : [ 162.672474] Disabling lock debugging due to kernel taint user :info : [ 183.845750] [IGT] kms_cursor_legacy: starting dynamic subtest pipe-B user :notice: [ 183.847199] Total updates 140241 (median of 20 processes is 6978.00) user :notice: [ 183.862752] Dynamic subtest pipe-A: SUCCESS (21.683s) user :notice: [ 183.871250] Starting dynamic subtest: pipe-B user :info : [ 205.481554] [IGT] kms_cursor_legacy: starting dynamic subtest pipe-C user :notice: [ 205.483064] Total updates 146561 (median of 20 processes is 7323.50) user :notice: [ 205.498578] Dynamic subtest pipe-B: SUCCESS (21.629s) user :notice: [ 205.507030] Starting dynamic subtest: pipe-C user :info : [ 227.139947] [IGT] kms_cursor_legacy: starting dynamic subtest all-pipes The kernel config and materials to reproduce are available at: https://download.01.org/0day-ci/archive/20230818/202308181627.2fec1157-oliver.sang@intel.com -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH 1/2] drm/i915: Swap ggtt_vma during legacy cursor update @ 2023-08-10 12:41 Maarten Lankhorst 2023-08-10 12:41 ` [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update Maarten Lankhorst 0 siblings, 1 reply; 11+ messages in thread From: Maarten Lankhorst @ 2023-08-10 12:41 UTC (permalink / raw) To: intel-gfx; +Cc: dri-devel Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> --- drivers/gpu/drm/i915/display/intel_cursor.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c index b342fad180ca..ab25f019eda1 100644 --- a/drivers/gpu/drm/i915/display/intel_cursor.c +++ b/drivers/gpu/drm/i915/display/intel_cursor.c @@ -688,9 +688,8 @@ intel_legacy_cursor_update(struct drm_plane *_plane, if (ret) goto out_free; - ret = intel_plane_pin_fb(new_plane_state); - if (ret) - goto out_free; + /* magic trick! */ + swap(new_plane_state->ggtt_vma, old_plane_state->ggtt_vma); intel_frontbuffer_flush(to_intel_frontbuffer(new_plane_state->hw.fb), ORIGIN_CURSOR_UPDATE); -- 2.39.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update 2023-08-10 12:41 [Intel-gfx] [PATCH 1/2] drm/i915: Swap ggtt_vma during legacy cursor update Maarten Lankhorst @ 2023-08-10 12:41 ` Maarten Lankhorst 0 siblings, 0 replies; 11+ messages in thread From: Maarten Lankhorst @ 2023-08-10 12:41 UTC (permalink / raw) To: intel-gfx; +Cc: dri-devel Abuse the vblank worker to make the changes as small as possible. We need a way to sync flip_done, but if we wait on flip_done, all async tests start failing. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> --- drivers/gpu/drm/i915/display/intel_crtc.c | 21 ++++++++++++++------ drivers/gpu/drm/i915/display/intel_crtc.h | 6 ++++-- drivers/gpu/drm/i915/display/intel_display.c | 10 +++++++--- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c index 182c6dd64f47..2adcce303271 100644 --- a/drivers/gpu/drm/i915/display/intel_crtc.c +++ b/drivers/gpu/drm/i915/display/intel_crtc.c @@ -389,8 +389,13 @@ int intel_crtc_init(struct drm_i915_private *dev_priv, enum pipe pipe) return ret; } -static bool intel_crtc_needs_vblank_work(const struct intel_crtc_state *crtc_state) +static bool intel_crtc_needs_vblank_work(const struct intel_atomic_state *state, + const struct intel_crtc_state *crtc_state) { + /* Always init for legacy cursor update, so we can sync on teardown */ + if (state->base.legacy_cursor_update) + return true; + return crtc_state->hw.active && !intel_crtc_needs_modeset(crtc_state) && !crtc_state->preload_luts && @@ -438,7 +443,7 @@ void intel_wait_for_vblank_workers(struct intel_atomic_state *state) int i; for_each_new_intel_crtc_in_state(state, crtc, crtc_state, i) { - if (!intel_crtc_needs_vblank_work(crtc_state)) + if (!intel_crtc_needs_vblank_work(state, crtc_state)) continue; drm_vblank_work_flush(&crtc_state->vblank_work); @@ -470,6 +475,7 @@ static int intel_mode_vblank_start(const struct drm_display_mode *mode) /** * intel_pipe_update_start() - start update of a set of display registers + * @state: the intel atomic state * @new_crtc_state: the new crtc state * * Mark the start of an update to pipe registers that should be updated @@ -480,7 +486,8 @@ static int intel_mode_vblank_start(const struct drm_display_mode *mode) * until a subsequent call to intel_pipe_update_end(). That is done to * avoid random delays. */ -void intel_pipe_update_start(struct intel_crtc_state *new_crtc_state) +void intel_pipe_update_start(struct intel_atomic_state *state, + struct intel_crtc_state *new_crtc_state) { struct intel_crtc *crtc = to_intel_crtc(new_crtc_state->uapi.crtc); struct drm_i915_private *dev_priv = to_i915(crtc->base.dev); @@ -497,7 +504,7 @@ void intel_pipe_update_start(struct intel_crtc_state *new_crtc_state) if (new_crtc_state->do_async_flip) return; - if (intel_crtc_needs_vblank_work(new_crtc_state)) + if (intel_crtc_needs_vblank_work(state, new_crtc_state)) intel_crtc_vblank_work_init(new_crtc_state); if (new_crtc_state->vrr.enable) { @@ -631,13 +638,15 @@ static void dbg_vblank_evade(struct intel_crtc *crtc, ktime_t end) {} /** * intel_pipe_update_end() - end update of a set of display registers + * @state: the intel atomic state * @new_crtc_state: the new crtc state * * Mark the end of an update started with intel_pipe_update_start(). This * re-enables interrupts and verifies the update was actually completed * before a vblank. */ -void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state) +void intel_pipe_update_end(struct intel_atomic_state *state, + struct intel_crtc_state *new_crtc_state) { struct intel_crtc *crtc = to_intel_crtc(new_crtc_state->uapi.crtc); enum pipe pipe = crtc->pipe; @@ -665,7 +674,7 @@ void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state) * Would be slightly nice to just grab the vblank count and arm the * event outside of the critical section - the spinlock might spin for a * while ... */ - if (intel_crtc_needs_vblank_work(new_crtc_state)) { + if (intel_crtc_needs_vblank_work(state, new_crtc_state)) { drm_vblank_work_schedule(&new_crtc_state->vblank_work, drm_crtc_accurate_vblank_count(&crtc->base) + 1, false); diff --git a/drivers/gpu/drm/i915/display/intel_crtc.h b/drivers/gpu/drm/i915/display/intel_crtc.h index 51a4c8df9e65..ca7f45a454a0 100644 --- a/drivers/gpu/drm/i915/display/intel_crtc.h +++ b/drivers/gpu/drm/i915/display/intel_crtc.h @@ -36,8 +36,10 @@ void intel_crtc_state_reset(struct intel_crtc_state *crtc_state, u32 intel_crtc_get_vblank_counter(struct intel_crtc *crtc); void intel_crtc_vblank_on(const struct intel_crtc_state *crtc_state); void intel_crtc_vblank_off(const struct intel_crtc_state *crtc_state); -void intel_pipe_update_start(struct intel_crtc_state *new_crtc_state); -void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state); +void intel_pipe_update_start(struct intel_atomic_state *state, + struct intel_crtc_state *new_crtc_state); +void intel_pipe_update_end(struct intel_atomic_state *state, + struct intel_crtc_state *new_crtc_state); void intel_wait_for_vblank_workers(struct intel_atomic_state *state); struct intel_crtc *intel_first_crtc(struct drm_i915_private *i915); struct intel_crtc *intel_crtc_for_pipe(struct drm_i915_private *i915, diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 763ab569d8f3..e1ca1f9c3941 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -6604,7 +6604,7 @@ static void intel_update_crtc(struct intel_atomic_state *state, intel_crtc_planes_update_noarm(state, crtc); /* Perform vblank evasion around commit operation */ - intel_pipe_update_start(new_crtc_state); + intel_pipe_update_start(state, new_crtc_state); commit_pipe_pre_planes(state, crtc); @@ -6612,7 +6612,7 @@ static void intel_update_crtc(struct intel_atomic_state *state, commit_pipe_post_planes(state, crtc); - intel_pipe_update_end(new_crtc_state); + intel_pipe_update_end(state, new_crtc_state); /* * We usually enable FIFO underrun interrupts as part of the @@ -6895,6 +6895,9 @@ static void intel_atomic_cleanup_work(struct work_struct *work) struct intel_crtc *crtc; int i; + if (state->base.legacy_cursor_update) + intel_wait_for_vblank_workers(state); + for_each_old_intel_crtc_in_state(state, crtc, old_crtc_state, i) intel_color_cleanup_commit(old_crtc_state); @@ -7056,7 +7059,8 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state) if (state->modeset) intel_set_cdclk_post_plane_update(state); - intel_wait_for_vblank_workers(state); + if (!state->base.legacy_cursor_update) + intel_wait_for_vblank_workers(state); /* FIXME: We should call drm_atomic_helper_commit_hw_done() here * already, but still need the state for the delayed optimization. To -- 2.39.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH 1/2] drm/i915: Swap ggtt_vma during legacy cursor update @ 2023-06-21 11:48 Maarten Lankhorst 2023-06-21 11:48 ` [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update Maarten Lankhorst 0 siblings, 1 reply; 11+ messages in thread From: Maarten Lankhorst @ 2023-06-21 11:48 UTC (permalink / raw) To: intel-gfx Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> --- drivers/gpu/drm/i915/display/intel_cursor.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c index 4962247911d41..6f34098ea314d 100644 --- a/drivers/gpu/drm/i915/display/intel_cursor.c +++ b/drivers/gpu/drm/i915/display/intel_cursor.c @@ -688,9 +688,8 @@ intel_legacy_cursor_update(struct drm_plane *_plane, if (ret) goto out_free; - ret = intel_plane_pin_fb(new_plane_state); - if (ret) - goto out_free; + /* magic trick! */ + swap(new_plane_state->ggtt_vma, old_plane_state->ggtt_vma); intel_frontbuffer_flush(to_intel_frontbuffer(new_plane_state->hw.fb), ORIGIN_CURSOR_UPDATE); -- 2.39.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update 2023-06-21 11:48 [Intel-gfx] [PATCH 1/2] drm/i915: Swap ggtt_vma during legacy cursor update Maarten Lankhorst @ 2023-06-21 11:48 ` Maarten Lankhorst 2023-06-21 23:09 ` kernel test robot 2023-06-21 23:40 ` kernel test robot 0 siblings, 2 replies; 11+ messages in thread From: Maarten Lankhorst @ 2023-06-21 11:48 UTC (permalink / raw) To: intel-gfx Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> --- drivers/gpu/drm/i915/display/intel_display.c | 15 ++++++++++++++- .../gpu/drm/i915/display/intel_display_types.h | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 43bcd3d011bf5..3927dfb894c1a 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -6864,6 +6864,9 @@ static void intel_atomic_cleanup_work(struct work_struct *work) struct intel_crtc *crtc; int i; + if (state->cursor_update) + drm_atomic_helper_wait_for_flip_done(dev, &state->base); + for_each_old_intel_crtc_in_state(state, crtc, old_crtc_state, i) intel_color_cleanup_commit(old_crtc_state); @@ -7062,7 +7065,8 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state) * - switch over to the vblank wait helper in the core after that since * we don't need out special handling any more. */ - drm_atomic_helper_wait_for_flip_done(dev, &state->base); + if (!state->cursor_update) + drm_atomic_helper_wait_for_flip_done(dev, &state->base); for_each_new_intel_crtc_in_state(state, crtc, new_crtc_state, i) { if (new_crtc_state->do_async_flip) @@ -7247,6 +7251,15 @@ int intel_atomic_commit(struct drm_device *dev, struct drm_atomic_state *_state, state->base.legacy_cursor_update = false; } + if (state->base.legacy_cursor_update) { + /* + * If this is a legacy cursor update, handle like a normal update, + * but wait before calling cleanup + */ + state->base.legacy_cursor_update = false; + state->cursor_update = true; + } + ret = intel_atomic_prepare_commit(state); if (ret) { drm_dbg_atomic(&dev_priv->drm, diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h index c85cf8adc7a69..01f7c8d24179c 100644 --- a/drivers/gpu/drm/i915/display/intel_display_types.h +++ b/drivers/gpu/drm/i915/display/intel_display_types.h @@ -646,7 +646,7 @@ struct intel_atomic_state { /* Internal commit, as opposed to userspace/client initiated one */ bool internal; - bool dpll_set, modeset; + bool dpll_set, modeset, cursor_update; struct intel_shared_dpll_state shared_dpll[I915_NUM_PLLS]; -- 2.39.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update 2023-06-21 11:48 ` [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update Maarten Lankhorst @ 2023-06-21 23:09 ` kernel test robot 2023-06-21 23:40 ` kernel test robot 1 sibling, 0 replies; 11+ messages in thread From: kernel test robot @ 2023-06-21 23:09 UTC (permalink / raw) To: Maarten Lankhorst, intel-gfx; +Cc: oe-kbuild-all Hi Maarten, kernel test robot noticed the following build errors: [auto build test ERROR on drm-tip/drm-tip] url: https://github.com/intel-lab-lkp/linux/commits/Maarten-Lankhorst/drm-i915-Handle-legacy-cursor-update-as-normal-update/20230621-195009 base: git://anongit.freedesktop.org/drm/drm-tip drm-tip patch link: https://lore.kernel.org/r/20230621114827.167713-2-maarten.lankhorst%40linux.intel.com patch subject: [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update config: x86_64-defconfig (https://download.01.org/0day-ci/archive/20230622/202306220634.fnI3oGxP-lkp@intel.com/config) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce: (https://download.01.org/0day-ci/archive/20230622/202306220634.fnI3oGxP-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202306220634.fnI3oGxP-lkp@intel.com/ All errors (new ones prefixed by >>): drivers/gpu/drm/i915/display/intel_display.c: In function 'intel_atomic_cleanup_work': >> drivers/gpu/drm/i915/display/intel_display.c:6900:54: error: 'dev' undeclared (first use in this function); did you mean 'cdev'? 6900 | drm_atomic_helper_wait_for_flip_done(dev, &state->base); | ^~~ | cdev drivers/gpu/drm/i915/display/intel_display.c:6900:54: note: each undeclared identifier is reported only once for each function it appears in vim +6900 drivers/gpu/drm/i915/display/intel_display.c 6889 6890 static void intel_atomic_cleanup_work(struct work_struct *work) 6891 { 6892 struct intel_atomic_state *state = 6893 container_of(work, struct intel_atomic_state, base.commit_work); 6894 struct drm_i915_private *i915 = to_i915(state->base.dev); 6895 struct intel_crtc_state *old_crtc_state; 6896 struct intel_crtc *crtc; 6897 int i; 6898 6899 if (state->cursor_update) > 6900 drm_atomic_helper_wait_for_flip_done(dev, &state->base); 6901 6902 for_each_old_intel_crtc_in_state(state, crtc, old_crtc_state, i) 6903 intel_color_cleanup_commit(old_crtc_state); 6904 6905 drm_atomic_helper_cleanup_planes(&i915->drm, &state->base); 6906 drm_atomic_helper_commit_cleanup_done(&state->base); 6907 drm_atomic_state_put(&state->base); 6908 6909 intel_atomic_helper_free_state(i915); 6910 } 6911 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update 2023-06-21 11:48 ` [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update Maarten Lankhorst 2023-06-21 23:09 ` kernel test robot @ 2023-06-21 23:40 ` kernel test robot 1 sibling, 0 replies; 11+ messages in thread From: kernel test robot @ 2023-06-21 23:40 UTC (permalink / raw) To: Maarten Lankhorst, intel-gfx; +Cc: llvm, oe-kbuild-all Hi Maarten, kernel test robot noticed the following build errors: [auto build test ERROR on drm-tip/drm-tip] url: https://github.com/intel-lab-lkp/linux/commits/Maarten-Lankhorst/drm-i915-Handle-legacy-cursor-update-as-normal-update/20230621-195009 base: git://anongit.freedesktop.org/drm/drm-tip drm-tip patch link: https://lore.kernel.org/r/20230621114827.167713-2-maarten.lankhorst%40linux.intel.com patch subject: [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update config: x86_64-rhel-8.3-rust (https://download.01.org/0day-ci/archive/20230622/202306220703.F8iGFXoT-lkp@intel.com/config) compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project.git 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a) reproduce: (https://download.01.org/0day-ci/archive/20230622/202306220703.F8iGFXoT-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202306220703.F8iGFXoT-lkp@intel.com/ All errors (new ones prefixed by >>): >> drivers/gpu/drm/i915/display/intel_display.c:6900:40: error: use of undeclared identifier 'dev' drm_atomic_helper_wait_for_flip_done(dev, &state->base); ^ 1 error generated. vim +/dev +6900 drivers/gpu/drm/i915/display/intel_display.c 6889 6890 static void intel_atomic_cleanup_work(struct work_struct *work) 6891 { 6892 struct intel_atomic_state *state = 6893 container_of(work, struct intel_atomic_state, base.commit_work); 6894 struct drm_i915_private *i915 = to_i915(state->base.dev); 6895 struct intel_crtc_state *old_crtc_state; 6896 struct intel_crtc *crtc; 6897 int i; 6898 6899 if (state->cursor_update) > 6900 drm_atomic_helper_wait_for_flip_done(dev, &state->base); 6901 6902 for_each_old_intel_crtc_in_state(state, crtc, old_crtc_state, i) 6903 intel_color_cleanup_commit(old_crtc_state); 6904 6905 drm_atomic_helper_cleanup_planes(&i915->drm, &state->base); 6906 drm_atomic_helper_commit_cleanup_done(&state->base); 6907 drm_atomic_state_put(&state->base); 6908 6909 intel_atomic_helper_free_state(i915); 6910 } 6911 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-08-18 8:37 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-06-29 15:35 [Intel-gfx] [PATCH 1/2] drm/i915: Swap ggtt_vma during legacy cursor update Maarten Lankhorst 2023-06-29 15:35 ` [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update Maarten Lankhorst 2023-06-29 19:15 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Swap ggtt_vma during legacy cursor update Patchwork 2023-06-30 5:52 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork 2023-07-25 20:26 ` [Intel-gfx] [PATCH 1/2] " Shankar, Uma -- strict thread matches above, loose matches on Subject: below -- 2023-08-14 6:50 Maarten Lankhorst 2023-08-14 6:50 ` [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update Maarten Lankhorst 2023-08-18 8:37 ` kernel test robot 2023-08-10 12:41 [Intel-gfx] [PATCH 1/2] drm/i915: Swap ggtt_vma during legacy cursor update Maarten Lankhorst 2023-08-10 12:41 ` [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update Maarten Lankhorst 2023-06-21 11:48 [Intel-gfx] [PATCH 1/2] drm/i915: Swap ggtt_vma during legacy cursor update Maarten Lankhorst 2023-06-21 11:48 ` [Intel-gfx] [PATCH 2/2] drm/i915: Handle legacy cursor update as normal update Maarten Lankhorst 2023-06-21 23:09 ` kernel test robot 2023-06-21 23:40 ` kernel test robot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox