Re: [PATCH] drm/ci: mark kms_addfb_basic@addfb25-bad-modifier as passing on msm
On 13/06/2024 14:55, Dmitry Baryshkov wrote: On Thu, 13 Jun 2024 at 20:49, Abhinav Kumar wrote: On 6/13/2024 9:33 AM, Dmitry Baryshkov wrote: The commit b228501ff183 ("drm/msm: merge dpu format database to MDP formats") made get_format take modifiers into account. This makes kms_addfb_basic@addfb25-bad-modifier pass on MDP4 and MDP5 platforms. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt | 1 - drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt | 1 - 2 files changed, 2 deletions(-) Would be good to also give a link to the CI for the CI maintainers. But otherwise, LGTM Reviewed-by: Abhinav Kumar Yes, good idea: https://gitlab.freedesktop.org/drm/msm/-/merge_requests/119 Nice to see new tests passing! Acked-by: Helen Koike I'm applying it to drm-misc-next Thanks, Helen diff --git a/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt b/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt index 3dfbabdf905e..6e7fd1ccd1e3 100644 --- a/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt +++ b/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt @@ -4,7 +4,6 @@ device_reset@unbind-cold-reset-rebind,Fail device_reset@unbind-reset-rebind,Fail dumb_buffer@invalid-bpp,Fail kms_3d,Fail -kms_addfb_basic@addfb25-bad-modifier,Fail kms_cursor_legacy@forked-move,Fail kms_cursor_legacy@single-bo,Fail kms_cursor_legacy@torture-bo,Fail diff --git a/drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt b/drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt index 23a5f6f9097f..46ca69ce2ffe 100644 --- a/drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt +++ b/drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt @@ -4,6 +4,5 @@ device_reset@unbind-cold-reset-rebind,Fail device_reset@unbind-reset-rebind,Fail dumb_buffer@invalid-bpp,Fail kms_3d,Fail -kms_addfb_basic@addfb25-bad-modifier,Fail kms_lease@lease-uevent,Fail tools_test@tools_test,Fail --- base-commit: 6b4468b0c6ba37a16795da567b58dc80bc7fb439 change-id: 20240613-msm-pass-addfb25-bad-modifier-c461fd9c02bb Best regards,
Re: [PATCH v2 0/2] drm/msm/gen_header: allow skipping the validation
On 03/05/2024 17:23, Dmitry Baryshkov wrote: On Fri, 3 May 2024 at 21:15, Dmitry Baryshkov wrote: In order to remove pointless messages regarding missing lxml, skip validation of MSM register files against the schema. Only the driver developers really care and/or can fix the files. Keep the validation enabled during one of DRM CI stages, so that we still catch errors, introduced by mistake. Helen, could you please ack merging the second patch through drm/msm tree? Done. --- Dmitry Baryshkov (2): drm/msm/gen_header: allow skipping the validation drm/ci: validate drm/msm XML register files against schema
Re: [PATCH v2 2/2] drm/ci: validate drm/msm XML register files against schema
On 03/05/2024 21:07, Abhinav Kumar wrote: On 5/3/2024 5:02 PM, Dmitry Baryshkov wrote: On Sat, 4 May 2024 at 01:38, Abhinav Kumar wrote: On 5/3/2024 1:20 PM, Dmitry Baryshkov wrote: On Fri, 3 May 2024 at 22:42, Abhinav Kumar wrote: On 5/3/2024 11:15 AM, Dmitry Baryshkov wrote: In order to validate drm/msm register definition files against schema, reuse the nodebugfs build step. The validation entry is guarded by the EXPERT Kconfig option and we don't want to enable that option for all the builds. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/ci/build.sh | 3 +++ drivers/gpu/drm/ci/build.yml | 1 + 2 files changed, 4 insertions(+) diff --git a/drivers/gpu/drm/ci/build.sh b/drivers/gpu/drm/ci/build.sh index 106f2d40d222..28a495c0c39c 100644 --- a/drivers/gpu/drm/ci/build.sh +++ b/drivers/gpu/drm/ci/build.sh @@ -12,6 +12,9 @@ rm -rf .git/rebase-apply apt-get update apt-get install -y libssl-dev +# for msm header validation +apt-get install -y python3-lxml + if [[ "$KERNEL_ARCH" = "arm64" ]]; then GCC_ARCH="aarch64-linux-gnu" DEBIAN_ARCH="arm64" diff --git a/drivers/gpu/drm/ci/build.yml b/drivers/gpu/drm/ci/build.yml index 17ab38304885..9c198239033d 100644 --- a/drivers/gpu/drm/ci/build.yml +++ b/drivers/gpu/drm/ci/build.yml @@ -106,6 +106,7 @@ build-nodebugfs:arm64: extends: .build:arm64 variables: DISABLE_KCONFIGS: "DEBUG_FS" + ENABLE_KCONFIGS: "EXPERT DRM_MSM_VALIDATE_XML" Wouldnt this end up enabling DRM_MSM_VALIDATE_XML for any arm64 device. Cant we make this build rule msm specific? No need to. We just need to validate the files at least once during the whole pipeline build. ah okay, today the arm64 config anyway sets all arm64 vendor drm configs to y. A couple of more questions: 1) Why is this enabled only for no-debugfs option? 2) Will there be any concerns from other vendors to enable CONFIG_EXPERT in their CI runs as the arm64 config is shared across all arm64 vendors. I don't get the second question. This option is only enabled for no-debugfs, which isn't used for execution. Ah I see, makes sense. I didn't want to add an extra build stage, just for the sake of validating regs against the schema, nor did I want EXPERT to find its way into the actual running kernels. This answered my second question actually. That basically I didnt also want EXPERT to find its way into actual running kernels. Hence, I am fine with this change now Reviewed-by: Abhinav Kumar But, I will wait to hear from helen, vignesh about what they think of this. lgfm Acked-by: Helen Koike Thanks Helen
Re: [PATCH] drm: ci: fix the xfails for apq8016
On 25/04/2024 11:01, Helen Koike wrote: On 08/04/2024 14:04, Abhinav Kumar wrote: Hi Helen Gentle reminder on this. If you are okay, we can land it via msm-next tree... Thanks Abhinav On 4/1/2024 1:48 PM, Abhinav Kumar wrote: After IGT migrating to dynamic sub-tests, the pipe prefixes in the expected fails list are incorrect. Lets drop those to accurately match the expected fails. In addition, update the xfails list to match the current passing list. This should have ideally failed in the CI run because some tests were marked as fail even though they passed but due to the mismatch in test names, the matching didn't correctly work and was resulting in those failures not being seen. Here is the passing pipeline for apq8016 with this change: https://gitlab.freedesktop.org/drm/msm/-/jobs/57050562 Signed-off-by: Abhinav Kumar I'm sorry about my delay. Acked-by: Helen Koike I'm also merging it to msm-misc-next. Applied, thanks. Helen Regards, Helen --- drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt | 13 + 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt b/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt index 44a5c62dedad..b14d4e884971 100644 --- a/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt +++ b/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt @@ -1,17 +1,6 @@ kms_3d,Fail kms_addfb_basic@addfb25-bad-modifier,Fail -kms_cursor_legacy@all-pipes-forked-bo,Fail -kms_cursor_legacy@all-pipes-forked-move,Fail -kms_cursor_legacy@all-pipes-single-bo,Fail -kms_cursor_legacy@all-pipes-single-move,Fail -kms_cursor_legacy@all-pipes-torture-bo,Fail -kms_cursor_legacy@all-pipes-torture-move,Fail -kms_cursor_legacy@pipe-A-forked-bo,Fail -kms_cursor_legacy@pipe-A-forked-move,Fail -kms_cursor_legacy@pipe-A-single-bo,Fail -kms_cursor_legacy@pipe-A-single-move,Fail -kms_cursor_legacy@pipe-A-torture-bo,Fail -kms_cursor_legacy@pipe-A-torture-move,Fail +kms_cursor_legacy@torture-bo,Fail kms_force_connector_basic@force-edid,Fail kms_hdmi_inject@inject-4k,Fail kms_selftest@drm_format,Timeout
Re: [PATCH] drm: ci: fix the xfails for apq8016
On 08/04/2024 14:04, Abhinav Kumar wrote: Hi Helen Gentle reminder on this. If you are okay, we can land it via msm-next tree... Thanks Abhinav On 4/1/2024 1:48 PM, Abhinav Kumar wrote: After IGT migrating to dynamic sub-tests, the pipe prefixes in the expected fails list are incorrect. Lets drop those to accurately match the expected fails. In addition, update the xfails list to match the current passing list. This should have ideally failed in the CI run because some tests were marked as fail even though they passed but due to the mismatch in test names, the matching didn't correctly work and was resulting in those failures not being seen. Here is the passing pipeline for apq8016 with this change: https://gitlab.freedesktop.org/drm/msm/-/jobs/57050562 Signed-off-by: Abhinav Kumar I'm sorry about my delay. Acked-by: Helen Koike I'm also merging it to msm-misc-next. Regards, Helen --- drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt | 13 + 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt b/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt index 44a5c62dedad..b14d4e884971 100644 --- a/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt +++ b/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt @@ -1,17 +1,6 @@ kms_3d,Fail kms_addfb_basic@addfb25-bad-modifier,Fail -kms_cursor_legacy@all-pipes-forked-bo,Fail -kms_cursor_legacy@all-pipes-forked-move,Fail -kms_cursor_legacy@all-pipes-single-bo,Fail -kms_cursor_legacy@all-pipes-single-move,Fail -kms_cursor_legacy@all-pipes-torture-bo,Fail -kms_cursor_legacy@all-pipes-torture-move,Fail -kms_cursor_legacy@pipe-A-forked-bo,Fail -kms_cursor_legacy@pipe-A-forked-move,Fail -kms_cursor_legacy@pipe-A-single-bo,Fail -kms_cursor_legacy@pipe-A-single-move,Fail -kms_cursor_legacy@pipe-A-torture-bo,Fail -kms_cursor_legacy@pipe-A-torture-move,Fail +kms_cursor_legacy@torture-bo,Fail kms_force_connector_basic@force-edid,Fail kms_hdmi_inject@inject-4k,Fail kms_selftest@drm_format,Timeout
Re: [PATCH] drm: ci: uprev IGT
On 20/02/2024 09:17, Dmitry Baryshkov wrote: Bump IGT revision to pick up Rob Clark's fixes for the msm driver: - msm_submit@invalid-duplicate-bo-submit,Fail Signed-off-by: Dmitry Baryshkov Do you have a gitlab pipeline link I can check? Thanks Helen --- drivers/gpu/drm/ci/gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/ci/gitlab-ci.yml b/drivers/gpu/drm/ci/gitlab-ci.yml index 8b82e6656924..47e567b4f7a7 100644 --- a/drivers/gpu/drm/ci/gitlab-ci.yml +++ b/drivers/gpu/drm/ci/gitlab-ci.yml @@ -5,7 +5,7 @@ variables: UPSTREAM_REPO: git://anongit.freedesktop.org/drm/drm TARGET_BRANCH: drm-next - IGT_VERSION: d2af13d9f5be5ce23d996e4afd3e45990f5ab977 + IGT_VERSION: 3f2879fef93c0c546a2f1c0aa48a9cc2a594b9d2 DEQP_RUNNER_GIT_URL: https://gitlab.freedesktop.org/anholt/deqp-runner.git DEQP_RUNNER_GIT_TAG: v0.15.0
Re: [PATCH 3/3] drm/ci: mark universal-plane-sanity as failing on SC7180
On 19/02/2024 17:25, Helen Koike wrote: On 18/02/2024 01:12, Dmitry Baryshkov wrote: The test kms_universal_plane@universal-plane-sanity fails on both SC7180 platforms. The drm/msm returns -ERANGE as it can not handle passet scaling range, however the test is not ready to handle that. Mark the test as failing until it is fixed. ERROR - Igt error: (kms_universal_plane:1554) CRITICAL: Test assertion failure function sanity_test_pipe, file ../tests/kms_universal_plane.c:438: ERROR - Igt error: (kms_universal_plane:1554) CRITICAL: Failed assertion: drmModeSetPlane(data->drm_fd, primary->drm_plane->plane_id, output->config.crtc->crtc_id, test.oversized_fb.fb_id, 0, 0, 0, mode->hdisplay + 100, mode->vdisplay + 100, IGT_FIXED(0,0), IGT_FIXED(0,0), IGT_FIXED(mode->hdisplay,0), IGT_FIXED(mode->vdisplay,0)) == expect ERROR - Igt error: (kms_universal_plane:1554) CRITICAL: Last errno: 34, Numerical result out of range Signed-off-by: Dmitry Baryshkov Acked-by: Helen Koike Applied to drm-misc/drm-misc-next Thanks Helen --- .../gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-fails.txt | 1 + .../drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-fails.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-fails.txt b/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-fails.txt index 7e4d8744fcc6..f0576aa629e8 100644 --- a/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-fails.txt +++ b/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-fails.txt @@ -15,3 +15,4 @@ kms_plane_alpha_blend@alpha-7efc,Fail kms_plane_alpha_blend@coverage-7efc,Fail kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail kms_rmfb@close-fd,Fail +kms_universal_plane@universal-plane-sanity,Fail diff --git a/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-fails.txt b/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-fails.txt index 7e4d8744fcc6..f0576aa629e8 100644 --- a/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-fails.txt +++ b/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-fails.txt @@ -15,3 +15,4 @@ kms_plane_alpha_blend@alpha-7efc,Fail kms_plane_alpha_blend@coverage-7efc,Fail kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail kms_rmfb@close-fd,Fail +kms_universal_plane@universal-plane-sanity,Fail
Re: [PATCH 2/3] drm/ci: update msm-apq8096-fails list
On 19/02/2024 17:26, Helen Koike wrote: On 18/02/2024 01:12, Dmitry Baryshkov wrote: Mark two tests as passing on the APQ8096 / db820c platform. Signed-off-by: Dmitry Baryshkov Acked-by: Helen Koike Applied to drm-misc/drm-misc-next Thanks Helen --- drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt b/drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt index 2cd49e8ee47f..88a1fc0a3b0d 100644 --- a/drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt +++ b/drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt @@ -1,4 +1,2 @@ kms_3d,Fail kms_addfb_basic@addfb25-bad-modifier,Fail -kms_force_connector_basic@force-edid,Fail -kms_hdmi_inject@inject-4k,Fail
Re: [PATCH 1/3] drm/ci: update IGT test names
On 19/02/2024 17:25, Helen Koike wrote: On 19/02/2024 14:42, Dmitry Baryshkov wrote: On Mon, 19 Feb 2024 at 18:48, Helen Koike wrote: On 19/02/2024 11:33, Dmitry Baryshkov wrote: On Mon, 19 Feb 2024 at 15:21, Helen Koike wrote: Hi Dmitry, On 18/02/2024 01:12, Dmitry Baryshkov wrote: Since the addition of testlist.txt the IGT has changed some of test names. Some test names were changed to use '-' instead of '_'. In other cases tests were just renamed. Follow those changes. Signed-off-by: Dmitry Baryshkov Thanks for the patchset Do you have a pipeline link with those patches I can check? https://gitlab.freedesktop.org/drm/msm/-/pipelines/1106149/ I see two jobs failing, both had a timeout on the serial. msm:apq8016 had: Pass: 26, Fail: 1, ExpectedFail: 2, Skip: 1044, Duration: 17:40, Remaining: 27:48 but it didn't generate the fails.csv due to the timeout. In any case, should it also be updated on xfails? I could not get apq8016 to finish. Once it works in a stable way, I'll update corresponding xfails. Fair enough. We had apq8016 running well before, I wonder what happened. For this patch: Acked-by: Helen Koike Thanks Helen Applied to drm-misc/drm-misc-next Thanks Helen Regards, Helen Thanks Helen --- drivers/gpu/drm/ci/testlist.txt | 1888 ++- 1 file changed, 844 insertions(+), 1044 deletions(-) diff --git a/drivers/gpu/drm/ci/testlist.txt b/drivers/gpu/drm/ci/testlist.txt index eaeb751bb0ad..3377f002f8c5 100644 --- a/drivers/gpu/drm/ci/testlist.txt +++ b/drivers/gpu/drm/ci/testlist.txt @@ -100,7 +100,7 @@ kms_atomic@plane-invalid-params-fence kms_atomic@crtc-invalid-params kms_atomic@crtc-invalid-params-fence kms_atomic@atomic-invalid-params -kms_atomic@atomic_plane_damage +kms_atomic@atomic-plane-damage kms_atomic_interruptible@legacy-setmode kms_atomic_interruptible@atomic-setmode kms_atomic_interruptible@legacy-dpms @@ -321,726 +321,726 @@ kms_bw@linear-tiling-7-displays-3840x2160p kms_bw@linear-tiling-8-displays-1920x1080p kms_bw@linear-tiling-8-displays-2560x1440p kms_bw@linear-tiling-8-displays-3840x2160p -kms_ccs@pipe-A-bad-pixel-format-y_tiled_ccs -kms_ccs@pipe-A-bad-pixel-format-yf_tiled_ccs -kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-bad-rotation-90-y_tiled_ccs -kms_ccs@pipe-A-bad-rotation-90-yf_tiled_ccs -kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-basic-y_tiled_ccs -kms_ccs@pipe-A-crc-primary-basic-yf_tiled_ccs -kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-yf_tiled_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-random-ccs-data-y_tiled_ccs -kms_ccs@pipe-A-random-ccs-data-yf_tiled_ccs -kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_rc
Re: [PATCH 2/3] drm/ci: update msm-apq8096-fails list
On 18/02/2024 01:12, Dmitry Baryshkov wrote: Mark two tests as passing on the APQ8096 / db820c platform. Signed-off-by: Dmitry Baryshkov Acked-by: Helen Koike --- drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt b/drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt index 2cd49e8ee47f..88a1fc0a3b0d 100644 --- a/drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt +++ b/drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt @@ -1,4 +1,2 @@ kms_3d,Fail kms_addfb_basic@addfb25-bad-modifier,Fail -kms_force_connector_basic@force-edid,Fail -kms_hdmi_inject@inject-4k,Fail
Re: [PATCH 3/3] drm/ci: mark universal-plane-sanity as failing on SC7180
On 18/02/2024 01:12, Dmitry Baryshkov wrote: The test kms_universal_plane@universal-plane-sanity fails on both SC7180 platforms. The drm/msm returns -ERANGE as it can not handle passet scaling range, however the test is not ready to handle that. Mark the test as failing until it is fixed. ERROR - Igt error: (kms_universal_plane:1554) CRITICAL: Test assertion failure function sanity_test_pipe, file ../tests/kms_universal_plane.c:438: ERROR - Igt error: (kms_universal_plane:1554) CRITICAL: Failed assertion: drmModeSetPlane(data->drm_fd, primary->drm_plane->plane_id, output->config.crtc->crtc_id, test.oversized_fb.fb_id, 0, 0, 0, mode->hdisplay + 100, mode->vdisplay + 100, IGT_FIXED(0,0), IGT_FIXED(0,0), IGT_FIXED(mode->hdisplay,0), IGT_FIXED(mode->vdisplay,0)) == expect ERROR - Igt error: (kms_universal_plane:1554) CRITICAL: Last errno: 34, Numerical result out of range Signed-off-by: Dmitry Baryshkov Acked-by: Helen Koike --- .../gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-fails.txt| 1 + .../drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-fails.txt| 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-fails.txt b/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-fails.txt index 7e4d8744fcc6..f0576aa629e8 100644 --- a/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-fails.txt +++ b/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-fails.txt @@ -15,3 +15,4 @@ kms_plane_alpha_blend@alpha-7efc,Fail kms_plane_alpha_blend@coverage-7efc,Fail kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail kms_rmfb@close-fd,Fail +kms_universal_plane@universal-plane-sanity,Fail diff --git a/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-fails.txt b/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-fails.txt index 7e4d8744fcc6..f0576aa629e8 100644 --- a/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-fails.txt +++ b/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-fails.txt @@ -15,3 +15,4 @@ kms_plane_alpha_blend@alpha-7efc,Fail kms_plane_alpha_blend@coverage-7efc,Fail kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail kms_rmfb@close-fd,Fail +kms_universal_plane@universal-plane-sanity,Fail
Re: [PATCH 1/3] drm/ci: update IGT test names
On 19/02/2024 14:42, Dmitry Baryshkov wrote: On Mon, 19 Feb 2024 at 18:48, Helen Koike wrote: On 19/02/2024 11:33, Dmitry Baryshkov wrote: On Mon, 19 Feb 2024 at 15:21, Helen Koike wrote: Hi Dmitry, On 18/02/2024 01:12, Dmitry Baryshkov wrote: Since the addition of testlist.txt the IGT has changed some of test names. Some test names were changed to use '-' instead of '_'. In other cases tests were just renamed. Follow those changes. Signed-off-by: Dmitry Baryshkov Thanks for the patchset Do you have a pipeline link with those patches I can check? https://gitlab.freedesktop.org/drm/msm/-/pipelines/1106149/ I see two jobs failing, both had a timeout on the serial. msm:apq8016 had: Pass: 26, Fail: 1, ExpectedFail: 2, Skip: 1044, Duration: 17:40, Remaining: 27:48 but it didn't generate the fails.csv due to the timeout. In any case, should it also be updated on xfails? I could not get apq8016 to finish. Once it works in a stable way, I'll update corresponding xfails. Fair enough. We had apq8016 running well before, I wonder what happened. For this patch: Acked-by: Helen Koike Thanks Helen Regards, Helen Thanks Helen --- drivers/gpu/drm/ci/testlist.txt | 1888 ++- 1 file changed, 844 insertions(+), 1044 deletions(-) diff --git a/drivers/gpu/drm/ci/testlist.txt b/drivers/gpu/drm/ci/testlist.txt index eaeb751bb0ad..3377f002f8c5 100644 --- a/drivers/gpu/drm/ci/testlist.txt +++ b/drivers/gpu/drm/ci/testlist.txt @@ -100,7 +100,7 @@ kms_atomic@plane-invalid-params-fence kms_atomic@crtc-invalid-params kms_atomic@crtc-invalid-params-fence kms_atomic@atomic-invalid-params -kms_atomic@atomic_plane_damage +kms_atomic@atomic-plane-damage kms_atomic_interruptible@legacy-setmode kms_atomic_interruptible@atomic-setmode kms_atomic_interruptible@legacy-dpms @@ -321,726 +321,726 @@ kms_bw@linear-tiling-7-displays-3840x2160p kms_bw@linear-tiling-8-displays-1920x1080p kms_bw@linear-tiling-8-displays-2560x1440p kms_bw@linear-tiling-8-displays-3840x2160p -kms_ccs@pipe-A-bad-pixel-format-y_tiled_ccs -kms_ccs@pipe-A-bad-pixel-format-yf_tiled_ccs -kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-bad-rotation-90-y_tiled_ccs -kms_ccs@pipe-A-bad-rotation-90-yf_tiled_ccs -kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-basic-y_tiled_ccs -kms_ccs@pipe-A-crc-primary-basic-yf_tiled_ccs -kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-yf_tiled_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-random-ccs-data-y_tiled_ccs -kms_ccs@pipe-A-random-ccs-data-yf_tiled_ccs -kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-random-ccs-data-4_ti
Re: [PATCH] drm/ci: skip suspend tests for both msm-sc7180 machines
On 19/02/2024 11:47, Vignesh Raman wrote: On 17/02/24 02:26, Dmitry Baryshkov wrote: The commit ea489a3d983b ("drm/ci: add sc7180-trogdor-kingoftown") dropped the msm-sc7180-skips.txt file, which disabled suspend-to-RAM tests. However testing shows that STR tests still can fail. Restore the skiplist, applying it to both limozeen and kingoftown machines. Fixes: ea489a3d983b ("drm/ci: add sc7180-trogdor-kingoftown") Signed-off-by: Dmitry Baryshkov --- .../gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-skips.txt | 2 ++ .../drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-skips.txt | 2 ++ 2 files changed, 4 insertions(+) create mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-skips.txt create mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-skips.txt diff --git a/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-skips.txt b/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-skips.txt new file mode 100644 index ..327039f70252 --- /dev/null +++ b/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-skips.txt @@ -0,0 +1,2 @@ +# Suspend to RAM seems to be broken on this machine +.*suspend.* diff --git a/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-skips.txt b/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-skips.txt new file mode 100644 index ..327039f70252 --- /dev/null +++ b/drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-skips.txt @@ -0,0 +1,2 @@ +# Suspend to RAM seems to be broken on this machine +.*suspend.* Acked-by: Vignesh Raman Applied to drm-misc/drm-misc-next Thanks Helen
Re: [PATCH 1/3] drm/ci: update IGT test names
On 19/02/2024 11:33, Dmitry Baryshkov wrote: On Mon, 19 Feb 2024 at 15:21, Helen Koike wrote: Hi Dmitry, On 18/02/2024 01:12, Dmitry Baryshkov wrote: Since the addition of testlist.txt the IGT has changed some of test names. Some test names were changed to use '-' instead of '_'. In other cases tests were just renamed. Follow those changes. Signed-off-by: Dmitry Baryshkov Thanks for the patchset Do you have a pipeline link with those patches I can check? https://gitlab.freedesktop.org/drm/msm/-/pipelines/1106149/ I see two jobs failing, both had a timeout on the serial. msm:apq8016 had: Pass: 26, Fail: 1, ExpectedFail: 2, Skip: 1044, Duration: 17:40, Remaining: 27:48 but it didn't generate the fails.csv due to the timeout. In any case, should it also be updated on xfails? Regards, Helen Thanks Helen --- drivers/gpu/drm/ci/testlist.txt | 1888 ++- 1 file changed, 844 insertions(+), 1044 deletions(-) diff --git a/drivers/gpu/drm/ci/testlist.txt b/drivers/gpu/drm/ci/testlist.txt index eaeb751bb0ad..3377f002f8c5 100644 --- a/drivers/gpu/drm/ci/testlist.txt +++ b/drivers/gpu/drm/ci/testlist.txt @@ -100,7 +100,7 @@ kms_atomic@plane-invalid-params-fence kms_atomic@crtc-invalid-params kms_atomic@crtc-invalid-params-fence kms_atomic@atomic-invalid-params -kms_atomic@atomic_plane_damage +kms_atomic@atomic-plane-damage kms_atomic_interruptible@legacy-setmode kms_atomic_interruptible@atomic-setmode kms_atomic_interruptible@legacy-dpms @@ -321,726 +321,726 @@ kms_bw@linear-tiling-7-displays-3840x2160p kms_bw@linear-tiling-8-displays-1920x1080p kms_bw@linear-tiling-8-displays-2560x1440p kms_bw@linear-tiling-8-displays-3840x2160p -kms_ccs@pipe-A-bad-pixel-format-y_tiled_ccs -kms_ccs@pipe-A-bad-pixel-format-yf_tiled_ccs -kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-bad-rotation-90-y_tiled_ccs -kms_ccs@pipe-A-bad-rotation-90-yf_tiled_ccs -kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-basic-y_tiled_ccs -kms_ccs@pipe-A-crc-primary-basic-yf_tiled_ccs -kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-yf_tiled_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-random-ccs-data-y_tiled_ccs -kms_ccs@pipe-A-random-ccs-data-yf_tiled_ccs -kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_ccs -kms_ccs@pipe-A-missing-ccs-buffer-yf_tiled_ccs -kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_gen12_mc_ccs -kms_ccs@
Re: [PATCH 1/3] drm/ci: update IGT test names
Hi Dmitry, On 18/02/2024 01:12, Dmitry Baryshkov wrote: Since the addition of testlist.txt the IGT has changed some of test names. Some test names were changed to use '-' instead of '_'. In other cases tests were just renamed. Follow those changes. Signed-off-by: Dmitry Baryshkov Thanks for the patchset Do you have a pipeline link with those patches I can check? Thanks Helen --- drivers/gpu/drm/ci/testlist.txt | 1888 ++- 1 file changed, 844 insertions(+), 1044 deletions(-) diff --git a/drivers/gpu/drm/ci/testlist.txt b/drivers/gpu/drm/ci/testlist.txt index eaeb751bb0ad..3377f002f8c5 100644 --- a/drivers/gpu/drm/ci/testlist.txt +++ b/drivers/gpu/drm/ci/testlist.txt @@ -100,7 +100,7 @@ kms_atomic@plane-invalid-params-fence kms_atomic@crtc-invalid-params kms_atomic@crtc-invalid-params-fence kms_atomic@atomic-invalid-params -kms_atomic@atomic_plane_damage +kms_atomic@atomic-plane-damage kms_atomic_interruptible@legacy-setmode kms_atomic_interruptible@atomic-setmode kms_atomic_interruptible@legacy-dpms @@ -321,726 +321,726 @@ kms_bw@linear-tiling-7-displays-3840x2160p kms_bw@linear-tiling-8-displays-1920x1080p kms_bw@linear-tiling-8-displays-2560x1440p kms_bw@linear-tiling-8-displays-3840x2160p -kms_ccs@pipe-A-bad-pixel-format-y_tiled_ccs -kms_ccs@pipe-A-bad-pixel-format-yf_tiled_ccs -kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-bad-rotation-90-y_tiled_ccs -kms_ccs@pipe-A-bad-rotation-90-yf_tiled_ccs -kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-basic-y_tiled_ccs -kms_ccs@pipe-A-crc-primary-basic-yf_tiled_ccs -kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-yf_tiled_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-random-ccs-data-y_tiled_ccs -kms_ccs@pipe-A-random-ccs-data-yf_tiled_ccs -kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_rc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_mc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_rc_ccs_cc -kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_ccs -kms_ccs@pipe-A-missing-ccs-buffer-yf_tiled_ccs -kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-missing-ccs-buffer-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-missing-ccs-buffer-4_tiled_mtl_mc_ccs -kms_ccs@pipe-A-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc -kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_ccs -kms_ccs@pipe-A-ccs-on-another-bo-yf_tiled_ccs -kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_gen12_rc_ccs -kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc -kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_gen12_mc_ccs -kms_ccs@pipe-A-ccs-on-another-bo-4_tiled_mtl_rc_ccs -kms_ccs@pipe-A-ccs-on-another-bo-4
Re: [PATCH v2] drm: ci: use clk_ignore_unused for apq8016
On 14/02/2024 10:30, Helen Koike wrote: On 14/02/2024 05:37, Dmitry Baryshkov wrote: If the ADV7511 bridge driver is compiled as a module, while DRM_MSM is built-in, the clk_disable_unused congests with the runtime PM handling of the DSI PHY for the clk_prepare_lock(). This causes apq8016 runner to fail without completing any jobs ([1]). Drop the BM_CMDLINE which duplicate the command line from the .baremetal-igt-arm64 clause and enforce the clk_ignore_unused kernelarg instead to make apq8016 runner work. [1] https://gitlab.freedesktop.org/drm/msm/-/jobs/54990475 Fixes: 0119c894ab0d ("drm: Add initial ci/ subdirectory") Reviewed-by: Javier Martinez Canillas Signed-off-by: Dmitry Baryshkov Acked-by: Helen Koike Applied to drm-misc-next. Regards, Helen Thanks Helen --- Changes in v2: - Added a comment, describing the issue and a way to reproduce it (Javier) --- drivers/gpu/drm/ci/test.yml | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/ci/test.yml b/drivers/gpu/drm/ci/test.yml index 7ffb620d7398..e64205286a27 100644 --- a/drivers/gpu/drm/ci/test.yml +++ b/drivers/gpu/drm/ci/test.yml @@ -119,7 +119,10 @@ msm:apq8016: DRIVER_NAME: msm BM_DTB: https://${PIPELINE_ARTIFACTS_BASE}/arm64/apq8016-sbc-usb-host.dtb GPU_VERSION: apq8016 - BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 $BM_KERNEL_EXTRA_ARGS root=/dev/nfs rw nfsrootdebug nfsroot=,tcp,nfsvers=4.2 init=/init $BM_KERNELARGS" + # disabling unused clocks congests with the MDSS runtime PM trying to + # disable those clocks and causes boot to fail. + # Reproducer: DRM_MSM=y, DRM_I2C_ADV7511=m + BM_KERNEL_EXTRA_ARGS: clk_ignore_unused RUNNER_TAG: google-freedreno-db410c script: - ./install/bare-metal/fastboot.sh
Re: [PATCH v2] drm: ci: use clk_ignore_unused for apq8016
On 14/02/2024 05:37, Dmitry Baryshkov wrote: If the ADV7511 bridge driver is compiled as a module, while DRM_MSM is built-in, the clk_disable_unused congests with the runtime PM handling of the DSI PHY for the clk_prepare_lock(). This causes apq8016 runner to fail without completing any jobs ([1]). Drop the BM_CMDLINE which duplicate the command line from the .baremetal-igt-arm64 clause and enforce the clk_ignore_unused kernelarg instead to make apq8016 runner work. [1] https://gitlab.freedesktop.org/drm/msm/-/jobs/54990475 Fixes: 0119c894ab0d ("drm: Add initial ci/ subdirectory") Reviewed-by: Javier Martinez Canillas Signed-off-by: Dmitry Baryshkov Acked-by: Helen Koike Thanks Helen --- Changes in v2: - Added a comment, describing the issue and a way to reproduce it (Javier) --- drivers/gpu/drm/ci/test.yml | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/ci/test.yml b/drivers/gpu/drm/ci/test.yml index 7ffb620d7398..e64205286a27 100644 --- a/drivers/gpu/drm/ci/test.yml +++ b/drivers/gpu/drm/ci/test.yml @@ -119,7 +119,10 @@ msm:apq8016: DRIVER_NAME: msm BM_DTB: https://${PIPELINE_ARTIFACTS_BASE}/arm64/apq8016-sbc-usb-host.dtb GPU_VERSION: apq8016 -BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 $BM_KERNEL_EXTRA_ARGS root=/dev/nfs rw nfsrootdebug nfsroot=,tcp,nfsvers=4.2 init=/init $BM_KERNELARGS" +# disabling unused clocks congests with the MDSS runtime PM trying to +# disable those clocks and causes boot to fail. +# Reproducer: DRM_MSM=y, DRM_I2C_ADV7511=m +BM_KERNEL_EXTRA_ARGS: clk_ignore_unused RUNNER_TAG: google-freedreno-db410c script: - ./install/bare-metal/fastboot.sh
Re: [PATCH v1] drm/ci: add sc7180-trogdor-kingoftown
On 04/01/2024 05:14, Vignesh Raman wrote: Add job that executes the IGT test suite for sc7180-trogdor-kingoftown. This commit also updates xfails for sc7180-trogdor-lazor-limozeen. Signed-off-by: Vignesh Raman Applied to drm-misc-next. Thanks Helen --- See pipeline: https://gitlab.freedesktop.org/vigneshraman/linux/-/pipelines/1069934 --- drivers/gpu/drm/ci/build.sh | 1 + drivers/gpu/drm/ci/test.yml | 25 .../gpu/drm/ci/xfails/msm-sc7180-fails.txt| 30 --- .../gpu/drm/ci/xfails/msm-sc7180-flakes.txt | 17 --- .../gpu/drm/ci/xfails/msm-sc7180-skips.txt| 7 - .../msm-sc7180-trogdor-kingoftown-fails.txt | 17 +++ ...sm-sc7180-trogdor-lazor-limozeen-fails.txt | 17 +++ 7 files changed, 55 insertions(+), 59 deletions(-) delete mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt delete mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-skips.txt create mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-fails.txt create mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-fails.txt diff --git a/drivers/gpu/drm/ci/build.sh b/drivers/gpu/drm/ci/build.sh index 97ff43759b91..331a61e0d25a 100644 --- a/drivers/gpu/drm/ci/build.sh +++ b/drivers/gpu/drm/ci/build.sh @@ -26,6 +26,7 @@ if [[ "$KERNEL_ARCH" = "arm64" ]]; then DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-juniper-sku16.dtb" DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8192-asurada-spherion-r0.dtb" DEVICE_TREES+=" arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r5.dtb" +DEVICE_TREES+=" arch/arm64/boot/dts/qcom/sc7180-trogdor-kingoftown.dtb" elif [[ "$KERNEL_ARCH" = "arm" ]]; then GCC_ARCH="arm-linux-gnueabihf" DEBIAN_ARCH="armhf" diff --git a/drivers/gpu/drm/ci/test.yml b/drivers/gpu/drm/ci/test.yml index a079f3632a95..0c7920c0254d 100644 --- a/drivers/gpu/drm/ci/test.yml +++ b/drivers/gpu/drm/ci/test.yml @@ -82,20 +82,35 @@ tags: - $RUNNER_TAG -msm:sc7180: +.msm-sc7180: extends: - .lava-igt:arm64 stage: msm - parallel: 4 variables: DRIVER_NAME: msm -DEVICE_TYPE: sc7180-trogdor-lazor-limozeen -DTB: sc7180-trogdor-lazor-limozeen-nots-r5 BOOT_METHOD: depthcharge KERNEL_IMAGE_TYPE: "" -GPU_VERSION: sc7180 + +msm:sc7180-trogdor-lazor-limozeen: + extends: +- .msm-sc7180 + parallel: 4 + variables: +DEVICE_TYPE: sc7180-trogdor-lazor-limozeen +DTB: sc7180-trogdor-lazor-limozeen-nots-r5 +GPU_VERSION: ${DEVICE_TYPE} RUNNER_TAG: mesa-ci-x86-64-lava-sc7180-trogdor-lazor-limozeen +msm:sc7180-trogdor-kingoftown: + extends: +- .msm-sc7180 + parallel: 6 + variables: +DEVICE_TYPE: sc7180-trogdor-kingoftown +DTB: sc7180-trogdor-kingoftown +GPU_VERSION: ${DEVICE_TYPE} +RUNNER_TAG: mesa-ci-x86-64-lava-sc7180-trogdor-kingoftown + msm:apq8016: extends: - .baremetal-igt-arm64 diff --git a/drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt b/drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt deleted file mode 100644 index f71166a57731.. --- a/drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt +++ /dev/null @@ -1,30 +0,0 @@ -kms_color@ctm-0-25,Fail -kms_color@ctm-0-50,Fail -kms_color@ctm-0-75,Fail -kms_color@ctm-blue-to-red,Fail -kms_color@ctm-green-to-red,Fail -kms_color@ctm-negative,Fail -kms_color@ctm-red-to-blue,Fail -kms_color@ctm-signed,Fail -kms_cursor_legacy@cursor-vs-flip-toggle,Fail -kms_cursor_legacy@cursor-vs-flip-varying-size,Fail -kms_cursor_legacy@cursorA-vs-flipA-atomic-transitions,Crash -kms_flip@flip-vs-modeset-vs-hang,Fail -kms_flip@flip-vs-panning-vs-hang,Fail -kms_pipe_crc_basic@compare-crc-sanitycheck-nv12,Fail -kms_plane_alpha_blend@alpha-7efc,Fail -kms_plane_alpha_blend@coverage-7efc,Fail -kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail -kms_plane_alpha_blend@pipe-A-alpha-7efc,Fail -kms_plane_alpha_blend@pipe-A-coverage-7efc,Fail -kms_plane_alpha_blend@pipe-A-coverage-vs-premult-vs-constant,Fail -kms_plane_alpha_blend@pipe-B-alpha-7efc,Fail -kms_plane_alpha_blend@pipe-B-alpha-basic,Fail -kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail -kms_plane_alpha_blend@pipe-B-constant-alpha-max,Fail -kms_plane_alpha_blend@pipe-B-constant-alpha-mid,Fail -kms_plane_alpha_blend@pipe-B-coverage-7efc,Fail -kms_plane_alpha_blend@pipe-B-coverage-vs-premult-vs-constant,Fail -kms_rmfb@close-fd,Fail -kms_universal_plane@disable-primary-vs-flip-pipe-b,Fail -kms_universal_plane@universal-plane-pipe-B-sanity,Fail diff --git a/drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt b/drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt deleted file mode 100644 index 04730044ed12.. --- a/drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt +++ /dev/null @@ -1,17 +0,0 @@ -kms_color@ctm-0-25 -kms_color@ctm-0-50 -kms_color@ctm-0-75
Re: [PATCH v2] drm/ci: uprev mesa version: fix kdl commit fetch
On 22/12/2023 00:34, Vignesh Raman wrote: build-kdl.sh was doing a `clone --depth 1` of the default branch, then checking out a commit that might not be the latest of that branch, resulting in container build error. https://gitlab.freedesktop.org/mesa/mesa/-/commit/5efa4d56 fixes kdl commit fetch issue. Uprev mesa in drm-ci to fix this. This commit updates the kernel tag and adds .never-post-merge-rules due to the mesa uprev. It also fixes an issue where the virtio-gpu pipeline was not getting created with the mesa uprev. Reviewed-by: David Heidelberg Acked-by: Helen Koike Reviewed-by: Dmitry Baryshkov Tested-by: Abhinav Kumar Signed-off-by: Vignesh Raman Applied to drm-misc-next. Thanks Helen --- v2: - Fix an issue where the virtio-gpu pipeline was not getting created with the mesa uprev https://gitlab.freedesktop.org/vigneshraman/linux/-/pipelines/1062221 --- drivers/gpu/drm/ci/gitlab-ci.yml | 14 -- drivers/gpu/drm/ci/test.yml | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/ci/gitlab-ci.yml b/drivers/gpu/drm/ci/gitlab-ci.yml index dac92cc2777c..084e3ff8e3f4 100644 --- a/drivers/gpu/drm/ci/gitlab-ci.yml +++ b/drivers/gpu/drm/ci/gitlab-ci.yml @@ -1,6 +1,6 @@ variables: DRM_CI_PROJECT_PATH: &drm-ci-project-path mesa/mesa - DRM_CI_COMMIT_SHA: &drm-ci-commit-sha edfbf74df1d4d6ce54ffe24566108be0e1a98c3d + DRM_CI_COMMIT_SHA: &drm-ci-commit-sha 9d162de9a05155e1c4041857a5848842749164cf UPSTREAM_REPO: git://anongit.freedesktop.org/drm/drm TARGET_BRANCH: drm-next @@ -25,7 +25,9 @@ variables: # per-job artifact storage on MinIO JOB_ARTIFACTS_BASE: ${PIPELINE_ARTIFACTS_BASE}/${CI_JOB_ID} # default kernel for rootfs before injecting the current kernel tree - KERNEL_IMAGE_BASE: https://${S3_HOST}/mesa-lava/gfx-ci/linux/v6.4.12-for-mesa-ci-f6b4ad45f48d + KERNEL_REPO: "gfx-ci/linux" + KERNEL_TAG: "v6.6.4-for-mesa-ci-e4f4c500f7fb" + KERNEL_IMAGE_BASE: https://${S3_HOST}/mesa-lava/${KERNEL_REPO}/${KERNEL_TAG} LAVA_TAGS: subset-1-gfx LAVA_JOB_PRIORITY: 30 @@ -133,6 +135,11 @@ stages: - if: &is-pre-merge-for-marge '$GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "merge_request_event"' when: on_success +.never-post-merge-rules: + rules: +- if: *is-post-merge + when: never + # Rule to filter for only scheduled pipelines. .scheduled_pipeline-rules: rules: @@ -150,6 +157,7 @@ stages: .build-rules: rules: - !reference [.no_scheduled_pipelines-rules, rules] +- !reference [.never-post-merge-rules, rules] # Run automatically once all dependency jobs have passed - when: on_success @@ -157,6 +165,7 @@ stages: .container+build-rules: rules: - !reference [.no_scheduled_pipelines-rules, rules] +- !reference [.never-post-merge-rules, rules] - when: manual .ci-deqp-artifacts: @@ -175,6 +184,7 @@ stages: .container-rules: rules: - !reference [.no_scheduled_pipelines-rules, rules] +- !reference [.never-post-merge-rules, rules] # Run pipeline by default in the main project if any CI pipeline # configuration files were changed, to ensure docker images are up to date - if: *is-post-merge diff --git a/drivers/gpu/drm/ci/test.yml b/drivers/gpu/drm/ci/test.yml index 2c9a1838e728..1705f268547a 100644 --- a/drivers/gpu/drm/ci/test.yml +++ b/drivers/gpu/drm/ci/test.yml @@ -324,6 +324,7 @@ virtio_gpu:none: GPU_VERSION: none extends: - .test-gl +- .test-rules tags: - kvm script:
Re: [PATCH v1] drm/ci: Update xfails for newly added msm tests
On 15/01/2024 07:17, Vignesh Raman wrote: msm tests are added to testlist.txt, so update the xfails for jobs in msm stage. Signed-off-by: Vignesh Raman Applied to drm-misc-next. Thanks Helen --- Depends on https://patchwork.kernel.org/project/linux-arm-msm/patch/20240108195016.156583-1-robdcl...@gmail.com/ --- .../gpu/drm/ci/xfails/msm-apq8016-fails.txt | 3 +- .../gpu/drm/ci/xfails/msm-sdm845-fails.txt| 5 +--- .../gpu/drm/ci/xfails/msm-sdm845-flakes.txt | 28 +-- .../gpu/drm/ci/xfails/msm-sdm845-skips.txt| 7 - 4 files changed, 27 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt b/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt index d39d254c935e..44a5c62dedad 100644 --- a/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt +++ b/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt @@ -6,8 +6,6 @@ kms_cursor_legacy@all-pipes-single-bo,Fail kms_cursor_legacy@all-pipes-single-move,Fail kms_cursor_legacy@all-pipes-torture-bo,Fail kms_cursor_legacy@all-pipes-torture-move,Fail -kms_cursor_legacy@forked-bo,Fail -kms_cursor_legacy@forked-move,Fail kms_cursor_legacy@pipe-A-forked-bo,Fail kms_cursor_legacy@pipe-A-forked-move,Fail kms_cursor_legacy@pipe-A-single-bo,Fail @@ -18,3 +16,4 @@ kms_force_connector_basic@force-edid,Fail kms_hdmi_inject@inject-4k,Fail kms_selftest@drm_format,Timeout kms_selftest@drm_format_helper,Timeout +msm_mapping@ring,Fail diff --git a/drivers/gpu/drm/ci/xfails/msm-sdm845-fails.txt b/drivers/gpu/drm/ci/xfails/msm-sdm845-fails.txt index c55baa2d18c1..e9043a00383e 100644 --- a/drivers/gpu/drm/ci/xfails/msm-sdm845-fails.txt +++ b/drivers/gpu/drm/ci/xfails/msm-sdm845-fails.txt @@ -15,7 +15,7 @@ kms_color@pipe-A-ctm-max,Fail kms_color@pipe-A-ctm-negative,Fail kms_color@pipe-A-ctm-red-to-blue,Fail kms_color@pipe-A-legacy-gamma,Fail -kms_cursor_legacy@basic-flip-after-cursor-legacy,Fail +kms_cursor_legacy@basic-flip-after-cursor-atomic,Fail kms_cursor_legacy@basic-flip-after-cursor-varying-size,Fail kms_cursor_legacy@basic-flip-before-cursor-atomic,Fail kms_cursor_legacy@basic-flip-before-cursor-legacy,Fail @@ -29,9 +29,6 @@ kms_cursor_legacy@flip-vs-cursor-atomic,Fail kms_cursor_legacy@flip-vs-cursor-crc-atomic,Fail kms_cursor_legacy@flip-vs-cursor-crc-legacy,Fail kms_cursor_legacy@flip-vs-cursor-legacy,Fail -kms_cursor_legacy@short-flip-after-cursor-atomic-transitions,Fail -kms_cursor_legacy@short-flip-after-cursor-atomic-transitions-varying-size,Fail -kms_cursor_legacy@short-flip-after-cursor-toggle,Fail kms_flip@flip-vs-modeset-vs-hang,Fail kms_flip@flip-vs-panning-vs-hang,Fail kms_pipe_crc_basic@compare-crc-sanitycheck-nv12,Fail diff --git a/drivers/gpu/drm/ci/xfails/msm-sdm845-flakes.txt b/drivers/gpu/drm/ci/xfails/msm-sdm845-flakes.txt index 16d205c04cbb..8a492f01eaa4 100644 --- a/drivers/gpu/drm/ci/xfails/msm-sdm845-flakes.txt +++ b/drivers/gpu/drm/ci/xfails/msm-sdm845-flakes.txt @@ -1,12 +1,22 @@ -kms_cursor_legacy@basic-flip-after-cursor-atomic -kms_cursor_legacy@basic-flip-before-cursor-varying-size -kms_cursor_legacy@cursorA-vs-flipA-toggle -kms_cursor_legacy@flip-vs-cursor-atomic-transitions +# Board Name: msm:sdm845 +# Bug Report: https://lore.kernel.org/dri-devel/46287831-edfa-78e8-6055-d7a08831c...@collabora.com/T/#u +# Failure Rate: 50 +# IGT Version: 1.28-gd2af13d9f +# Linux Version: 6.7.0-rc3 + +# Reported by deqp-runner +kms_cursor_legacy@basic-flip-after-cursor-legacy kms_cursor_legacy@flip-vs-cursor-toggle kms_cursor_legacy@flip-vs-cursor-varying-size +kms_cursor_legacy@short-flip-after-cursor-toggle kms_cursor_legacy@short-flip-before-cursor-atomic-transitions -kms_cursor_legacy@short-flip-before-cursor-toggle -kms_flip@flip-vs-modeset-vs-hang -kms_flip@flip-vs-panning-vs-hang -kms_plane@pixel-format -kms_plane@pixel-format-source-clamping +kms_cursor_legacy@short-flip-before-cursor-atomic-transitions-varying-size +msm_shrink@copy-gpu-32 +msm_shrink@copy-gpu-oom-32 + +# The below test shows inconsistency across multiple runs, giving +# results of Pass and Fail alternately. +kms_cursor_legacy@basic-flip-before-cursor-varying-size +kms_cursor_legacy@flip-vs-cursor-atomic-transitions +kms_cursor_legacy@short-flip-after-cursor-atomic-transitions +kms_cursor_legacy@short-flip-after-cursor-atomic-transitions-varying-size diff --git a/drivers/gpu/drm/ci/xfails/msm-sdm845-skips.txt b/drivers/gpu/drm/ci/xfails/msm-sdm845-skips.txt index 42675f1c6d76..618e3a3a7277 100644 --- a/drivers/gpu/drm/ci/xfails/msm-sdm845-skips.txt +++ b/drivers/gpu/drm/ci/xfails/msm-sdm845-skips.txt @@ -1,2 +1,7 @@ # Hangs machine -kms_bw.* \ No newline at end of file +kms_bw.* + +# Failing due to a bootloader/fw issue. The workaround in mesa CI involves these two patches +# https://gitlab.freedesktop.org/gfx-ci/linux/-/commit/4b49f902ec6f2bb382cbbf489870573f4b43371e +# https://gitlab.freedesktop.org/gfx-ci/linux/-/commit/38cdf4c5559771e2474ae0fecef8469f6514
Re: [PATCH] drm/ci: Add msm tests
On 08/01/2024 16:50, Rob Clark wrote: From: Rob Clark The msm tests should skip on non-msm hw, so I think it should be safe to enable everywhere. Signed-off-by: Rob Clark Applied to drm-misc-next. Thanks Helen --- drivers/gpu/drm/ci/testlist.txt | 49 + 1 file changed, 49 insertions(+) diff --git a/drivers/gpu/drm/ci/testlist.txt b/drivers/gpu/drm/ci/testlist.txt index f82cd90372f4..eaeb751bb0ad 100644 --- a/drivers/gpu/drm/ci/testlist.txt +++ b/drivers/gpu/drm/ci/testlist.txt @@ -2910,3 +2910,52 @@ kms_writeback@writeback-invalid-parameters kms_writeback@writeback-fb-id kms_writeback@writeback-check-output prime_mmap_kms@buffer-sharing +msm_shrink@copy-gpu-sanitycheck-8 +msm_shrink@copy-gpu-sanitycheck-32 +msm_shrink@copy-gpu-8 +msm_shrink@copy-gpu-32 +msm_shrink@copy-gpu-madvise-8 +msm_shrink@copy-gpu-madvise-32 +msm_shrink@copy-gpu-oom-8 +msm_shrink@copy-gpu-oom-32 +msm_shrink@copy-mmap-sanitycheck-8 +msm_shrink@copy-mmap-sanitycheck-32 +msm_shrink@copy-mmap-8 +msm_shrink@copy-mmap-32 +msm_shrink@copy-mmap-madvise-8 +msm_shrink@copy-mmap-madvise-32 +msm_shrink@copy-mmap-oom-8 +msm_shrink@copy-mmap-oom-32 +msm_shrink@copy-mmap-dmabuf-sanitycheck-8 +msm_shrink@copy-mmap-dmabuf-sanitycheck-32 +msm_shrink@copy-mmap-dmabuf-8 +msm_shrink@copy-mmap-dmabuf-32 +msm_shrink@copy-mmap-dmabuf-madvise-8 +msm_shrink@copy-mmap-dmabuf-madvise-32 +msm_shrink@copy-mmap-dmabuf-oom-8 +msm_shrink@copy-mmap-dmabuf-oom-32 +msm_mapping@ring +msm_mapping@sqefw +msm_mapping@shadow +msm_submitoverhead@submitbench-10-bos +msm_submitoverhead@submitbench-10-bos-no-implicit-sync +msm_submitoverhead@submitbench-100-bos +msm_submitoverhead@submitbench-100-bos-no-implicit-sync +msm_submitoverhead@submitbench-250-bos +msm_submitoverhead@submitbench-250-bos-no-implicit-sync +msm_submitoverhead@submitbench-500-bos +msm_submitoverhead@submitbench-500-bos-no-implicit-sync +msm_submitoverhead@submitbench-1000-bos +msm_submitoverhead@submitbench-1000-bos-no-implicit-sync +msm_recovery@hangcheck +msm_recovery@gpu-fault +msm_recovery@gpu-fault-parallel +msm_recovery@iova-fault +msm_submit@empty-submit +msm_submit@invalid-queue-submit +msm_submit@invalid-flags-submit +msm_submit@invalid-in-fence-submit +msm_submit@invalid-duplicate-bo-submit +msm_submit@invalid-cmd-idx-submit +msm_submit@invalid-cmd-type-submit +msm_submit@valid-submit
Re: [PATCH] drm/ci: Add msm tests
On 15/01/2024 07:22, Vignesh Raman wrote: Hi Rob, On 12/01/24 22:44, Rob Clark wrote: On Fri, Jan 12, 2024 at 7:57 AM Rob Clark wrote: On Fri, Jan 12, 2024 at 3:42 AM Vignesh Raman wrote: Hi Rob, On 09/01/24 01:20, Rob Clark wrote: From: Rob Clark The msm tests should skip on non-msm hw, so I think it should be safe to enable everywhere. Signed-off-by: Rob Clark Acked-by: Helen Koike --- drivers/gpu/drm/ci/testlist.txt | 49 + 1 file changed, 49 insertions(+) diff --git a/drivers/gpu/drm/ci/testlist.txt b/drivers/gpu/drm/ci/testlist.txt index f82cd90372f4..eaeb751bb0ad 100644 --- a/drivers/gpu/drm/ci/testlist.txt +++ b/drivers/gpu/drm/ci/testlist.txt @@ -2910,3 +2910,52 @@ kms_writeback@writeback-invalid-parameters kms_writeback@writeback-fb-id kms_writeback@writeback-check-output prime_mmap_kms@buffer-sharing +msm_shrink@copy-gpu-sanitycheck-8 +msm_shrink@copy-gpu-sanitycheck-32 +msm_shrink@copy-gpu-8 +msm_shrink@copy-gpu-32 +msm_shrink@copy-gpu-madvise-8 +msm_shrink@copy-gpu-madvise-32 +msm_shrink@copy-gpu-oom-8 +msm_shrink@copy-gpu-oom-32 +msm_shrink@copy-mmap-sanitycheck-8 +msm_shrink@copy-mmap-sanitycheck-32 +msm_shrink@copy-mmap-8 +msm_shrink@copy-mmap-32 +msm_shrink@copy-mmap-madvise-8 +msm_shrink@copy-mmap-madvise-32 +msm_shrink@copy-mmap-oom-8 +msm_shrink@copy-mmap-oom-32 +msm_shrink@copy-mmap-dmabuf-sanitycheck-8 +msm_shrink@copy-mmap-dmabuf-sanitycheck-32 +msm_shrink@copy-mmap-dmabuf-8 +msm_shrink@copy-mmap-dmabuf-32 +msm_shrink@copy-mmap-dmabuf-madvise-8 +msm_shrink@copy-mmap-dmabuf-madvise-32 +msm_shrink@copy-mmap-dmabuf-oom-8 +msm_shrink@copy-mmap-dmabuf-oom-32 +msm_mapping@ring +msm_mapping@sqefw +msm_mapping@shadow +msm_submitoverhead@submitbench-10-bos +msm_submitoverhead@submitbench-10-bos-no-implicit-sync +msm_submitoverhead@submitbench-100-bos +msm_submitoverhead@submitbench-100-bos-no-implicit-sync +msm_submitoverhead@submitbench-250-bos +msm_submitoverhead@submitbench-250-bos-no-implicit-sync +msm_submitoverhead@submitbench-500-bos +msm_submitoverhead@submitbench-500-bos-no-implicit-sync +msm_submitoverhead@submitbench-1000-bos +msm_submitoverhead@submitbench-1000-bos-no-implicit-sync +msm_recovery@hangcheck +msm_recovery@gpu-fault +msm_recovery@gpu-fault-parallel +msm_recovery@iova-fault +msm_submit@empty-submit +msm_submit@invalid-queue-submit +msm_submit@invalid-flags-submit +msm_submit@invalid-in-fence-submit +msm_submit@invalid-duplicate-bo-submit +msm_submit@invalid-cmd-idx-submit +msm_submit@invalid-cmd-type-submit +msm_submit@valid-submit I tested this patch with latest drm-misc/drm-misc-next and there was some failures seen for the newly added msm tests. I have updated the xfails with below commit, https://gitlab.freedesktop.org/vigneshraman/linux/-/commit/d012893597a661d6ebbb755bf2607dfb055524a1 I will notify the maintainers about the flaky tests, update the url in the flakes.txt, and submit a separate patch for this change. Oh, you should probably move msm_mapping@* to skips on sdm845. I had a closer look at those, and they are failing due to a bootloader/fw issue. We work around this in mesa CI with these two patches: https://gitlab.freedesktop.org/gfx-ci/linux/-/commit/4b49f902ec6f2bb382cbbf489870573f4b43371e https://gitlab.freedesktop.org/gfx-ci/linux/-/commit/38cdf4c5559771e2474ae0fecef8469f65147bc1 But given that sdm845 is similar to sc7180 as far as kernel gpu driver, it is probably just better to skip these on sdm845 (with a comment referring to the hack patches we use in mesa CI) I have sent a patch with these changes, Thanks! Helen https://lore.kernel.org/dri-devel/20240115101750.27077-1-vignesh.ra...@collabora.com/T/#u Thanks. Regards, Vignesh
Re: [PATCH v1] drm/ci: Update xfails for newly added msm tests
patch to solve this? +msm_mapping@* In any case: Acked-by: Helen Koike Thanks Helen
Re: [PATCH v1] drm/ci: add sc7180-trogdor-kingoftown
On 04/01/2024 05:14, Vignesh Raman wrote: Add job that executes the IGT test suite for sc7180-trogdor-kingoftown. This commit also updates xfails for sc7180-trogdor-lazor-limozeen. Signed-off-by: Vignesh Raman lgtm Acked-by: Helen Koike Thanks Helen --- See pipeline: https://gitlab.freedesktop.org/vigneshraman/linux/-/pipelines/1069934 --- drivers/gpu/drm/ci/build.sh | 1 + drivers/gpu/drm/ci/test.yml | 25 .../gpu/drm/ci/xfails/msm-sc7180-fails.txt| 30 --- .../gpu/drm/ci/xfails/msm-sc7180-flakes.txt | 17 --- .../gpu/drm/ci/xfails/msm-sc7180-skips.txt| 7 - .../msm-sc7180-trogdor-kingoftown-fails.txt | 17 +++ ...sm-sc7180-trogdor-lazor-limozeen-fails.txt | 17 +++ 7 files changed, 55 insertions(+), 59 deletions(-) delete mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt delete mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-skips.txt create mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-fails.txt create mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-fails.txt diff --git a/drivers/gpu/drm/ci/build.sh b/drivers/gpu/drm/ci/build.sh index 97ff43759b91..331a61e0d25a 100644 --- a/drivers/gpu/drm/ci/build.sh +++ b/drivers/gpu/drm/ci/build.sh @@ -26,6 +26,7 @@ if [[ "$KERNEL_ARCH" = "arm64" ]]; then DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-juniper-sku16.dtb" DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8192-asurada-spherion-r0.dtb" DEVICE_TREES+=" arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r5.dtb" +DEVICE_TREES+=" arch/arm64/boot/dts/qcom/sc7180-trogdor-kingoftown.dtb" elif [[ "$KERNEL_ARCH" = "arm" ]]; then GCC_ARCH="arm-linux-gnueabihf" DEBIAN_ARCH="armhf" diff --git a/drivers/gpu/drm/ci/test.yml b/drivers/gpu/drm/ci/test.yml index a079f3632a95..0c7920c0254d 100644 --- a/drivers/gpu/drm/ci/test.yml +++ b/drivers/gpu/drm/ci/test.yml @@ -82,20 +82,35 @@ tags: - $RUNNER_TAG -msm:sc7180: +.msm-sc7180: extends: - .lava-igt:arm64 stage: msm - parallel: 4 variables: DRIVER_NAME: msm -DEVICE_TYPE: sc7180-trogdor-lazor-limozeen -DTB: sc7180-trogdor-lazor-limozeen-nots-r5 BOOT_METHOD: depthcharge KERNEL_IMAGE_TYPE: "" -GPU_VERSION: sc7180 + +msm:sc7180-trogdor-lazor-limozeen: + extends: +- .msm-sc7180 + parallel: 4 + variables: +DEVICE_TYPE: sc7180-trogdor-lazor-limozeen +DTB: sc7180-trogdor-lazor-limozeen-nots-r5 +GPU_VERSION: ${DEVICE_TYPE} RUNNER_TAG: mesa-ci-x86-64-lava-sc7180-trogdor-lazor-limozeen +msm:sc7180-trogdor-kingoftown: + extends: +- .msm-sc7180 + parallel: 6 + variables: +DEVICE_TYPE: sc7180-trogdor-kingoftown +DTB: sc7180-trogdor-kingoftown +GPU_VERSION: ${DEVICE_TYPE} +RUNNER_TAG: mesa-ci-x86-64-lava-sc7180-trogdor-kingoftown + msm:apq8016: extends: - .baremetal-igt-arm64 diff --git a/drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt b/drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt deleted file mode 100644 index f71166a57731.. --- a/drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt +++ /dev/null @@ -1,30 +0,0 @@ -kms_color@ctm-0-25,Fail -kms_color@ctm-0-50,Fail -kms_color@ctm-0-75,Fail -kms_color@ctm-blue-to-red,Fail -kms_color@ctm-green-to-red,Fail -kms_color@ctm-negative,Fail -kms_color@ctm-red-to-blue,Fail -kms_color@ctm-signed,Fail -kms_cursor_legacy@cursor-vs-flip-toggle,Fail -kms_cursor_legacy@cursor-vs-flip-varying-size,Fail -kms_cursor_legacy@cursorA-vs-flipA-atomic-transitions,Crash -kms_flip@flip-vs-modeset-vs-hang,Fail -kms_flip@flip-vs-panning-vs-hang,Fail -kms_pipe_crc_basic@compare-crc-sanitycheck-nv12,Fail -kms_plane_alpha_blend@alpha-7efc,Fail -kms_plane_alpha_blend@coverage-7efc,Fail -kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail -kms_plane_alpha_blend@pipe-A-alpha-7efc,Fail -kms_plane_alpha_blend@pipe-A-coverage-7efc,Fail -kms_plane_alpha_blend@pipe-A-coverage-vs-premult-vs-constant,Fail -kms_plane_alpha_blend@pipe-B-alpha-7efc,Fail -kms_plane_alpha_blend@pipe-B-alpha-basic,Fail -kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail -kms_plane_alpha_blend@pipe-B-constant-alpha-max,Fail -kms_plane_alpha_blend@pipe-B-constant-alpha-mid,Fail -kms_plane_alpha_blend@pipe-B-coverage-7efc,Fail -kms_plane_alpha_blend@pipe-B-coverage-vs-premult-vs-constant,Fail -kms_rmfb@close-fd,Fail -kms_universal_plane@disable-primary-vs-flip-pipe-b,Fail -kms_universal_plane@universal-plane-pipe-B-sanity,Fail diff --git a/drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt b/drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt deleted file mode 100644 index 04730044ed12.. --- a/drivers/gpu/drm/ci/xfails
Re: [PATCH] drm/ci: uprev mesa version: fix kdl commit fetch
On 14/12/2023 05:00, Dmitry Baryshkov wrote: On Tue, 12 Dec 2023 at 18:04, Vignesh Raman wrote: build-kdl.sh was doing a `clone --depth 1` of the default branch, then checking out a commit that might not be the latest of that branch, resulting in container build error. https://gitlab.freedesktop.org/mesa/mesa/-/commit/5efa4d56 fixes kdl commit fetch issue. Uprev mesa in drm-ci to fix this. This commit also updates the kernel tag and adds .never-post-merge-rules due to the mesa uprev. Tested-by: Abhinav Kumar Signed-off-by: Vignesh Raman Reviewed-by: Dmitry Baryshkov Acked-by: Helen Koike Thanks Helen --- drivers/gpu/drm/ci/gitlab-ci.yml | 14 -- 1 file changed, 12 insertions(+), 2 deletions(-)
Re: [Freedreno] [PATCH] drm/ci: remove rebase-merge directory
On 02/12/2023 19:13, Dmitry Baryshkov wrote: Gitlab runner can cache git repository, including the unfinished rebase merge status. New CI job will come as a fresh checkout, however this will not destroy the unfinished rebase, failing our build script. Destroy the unfinished rebase state. Suggested-by: David Heidelberg Signed-off-by: Dmitry Baryshkov Acked-by: Helen Koike Thanks! Helen --- drivers/gpu/drm/ci/build.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/ci/build.sh b/drivers/gpu/drm/ci/build.sh index e5c5dcedd108..ca2923ed2290 100644 --- a/drivers/gpu/drm/ci/build.sh +++ b/drivers/gpu/drm/ci/build.sh @@ -58,6 +58,9 @@ git config --global user.email "f...@example.com" git config --global user.name "freedesktop.org CI" git config --global pull.rebase true +# cleanup git state on the worker +rm -rf .git/rebase-merge + # Try to merge fixes from target repo if [ "$(git ls-remote --exit-code --heads ${UPSTREAM_REPO} ${TARGET_BRANCH}-external-fixes)" ]; then git pull ${UPSTREAM_REPO} ${TARGET_BRANCH}-external-fixes
Re: [Freedreno] [PATCH 0/3] drm/ci: Add support for SM8250 Gitlab Runner
On 07/11/2023 21:10, Jessica Zhang wrote: On 11/6/2023 9:35 AM, Jessica Zhang wrote: On 11/4/2023 6:02 AM, Helen Koike wrote: Hi Jessica, On 10/10/2023 19:25, Jessica Zhang wrote: Recently, we've registered a Gitlab runner for a Qualcomm RB5 device that will be hosted and maintained in Qualcomm labs. This series will add a corresponding CI job for testing SM8250 devices and add the skip/fails/flakes list. We were able to complete a successful run [1] with these changes. For now, we will keep the job as manual trigger only and drop that rule later after we stabilize the tests. [1] https://gitlab.freedesktop.org/drm/msm/-/jobs/50092719 --- Thank you for you patchset. I'm getting the following error: "serial.serialutil.SerialException: [Errno 2] could not open port /dev/ttyUSB0: [Errno 2] No such file or directory: '/dev/ttyUSB0'" https://gitlab.freedesktop.org/helen.fornazier/linux/-/jobs/51193215#L146 I'm wondering if I'm missing some configuration. I tested on top of drm-misc-next. Hi Helen, Sorry for the inconvenience, but I had to temporarily take down the runner last Friday to physically move the setup (as part of a reorganization of our lab here). I'll update this thread as soon as the runner is back up -- the move will be complete by the end of this week. The RB5 runner is back up -- please let me know if you run into any issues with it. It worked now, I runned on drm-tip-next, I got several UnexpectedPass, except for kms_color@ctm-green-to-red,Fail, could you check if those are flakes or things got fixed and we can remove them from -fails.txt? https://gitlab.freedesktop.org/helen.fornazier/linux/-/jobs/51385345#L23356 Thanks! Regards, Helen Thanks, Jessica Zhang Also, I'd like to add in the docs an entry about the devices we have, which tag they need, which dts they correspond to, which farm they are located, who to contact if there is any problem and maybe some comment about the device (how it is hooked up, the logs comes from uart or ssh, does it use fastboot, etc) if you find it useful. Would you mind adding an entry in the docs with this information for the sm8250? (Than I'll add the info of the other devices after yours). Sure, sounds good. Jessica Zhang (3): drm/ci: Add SM8250 job to CI I would also move this patch to last, so we don't have a commit where things shouldn't work properly. Or maybe squash them all. Acked -- I'll move this patch to the end. Thanks, Jessica Zhang Regards, Helen drm/ci: enable CONFIG_INTERCONNECT_QCOM_SM8250 for arm64 config drm/ci: Add skips, fails and flakes for SM8250 drivers/gpu/drm/ci/arm64.config | 1 + drivers/gpu/drm/ci/build.sh | 1 + drivers/gpu/drm/ci/test.yml | 15 + drivers/gpu/drm/ci/xfails/msm-sm8250-fails.txt | 29 + drivers/gpu/drm/ci/xfails/msm-sm8250-flakes.txt | 3 +++ drivers/gpu/drm/ci/xfails/msm-sm8250-skips.txt | 8 +++ 6 files changed, 57 insertions(+) --- base-commit: dcd88f8c63341ed11a8c5019408f62202cd9d1f2 change-id: 20230919-rb5-runner-77ec32bd61e7 Best regards,
Re: [Freedreno] [PATCH 3/3] drm/ci: Add skips, fails and flakes for SM8250
On 10/10/2023 19:25, Jessica Zhang wrote: Add skips, fails and flakes for the SM8250 test. Generated using update-xfails.py [1] [1] https://patchwork.freedesktop.org/patch/561453/?series=124793&rev=1 Signed-off-by: Abhinav Kumar Signed-off-by: Jessica Zhang --- drivers/gpu/drm/ci/xfails/msm-sm8250-fails.txt | 29 + drivers/gpu/drm/ci/xfails/msm-sm8250-flakes.txt | 3 +++ drivers/gpu/drm/ci/xfails/msm-sm8250-skips.txt | 8 +++ 3 files changed, 40 insertions(+) diff --git a/drivers/gpu/drm/ci/xfails/msm-sm8250-fails.txt b/drivers/gpu/drm/ci/xfails/msm-sm8250-fails.txt new file mode 100644 index ..cc8ae32e90e7 --- /dev/null +++ b/drivers/gpu/drm/ci/xfails/msm-sm8250-fails.txt @@ -0,0 +1,29 @@ +kms_3d,Fail +kms_atomic_transition@plane-all-modeset-transition,Timeout +kms_color@ctm-0-25,Fail +kms_color@ctm-0-50,Fail +kms_color@ctm-0-75,Fail +kms_color@ctm-blue-to-red,Fail +kms_color@ctm-negative,Fail +kms_color@ctm-red-to-blue,Fail +kms_color@ctm-signed,Fail +kms_cursor_legacy@basic-flip-after-cursor-varying-size,Fail +kms_cursor_legacy@basic-flip-before-cursor-varying-size,Fail +kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size,Fail +kms_cursor_legacy@cursor-vs-flip-toggle,Fail +kms_cursor_legacy@cursor-vs-flip-varying-size,Fail +kms_cursor_legacy@short-flip-after-cursor-atomic-transitions-varying-size,Fail +kms_cursor_legacy@short-flip-before-cursor-atomic-transitions-varying-size,Fail +kms_cursor_legacy@short-flip-before-cursor-toggle,Fail +kms_hdmi_inject@inject-4k,Fail +kms_pipe_crc_basic@compare-crc-sanitycheck-nv12,Fail +kms_plane@pixel-format,Fail +kms_plane@pixel-format-source-clamping,Fail +kms_plane@plane-position-covered,Fail +kms_plane@plane-position-hole,Fail +kms_plane@plane-position-hole-dpms,Fail +kms_plane_alpha_blend@alpha-7efc,Fail +kms_plane_alpha_blend@coverage-7efc,Fail +kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail +kms_plane_cursor@overlay,Fail +kms_rmfb@close-fd,Fail diff --git a/drivers/gpu/drm/ci/xfails/msm-sm8250-flakes.txt b/drivers/gpu/drm/ci/xfails/msm-sm8250-flakes.txt new file mode 100644 index ..0b55665184c1 --- /dev/null +++ b/drivers/gpu/drm/ci/xfails/msm-sm8250-flakes.txt @@ -0,0 +1,3 @@ +kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size +kms_cursor_legacy@flip-vs-cursor-varying-size +kms_plane_cursor@viewport We are trying to add some docs, specially to the flakes, please check: https://lists.freedesktop.org/archives/dri-devel/2023-October/427982.html Could you add it for those? (I'm glad to see there are just a few flakes). Thanks Helen diff --git a/drivers/gpu/drm/ci/xfails/msm-sm8250-skips.txt b/drivers/gpu/drm/ci/xfails/msm-sm8250-skips.txt new file mode 100644 index ..c20422c58e4d --- /dev/null +++ b/drivers/gpu/drm/ci/xfails/msm-sm8250-skips.txt @@ -0,0 +1,8 @@ +# Suspend to RAM seems to be broken on this machine +.*suspend.* + +# reboots device +kms_plane_scaling.* + +# long execution time +kms_flip.*
Re: [Freedreno] [PATCH 0/3] drm/ci: Add support for SM8250 Gitlab Runner
Hi Jessica, On 10/10/2023 19:25, Jessica Zhang wrote: Recently, we've registered a Gitlab runner for a Qualcomm RB5 device that will be hosted and maintained in Qualcomm labs. This series will add a corresponding CI job for testing SM8250 devices and add the skip/fails/flakes list. We were able to complete a successful run [1] with these changes. For now, we will keep the job as manual trigger only and drop that rule later after we stabilize the tests. [1] https://gitlab.freedesktop.org/drm/msm/-/jobs/50092719 --- Thank you for you patchset. I'm getting the following error: "serial.serialutil.SerialException: [Errno 2] could not open port /dev/ttyUSB0: [Errno 2] No such file or directory: '/dev/ttyUSB0'" https://gitlab.freedesktop.org/helen.fornazier/linux/-/jobs/51193215#L146 I'm wondering if I'm missing some configuration. I tested on top of drm-misc-next. Also, I'd like to add in the docs an entry about the devices we have, which tag they need, which dts they correspond to, which farm they are located, who to contact if there is any problem and maybe some comment about the device (how it is hooked up, the logs comes from uart or ssh, does it use fastboot, etc) if you find it useful. Would you mind adding an entry in the docs with this information for the sm8250? (Than I'll add the info of the other devices after yours). Jessica Zhang (3): drm/ci: Add SM8250 job to CI I would also move this patch to last, so we don't have a commit where things shouldn't work properly. Or maybe squash them all. Regards, Helen drm/ci: enable CONFIG_INTERCONNECT_QCOM_SM8250 for arm64 config drm/ci: Add skips, fails and flakes for SM8250 drivers/gpu/drm/ci/arm64.config | 1 + drivers/gpu/drm/ci/build.sh | 1 + drivers/gpu/drm/ci/test.yml | 15 + drivers/gpu/drm/ci/xfails/msm-sm8250-fails.txt | 29 + drivers/gpu/drm/ci/xfails/msm-sm8250-flakes.txt | 3 +++ drivers/gpu/drm/ci/xfails/msm-sm8250-skips.txt | 8 +++ 6 files changed, 57 insertions(+) --- base-commit: dcd88f8c63341ed11a8c5019408f62202cd9d1f2 change-id: 20230919-rb5-runner-77ec32bd61e7 Best regards,
[Freedreno] [PATCH v3 05/10] drm/ci: clean up xfails (specially flakes list)
Since the script that collected the list of the expectation files was bogus and placing test to the flakes list incorrectly, restart the expectation files with the correct script. This reduces a lot the number of tests in the flakes list. Signed-off-by: Helen Koike Reviewed-by: David Heidelberg --- v2: - fix typo in the commit message - re-add kms_cursor_legacy@flip-vs-cursor-toggle back to msm-sdm845-flakes.txt - removed kms_async_flips@crc,Fail from i915-cml-fails.txt v3: - add kms_rmfb@close-fd,Fail to amdgpu-stoney-fails.txt - add kms_async_flips@crc to i915-kbl-flakes.txt Signed-off-by: Helen Koike --- .../gpu/drm/ci/xfails/amdgpu-stoney-fails.txt | 12 +- .../drm/ci/xfails/amdgpu-stoney-flakes.txt| 20 - drivers/gpu/drm/ci/xfails/i915-amly-fails.txt | 9 .../gpu/drm/ci/xfails/i915-amly-flakes.txt| 32 --- drivers/gpu/drm/ci/xfails/i915-apl-fails.txt | 11 - drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt | 1 - drivers/gpu/drm/ci/xfails/i915-cml-fails.txt | 14 ++- drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt | 38 - drivers/gpu/drm/ci/xfails/i915-glk-fails.txt | 17 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt | 41 --- drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt | 7 drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt | 25 --- drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt | 1 - drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt | 5 --- drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt | 1 - .../drm/ci/xfails/mediatek-mt8173-flakes.txt | 0 .../drm/ci/xfails/mediatek-mt8183-fails.txt | 5 ++- .../drm/ci/xfails/mediatek-mt8183-flakes.txt | 14 --- .../gpu/drm/ci/xfails/meson-g12b-fails.txt| 14 --- .../gpu/drm/ci/xfails/meson-g12b-flakes.txt | 4 -- .../gpu/drm/ci/xfails/msm-apq8016-flakes.txt | 4 -- .../gpu/drm/ci/xfails/msm-apq8096-fails.txt | 2 + .../gpu/drm/ci/xfails/msm-apq8096-flakes.txt | 4 -- .../gpu/drm/ci/xfails/msm-sc7180-fails.txt| 15 --- .../gpu/drm/ci/xfails/msm-sc7180-flakes.txt | 24 +++ .../gpu/drm/ci/xfails/msm-sc7180-skips.txt| 18 +--- .../gpu/drm/ci/xfails/msm-sdm845-fails.txt| 9 +--- .../gpu/drm/ci/xfails/msm-sdm845-flakes.txt | 19 + .../drm/ci/xfails/rockchip-rk3288-fails.txt | 6 +++ .../drm/ci/xfails/rockchip-rk3288-flakes.txt | 9 .../drm/ci/xfails/rockchip-rk3399-fails.txt | 40 +- .../drm/ci/xfails/rockchip-rk3399-flakes.txt | 28 +++-- .../drm/ci/xfails/virtio_gpu-none-flakes.txt | 0 33 files changed, 162 insertions(+), 287 deletions(-) delete mode 100644 drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8173-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8183-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/meson-g12b-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8016-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/rockchip-rk3288-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/virtio_gpu-none-flakes.txt diff --git a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt index bd9392536e7c..ea87dc46bc2b 100644 --- a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt +++ b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt @@ -1,8 +1,14 @@ kms_addfb_basic@bad-pitch-65536,Fail kms_addfb_basic@bo-too-small,Fail +kms_addfb_basic@too-high,Fail +kms_async_flips@async-flip-with-page-flip-events,Fail +kms_async_flips@crc,Fail kms_async_flips@invalid-async-flip,Fail -kms_atomic@plane-immutable-zpos,Fail +kms_atomic_transition@plane-all-modeset-transition-internal-panels,Fail +kms_atomic_transition@plane-all-transition,Fail +kms_atomic_transition@plane-all-transition-nonblocking,Fail kms_atomic_transition@plane-toggle-modeset-transition,Fail +kms_atomic_transition@plane-use-after-nonblocking-unbind,Fail kms_bw@linear-tiling-1-displays-2560x1440p,Fail kms_bw@linear-tiling-1-displays-3840x2160p,Fail kms_bw@linear-tiling-2-displays-3840x2160p,Fail @@ -11,9 +17,11 @@ kms_color@degamma,Fail kms_cursor_crc@cursor-size-change,Fail kms_cursor_crc@pipe-A-cursor-size-change,Fail kms_cursor_crc@pipe-B-cursor-size-change,Fail -kms_cursor_legacy@forked-move,Fail +kms_flip@flip-vs-modeset-vs-hang,Fail +kms_flip@flip-vs-panning-vs-hang,Fail kms_hdr@bpc-switch,Fail kms_hdr@bpc-switch-dpms,Fail +kms_plane@pixel-format,Fail kms_plane_multiple@atomic-pipe-A-tiling-none,Fail kms_rmfb@close-fd,Fail
[Freedreno] [PATCH v2 5/9] drm/ci: clean up xfails (specially flakes list)
Since the script that collected the list of the expectation files was bogus and placing test to the flakes list incorrectly, restart the expectation files with the correct script. This reduces a lot the number of tests in the flakes list. Signed-off-by: Helen Koike Reviewed-by: David Heidelberg --- v2: - fix typo in the commit message - re-add kms_cursor_legacy@flip-vs-cursor-toggle back to msm-sdm845-flakes.txt - removed kms_async_flips@crc,Fail from i915-cml-fails.txt --- .../gpu/drm/ci/xfails/amdgpu-stoney-fails.txt | 13 -- .../drm/ci/xfails/amdgpu-stoney-flakes.txt| 20 - drivers/gpu/drm/ci/xfails/i915-amly-fails.txt | 9 .../gpu/drm/ci/xfails/i915-amly-flakes.txt| 32 --- drivers/gpu/drm/ci/xfails/i915-apl-fails.txt | 11 - drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt | 1 - drivers/gpu/drm/ci/xfails/i915-cml-fails.txt | 14 ++- drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt | 38 - drivers/gpu/drm/ci/xfails/i915-glk-fails.txt | 17 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt | 41 --- drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt | 7 drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt | 26 drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt | 1 - drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt | 5 --- drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt | 1 - .../drm/ci/xfails/mediatek-mt8173-flakes.txt | 0 .../drm/ci/xfails/mediatek-mt8183-fails.txt | 5 ++- .../drm/ci/xfails/mediatek-mt8183-flakes.txt | 14 --- .../gpu/drm/ci/xfails/meson-g12b-fails.txt| 14 --- .../gpu/drm/ci/xfails/meson-g12b-flakes.txt | 4 -- .../gpu/drm/ci/xfails/msm-apq8016-flakes.txt | 4 -- .../gpu/drm/ci/xfails/msm-apq8096-fails.txt | 2 + .../gpu/drm/ci/xfails/msm-apq8096-flakes.txt | 4 -- .../gpu/drm/ci/xfails/msm-sc7180-fails.txt| 15 --- .../gpu/drm/ci/xfails/msm-sc7180-flakes.txt | 24 +++ .../gpu/drm/ci/xfails/msm-sc7180-skips.txt| 18 +--- .../gpu/drm/ci/xfails/msm-sdm845-fails.txt| 9 +--- .../gpu/drm/ci/xfails/msm-sdm845-flakes.txt | 19 + .../drm/ci/xfails/rockchip-rk3288-fails.txt | 6 +++ .../drm/ci/xfails/rockchip-rk3288-flakes.txt | 9 .../drm/ci/xfails/rockchip-rk3399-fails.txt | 40 +- .../drm/ci/xfails/rockchip-rk3399-flakes.txt | 28 +++-- .../drm/ci/xfails/virtio_gpu-none-flakes.txt | 0 33 files changed, 162 insertions(+), 289 deletions(-) delete mode 100644 drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8173-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8183-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/meson-g12b-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8016-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/rockchip-rk3288-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/virtio_gpu-none-flakes.txt diff --git a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt index bd9392536e7c..aa57aaa8869b 100644 --- a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt +++ b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt @@ -1,8 +1,14 @@ kms_addfb_basic@bad-pitch-65536,Fail kms_addfb_basic@bo-too-small,Fail +kms_addfb_basic@too-high,Fail +kms_async_flips@async-flip-with-page-flip-events,Fail +kms_async_flips@crc,Fail kms_async_flips@invalid-async-flip,Fail -kms_atomic@plane-immutable-zpos,Fail +kms_atomic_transition@plane-all-modeset-transition-internal-panels,Fail +kms_atomic_transition@plane-all-transition,Fail +kms_atomic_transition@plane-all-transition-nonblocking,Fail kms_atomic_transition@plane-toggle-modeset-transition,Fail +kms_atomic_transition@plane-use-after-nonblocking-unbind,Fail kms_bw@linear-tiling-1-displays-2560x1440p,Fail kms_bw@linear-tiling-1-displays-3840x2160p,Fail kms_bw@linear-tiling-2-displays-3840x2160p,Fail @@ -11,9 +17,10 @@ kms_color@degamma,Fail kms_cursor_crc@cursor-size-change,Fail kms_cursor_crc@pipe-A-cursor-size-change,Fail kms_cursor_crc@pipe-B-cursor-size-change,Fail -kms_cursor_legacy@forked-move,Fail +kms_flip@flip-vs-modeset-vs-hang,Fail +kms_flip@flip-vs-panning-vs-hang,Fail kms_hdr@bpc-switch,Fail kms_hdr@bpc-switch-dpms,Fail +kms_plane@pixel-format,Fail kms_plane_multiple@atomic-pipe-A-tiling-none,Fail -kms_rmfb@close-fd,Fail kms_rotation_crc@primary-rotation-180,Fail diff --git a/drivers/gpu/drm/ci/xfails
Re: [Freedreno] [PATCH 1/2] drm/ci: pick up -external-fixes from the merge target repo
On 08/10/2023 10:23, Dmitry Baryshkov wrote: In case of the merge requests it might be useful to push repo-specific fixes which have not yet propagated to the -external-fixes branch in the main UPSTREAM_REPO. For example, in case of drm/msm development, we are staging fixes locally for testing, before pushing them to the drm/drm repo. Thus, if the CI run was triggered by merge request, also pick up the -external fixes basing on the the CI_MERGE target repo / and branch. Signed-off-by: Dmitry Baryshkov Acked-by: Helen Koike Thanks! --- drivers/gpu/drm/ci/build.sh | 5 + 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/drm/ci/build.sh b/drivers/gpu/drm/ci/build.sh index 7b014287a041..20a6ba8a7b04 100644 --- a/drivers/gpu/drm/ci/build.sh +++ b/drivers/gpu/drm/ci/build.sh @@ -64,10 +64,15 @@ if [ "$(git ls-remote --exit-code --heads ${UPSTREAM_REPO} ${TARGET_BRANCH}-exte fi # Try to merge fixes from local repo if this isn't a merge request +# otherwise try merging the fixes from the merge target if [ -z "$CI_MERGE_REQUEST_PROJECT_PATH" ]; then if [ "$(git ls-remote --exit-code --heads origin ${TARGET_BRANCH}-external-fixes)" ]; then git pull origin ${TARGET_BRANCH}-external-fixes fi +else +if [ "$(git ls-remote --exit-code --heads ${CI_MERGE_REQUEST_PROJECT_URL} ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}-external-fixes)" ]; then +git pull ${CI_MERGE_REQUEST_PROJECT_URL} ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}-external-fixes +fi fi for opt in $ENABLE_KCONFIGS; do
[Freedreno] [PATCH 5/9] drm/ci: clean up xfails (specially flakes list)
Since the script that collected the list of the expectation files was bogus and placing test to the flakes list incorrectly, restart the expectation files with the correct script. This reduces a lot the number of tests in the flakes list. Signed-off-by: Helen Koike --- .../gpu/drm/ci/xfails/amdgpu-stoney-fails.txt | 13 -- .../drm/ci/xfails/amdgpu-stoney-flakes.txt| 20 - drivers/gpu/drm/ci/xfails/i915-amly-fails.txt | 9 .../gpu/drm/ci/xfails/i915-amly-flakes.txt| 32 --- drivers/gpu/drm/ci/xfails/i915-apl-fails.txt | 11 - drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt | 1 - drivers/gpu/drm/ci/xfails/i915-cml-fails.txt | 15 ++- drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt | 38 - drivers/gpu/drm/ci/xfails/i915-glk-fails.txt | 17 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt | 41 --- drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt | 7 drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt | 26 drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt | 1 - drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt | 5 --- drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt | 1 - .../drm/ci/xfails/mediatek-mt8173-flakes.txt | 0 .../drm/ci/xfails/mediatek-mt8183-fails.txt | 5 ++- .../drm/ci/xfails/mediatek-mt8183-flakes.txt | 14 --- .../gpu/drm/ci/xfails/meson-g12b-fails.txt| 14 --- .../gpu/drm/ci/xfails/meson-g12b-flakes.txt | 4 -- .../gpu/drm/ci/xfails/msm-apq8016-flakes.txt | 4 -- .../gpu/drm/ci/xfails/msm-apq8096-fails.txt | 2 + .../gpu/drm/ci/xfails/msm-apq8096-flakes.txt | 4 -- .../gpu/drm/ci/xfails/msm-sc7180-fails.txt| 15 --- .../gpu/drm/ci/xfails/msm-sc7180-flakes.txt | 24 +++ .../gpu/drm/ci/xfails/msm-sc7180-skips.txt| 18 +--- .../gpu/drm/ci/xfails/msm-sdm845-fails.txt| 9 +--- .../gpu/drm/ci/xfails/msm-sdm845-flakes.txt | 20 - .../drm/ci/xfails/rockchip-rk3288-fails.txt | 6 +++ .../drm/ci/xfails/rockchip-rk3288-flakes.txt | 9 .../drm/ci/xfails/rockchip-rk3399-fails.txt | 40 +- .../drm/ci/xfails/rockchip-rk3399-flakes.txt | 28 +++-- .../drm/ci/xfails/virtio_gpu-none-flakes.txt | 0 33 files changed, 163 insertions(+), 290 deletions(-) delete mode 100644 drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8173-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8183-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/meson-g12b-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8016-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/rockchip-rk3288-flakes.txt delete mode 100644 drivers/gpu/drm/ci/xfails/virtio_gpu-none-flakes.txt diff --git a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt index bd9392536e7c..aa57aaa8869b 100644 --- a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt +++ b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt @@ -1,8 +1,14 @@ kms_addfb_basic@bad-pitch-65536,Fail kms_addfb_basic@bo-too-small,Fail +kms_addfb_basic@too-high,Fail +kms_async_flips@async-flip-with-page-flip-events,Fail +kms_async_flips@crc,Fail kms_async_flips@invalid-async-flip,Fail -kms_atomic@plane-immutable-zpos,Fail +kms_atomic_transition@plane-all-modeset-transition-internal-panels,Fail +kms_atomic_transition@plane-all-transition,Fail +kms_atomic_transition@plane-all-transition-nonblocking,Fail kms_atomic_transition@plane-toggle-modeset-transition,Fail +kms_atomic_transition@plane-use-after-nonblocking-unbind,Fail kms_bw@linear-tiling-1-displays-2560x1440p,Fail kms_bw@linear-tiling-1-displays-3840x2160p,Fail kms_bw@linear-tiling-2-displays-3840x2160p,Fail @@ -11,9 +17,10 @@ kms_color@degamma,Fail kms_cursor_crc@cursor-size-change,Fail kms_cursor_crc@pipe-A-cursor-size-change,Fail kms_cursor_crc@pipe-B-cursor-size-change,Fail -kms_cursor_legacy@forked-move,Fail +kms_flip@flip-vs-modeset-vs-hang,Fail +kms_flip@flip-vs-panning-vs-hang,Fail kms_hdr@bpc-switch,Fail kms_hdr@bpc-switch-dpms,Fail +kms_plane@pixel-format,Fail kms_plane_multiple@atomic-pipe-A-tiling-none,Fail -kms_rmfb@close-fd,Fail kms_rotation_crc@primary-rotation-180,Fail diff --git a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-flakes.txt b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-flakes.txt index f8defa0f9e67..6faf75e667d3 100644 --- a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-flakes.txt +++ b/drivers/gpu/drm/ci/xfails/amdgpu
Re: [Freedreno] [PATCH 2/2] drm/ci: force-enable CONFIG_MSM_MMCC_8996 as built-in
On 08/10/2023 10:23, Dmitry Baryshkov wrote: Enable CONFIG_MSM_MMCC_8996, the multimedia clock controller on Qualcomm MSM8996 to prevent the the board from hitting the probe deferral timeouts in CI run. Signed-off-by: Dmitry Baryshkov Tested-by: Helen Koike Pipeline: https://gitlab.freedesktop.org/helen.fornazier/linux/-/jobs/50031700 I saw that msm:apq8096 driver wasn't loading without this patch, thanks! Acked-by: Helen Koike --- drivers/gpu/drm/ci/arm64.config | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/ci/arm64.config b/drivers/gpu/drm/ci/arm64.config index 45f9deb7c4f6..b4f653417883 100644 --- a/drivers/gpu/drm/ci/arm64.config +++ b/drivers/gpu/drm/ci/arm64.config @@ -62,6 +62,7 @@ CONFIG_PHY_QCOM_QUSB2=y CONFIG_PHY_QCOM_QMP=y CONFIG_MSM_GCC_8996=y CONFIG_QCOM_CLK_APCC_MSM8996=y +CONFIG_MSM_MMCC_8996=y CONFIG_QCOM_LLCC=y CONFIG_QCOM_LMH=y CONFIG_QCOM_SPMI_TEMP_ALARM=y
Re: [Freedreno] [PATCH] drm/msm/dpu: Use the encoder for default CRC source
On 08/10/2023 16:59, Dmitry Baryshkov wrote: On Sun, 8 Oct 2023 at 20:56, Rob Clark wrote: From: Rob Clark i-g-t expects the CRC to reflect any applied CTM. But the layer mixer source is upstream of the DSPP, so it is before the CTM is applied. Switch the default source to 'encoder' instead so that the CRC is captured downstream of the DSPP. Signed-off-by: Rob Clark --- drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt | 4 drivers/gpu/drm/ci/xfails/msm-sc7180-skips.txt | 5 - drivers/gpu/drm/ci/xfails/msm-sdm845-fails.txt | 11 +-- drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 6 +++--- I'm not sure, if updating the CI skip list together with the functional changs is a good idea, my preference would be towards two separate patches. On the other hand, having both together in the same patch documents which tests this PATCH is fixing. Regards, Helen Nevertheless: Reviewed-by: Dmitry Baryshkov 4 files changed, 4 insertions(+), 22 deletions(-)
[Freedreno] [PATCH v4 5/5] drm: don't block fb changes for async plane updates
In the case of a normal sync update, the preparation of framebuffers (be it calling drm_atomic_helper_prepare_planes() or doing setups with drm_framebuffer_get()) are performed in the new_state and the respective cleanups are performed in the old_state. In the case of async updates, the preparation is also done in the new_state but the cleanups are done in the new_state (because updates are performed in place, i.e. in the current state). The current code blocks async udpates when the fb is changed, turning async updates into sync updates, slowing down cursor updates and introducing regressions in igt tests with errors of type: "CRITICAL: completed 97 cursor updated in a period of 30 flips, we expect to complete approximately 15360 updates, with the threshold set at 7680" Fb changes in async updates were prevented to avoid the following scenario: - Async update, oldfb = NULL, newfb = fb1, prepare fb1, cleanup fb1 - Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb2 - Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 (wrong) Where we have a single call to prepare fb2 but double cleanup call to fb2. To solve the above problems, instead of blocking async fb changes, we place the old framebuffer in the new_state object, so when the code performs cleanups in the new_state it will cleanup the old_fb and we will have the following scenario instead: - Async update, oldfb = NULL, newfb = fb1, prepare fb1, no cleanup - Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb1 - Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 Where calls to prepare/cleanup are balanced. Cc: # v4.14+ Fixes: 25dc194b34dd ("drm: Block fb changes for async plane updates") Suggested-by: Boris Brezillon Signed-off-by: Helen Koike Reviewed-by: Boris Brezillon Reviewed-by: Nicholas Kazlauskas --- Changes in v4: - update docs in atomic_async_update callback Changes in v3: - Add Reviewed-by tags - Add TODO in drm_atomic_helper_async_commit() Changes in v2: - Change the order of the patch in the series, add this as the last one. - Add documentation - s/ballanced/balanced drivers/gpu/drm/drm_atomic_helper.c | 22 -- include/drm/drm_modeset_helper_vtables.h | 8 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index acf993cb8e52..ac81d8440b40 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -1610,15 +1610,6 @@ int drm_atomic_helper_async_check(struct drm_device *dev, old_plane_state->crtc != new_plane_state->crtc) return -EINVAL; - /* -* FIXME: Since prepare_fb and cleanup_fb are always called on -* the new_plane_state for async updates we need to block framebuffer -* changes. This prevents use of a fb that's been cleaned up and -* double cleanups from occuring. -*/ - if (old_plane_state->fb != new_plane_state->fb) - return -EINVAL; - funcs = plane->helper_private; if (!funcs->atomic_async_update) return -EINVAL; @@ -1649,6 +1640,8 @@ EXPORT_SYMBOL(drm_atomic_helper_async_check); * drm_atomic_async_check() succeeds. Async commits are not supposed to swap * the states like normal sync commits, but just do in-place changes on the * current state. + * + * TODO: Implement full swap instead of doing in-place changes. */ void drm_atomic_helper_async_commit(struct drm_device *dev, struct drm_atomic_state *state) @@ -1659,6 +1652,9 @@ void drm_atomic_helper_async_commit(struct drm_device *dev, int i; for_each_new_plane_in_state(state, plane, plane_state, i) { + struct drm_framebuffer *new_fb = plane_state->fb; + struct drm_framebuffer *old_fb = plane->state->fb; + funcs = plane->helper_private; funcs->atomic_async_update(plane, plane_state); @@ -1667,11 +1663,17 @@ void drm_atomic_helper_async_commit(struct drm_device *dev, * plane->state in-place, make sure at least common * properties have been properly updated. */ - WARN_ON_ONCE(plane->state->fb != plane_state->fb); + WARN_ON_ONCE(plane->state->fb != new_fb); WARN_ON_ONCE(plane->state->crtc_x != plane_state->crtc_x); WARN_ON_ONCE(plane->state->crtc_y != plane_state->crtc_y); WARN_ON_ONCE(plane->state->src_x != plane_state->src_x); WARN_ON_ONCE(plane->state->src_y != plane_state->src_y); + + /* +* Make sure the FBs have been swapped so that cleanups in the +* new_state performs a cleanup in the
[Freedreno] [PATCH v4 3/5] drm/msm: fix fb references in async update
Async update callbacks are expected to set the old_fb in the new_state so prepare/cleanup framebuffers are balanced. Cc: # v4.14+ Fixes: 224a4c970987 ("drm/msm: update cursors asynchronously through atomic") Suggested-by: Boris Brezillon Signed-off-by: Helen Koike Acked-by: Rob Clark --- Hello, This was tested on the dragonboard 410c using igt plane_cursor_legacy and kms_cursor_legacy and I didn't see any regressions. Changes in v4: - add acked by tag Changes in v3: None Changes in v2: - update CC stable and Fixes tag drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c | 4 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c index 9d9fb6c5fd68..1105c2433f14 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c @@ -502,6 +502,8 @@ static int mdp5_plane_atomic_async_check(struct drm_plane *plane, static void mdp5_plane_atomic_async_update(struct drm_plane *plane, struct drm_plane_state *new_state) { + struct drm_framebuffer *old_fb = plane->state->fb; + plane->state->src_x = new_state->src_x; plane->state->src_y = new_state->src_y; plane->state->crtc_x = new_state->crtc_x; @@ -524,6 +526,8 @@ static void mdp5_plane_atomic_async_update(struct drm_plane *plane, *to_mdp5_plane_state(plane->state) = *to_mdp5_plane_state(new_state); + + new_state->fb = old_fb; } static const struct drm_plane_helper_funcs mdp5_plane_helper_funcs = { -- 2.20.1 ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno
[Freedreno] [PATCH v4 0/5] drm: Fix fb changes for async updates
Hello, I'm re-sending this series with the acked by in the msm patch and updating the docs in the last patch, the rest is the same. v3 link: https://patchwork.kernel.org/project/dri-devel/list/?series=91353 Thanks! Helen Changes in v4: - add acked by tag - update docs in atomic_async_update callback Changes in v3: - use swap() to swap old and new framebuffers in async_update - get the reference to old_fb and set the worker after vop_plane_atomic_update() - add a FIXME tag for when we have multiple fbs to be released when vblank happens. - update commit message - Add Reviewed-by tags - Add TODO in drm_atomic_helper_async_commit() Changes in v2: - added reviewed-by tag - update CC stable and Fixes tag - Added reviewed-by tag - updated CC stable and Fixes tag - Change the order of the patch in the series, add this as the last one. - Add documentation - s/ballanced/balanced Helen Koike (5): drm/rockchip: fix fb references in async update drm/amd: fix fb references in async update drm/msm: fix fb references in async update drm/vc4: fix fb references in async update drm: don't block fb changes for async plane updates .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +- drivers/gpu/drm/drm_atomic_helper.c | 22 drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c| 4 ++ drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 51 ++- drivers/gpu/drm/vc4/vc4_plane.c | 2 +- include/drm/drm_modeset_helper_vtables.h | 8 +++ 6 files changed, 52 insertions(+), 38 deletions(-) -- 2.20.1 ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno
Re: [Freedreno] [PATCH v3 5/5] drm: don't block fb changes for async plane updates
On 5/7/19 5:18 PM, Sean Paul wrote: > On Wed, Mar 13, 2019 at 09:20:26PM -0300, Helen Koike wrote: >> In the case of a normal sync update, the preparation of framebuffers (be >> it calling drm_atomic_helper_prepare_planes() or doing setups with >> drm_framebuffer_get()) are performed in the new_state and the respective >> cleanups are performed in the old_state. >> >> In the case of async updates, the preparation is also done in the >> new_state but the cleanups are done in the new_state (because updates >> are performed in place, i.e. in the current state). >> >> The current code blocks async udpates when the fb is changed, turning >> async updates into sync updates, slowing down cursor updates and >> introducing regressions in igt tests with errors of type: >> >> "CRITICAL: completed 97 cursor updated in a period of 30 flips, we >> expect to complete approximately 15360 updates, with the threshold set >> at 7680" >> >> Fb changes in async updates were prevented to avoid the following scenario: >> >> - Async update, oldfb = NULL, newfb = fb1, prepare fb1, cleanup fb1 >> - Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb2 >> - Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 >> (wrong) >> Where we have a single call to prepare fb2 but double cleanup call to fb2. >> >> To solve the above problems, instead of blocking async fb changes, we >> place the old framebuffer in the new_state object, so when the code >> performs cleanups in the new_state it will cleanup the old_fb and we >> will have the following scenario instead: >> >> - Async update, oldfb = NULL, newfb = fb1, prepare fb1, no cleanup >> - Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb1 >> - Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 >> >> Where calls to prepare/cleanup are balanced. >> >> Cc: # v4.14+ > > I'm not convinced this should be cc: stable, seems more in the improvement > category than a bug fix. I'm cc'ing to stable because the commit mentioned below inserted a regression regarding the speed that cursors can be updated. > >> Fixes: 25dc194b34dd ("drm: Block fb changes for async plane updates") >> Suggested-by: Boris Brezillon >> Signed-off-by: Helen Koike >> Reviewed-by: Boris Brezillon >> Reviewed-by: Nicholas Kazlauskas >> >> --- >> Hello, >> >> I added a TODO in drm_atomic_helper_async_commit() regarding doing a >> full state swap(), Boris and Nicholas, let me know if this is ok and if >> I can keep your Reviewed-by tags) >> >> As mentioned in the cover letter, I tested in almost all platforms with >> igt plane_cursor_legacy and kms_cursor_legacy and I didn't see any >> regressions. But I couldn't test on MSM and AMD because I don't have >> the hardware I would appreciate if anyone could help me testing those. >> >> Thanks! >> Helen >> >> Changes in v3: >> - Add Reviewed-by tags >> - Add TODO in drm_atomic_helper_async_commit() >> >> Changes in v2: >> - Change the order of the patch in the series, add this as the last one. >> - Add documentation >> - s/ballanced/balanced >> >> drivers/gpu/drm/drm_atomic_helper.c | 22 -- >> include/drm/drm_modeset_helper_vtables.h | 5 + >> 2 files changed, 17 insertions(+), 10 deletions(-) >> >> diff --git a/drivers/gpu/drm/drm_atomic_helper.c >> b/drivers/gpu/drm/drm_atomic_helper.c >> index 2453678d1186..de5812c362b5 100644 >> --- a/drivers/gpu/drm/drm_atomic_helper.c >> +++ b/drivers/gpu/drm/drm_atomic_helper.c >> @@ -1608,15 +1608,6 @@ int drm_atomic_helper_async_check(struct drm_device >> *dev, >> old_plane_state->crtc != new_plane_state->crtc) >> return -EINVAL; >> >> -/* >> - * FIXME: Since prepare_fb and cleanup_fb are always called on >> - * the new_plane_state for async updates we need to block framebuffer >> - * changes. This prevents use of a fb that's been cleaned up and >> - * double cleanups from occuring. >> - */ >> -if (old_plane_state->fb != new_plane_state->fb) >> -return -EINVAL; >> - >> funcs = plane->helper_private; >> if (!funcs->atomic_async_update) >> return -EINVAL; >> @@ -1647,6 +1638,8 @@ EXPORT_SYMBOL(drm_atomic_helper_async_check); >> * drm_atomic_async_check() succeeds. Async commits are not supposed to swap >
Re: [Freedreno] [PATCH v3 3/5] drm/msm: fix fb references in async update
Hello, On 3/13/19 9:20 PM, Helen Koike wrote: > Async update callbacks are expected to set the old_fb in the new_state > so prepare/cleanup framebuffers are balanced. > > Cc: # v4.14+ > Fixes: 224a4c970987 ("drm/msm: update cursors asynchronously through atomic") > Suggested-by: Boris Brezillon > Signed-off-by: Helen Koike > > --- > Hello, > > As mentioned in the cover letter, > But I couldn't test on MSM because I don't have the hardware and I would > appreciate if anyone could test it. I got this tested on a dragonboard 410c, no regressions where found and no extra warnings. These two tests where already failing for other reasons: flip-vs-cursor-crc-atomic flip-vs-cursor-crc-legacy If you want to see the full log: https://people.collabora.com/~koike/drm-fixes-results.zip Thanks Helen > > In other platforms (VC4, AMD, Rockchip), there is a hidden > drm_framebuffer_get(new_fb)/drm_framebuffer_put(old_fb) in async_update > that is wrong, but I couldn't identify those here, not sure if it is hidden > somewhere else, but if tests fail this is probably the cause. > > Thanks! > Helen > > Changes in v3: None > Changes in v2: > - update CC stable and Fixes tag > > drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c | 4 > 1 file changed, 4 insertions(+) > > diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c > b/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c > index be13140967b4..b854f471e9e5 100644 > --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c > +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c > @@ -502,6 +502,8 @@ static int mdp5_plane_atomic_async_check(struct drm_plane > *plane, > static void mdp5_plane_atomic_async_update(struct drm_plane *plane, > struct drm_plane_state *new_state) > { > + struct drm_framebuffer *old_fb = plane->state->fb; > + > plane->state->src_x = new_state->src_x; > plane->state->src_y = new_state->src_y; > plane->state->crtc_x = new_state->crtc_x; > @@ -524,6 +526,8 @@ static void mdp5_plane_atomic_async_update(struct > drm_plane *plane, > > *to_mdp5_plane_state(plane->state) = > *to_mdp5_plane_state(new_state); > + > + new_state->fb = old_fb; > } > > static const struct drm_plane_helper_funcs mdp5_plane_helper_funcs = { > ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno
Re: [Freedreno] [PATCH v3 2/4] drm/atomic: rename async_{update, check} to amend_{update, check}
Hi Boris, On 4/12/19 10:49 AM, Boris Brezillon wrote: > Hi Helen, > > On Fri, 12 Apr 2019 09:58:25 -0300 > Helen Koike wrote: > >> Asynchronous update is the ability change the hw state at any time, not >> only during vblank. >> >> Amend mode is the ability to perform 1000 commits to be applied as soon >> as possible without waiting for 1000 vblanks. >> >> async updates can be seen as amend, but the opposite is not true. >> >> &drm_plane_helper_funcs.atomic_async_{update,check}() was being used by >> drivers to implement amend and not async. So rename them to amend. >> >> Also improve docs explaining the difference. >> >> If asynchronous is required, normal page flip can be performed using >> DRM_MODE_PAGE_FLIP_ASYNC flag. >> >> Signed-off-by: Helen Koike >> >> --- >> Hello, >> >> I would like to officially clarify what async update means by adding it >> in the docs. >> Please correct me if I am wrong, but the current async_{update,check} >> callbacks are being used to do amend (the legacy cursor behavior), i.e. >> to allow 1000 updates without waiting for 1000 vblanks. > > Right now, the semantic of async update is driver dependent. Some > drivers will amend the last commit touching that plane (amend semantic), > others will update the plane buffer immediately which might cause > tearing (async semantic). In my pov, async updates holds the properties of an amend update, so all async updates we have are amend, but the opposite is not true. > >> >> So I would like to clarify this in the docs and rename the current >> callbacks to reflect this behaviour. > > I'm all for this clarification, but I don't think renaming the async > hooks is a good idea, since some drivers will not do real 'amend'. So, > you're changing the name, but it's still confusing :-). > > How about adding new hooks (and/or flags) for the AMEND case, and > keeping the async path untouched. We can then let drivers that > currently implement async as amend implement the amend hooks instead. > Once you've done that, you can hook that up to the legacy cursor update > path so that it first tries one then the other and finally falls back > to a sync update if none of ASYNC/AMEND is possible. I kinda did this (I re-introduced async in the last patch in the series). I know this order is confusing, but as rockchip doesn't implement true async, I would have to do a bunch of modifs at once to keep the commits consistent, but I can re-work on that if it makes things clearer. > >> >> I also see that for real async updates, the flag >> DRM_MODE_PAGE_FLIP_ASYNC can be used in a normal sync update (it is >> already being used by some drivers actually, in the atomic path, not only >> in the legacy page flip, at least is what I understood from >> amdgpu_dm_atomic_commit_tail() implementation). > > Yes, right now, async does not necessarily imply non-block, but > Daniel seemed to think that most users want non-block when they do an > async page flip, so maybe it should be clarified too. users could combine NONBLOCK flag with PAGE_FLIP_ASYNC, no? (we need to add code for it of course). Thanks Helen > > Regards, > > Boris > ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno
Re: [Freedreno] [PATCH RFC v3 4/4] drm/atomic: hook atomic_async_{check, update} with PAGE_FLIP_ASYNC flag
On 4/12/19 9:58 AM, Helen Koike wrote: > Add atomic_async_{check,update} hooks in drm_plane_helper_funcs. > These hooks are called when userspace requests asyncronous page flip in > the atomic api through the flag DRM_MODE_PAGE_FLIP_ASYNC. > > Update those hooks in the drivers that implement async functions, except > for amdgpu who handles the flag in the normal path, and rockchip who > doesn't support async page flip. > > Signed-off-by: Helen Koike > > --- > Hi, > > This patch is an attempt to expose the implementation that already exist > for true async page flips updates through atomic api when the > DRM_MODE_PAGE_FLIP_ASYNC is used. > > In this commit I'm re-introducing the atomic_async_{check,update} hooks. > I know it is a bit weird to remove them first and them re-add them, but > I did this in the last commit to avoid any state of inconsistency > between commits, as rockchip doesn't support async page flip and they were > being used as amend. > So I reverted to amend first and then re-introced async again > tied to the DRM_MODE_PAGE_FLIP_ASYNC flag (I also think this is easier > to read). > > To use async, it is required to have > dev->mode_config.async_page_flip = true; > but I see that only amdgpu and vc4 have this, so this patch won't take > effect on mdp5. > Nouveau and radeon also have this flag, but they don't implement the > async hooks yet. > > Please let me know what you think. > > Thanks > Helen > > Changes in v3: None > Changes in v2: None > Changes in v1: None > > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 +++ > drivers/gpu/drm/drm_atomic_helper.c | 31 > drivers/gpu/drm/drm_atomic_uapi.c | 3 +- > drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c| 2 + > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 ++ > drivers/gpu/drm/vc4/vc4_plane.c | 2 + > include/drm/drm_atomic.h | 2 + > include/drm/drm_atomic_helper.h | 9 +++-- > include/drm/drm_modeset_helper_vtables.h | 37 +++ > 9 files changed, 83 insertions(+), 12 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > index 711e7715e112..bb8a5f1997d6 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -3785,6 +3785,11 @@ static const struct drm_plane_helper_funcs > dm_plane_helper_funcs = { >*/ > .atomic_amend_check = dm_plane_atomic_async_check, > .atomic_amend_update = dm_plane_atomic_async_update > + /* > + * Note: amdgpu takes care of DRM_MODE_PAGE_FLIP_ASYNC flag in the > + * normal commit path, thus .atomic_async_check and .atomic_async_update > + * are not provided here. > + */ > }; > > /* > diff --git a/drivers/gpu/drm/drm_atomic_helper.c > b/drivers/gpu/drm/drm_atomic_helper.c > index 9b0df08836c3..bfcf88359de5 100644 > --- a/drivers/gpu/drm/drm_atomic_helper.c > +++ b/drivers/gpu/drm/drm_atomic_helper.c > @@ -947,16 +947,31 @@ int drm_atomic_helper_check(struct drm_device *dev, > if (ret) > return ret; > > + /* > + * If async page flip was explicitly requested, but it is not possible, > + * return error instead of falling back to a normal commit. > + * If async_amend_check returns -EOPNOTSUPP, it means > + * ->atomic_async_update hook doesn't exist, so fallback to normal > + * commit and let the driver handle DRM_MODE_PAGE_FLIP_ASYNC flag > + * through normal commit code path. > + */ > + if (state->async_update) { > + ret = drm_atomic_helper_async_amend_check(dev, state, false); > + state->async_update = !ret; > + return !ret || ret == -EOPNOTSUPP ? 0 : ret; > + } > + > /* >* If amend was explicitly requested, but it is not possible, >* return error instead of falling back to a normal commit. >*/ > if (state->amend_update) > - return drm_atomic_helper_amend_check(dev, state); > + return drm_atomic_helper_async_amend_check(dev, state, true); > > /* Legacy mode falls back to a normal commit if amend isn't possible. */ > if (state->legacy_cursor_update) > - state->amend_update = !drm_atomic_helper_amend_check(dev, > state); > + state->amend_update = > + !drm_atomic_helper_async_amend_check(dev, state, true); > > return 0; > } > @@ -1651,8 +1666,9 @@ stat
[Freedreno] [PATCH RFC v3 4/4] drm/atomic: hook atomic_async_{check, update} with PAGE_FLIP_ASYNC flag
Add atomic_async_{check,update} hooks in drm_plane_helper_funcs. These hooks are called when userspace requests asyncronous page flip in the atomic api through the flag DRM_MODE_PAGE_FLIP_ASYNC. Update those hooks in the drivers that implement async functions, except for amdgpu who handles the flag in the normal path, and rockchip who doesn't support async page flip. Signed-off-by: Helen Koike --- Hi, This patch is an attempt to expose the implementation that already exist for true async page flips updates through atomic api when the DRM_MODE_PAGE_FLIP_ASYNC is used. In this commit I'm re-introducing the atomic_async_{check,update} hooks. I know it is a bit weird to remove them first and them re-add them, but I did this in the last commit to avoid any state of inconsistency between commits, as rockchip doesn't support async page flip and they were being used as amend. So I reverted to amend first and then re-introced async again tied to the DRM_MODE_PAGE_FLIP_ASYNC flag (I also think this is easier to read). To use async, it is required to have dev->mode_config.async_page_flip = true; but I see that only amdgpu and vc4 have this, so this patch won't take effect on mdp5. Nouveau and radeon also have this flag, but they don't implement the async hooks yet. Please let me know what you think. Thanks Helen Changes in v3: None Changes in v2: None Changes in v1: None .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 +++ drivers/gpu/drm/drm_atomic_helper.c | 31 drivers/gpu/drm/drm_atomic_uapi.c | 3 +- drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c| 2 + drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 ++ drivers/gpu/drm/vc4/vc4_plane.c | 2 + include/drm/drm_atomic.h | 2 + include/drm/drm_atomic_helper.h | 9 +++-- include/drm/drm_modeset_helper_vtables.h | 37 +++ 9 files changed, 83 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 711e7715e112..bb8a5f1997d6 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -3785,6 +3785,11 @@ static const struct drm_plane_helper_funcs dm_plane_helper_funcs = { */ .atomic_amend_check = dm_plane_atomic_async_check, .atomic_amend_update = dm_plane_atomic_async_update + /* +* Note: amdgpu takes care of DRM_MODE_PAGE_FLIP_ASYNC flag in the +* normal commit path, thus .atomic_async_check and .atomic_async_update +* are not provided here. +*/ }; /* diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 9b0df08836c3..bfcf88359de5 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -947,16 +947,31 @@ int drm_atomic_helper_check(struct drm_device *dev, if (ret) return ret; + /* +* If async page flip was explicitly requested, but it is not possible, +* return error instead of falling back to a normal commit. +* If async_amend_check returns -EOPNOTSUPP, it means +* ->atomic_async_update hook doesn't exist, so fallback to normal +* commit and let the driver handle DRM_MODE_PAGE_FLIP_ASYNC flag +* through normal commit code path. +*/ + if (state->async_update) { + ret = drm_atomic_helper_async_amend_check(dev, state, false); + state->async_update = !ret; + return !ret || ret == -EOPNOTSUPP ? 0 : ret; + } + /* * If amend was explicitly requested, but it is not possible, * return error instead of falling back to a normal commit. */ if (state->amend_update) - return drm_atomic_helper_amend_check(dev, state); + return drm_atomic_helper_async_amend_check(dev, state, true); /* Legacy mode falls back to a normal commit if amend isn't possible. */ if (state->legacy_cursor_update) - state->amend_update = !drm_atomic_helper_amend_check(dev, state); + state->amend_update = + !drm_atomic_helper_async_amend_check(dev, state, true); return 0; } @@ -1651,8 +1666,9 @@ static void commit_work(struct work_struct *work) * if not. Note that error just mean it can't be committed in amend mode, if it * fails the commit should be treated like a normal commit. */ -int drm_atomic_helper_amend_check(struct drm_device *dev, - struct drm_atomic_state *state) +int drm_atomic_helper_async_amend_check(struct drm_device *dev, + struct drm_atomic_state *state, + bool amend) { struct drm_crtc *crt
[Freedreno] [PATCH v3 2/4] drm/atomic: rename async_{update, check} to amend_{update, check}
Asynchronous update is the ability change the hw state at any time, not only during vblank. Amend mode is the ability to perform 1000 commits to be applied as soon as possible without waiting for 1000 vblanks. async updates can be seen as amend, but the opposite is not true. &drm_plane_helper_funcs.atomic_async_{update,check}() was being used by drivers to implement amend and not async. So rename them to amend. Also improve docs explaining the difference. If asynchronous is required, normal page flip can be performed using DRM_MODE_PAGE_FLIP_ASYNC flag. Signed-off-by: Helen Koike --- Hello, I would like to officially clarify what async update means by adding it in the docs. Please correct me if I am wrong, but the current async_{update,check} callbacks are being used to do amend (the legacy cursor behavior), i.e. to allow 1000 updates without waiting for 1000 vblanks. So I would like to clarify this in the docs and rename the current callbacks to reflect this behaviour. I also see that for real async updates, the flag DRM_MODE_PAGE_FLIP_ASYNC can be used in a normal sync update (it is already being used by some drivers actually, in the atomic path, not only in the legacy page flip, at least is what I understood from amdgpu_dm_atomic_commit_tail() implementation). Please, let me know if I misunderstood anything. Otherwise renaming and improving the docs would put us all in sync. Thanks! Helen Changes in v3: None Changes in v2: None Changes in v1: None Documentation/gpu/drm-kms-helpers.rst | 8 +- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 10 +- drivers/gpu/drm/drm_atomic_helper.c | 111 +- drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c| 8 +- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 8 +- drivers/gpu/drm/vc4/vc4_kms.c | 4 +- drivers/gpu/drm/vc4/vc4_plane.c | 8 +- include/drm/drm_atomic.h | 4 +- include/drm/drm_atomic_helper.h | 4 +- include/drm/drm_modeset_helper_vtables.h | 38 +++--- 10 files changed, 139 insertions(+), 64 deletions(-) diff --git a/Documentation/gpu/drm-kms-helpers.rst b/Documentation/gpu/drm-kms-helpers.rst index 58b375e47615..c067a196902d 100644 --- a/Documentation/gpu/drm-kms-helpers.rst +++ b/Documentation/gpu/drm-kms-helpers.rst @@ -53,12 +53,18 @@ Overview .. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c :doc: overview -Implementing Asynchronous Atomic Commit +Implementing Nonblocking Atomic Commit --- .. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c :doc: implementing nonblocking commit +Amend Mode Atomic Commit + + +.. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c + :doc: amend mode atomic commit + Helper Functions Reference -- diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 2f26581b93ff..711e7715e112 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -3779,8 +3779,12 @@ static const struct drm_plane_helper_funcs dm_plane_helper_funcs = { .prepare_fb = dm_plane_helper_prepare_fb, .cleanup_fb = dm_plane_helper_cleanup_fb, .atomic_check = dm_plane_atomic_check, - .atomic_async_check = dm_plane_atomic_async_check, - .atomic_async_update = dm_plane_atomic_async_update + /* +* FIXME: ideally, instead of hooking async updates to amend, +* we could avoid tearing by modifying the pending commit. +*/ + .atomic_amend_check = dm_plane_atomic_async_check, + .atomic_amend_update = dm_plane_atomic_async_update }; /* @@ -6140,7 +6144,7 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev, * helper, check if it can be done asynchronously for better * performance. */ - state->async_update = !drm_atomic_helper_async_check(dev, state); + state->amend_update = !drm_atomic_helper_amend_check(dev, state); } /* Must be success */ diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 2453678d1186..eb5dcd84fea7 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -948,7 +948,7 @@ int drm_atomic_helper_check(struct drm_device *dev, return ret; if (state->legacy_cursor_update) - state->async_update = !drm_atomic_helper_async_check(dev, state); + state->amend_update = !drm_atomic_helper_amend_check(dev, state); return ret; } @@ -1569,19 +1569,68 @@ static void commit_work(struct work_struct *work) } /** - * drm_atomic_helper_async_check - check if state can be commited asynchronously + * DOC: amend mode atomic commit + * + * The amend featur
[Freedreno] [PATCH v3 0/4] async vs amend - UAPI
Hi, This patch series is an attempt to clarify some concepts and how things are hooked inside drm. There are two main concepts that are similar but different and are causing some confusion: - Asynchronous update: is the ability change the hw state at any time, not only during vblank. - Amend update: is the ability to perform 1000 commits to be applied as soon as possible without waiting for 1000 vblanks. async updates can be seen as amend, but the opposite is not true. Please see documentation on the commit "drm/atomic: rename async_{update,check} to amend_{update,check}" for a more detailed explanation. To perform an async update, we already have the DRM_MODE_PAGE_FLIP_ASYNC flag in the atomic API and it is already being used by amdgpu in the atomic path. The first two commits clarifies these differences. The last two are RFCs that exposes new async and amend features to userspace. We introduce in this series the flag DRM_MODE_ATOMIC_AMEND to expose the amend feature to userspace. The main reasons to expose this through atomic api is to avoid mixing legacy with modern/atomic API (since their interactions are not well defined) and to be able to explicitly manage the cursor plane. And the last commit hooks the current async implementations with the DRM_MODE_PAGE_FLIP_ASYNC flag. Please, see the message in each commit and the documentation that was added for more details and let me know what you think. Thanks Helen Changes in v3: - rebase tree - rebase on top of renaming async_update to amend_update - improve documentation - don't fall back to a normal commit if amend is not possible when requested through the atomic api Changes in v2: - rebase tree - do not fall back to a non-async update if if there isn't any pending commit to amend Changes in v1: - https://patchwork.freedesktop.org/patch/243088/ - Only enable it if userspace requests it. - Only allow async update for cursor type planes. - Rename ASYNC_UPDATE for ATOMIC_AMEND. Helen Koike (4): drm/uapi: add documentation for atomic flags drm/atomic: rename async_{update,check} to amend_{update,check} drm/atomic: add ATOMIC_AMEND flag to the Atomic IOCTL. drm/atomic: hook atomic_async_{check,update} with PAGE_FLIP_ASYNC flag Documentation/gpu/drm-kms-helpers.rst | 8 +- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 15 +- drivers/gpu/drm/drm_atomic_helper.c | 157 ++ drivers/gpu/drm/drm_atomic_uapi.c | 9 + drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c| 6 + drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 12 +- drivers/gpu/drm/vc4/vc4_kms.c | 4 +- drivers/gpu/drm/vc4/vc4_plane.c | 6 + include/drm/drm_atomic.h | 4 +- include/drm/drm_atomic_helper.h | 9 +- include/drm/drm_modeset_helper_vtables.h | 69 ++-- include/uapi/drm/drm_mode.h | 27 ++- 12 files changed, 264 insertions(+), 62 deletions(-) -- 2.20.1 ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno
Re: [Freedreno] [PATCH v3 3/5] drm/msm: fix fb references in async update
Hi Rob, On 3/27/19 11:52 AM, Rob Clark wrote: > On Wed, Mar 13, 2019 at 8:21 PM Helen Koike wrote: >> >> Async update callbacks are expected to set the old_fb in the new_state >> so prepare/cleanup framebuffers are balanced. >> >> Cc: # v4.14+ >> Fixes: 224a4c970987 ("drm/msm: update cursors asynchronously through atomic") >> Suggested-by: Boris Brezillon >> Signed-off-by: Helen Koike >> >> --- >> Hello, >> >> As mentioned in the cover letter, >> But I couldn't test on MSM because I don't have the hardware and I would >> appreciate if anyone could test it. >> >> In other platforms (VC4, AMD, Rockchip), there is a hidden >> drm_framebuffer_get(new_fb)/drm_framebuffer_put(old_fb) in async_update >> that is wrong, but I couldn't identify those here, not sure if it is hidden >> somewhere else, but if tests fail this is probably the cause. >> >> Thanks! >> Helen > > Apologies, I haven't had a chance to test this yet, and it is likely > to be a few weeks before I have a chance.. > > That said, not refcnt'ing the fb seems suspicious. I read the > explanation in the other patches, but kind of think it is more clear > to keep the extra refcnt'ing.. or at least have a comment. Refcnt'ing is taken care by drm_mode_cursor_universal() when calling drm_atomic_helper_update_plane(). The other codes had a drm_atomic_set_fb_for_plane() (which get a referent of the new fb and put the old fb), but the problem is that the cleanup_plane will also put the ref of the old fb. In the other drivers I saw, drm_atomic_set_fb_for_plane() shouldn't be called, but this issue should be triggered very easily with a test. I can add this is in the async_check() docs. > > I do a bit wonder if we hold the ref to the outgoing cursor long > enough.. I think the hw will actually continue to scan it out until > the next vblank. But Archit was the one who added async_update > support so maybe that is handled somewhere else. It's been a while > since I've looked at this. I don't know much about MSM, but if I understand correctly, MSM don't support true async, is that correct? Then I think we need to do something similar to the rockchip: https://patchwork.kernel.org/patch/10852039/ and setup a drm_flip_work_queue(). But this seems another problem that is already there no? Not really related to this patch. I could send a separate patch for this (but I don't have the means to test it). Regards, Helen > > BR, > -R > > > >> >> Changes in v3: None >> Changes in v2: >> - update CC stable and Fixes tag >> >> drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c | 4 >> 1 file changed, 4 insertions(+) >> >> diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c >> b/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c >> index be13140967b4..b854f471e9e5 100644 >> --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c >> +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c >> @@ -502,6 +502,8 @@ static int mdp5_plane_atomic_async_check(struct >> drm_plane *plane, >> static void mdp5_plane_atomic_async_update(struct drm_plane *plane, >>struct drm_plane_state *new_state) >> { >> + struct drm_framebuffer *old_fb = plane->state->fb; >> + >> plane->state->src_x = new_state->src_x; >> plane->state->src_y = new_state->src_y; >> plane->state->crtc_x = new_state->crtc_x; >> @@ -524,6 +526,8 @@ static void mdp5_plane_atomic_async_update(struct >> drm_plane *plane, >> >> *to_mdp5_plane_state(plane->state) = >> *to_mdp5_plane_state(new_state); >> + >> + new_state->fb = old_fb; >> } >> >> static const struct drm_plane_helper_funcs mdp5_plane_helper_funcs = { >> -- >> 2.20.1 >> > ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno
[Freedreno] [PATCH v3 3/5] drm/msm: fix fb references in async update
Async update callbacks are expected to set the old_fb in the new_state so prepare/cleanup framebuffers are balanced. Cc: # v4.14+ Fixes: 224a4c970987 ("drm/msm: update cursors asynchronously through atomic") Suggested-by: Boris Brezillon Signed-off-by: Helen Koike --- Hello, As mentioned in the cover letter, But I couldn't test on MSM because I don't have the hardware and I would appreciate if anyone could test it. In other platforms (VC4, AMD, Rockchip), there is a hidden drm_framebuffer_get(new_fb)/drm_framebuffer_put(old_fb) in async_update that is wrong, but I couldn't identify those here, not sure if it is hidden somewhere else, but if tests fail this is probably the cause. Thanks! Helen Changes in v3: None Changes in v2: - update CC stable and Fixes tag drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c | 4 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c index be13140967b4..b854f471e9e5 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c @@ -502,6 +502,8 @@ static int mdp5_plane_atomic_async_check(struct drm_plane *plane, static void mdp5_plane_atomic_async_update(struct drm_plane *plane, struct drm_plane_state *new_state) { + struct drm_framebuffer *old_fb = plane->state->fb; + plane->state->src_x = new_state->src_x; plane->state->src_y = new_state->src_y; plane->state->crtc_x = new_state->crtc_x; @@ -524,6 +526,8 @@ static void mdp5_plane_atomic_async_update(struct drm_plane *plane, *to_mdp5_plane_state(plane->state) = *to_mdp5_plane_state(new_state); + + new_state->fb = old_fb; } static const struct drm_plane_helper_funcs mdp5_plane_helper_funcs = { -- 2.20.1 ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno
[Freedreno] [PATCH v3 0/5] drm: Fix fb changes for async updates
Hello, This series fixes the slow down in performance introduced by "[PATCH v2] drm: Block fb changes for async plane updates" where async update falls back to a sync update, causing igt failures of type: "CRITICAL: completed 97 cursor updated in a period of 30 flips, we expect to complete approximately 15360 updates, with the threshold set at 7680" Please read the commit message of "drm: don't block fb changes for async plane updates" to understand how it works. I tested on the rockchip, on i915 and on vc4 with igt plane_cursor_legacy and kms_cursor_legacy and I didn't see any regressions. I couldn't test on MSM and AMD because I don't have the hardware I would appreciate if anyone could help me testing those. v1 link: https://patchwork.kernel.org/cover/10837847/ Thanks! Helen Changes in v3: - use swap() to swap old and new framebuffers in async_update - get the reference to old_fb and set the worker after vop_plane_atomic_update() - add a FIXME tag for when we have multiple fbs to be released when vblank happens. - update commit message - Add Reviewed-by tags - Add TODO in drm_atomic_helper_async_commit() Changes in v2: - added reviewed-by tag - update CC stable and Fixes tag - Added reviewed-by tag - updated CC stable and Fixes tag - Change the order of the patch in the series, add this as the last one. - Add documentation - s/ballanced/balanced Helen Koike (5): drm/rockchip: fix fb references in async update drm/amd: fix fb references in async update drm/msm: fix fb references in async update drm/vc4: fix fb references in async update drm: don't block fb changes for async plane updates .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +- drivers/gpu/drm/drm_atomic_helper.c | 22 drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c| 4 ++ drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 51 ++- drivers/gpu/drm/vc4/vc4_plane.c | 2 +- include/drm/drm_modeset_helper_vtables.h | 5 ++ 6 files changed, 49 insertions(+), 38 deletions(-) -- 2.20.1 ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno
[Freedreno] [PATCH v3 5/5] drm: don't block fb changes for async plane updates
In the case of a normal sync update, the preparation of framebuffers (be it calling drm_atomic_helper_prepare_planes() or doing setups with drm_framebuffer_get()) are performed in the new_state and the respective cleanups are performed in the old_state. In the case of async updates, the preparation is also done in the new_state but the cleanups are done in the new_state (because updates are performed in place, i.e. in the current state). The current code blocks async udpates when the fb is changed, turning async updates into sync updates, slowing down cursor updates and introducing regressions in igt tests with errors of type: "CRITICAL: completed 97 cursor updated in a period of 30 flips, we expect to complete approximately 15360 updates, with the threshold set at 7680" Fb changes in async updates were prevented to avoid the following scenario: - Async update, oldfb = NULL, newfb = fb1, prepare fb1, cleanup fb1 - Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb2 - Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 (wrong) Where we have a single call to prepare fb2 but double cleanup call to fb2. To solve the above problems, instead of blocking async fb changes, we place the old framebuffer in the new_state object, so when the code performs cleanups in the new_state it will cleanup the old_fb and we will have the following scenario instead: - Async update, oldfb = NULL, newfb = fb1, prepare fb1, no cleanup - Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb1 - Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 Where calls to prepare/cleanup are balanced. Cc: # v4.14+ Fixes: 25dc194b34dd ("drm: Block fb changes for async plane updates") Suggested-by: Boris Brezillon Signed-off-by: Helen Koike Reviewed-by: Boris Brezillon Reviewed-by: Nicholas Kazlauskas --- Hello, I added a TODO in drm_atomic_helper_async_commit() regarding doing a full state swap(), Boris and Nicholas, let me know if this is ok and if I can keep your Reviewed-by tags) As mentioned in the cover letter, I tested in almost all platforms with igt plane_cursor_legacy and kms_cursor_legacy and I didn't see any regressions. But I couldn't test on MSM and AMD because I don't have the hardware I would appreciate if anyone could help me testing those. Thanks! Helen Changes in v3: - Add Reviewed-by tags - Add TODO in drm_atomic_helper_async_commit() Changes in v2: - Change the order of the patch in the series, add this as the last one. - Add documentation - s/ballanced/balanced drivers/gpu/drm/drm_atomic_helper.c | 22 -- include/drm/drm_modeset_helper_vtables.h | 5 + 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 2453678d1186..de5812c362b5 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -1608,15 +1608,6 @@ int drm_atomic_helper_async_check(struct drm_device *dev, old_plane_state->crtc != new_plane_state->crtc) return -EINVAL; - /* -* FIXME: Since prepare_fb and cleanup_fb are always called on -* the new_plane_state for async updates we need to block framebuffer -* changes. This prevents use of a fb that's been cleaned up and -* double cleanups from occuring. -*/ - if (old_plane_state->fb != new_plane_state->fb) - return -EINVAL; - funcs = plane->helper_private; if (!funcs->atomic_async_update) return -EINVAL; @@ -1647,6 +1638,8 @@ EXPORT_SYMBOL(drm_atomic_helper_async_check); * drm_atomic_async_check() succeeds. Async commits are not supposed to swap * the states like normal sync commits, but just do in-place changes on the * current state. + * + * TODO: Implement full swap instead of doing in-place changes. */ void drm_atomic_helper_async_commit(struct drm_device *dev, struct drm_atomic_state *state) @@ -1657,6 +1650,9 @@ void drm_atomic_helper_async_commit(struct drm_device *dev, int i; for_each_new_plane_in_state(state, plane, plane_state, i) { + struct drm_framebuffer *new_fb = plane_state->fb; + struct drm_framebuffer *old_fb = plane->state->fb; + funcs = plane->helper_private; funcs->atomic_async_update(plane, plane_state); @@ -1665,11 +1661,17 @@ void drm_atomic_helper_async_commit(struct drm_device *dev, * plane->state in-place, make sure at least common * properties have been properly updated. */ - WARN_ON_ONCE(plane->state->fb != plane_state->fb); + WARN_ON_ONCE(plane->state->fb != new_fb); WARN_ON_ONCE(plane->state->crtc_x
[Freedreno] [PATCH v2 5/5] drm: don't block fb changes for async plane updates
In the case of a normal sync update, the preparation of framebuffers (be it calling drm_atomic_helper_prepare_planes() or doing setups with drm_framebuffer_get()) are performed in the new_state and the respective cleanups are performed in the old_state. In the case of async updates, the preparation is also done in the new_state but the cleanups are done in the new_state (because updates are performed in place, i.e. in the current state). The current code blocks async udpates when the fb is changed, turning async updates into sync updates, slowing down cursor updates and introducing regressions in igt tests with errors of type: "CRITICAL: completed 97 cursor updated in a period of 30 flips, we expect to complete approximately 15360 updates, with the threshold set at 7680" Fb changes in async updates were prevented to avoid the following scenario: - Async update, oldfb = NULL, newfb = fb1, prepare fb1, cleanup fb1 - Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb2 - Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 (wrong) Where we have a single call to prepare fb2 but double cleanup call to fb2. To solve the above problems, instead of blocking async fb changes, we place the old framebuffer in the new_state object, so when the code performs cleanups in the new_state it will cleanup the old_fb and we will have the following scenario instead: - Async update, oldfb = NULL, newfb = fb1, prepare fb1, no cleanup - Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb1 - Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 Where calls to prepare/cleanup are balanced. Cc: # v4.14+ Fixes: 25dc194b34dd ("drm: Block fb changes for async plane updates") Suggested-by: Boris Brezillon Signed-off-by: Helen Koike --- Hello, As mentioned in the cover letter, I tested in almost all platforms with igt plane_cursor_legacy and kms_cursor_legacy and I didn't see any regressions. But I couldn't test on MSM and AMD because I don't have the hardware I would appreciate if anyone could help me testing those. Thanks! Helen Changes in v2: - Change the order of the patch in the series, add this as the last one. - Add documentation - s/ballanced/balanced drivers/gpu/drm/drm_atomic_helper.c | 20 ++-- include/drm/drm_modeset_helper_vtables.h | 5 + 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 540a77a2ade9..e7eb96f1efc2 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -1608,15 +1608,6 @@ int drm_atomic_helper_async_check(struct drm_device *dev, old_plane_state->crtc != new_plane_state->crtc) return -EINVAL; - /* -* FIXME: Since prepare_fb and cleanup_fb are always called on -* the new_plane_state for async updates we need to block framebuffer -* changes. This prevents use of a fb that's been cleaned up and -* double cleanups from occuring. -*/ - if (old_plane_state->fb != new_plane_state->fb) - return -EINVAL; - funcs = plane->helper_private; if (!funcs->atomic_async_update) return -EINVAL; @@ -1657,6 +1648,9 @@ void drm_atomic_helper_async_commit(struct drm_device *dev, int i; for_each_new_plane_in_state(state, plane, plane_state, i) { + struct drm_framebuffer *new_fb = plane_state->fb; + struct drm_framebuffer *old_fb = plane->state->fb; + funcs = plane->helper_private; funcs->atomic_async_update(plane, plane_state); @@ -1665,11 +1659,17 @@ void drm_atomic_helper_async_commit(struct drm_device *dev, * plane->state in-place, make sure at least common * properties have been properly updated. */ - WARN_ON_ONCE(plane->state->fb != plane_state->fb); + WARN_ON_ONCE(plane->state->fb != new_fb); WARN_ON_ONCE(plane->state->crtc_x != plane_state->crtc_x); WARN_ON_ONCE(plane->state->crtc_y != plane_state->crtc_y); WARN_ON_ONCE(plane->state->src_x != plane_state->src_x); WARN_ON_ONCE(plane->state->src_y != plane_state->src_y); + + /* +* Make sure the FBs have been swapped so that cleanups in the +* new_state performs a cleanup in the old FB. +*/ + WARN_ON_ONCE(plane_state->fb != old_fb); } } EXPORT_SYMBOL(drm_atomic_helper_async_commit); diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h index cfb7be40bed7..ce582e8e8f2f 100644 --- a/include/drm/drm_modeset_helper_vtables.h +++ b/include
[Freedreno] [PATCH v2 3/5] drm/msm: fix fb references in async update
Async update callbacks are expected to set the old_fb in the new_state so prepare/cleanup framebuffers are balanced. Cc: # v4.14+ Fixes: 224a4c970987 ("drm/msm: update cursors asynchronously through atomic") Suggested-by: Boris Brezillon Signed-off-by: Helen Koike --- Hello, As mentioned in the cover letter, But I couldn't test on MSM because I don't have the hardware and I would appreciate if anyone could test it. In other platforms (VC4, AMD, Rockchip), there is a hidden drm_framebuffer_get(new_fb)/drm_framebuffer_put(old_fb) in async_update that is wrong, but I couldn't identify those here, not sure if it is hidden somewhere else, but if tests fail this is probably the cause. Thanks! Helen Changes in v2: - update CC stable and Fixes tag drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c | 4 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c index be13140967b4..b854f471e9e5 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c @@ -502,6 +502,8 @@ static int mdp5_plane_atomic_async_check(struct drm_plane *plane, static void mdp5_plane_atomic_async_update(struct drm_plane *plane, struct drm_plane_state *new_state) { + struct drm_framebuffer *old_fb = plane->state->fb; + plane->state->src_x = new_state->src_x; plane->state->src_y = new_state->src_y; plane->state->crtc_x = new_state->crtc_x; @@ -524,6 +526,8 @@ static void mdp5_plane_atomic_async_update(struct drm_plane *plane, *to_mdp5_plane_state(plane->state) = *to_mdp5_plane_state(new_state); + + new_state->fb = old_fb; } static const struct drm_plane_helper_funcs mdp5_plane_helper_funcs = { -- 2.20.1 ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno
[Freedreno] [PATCH v2 0/5] drm: Fix fb changes for async updates
Hello, This series fixes the slow down in performance introduced by "[PATCH v2] drm: Block fb changes for async plane updates" where async update falls back to a sync update, causing igt failures of type: "CRITICAL: completed 97 cursor updated in a period of 30 flips, we expect to complete approximately 15360 updates, with the threshold set at 7680" Please read the commit message of "drm: don't block fb changes for async plane updates" to understand how it works. I tested on the rockchip, on i915 and on vc4 with igt plane_cursor_legacy and kms_cursor_legacy and I didn't see any regressions. I couldn't test on MSM and AMD because I don't have the hardware I would appreciate if anyone could help me testing those. v1 link: https://patchwork.kernel.org/cover/10837847/ Thanks! Helen Changes in v2: - added reviewed-by tag - update CC stable and Fixes tag - Added reviewed-by tag - updated CC stable and Fixes tag - Change the order of the patch in the series, add this as the last one. - Add documentation - s/ballanced/balanced Helen Koike (5): drm/rockchip: fix fb references in async update drm/amd: fix fb references in async update drm/msm: fix fb references in async update drm/vc4: fix fb references in async update drm: don't block fb changes for async plane updates .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +- drivers/gpu/drm/drm_atomic_helper.c | 20 - drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c| 4 ++ drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 42 +++ drivers/gpu/drm/vc4/vc4_plane.c | 2 +- include/drm/drm_modeset_helper_vtables.h | 5 +++ 6 files changed, 45 insertions(+), 31 deletions(-) -- 2.20.1 ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno