* [igt-dev] [PATCH 1/2] [i-g-t] lib/igt_amd: Re-try display_require if require output is not valid
@ 2023-11-22 17:20 Hersen Wu
2023-11-22 17:20 ` [igt-dev] [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently Hersen Wu
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Hersen Wu @ 2023-11-22 17:20 UTC (permalink / raw)
To: igt-dev, rodrigo.siqueira, aurabindo.pillai, alex.hung,
hamza.mahfooz, sunpeng.li
Cc: Hersen Wu, markyacoub
Add igt_amd_display_require_retry to re-try
igt_display_require.
At entry of each test, display setup is done by
igt_display_require and igt_display_require_output.
igt display require output may not be valid yet,
this will let test be skipped. By re-try
igt_display_require, require output could be valid.
This will fix test case intermittent skip issue.
Signed-off-by: Hersen Wu <hersenxs.wu@amd.com>
---
lib/igt_amd.c | 19 +++++++++++++++++++
lib/igt_amd.h | 16 ++++++++++++++++
2 files changed, 35 insertions(+)
diff --git a/lib/igt_amd.c b/lib/igt_amd.c
index 247a42f37..c068f07e7 100644
--- a/lib/igt_amd.c
+++ b/lib/igt_amd.c
@@ -1298,3 +1298,22 @@ bool igt_amd_set_visual_confirm(int drm_fd, enum amdgpu_debug_visual_confirm opt
return res;
}
+
+/**
+ * is_igt_amd_display_require_output_valid:
+ * @display: A pointer to an #igt_display_t structure
+ *
+ * Checks whether there's a valid @pipe/@output combination for the given @display
+ * Returns: true if a valid combination of @pipe and @output is found, or false
+ * if not found
+ */
+bool is_igt_amd_display_require_output_valid(igt_display_t *display)
+{
+ enum pipe pipe;
+ igt_output_t *output;
+
+ for_each_pipe_with_valid_output(display, pipe, output)
+ return true;
+
+ return false;
+}
diff --git a/lib/igt_amd.h b/lib/igt_amd.h
index 1e66348ad..529b3beba 100644
--- a/lib/igt_amd.h
+++ b/lib/igt_amd.h
@@ -202,4 +202,20 @@ bool igt_amd_set_visual_confirm(int drm_fd, enum amdgpu_debug_visual_confirm opt
void igt_amd_get_mall_status(int drm_fd, bool *supported, bool *enabled);
void igt_amd_get_subvp_status(int drm_fd, bool *supported, bool *enabled);
bool igt_amd_output_has_odm_combine_segments(int drm_fd, char *connector_name);
+
+bool is_igt_amd_display_require_output_valid(igt_display_t *display);
+
+#define igt_amd_display_require_retry(display, fd, delay, retry_times) \
+ for (int j__ = 0; j__ < retry_times + 1; j__++) { \
+ igt_display_require(display, fd); \
+ if (is_igt_amd_display_require_output_valid(display)) { \
+ if (j__ > 0) \
+ igt_info("retry times:%d delay:%d seconds\n", j__, delay * j__); \
+ break; \
+ } \
+ if (j__ == retry_times) \
+ igt_skip("No valid crtc/connector combinations found.\n"); \
+ else \
+ sleep(delay); \
+ }
#endif /* IGT_AMD_H */
--
2.25.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* [igt-dev] [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently 2023-11-22 17:20 [igt-dev] [PATCH 1/2] [i-g-t] lib/igt_amd: Re-try display_require if require output is not valid Hersen Wu @ 2023-11-22 17:20 ` Hersen Wu 2023-11-22 21:23 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [1/2,i-g-t] lib/igt_amd: Re-try display_require if require output is not valid Patchwork 2023-11-22 22:37 ` [igt-dev] ✓ CI.xeBAT: success " Patchwork 2 siblings, 0 replies; 8+ messages in thread From: Hersen Wu @ 2023-11-22 17:20 UTC (permalink / raw) To: igt-dev, rodrigo.siqueira, aurabindo.pillai, alex.hung, hamza.mahfooz, sunpeng.li Cc: Hersen Wu, markyacoub Use igt_amd_display_require_retry to re-try igt_display_require if igt dislay require output is not valid. If previous test run suspend-resume test, current test igt display require output may not be valid after initial igt_display_require. This will cause current test be skipped. By re-try igt_display_require, igt display require output could be valid. Signed-off-by: Hersen Wu <hersenxs.wu@amd.com> --- tests/amdgpu/amd_abm.c | 4 +++- tests/amdgpu/amd_assr.c | 4 ++-- tests/amdgpu/amd_bypass.c | 3 +-- tests/amdgpu/amd_color.c | 4 ++-- tests/amdgpu/amd_dp_dsc.c | 6 +++--- tests/amdgpu/amd_freesync_video_mode.c | 4 ++-- tests/amdgpu/amd_hotplug.c | 3 +-- tests/amdgpu/amd_ilr.c | 3 +-- tests/amdgpu/amd_link_settings.c | 3 +-- tests/amdgpu/amd_mall.c | 3 +-- tests/amdgpu/amd_max_bpc.c | 4 ++-- tests/amdgpu/amd_mem_leak.c | 3 +-- tests/amdgpu/amd_mode_switch.c | 6 +++--- tests/amdgpu/amd_odm.c | 6 ++---- tests/amdgpu/amd_plane.c | 4 ++-- tests/amdgpu/amd_psr.c | 5 ++--- tests/amdgpu/amd_subvp.c | 5 ++--- tests/amdgpu/amd_vrr_range.c | 3 +-- 18 files changed, 32 insertions(+), 41 deletions(-) diff --git a/tests/amdgpu/amd_abm.c b/tests/amdgpu/amd_abm.c index 082da7ed6..0036a83c4 100644 --- a/tests/amdgpu/amd_abm.c +++ b/tests/amdgpu/amd_abm.c @@ -23,6 +23,7 @@ #include "igt.h" #include "drmtest.h" #include "igt_kms.h" +#include "igt_amd.h" #include <limits.h> #include <errno.h> #include <stdbool.h> @@ -360,7 +361,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_amd_display_require_retry(&data.display, data.drm_fd, 2, 2); + igt_require(data.display.is_atomic); test_init(&data); } diff --git a/tests/amdgpu/amd_assr.c b/tests/amdgpu/amd_assr.c index fc2367f99..008cb54b2 100644 --- a/tests/amdgpu/amd_assr.c +++ b/tests/amdgpu/amd_assr.c @@ -22,6 +22,7 @@ #include "igt.h" #include "igt_sysfs.h" +#include "igt_amd.h" #include <dirent.h> #include <fcntl.h> #include <limits.h> @@ -281,9 +282,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_amd_display_require_retry(&data.display, data.fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Test ASSR on connected DP/eDP links"); diff --git a/tests/amdgpu/amd_bypass.c b/tests/amdgpu/amd_bypass.c index d192a30ea..0dd11ac93 100644 --- a/tests/amdgpu/amd_bypass.c +++ b/tests/amdgpu/amd_bypass.c @@ -387,9 +387,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_amd_display_require_retry(&data.display, data.drm_fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_subtest("8bpc-bypass-mode") diff --git a/tests/amdgpu/amd_color.c b/tests/amdgpu/amd_color.c index 4a98df3be..1a3f238dc 100644 --- a/tests/amdgpu/amd_color.c +++ b/tests/amdgpu/amd_color.c @@ -21,6 +21,7 @@ */ #include "igt.h" +#include "igt_amd.h" IGT_TEST_DESCRIPTION("Test Color Features for DRM conformance"); @@ -406,9 +407,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_amd_display_require_retry(&data.display, data.fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Tests correctness of linear degamma on CRTC"); diff --git a/tests/amdgpu/amd_dp_dsc.c b/tests/amdgpu/amd_dp_dsc.c index e782ce84a..b4acdf4fb 100644 --- a/tests/amdgpu/amd_dp_dsc.c +++ b/tests/amdgpu/amd_dp_dsc.c @@ -526,12 +526,12 @@ igt_main { data.fd = drm_open_driver_master(DRIVER_ANY); - igt_display_require(&data.display, data.fd); + kmstest_set_vt_graphics_mode(); + + igt_amd_display_require_retry(&data.display, data.fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); igt_amd_require_dsc(&data.display, data.fd); - kmstest_set_vt_graphics_mode(); } igt_describe("Forces DSC on/off & ensures it is reset properly"); diff --git a/tests/amdgpu/amd_freesync_video_mode.c b/tests/amdgpu/amd_freesync_video_mode.c index 7716598dc..932153354 100644 --- a/tests/amdgpu/amd_freesync_video_mode.c +++ b/tests/amdgpu/amd_freesync_video_mode.c @@ -21,6 +21,7 @@ */ #include "igt.h" +#include "igt_amd.h" #include "sw_sync.h" #include <fcntl.h> #include <signal.h> @@ -871,9 +872,8 @@ igt_main { igt_skip("Not an amdgpu driver.\n"); } kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_amd_display_require_retry(&data.display, data.drm_fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } /* Expectation: Modeset happens instantaneously without blanking */ diff --git a/tests/amdgpu/amd_hotplug.c b/tests/amdgpu/amd_hotplug.c index c13bf49d3..6f44ad0e9 100644 --- a/tests/amdgpu/amd_hotplug.c +++ b/tests/amdgpu/amd_hotplug.c @@ -165,9 +165,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_amd_display_require_retry(&data.display, data.fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); igt_amd_require_hpd(&data.display, data.fd); } diff --git a/tests/amdgpu/amd_ilr.c b/tests/amdgpu/amd_ilr.c index 50ca93a14..6249c1dce 100644 --- a/tests/amdgpu/amd_ilr.c +++ b/tests/amdgpu/amd_ilr.c @@ -264,9 +264,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_amd_display_require_retry(&data.display, data.drm_fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Test ILR by trying training link rate at all supported ILRs"); diff --git a/tests/amdgpu/amd_link_settings.c b/tests/amdgpu/amd_link_settings.c index 6a7e8cc53..8844e7a1a 100644 --- a/tests/amdgpu/amd_link_settings.c +++ b/tests/amdgpu/amd_link_settings.c @@ -237,9 +237,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_amd_display_require_retry(&data.display, data.drm_fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Retrieves all link settings configurations and retrains " diff --git a/tests/amdgpu/amd_mall.c b/tests/amdgpu/amd_mall.c index c21fcc27f..6a95f1f11 100644 --- a/tests/amdgpu/amd_mall.c +++ b/tests/amdgpu/amd_mall.c @@ -142,9 +142,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_amd_display_require_retry(&data.display, data.fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Tests whether display scanout is triggered from MALL cache instead " diff --git a/tests/amdgpu/amd_max_bpc.c b/tests/amdgpu/amd_max_bpc.c index effe830a2..1e3bb1f3c 100644 --- a/tests/amdgpu/amd_max_bpc.c +++ b/tests/amdgpu/amd_max_bpc.c @@ -21,6 +21,7 @@ */ #include "igt.h" +#include "igt_amd.h" #include <fcntl.h> IGT_TEST_DESCRIPTION("Test 4K HDMI regression if max bpc is too high"); @@ -132,9 +133,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_amd_display_require_retry(&data.display, data.fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Tests overly high 'max bpc' should not affect 4K modes on HDMI"); diff --git a/tests/amdgpu/amd_mem_leak.c b/tests/amdgpu/amd_mem_leak.c index e4a4b5c47..bb3ae420e 100644 --- a/tests/amdgpu/amd_mem_leak.c +++ b/tests/amdgpu/amd_mem_leak.c @@ -219,9 +219,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_amd_display_require_retry(&data.display, data.fd, 5, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Test memory leaks after resume from suspend"); diff --git a/tests/amdgpu/amd_mode_switch.c b/tests/amdgpu/amd_mode_switch.c index 270b1b9f6..445c00be7 100644 --- a/tests/amdgpu/amd_mode_switch.c +++ b/tests/amdgpu/amd_mode_switch.c @@ -21,6 +21,7 @@ */ #include "igt.h" +#include "igt_amd.h" #include <xf86drmMode.h> #define MAX_PIPES 6 @@ -191,9 +192,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); - igt_require(&data.display.is_atomic); - igt_display_require_output(&data.display); + igt_amd_display_require_retry(&data.display, data.fd, 2, 2); + igt_require(data.display.is_atomic); } for (i = 0; i < MAX_PIPES; i++) { diff --git a/tests/amdgpu/amd_odm.c b/tests/amdgpu/amd_odm.c index 839f2de3f..db6aaec58 100644 --- a/tests/amdgpu/amd_odm.c +++ b/tests/amdgpu/amd_odm.c @@ -172,10 +172,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); - igt_require(&data.display.is_atomic); - igt_display_require_output(&data.display); - + igt_amd_display_require_retry(&data.display, data.fd, 2, 2); + igt_require(data.display.is_atomic); } igt_subtest_f("odm-combine-2-to-1-%s", test_mode[TEST_MODE_IDX_ODMC_2_TO_1].name) diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c index ee7de5778..e152d307e 100644 --- a/tests/amdgpu/amd_plane.c +++ b/tests/amdgpu/amd_plane.c @@ -21,6 +21,7 @@ */ #include "igt.h" +#include "igt_amd.h" #include "libdrm/amdgpu.h" #include "libdrm/amdgpu_drm.h" @@ -910,9 +911,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_amd_display_require_retry(&data.display, data.fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("MPO with 4K planes"); diff --git a/tests/amdgpu/amd_psr.c b/tests/amdgpu/amd_psr.c index 9da161a09..7b4f3f629 100644 --- a/tests/amdgpu/amd_psr.c +++ b/tests/amdgpu/amd_psr.c @@ -715,9 +715,8 @@ igt_main_args("", long_options, help_str, opt_handler, NULL) kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); - igt_require(&data.display.is_atomic); - igt_display_require_output(&data.display); + igt_amd_display_require_retry(&data.display, data.fd, 2, 2); + igt_require(data.display.is_atomic); /* check if visual confirm option available */ if (opt.visual_confirm) { diff --git a/tests/amdgpu/amd_subvp.c b/tests/amdgpu/amd_subvp.c index f9915784b..ce90d0493 100644 --- a/tests/amdgpu/amd_subvp.c +++ b/tests/amdgpu/amd_subvp.c @@ -163,11 +163,10 @@ igt_main igt_fixture { data.fd = drm_open_driver_master(DRIVER_AMDGPU); - igt_display_require(&data.display, data.fd); - igt_display_require_output(&data.display); - igt_require(data.display.is_atomic); kmstest_set_vt_graphics_mode(); + igt_amd_display_require_retry(&data.display, data.fd, 2, 2); + igt_require(data.display.is_atomic); } igt_describe("Tests whether system enables sub-viewport when a specific mode is committed"); diff --git a/tests/amdgpu/amd_vrr_range.c b/tests/amdgpu/amd_vrr_range.c index a77895622..a394a6e50 100644 --- a/tests/amdgpu/amd_vrr_range.c +++ b/tests/amdgpu/amd_vrr_range.c @@ -388,9 +388,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_amd_display_require_retry(&data.display, data.fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Hard coded Freesync EDID parsing"); -- 2.25.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [1/2,i-g-t] lib/igt_amd: Re-try display_require if require output is not valid 2023-11-22 17:20 [igt-dev] [PATCH 1/2] [i-g-t] lib/igt_amd: Re-try display_require if require output is not valid Hersen Wu 2023-11-22 17:20 ` [igt-dev] [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently Hersen Wu @ 2023-11-22 21:23 ` Patchwork 2023-11-22 22:37 ` [igt-dev] ✓ CI.xeBAT: success " Patchwork 2 siblings, 0 replies; 8+ messages in thread From: Patchwork @ 2023-11-22 21:23 UTC (permalink / raw) To: Hersen Wu; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 7916 bytes --] == Series Details == Series: series starting with [1/2,i-g-t] lib/igt_amd: Re-try display_require if require output is not valid URL : https://patchwork.freedesktop.org/series/126778/ State : failure == Summary == CI Bug Log - changes from CI_DRM_13911 -> IGTPW_10247 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_10247 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_10247, please notify your bug team (lgci.bug.filing@intel.com) to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/index.html Participating hosts (38 -> 38) ------------------------------ Additional (1): bat-dg2-9 Missing (1): fi-snb-2520m Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_10247: ### IGT changes ### #### Possible regressions #### * igt@i915_selftest@live@gt_lrc: - fi-tgl-1115g4: [PASS][1] -> [DMESG-FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13911/fi-tgl-1115g4/igt@i915_selftest@live@gt_lrc.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/fi-tgl-1115g4/igt@i915_selftest@live@gt_lrc.html Known issues ------------ Here are the changes found in IGTPW_10247 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_mmap@basic: - bat-dg2-9: NOTRUN -> [SKIP][3] ([i915#4083]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-dg2-9/igt@gem_mmap@basic.html * igt@gem_mmap_gtt@basic: - bat-dg2-9: NOTRUN -> [SKIP][4] ([i915#4077]) +2 other tests skip [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-dg2-9/igt@gem_mmap_gtt@basic.html * igt@gem_render_tiled_blits@basic: - bat-dg2-9: NOTRUN -> [SKIP][5] ([i915#4079]) +1 other test skip [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-dg2-9/igt@gem_render_tiled_blits@basic.html * igt@i915_pm_rps@basic-api: - bat-dg2-9: NOTRUN -> [SKIP][6] ([i915#6621]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-dg2-9/igt@i915_pm_rps@basic-api.html * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy: - bat-dg2-9: NOTRUN -> [SKIP][7] ([i915#5190]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-dg2-9/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html * igt@kms_addfb_basic@basic-y-tiled-legacy: - bat-dg2-9: NOTRUN -> [SKIP][8] ([i915#4215] / [i915#5190]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-dg2-9/igt@kms_addfb_basic@basic-y-tiled-legacy.html * igt@kms_addfb_basic@framebuffer-vs-set-tiling: - bat-dg2-9: NOTRUN -> [SKIP][9] ([i915#4212]) +6 other tests skip [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-dg2-9/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html * igt@kms_addfb_basic@tile-pitch-mismatch: - bat-dg2-9: NOTRUN -> [SKIP][10] ([i915#4212] / [i915#5608]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-dg2-9/igt@kms_addfb_basic@tile-pitch-mismatch.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy: - bat-dg2-9: NOTRUN -> [SKIP][11] ([i915#4103] / [i915#4213] / [i915#5608]) +1 other test skip [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-dg2-9/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html * igt@kms_force_connector_basic@force-load-detect: - bat-dg2-9: NOTRUN -> [SKIP][12] ([fdo#109285]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-dg2-9/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_force_connector_basic@prune-stale-modes: - bat-dg2-9: NOTRUN -> [SKIP][13] ([i915#5274]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-dg2-9/igt@kms_force_connector_basic@prune-stale-modes.html * igt@kms_setmode@basic-clone-single-crtc: - bat-dg2-9: NOTRUN -> [SKIP][14] ([i915#3555] / [i915#4098]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-dg2-9/igt@kms_setmode@basic-clone-single-crtc.html * igt@prime_vgem@basic-fence-flip: - bat-dg2-9: NOTRUN -> [SKIP][15] ([i915#3708]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-dg2-9/igt@prime_vgem@basic-fence-flip.html * igt@prime_vgem@basic-fence-mmap: - bat-dg2-9: NOTRUN -> [SKIP][16] ([i915#3708] / [i915#4077]) +1 other test skip [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-dg2-9/igt@prime_vgem@basic-fence-mmap.html * igt@prime_vgem@basic-write: - bat-dg2-9: NOTRUN -> [SKIP][17] ([i915#3291] / [i915#3708]) +2 other tests skip [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-dg2-9/igt@prime_vgem@basic-write.html #### Possible fixes #### * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1: - bat-rplp-1: [ABORT][18] ([i915#8668]) -> [PASS][19] [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13911/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.html * {igt@kms_psr@psr_cursor_plane_move@edp-1}: - bat-jsl-1: [SKIP][20] ([i915#9648]) -> [PASS][21] +2 other tests pass [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13911/bat-jsl-1/igt@kms_psr@psr_cursor_plane_move@edp-1.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/bat-jsl-1/igt@kms_psr@psr_cursor_plane_move@edp-1.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213 [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215 [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190 [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274 [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [i915#5608]: https://gitlab.freedesktop.org/drm/intel/issues/5608 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668 [i915#9648]: https://gitlab.freedesktop.org/drm/intel/issues/9648 [i915#9673]: https://gitlab.freedesktop.org/drm/intel/issues/9673 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7597 -> IGTPW_10247 CI-20190529: 20190529 CI_DRM_13911: 5429d55de723544dfc0630cf39d96392052b27a1 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_10247: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/index.html IGT_7597: 380983dbd9bb2f7eea5e917e8fed0569bfe8cf9c @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Testlist changes ---------------- -igt@xe_waitfence@engine == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/index.html [-- Attachment #2: Type: text/html, Size: 9246 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* [igt-dev] ✓ CI.xeBAT: success for series starting with [1/2,i-g-t] lib/igt_amd: Re-try display_require if require output is not valid 2023-11-22 17:20 [igt-dev] [PATCH 1/2] [i-g-t] lib/igt_amd: Re-try display_require if require output is not valid Hersen Wu 2023-11-22 17:20 ` [igt-dev] [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently Hersen Wu 2023-11-22 21:23 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [1/2,i-g-t] lib/igt_amd: Re-try display_require if require output is not valid Patchwork @ 2023-11-22 22:37 ` Patchwork 2 siblings, 0 replies; 8+ messages in thread From: Patchwork @ 2023-11-22 22:37 UTC (permalink / raw) To: Hersen Wu; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 1541 bytes --] == Series Details == Series: series starting with [1/2,i-g-t] lib/igt_amd: Re-try display_require if require output is not valid URL : https://patchwork.freedesktop.org/series/126778/ State : success == Summary == CI Bug Log - changes from XEIGT_7597_BAT -> XEIGTPW_10247_BAT ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (4 -> 4) ------------------------------ No changes in participating hosts Known issues ------------ Here are the changes found in XEIGTPW_10247_BAT that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1: - bat-adlp-7: [PASS][1] -> [FAIL][2] ([Intel XE#480]) +1 other test fail [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7597/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10247/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1.html [Intel XE#480]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/480 Build changes ------------- * IGT: IGT_7597 -> IGTPW_10247 IGTPW_10247: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10247/index.html IGT_7597: 380983dbd9bb2f7eea5e917e8fed0569bfe8cf9c @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-516-59f2e73469cace9c78aab7506284ae446d57b8bc: 59f2e73469cace9c78aab7506284ae446d57b8bc == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10247/index.html [-- Attachment #2: Type: text/html, Size: 2104 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* [igt-dev] [PATCH 1/2] [i-g-t] lib/igt_kms: Re-try display_require if require output is not valid @ 2023-08-11 22:12 Hersen Wu 2023-08-11 22:12 ` [igt-dev] [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently Hersen Wu 0 siblings, 1 reply; 8+ messages in thread From: Hersen Wu @ 2023-08-11 22:12 UTC (permalink / raw) To: igt-dev, rodrigo.siqueira, aurabindo.pillai, alex.hung, stylon.wang, hamza.mahfooz, sunpeng.li Cc: Hersen Wu, markyacoub Add igt_display_require_retry to re-try igt_display_require. At entry of each test, display setup is done by igt_display_require and igt_display_require_output. igt display require output may not be valid yet, this will let test be skipped. By re-try igt_display_require, require output could be valid. This will fix test case intermittent skip issue. Signed-off-by: Hersen Wu <hersenxs.wu@amd.com> --- lib/igt_kms.c | 19 +++++++++++++++++++ lib/igt_kms.h | 15 +++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/lib/igt_kms.c b/lib/igt_kms.c index e0959ccff..5506e2eb2 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -2862,6 +2862,25 @@ void igt_display_require_output(igt_display_t *display) igt_skip("No valid crtc/connector combinations found.\n"); } +/** + * is_igt_display_require_output_valid: + * @display: A pointer to an #igt_display_t structure + * + * Checks whether there's a valid @pipe/@output combination for the given @display + * Returns: true if a valid combination of @pipe and @output is found, or false + * if not found + */ +bool is_igt_display_require_output_valid(igt_display_t *display) +{ + enum pipe pipe; + igt_output_t *output; + + for_each_pipe_with_valid_output(display, pipe, output) + return true; + + return false; +} + /** * igt_display_require_output_on_pipe: * @display: A pointer to an #igt_display_t structure diff --git a/lib/igt_kms.h b/lib/igt_kms.h index 91355c910..f801b87e6 100644 --- a/lib/igt_kms.h +++ b/lib/igt_kms.h @@ -485,6 +485,7 @@ int igt_display_drop_events(igt_display_t *display); int igt_display_get_n_pipes(igt_display_t *display); void igt_display_require_output(igt_display_t *display); void igt_display_require_output_on_pipe(igt_display_t *display, enum pipe pipe); +bool is_igt_display_require_output_valid(igt_display_t *display); const char *igt_output_name(igt_output_t *output); drmModeModeInfo *igt_output_get_mode(igt_output_t *output); @@ -722,6 +723,20 @@ uint64_t igt_plane_get_prop(igt_plane_t *plane, enum igt_atomic_plane_properties igt_plane_set_prop_changed(plane, prop); \ } while (0) +#define igt_display_require_retry(display, fd, delay, retry_times) \ + for (int j__ = 0; j__ < retry_times + 1; j__++) { \ + igt_display_require(display, fd); \ + if (is_igt_display_require_output_valid(display)) { \ + if (j__ > 0) \ + igt_info("retry times:%d delay:%d seconds\n", j__, delay * j__); \ + break; \ + } \ + if (j__ == retry_times) \ + igt_skip("No valid crtc/connector combinations found.\n"); \ + else \ + sleep(delay); \ + } + extern bool igt_plane_try_prop_enum(igt_plane_t *plane, enum igt_atomic_plane_properties prop, const char *val); -- 2.25.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [igt-dev] [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently 2023-08-11 22:12 [igt-dev] [PATCH 1/2] [i-g-t] lib/igt_kms: " Hersen Wu @ 2023-08-11 22:12 ` Hersen Wu 2023-08-11 22:38 ` Alex Hung 0 siblings, 1 reply; 8+ messages in thread From: Hersen Wu @ 2023-08-11 22:12 UTC (permalink / raw) To: igt-dev, rodrigo.siqueira, aurabindo.pillai, alex.hung, stylon.wang, hamza.mahfooz, sunpeng.li Cc: Hersen Wu, markyacoub Use igt_display_require_retry to re-try igt_display_require if igt dislay require output is not valid. If previous test run suspend-resume test, current test igt display require output may not be valid after initial igt_display_require. This will let current test be skipped. By re-try igt_display_require, igt display require output could be valid. Signed-off-by: Hersen Wu <hersenxs.wu@amd.com> --- tests/amdgpu/amd_assr.c | 3 +-- tests/amdgpu/amd_bypass.c | 3 +-- tests/amdgpu/amd_color.c | 3 +-- tests/amdgpu/amd_dp_dsc.c | 6 +++--- tests/amdgpu/amd_freesync_video_mode.c | 3 +-- tests/amdgpu/amd_hotplug.c | 3 +-- tests/amdgpu/amd_ilr.c | 3 +-- tests/amdgpu/amd_link_settings.c | 3 +-- tests/amdgpu/amd_max_bpc.c | 3 +-- tests/amdgpu/amd_mem_leak.c | 3 +-- tests/amdgpu/amd_mode_switch.c | 5 ++--- tests/amdgpu/amd_plane.c | 3 +-- tests/amdgpu/amd_psr.c | 5 ++--- tests/amdgpu/amd_vrr_range.c | 3 +-- 14 files changed, 18 insertions(+), 31 deletions(-) diff --git a/tests/amdgpu/amd_assr.c b/tests/amdgpu/amd_assr.c index fc2367f99..796c79eec 100644 --- a/tests/amdgpu/amd_assr.c +++ b/tests/amdgpu/amd_assr.c @@ -281,9 +281,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_require_retry(&data.display, data.fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Test ASSR on connected DP/eDP links"); diff --git a/tests/amdgpu/amd_bypass.c b/tests/amdgpu/amd_bypass.c index d192a30ea..351742205 100644 --- a/tests/amdgpu/amd_bypass.c +++ b/tests/amdgpu/amd_bypass.c @@ -387,9 +387,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_display_require_retry(&data.display, data.drm_fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_subtest("8bpc-bypass-mode") diff --git a/tests/amdgpu/amd_color.c b/tests/amdgpu/amd_color.c index 34002ed88..c2f2f1824 100644 --- a/tests/amdgpu/amd_color.c +++ b/tests/amdgpu/amd_color.c @@ -404,9 +404,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_require_retry(&data.display, data.fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_subtest("crtc-linear-degamma") test_crtc_linear_degamma(&data); diff --git a/tests/amdgpu/amd_dp_dsc.c b/tests/amdgpu/amd_dp_dsc.c index e782ce84a..2c2f4c0ff 100644 --- a/tests/amdgpu/amd_dp_dsc.c +++ b/tests/amdgpu/amd_dp_dsc.c @@ -526,12 +526,12 @@ igt_main { data.fd = drm_open_driver_master(DRIVER_ANY); - igt_display_require(&data.display, data.fd); + kmstest_set_vt_graphics_mode(); + + igt_display_require_retry(&data.display, data.fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); igt_amd_require_dsc(&data.display, data.fd); - kmstest_set_vt_graphics_mode(); } igt_describe("Forces DSC on/off & ensures it is reset properly"); diff --git a/tests/amdgpu/amd_freesync_video_mode.c b/tests/amdgpu/amd_freesync_video_mode.c index 7716598dc..226ea7d37 100644 --- a/tests/amdgpu/amd_freesync_video_mode.c +++ b/tests/amdgpu/amd_freesync_video_mode.c @@ -871,9 +871,8 @@ igt_main { igt_skip("Not an amdgpu driver.\n"); } kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_display_require_retry(&data.display, data.drm_fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } /* Expectation: Modeset happens instantaneously without blanking */ diff --git a/tests/amdgpu/amd_hotplug.c b/tests/amdgpu/amd_hotplug.c index c13bf49d3..698446826 100644 --- a/tests/amdgpu/amd_hotplug.c +++ b/tests/amdgpu/amd_hotplug.c @@ -165,9 +165,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_require_retry(&data.display, data.fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); igt_amd_require_hpd(&data.display, data.fd); } diff --git a/tests/amdgpu/amd_ilr.c b/tests/amdgpu/amd_ilr.c index 50ca93a14..e332ce57d 100644 --- a/tests/amdgpu/amd_ilr.c +++ b/tests/amdgpu/amd_ilr.c @@ -264,9 +264,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_display_require_retry(&data.display, data.drm_fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Test ILR by trying training link rate at all supported ILRs"); diff --git a/tests/amdgpu/amd_link_settings.c b/tests/amdgpu/amd_link_settings.c index 6a7e8cc53..41bb5ac45 100644 --- a/tests/amdgpu/amd_link_settings.c +++ b/tests/amdgpu/amd_link_settings.c @@ -237,9 +237,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_display_require_retry(&data.display, data.drm_fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Retrieves all link settings configurations and retrains " diff --git a/tests/amdgpu/amd_max_bpc.c b/tests/amdgpu/amd_max_bpc.c index effe830a2..d67abf0ad 100644 --- a/tests/amdgpu/amd_max_bpc.c +++ b/tests/amdgpu/amd_max_bpc.c @@ -132,9 +132,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_require_retry(&data.display, data.fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Tests overly high 'max bpc' should not affect 4K modes on HDMI"); diff --git a/tests/amdgpu/amd_mem_leak.c b/tests/amdgpu/amd_mem_leak.c index e4a4b5c47..52b28a57f 100644 --- a/tests/amdgpu/amd_mem_leak.c +++ b/tests/amdgpu/amd_mem_leak.c @@ -219,9 +219,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_require_retry(&data.display, data.fd, 5, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Test memory leaks after resume from suspend"); diff --git a/tests/amdgpu/amd_mode_switch.c b/tests/amdgpu/amd_mode_switch.c index 270b1b9f6..e7ac81800 100644 --- a/tests/amdgpu/amd_mode_switch.c +++ b/tests/amdgpu/amd_mode_switch.c @@ -191,9 +191,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); - igt_require(&data.display.is_atomic); - igt_display_require_output(&data.display); + igt_display_require_retry(&data.display, data.fd, 2, 2); + igt_require(data.display.is_atomic); } for (i = 0; i < MAX_PIPES; i++) { diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c index ee7de5778..394fdf31f 100644 --- a/tests/amdgpu/amd_plane.c +++ b/tests/amdgpu/amd_plane.c @@ -910,9 +910,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_require_retry(&data.display, data.fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("MPO with 4K planes"); diff --git a/tests/amdgpu/amd_psr.c b/tests/amdgpu/amd_psr.c index 9da161a09..d1c332924 100644 --- a/tests/amdgpu/amd_psr.c +++ b/tests/amdgpu/amd_psr.c @@ -715,9 +715,8 @@ igt_main_args("", long_options, help_str, opt_handler, NULL) kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); - igt_require(&data.display.is_atomic); - igt_display_require_output(&data.display); + igt_display_require_retry(&data.display, data.fd, 2, 2); + igt_require(data.display.is_atomic); /* check if visual confirm option available */ if (opt.visual_confirm) { diff --git a/tests/amdgpu/amd_vrr_range.c b/tests/amdgpu/amd_vrr_range.c index a77895622..223f99c62 100644 --- a/tests/amdgpu/amd_vrr_range.c +++ b/tests/amdgpu/amd_vrr_range.c @@ -388,9 +388,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_require_retry(&data.display, data.fd, 2, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Hard coded Freesync EDID parsing"); -- 2.25.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [igt-dev] [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently 2023-08-11 22:12 ` [igt-dev] [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently Hersen Wu @ 2023-08-11 22:38 ` Alex Hung 0 siblings, 0 replies; 8+ messages in thread From: Alex Hung @ 2023-08-11 22:38 UTC (permalink / raw) To: Hersen Wu, igt-dev, rodrigo.siqueira, aurabindo.pillai, stylon.wang, hamza.mahfooz, sunpeng.li Cc: markyacoub Reviewed-by: Alex Hung <alex.hung@amd.com> On 2023-08-11 16:12, Hersen Wu wrote: > Use igt_display_require_retry to re-try igt_display_require > if igt dislay require output is not valid. If previous test > run suspend-resume test, current test igt display require > output may not be valid after initial igt_display_require. > This will let current test be skipped. By re-try > igt_display_require, igt display require output could be > valid. > > Signed-off-by: Hersen Wu <hersenxs.wu@amd.com> > --- > tests/amdgpu/amd_assr.c | 3 +-- > tests/amdgpu/amd_bypass.c | 3 +-- > tests/amdgpu/amd_color.c | 3 +-- > tests/amdgpu/amd_dp_dsc.c | 6 +++--- > tests/amdgpu/amd_freesync_video_mode.c | 3 +-- > tests/amdgpu/amd_hotplug.c | 3 +-- > tests/amdgpu/amd_ilr.c | 3 +-- > tests/amdgpu/amd_link_settings.c | 3 +-- > tests/amdgpu/amd_max_bpc.c | 3 +-- > tests/amdgpu/amd_mem_leak.c | 3 +-- > tests/amdgpu/amd_mode_switch.c | 5 ++--- > tests/amdgpu/amd_plane.c | 3 +-- > tests/amdgpu/amd_psr.c | 5 ++--- > tests/amdgpu/amd_vrr_range.c | 3 +-- > 14 files changed, 18 insertions(+), 31 deletions(-) > > diff --git a/tests/amdgpu/amd_assr.c b/tests/amdgpu/amd_assr.c > index fc2367f99..796c79eec 100644 > --- a/tests/amdgpu/amd_assr.c > +++ b/tests/amdgpu/amd_assr.c > @@ -281,9 +281,8 @@ igt_main > > kmstest_set_vt_graphics_mode(); > > - igt_display_require(&data.display, data.fd); > + igt_display_require_retry(&data.display, data.fd, 2, 2); > igt_require(data.display.is_atomic); > - igt_display_require_output(&data.display); > } > > igt_describe("Test ASSR on connected DP/eDP links"); > diff --git a/tests/amdgpu/amd_bypass.c b/tests/amdgpu/amd_bypass.c > index d192a30ea..351742205 100644 > --- a/tests/amdgpu/amd_bypass.c > +++ b/tests/amdgpu/amd_bypass.c > @@ -387,9 +387,8 @@ igt_main > > kmstest_set_vt_graphics_mode(); > > - igt_display_require(&data.display, data.drm_fd); > + igt_display_require_retry(&data.display, data.drm_fd, 2, 2); > igt_require(data.display.is_atomic); > - igt_display_require_output(&data.display); > } > > igt_subtest("8bpc-bypass-mode") > diff --git a/tests/amdgpu/amd_color.c b/tests/amdgpu/amd_color.c > index 34002ed88..c2f2f1824 100644 > --- a/tests/amdgpu/amd_color.c > +++ b/tests/amdgpu/amd_color.c > @@ -404,9 +404,8 @@ igt_main > > kmstest_set_vt_graphics_mode(); > > - igt_display_require(&data.display, data.fd); > + igt_display_require_retry(&data.display, data.fd, 2, 2); > igt_require(data.display.is_atomic); > - igt_display_require_output(&data.display); > } > > igt_subtest("crtc-linear-degamma") test_crtc_linear_degamma(&data); > diff --git a/tests/amdgpu/amd_dp_dsc.c b/tests/amdgpu/amd_dp_dsc.c > index e782ce84a..2c2f4c0ff 100644 > --- a/tests/amdgpu/amd_dp_dsc.c > +++ b/tests/amdgpu/amd_dp_dsc.c > @@ -526,12 +526,12 @@ igt_main > { > data.fd = drm_open_driver_master(DRIVER_ANY); > > - igt_display_require(&data.display, data.fd); > + kmstest_set_vt_graphics_mode(); > + > + igt_display_require_retry(&data.display, data.fd, 2, 2); > igt_require(data.display.is_atomic); > - igt_display_require_output(&data.display); > > igt_amd_require_dsc(&data.display, data.fd); > - kmstest_set_vt_graphics_mode(); > } > > igt_describe("Forces DSC on/off & ensures it is reset properly"); > diff --git a/tests/amdgpu/amd_freesync_video_mode.c b/tests/amdgpu/amd_freesync_video_mode.c > index 7716598dc..226ea7d37 100644 > --- a/tests/amdgpu/amd_freesync_video_mode.c > +++ b/tests/amdgpu/amd_freesync_video_mode.c > @@ -871,9 +871,8 @@ igt_main { > igt_skip("Not an amdgpu driver.\n"); > } > kmstest_set_vt_graphics_mode(); > - igt_display_require(&data.display, data.drm_fd); > + igt_display_require_retry(&data.display, data.drm_fd, 2, 2); > igt_require(data.display.is_atomic); > - igt_display_require_output(&data.display); > } > > /* Expectation: Modeset happens instantaneously without blanking */ > diff --git a/tests/amdgpu/amd_hotplug.c b/tests/amdgpu/amd_hotplug.c > index c13bf49d3..698446826 100644 > --- a/tests/amdgpu/amd_hotplug.c > +++ b/tests/amdgpu/amd_hotplug.c > @@ -165,9 +165,8 @@ igt_main > > kmstest_set_vt_graphics_mode(); > > - igt_display_require(&data.display, data.fd); > + igt_display_require_retry(&data.display, data.fd, 2, 2); > igt_require(data.display.is_atomic); > - igt_display_require_output(&data.display); > > igt_amd_require_hpd(&data.display, data.fd); > } > diff --git a/tests/amdgpu/amd_ilr.c b/tests/amdgpu/amd_ilr.c > index 50ca93a14..e332ce57d 100644 > --- a/tests/amdgpu/amd_ilr.c > +++ b/tests/amdgpu/amd_ilr.c > @@ -264,9 +264,8 @@ igt_main > > kmstest_set_vt_graphics_mode(); > > - igt_display_require(&data.display, data.drm_fd); > + igt_display_require_retry(&data.display, data.drm_fd, 2, 2); > igt_require(data.display.is_atomic); > - igt_display_require_output(&data.display); > } > > igt_describe("Test ILR by trying training link rate at all supported ILRs"); > diff --git a/tests/amdgpu/amd_link_settings.c b/tests/amdgpu/amd_link_settings.c > index 6a7e8cc53..41bb5ac45 100644 > --- a/tests/amdgpu/amd_link_settings.c > +++ b/tests/amdgpu/amd_link_settings.c > @@ -237,9 +237,8 @@ igt_main > > kmstest_set_vt_graphics_mode(); > > - igt_display_require(&data.display, data.drm_fd); > + igt_display_require_retry(&data.display, data.drm_fd, 2, 2); > igt_require(data.display.is_atomic); > - igt_display_require_output(&data.display); > } > > igt_describe("Retrieves all link settings configurations and retrains " > diff --git a/tests/amdgpu/amd_max_bpc.c b/tests/amdgpu/amd_max_bpc.c > index effe830a2..d67abf0ad 100644 > --- a/tests/amdgpu/amd_max_bpc.c > +++ b/tests/amdgpu/amd_max_bpc.c > @@ -132,9 +132,8 @@ igt_main > > kmstest_set_vt_graphics_mode(); > > - igt_display_require(&data.display, data.fd); > + igt_display_require_retry(&data.display, data.fd, 2, 2); > igt_require(data.display.is_atomic); > - igt_display_require_output(&data.display); > } > > igt_describe("Tests overly high 'max bpc' should not affect 4K modes on HDMI"); > diff --git a/tests/amdgpu/amd_mem_leak.c b/tests/amdgpu/amd_mem_leak.c > index e4a4b5c47..52b28a57f 100644 > --- a/tests/amdgpu/amd_mem_leak.c > +++ b/tests/amdgpu/amd_mem_leak.c > @@ -219,9 +219,8 @@ igt_main > > kmstest_set_vt_graphics_mode(); > > - igt_display_require(&data.display, data.fd); > + igt_display_require_retry(&data.display, data.fd, 5, 2); > igt_require(data.display.is_atomic); > - igt_display_require_output(&data.display); > } > > igt_describe("Test memory leaks after resume from suspend"); > diff --git a/tests/amdgpu/amd_mode_switch.c b/tests/amdgpu/amd_mode_switch.c > index 270b1b9f6..e7ac81800 100644 > --- a/tests/amdgpu/amd_mode_switch.c > +++ b/tests/amdgpu/amd_mode_switch.c > @@ -191,9 +191,8 @@ igt_main > > kmstest_set_vt_graphics_mode(); > > - igt_display_require(&data.display, data.fd); > - igt_require(&data.display.is_atomic); > - igt_display_require_output(&data.display); > + igt_display_require_retry(&data.display, data.fd, 2, 2); > + igt_require(data.display.is_atomic); > } > > for (i = 0; i < MAX_PIPES; i++) { > diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c > index ee7de5778..394fdf31f 100644 > --- a/tests/amdgpu/amd_plane.c > +++ b/tests/amdgpu/amd_plane.c > @@ -910,9 +910,8 @@ igt_main > > kmstest_set_vt_graphics_mode(); > > - igt_display_require(&data.display, data.fd); > + igt_display_require_retry(&data.display, data.fd, 2, 2); > igt_require(data.display.is_atomic); > - igt_display_require_output(&data.display); > } > > igt_describe("MPO with 4K planes"); > diff --git a/tests/amdgpu/amd_psr.c b/tests/amdgpu/amd_psr.c > index 9da161a09..d1c332924 100644 > --- a/tests/amdgpu/amd_psr.c > +++ b/tests/amdgpu/amd_psr.c > @@ -715,9 +715,8 @@ igt_main_args("", long_options, help_str, opt_handler, NULL) > > kmstest_set_vt_graphics_mode(); > > - igt_display_require(&data.display, data.fd); > - igt_require(&data.display.is_atomic); > - igt_display_require_output(&data.display); > + igt_display_require_retry(&data.display, data.fd, 2, 2); > + igt_require(data.display.is_atomic); > > /* check if visual confirm option available */ > if (opt.visual_confirm) { > diff --git a/tests/amdgpu/amd_vrr_range.c b/tests/amdgpu/amd_vrr_range.c > index a77895622..223f99c62 100644 > --- a/tests/amdgpu/amd_vrr_range.c > +++ b/tests/amdgpu/amd_vrr_range.c > @@ -388,9 +388,8 @@ igt_main > > kmstest_set_vt_graphics_mode(); > > - igt_display_require(&data.display, data.fd); > + igt_display_require_retry(&data.display, data.fd, 2, 2); > igt_require(data.display.is_atomic); > - igt_display_require_output(&data.display); > } > > igt_describe("Hard coded Freesync EDID parsing"); ^ permalink raw reply [flat|nested] 8+ messages in thread
* [igt-dev] [PATCH 1/2] [i-g-t] lib/igt_kms: Re-try display_require if require output is not valid @ 2023-08-10 14:52 Hersen Wu 2023-08-10 14:52 ` [igt-dev] [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently Hersen Wu 0 siblings, 1 reply; 8+ messages in thread From: Hersen Wu @ 2023-08-10 14:52 UTC (permalink / raw) To: igt-dev, rodrigo.siqueira, aurabindo.pillai, alex.hung, stylon.wang, hamza.mahfooz, sunpeng.li Cc: Hersen Wu, markyacoub Add igt_display_setup to re-try igt_display_require. At entry of each test, display setup is done by igt_display_require and igt_display_require_output. igt display require output may not be valid yet, this will let test be skipped. By re-try igt_display_require, require output could be valid. This will fix test case intermittent skip issue. Signed-off-by: Hersen Wu <hersenxs.wu@amd.com> --- lib/igt_kms.c | 19 +++++++++++++++++++ lib/igt_kms.h | 16 ++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/lib/igt_kms.c b/lib/igt_kms.c index e0959ccff..5506e2eb2 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -2862,6 +2862,25 @@ void igt_display_require_output(igt_display_t *display) igt_skip("No valid crtc/connector combinations found.\n"); } +/** + * is_igt_display_require_output_valid: + * @display: A pointer to an #igt_display_t structure + * + * Checks whether there's a valid @pipe/@output combination for the given @display + * Returns: true if a valid combination of @pipe and @output is found, or false + * if not found + */ +bool is_igt_display_require_output_valid(igt_display_t *display) +{ + enum pipe pipe; + igt_output_t *output; + + for_each_pipe_with_valid_output(display, pipe, output) + return true; + + return false; +} + /** * igt_display_require_output_on_pipe: * @display: A pointer to an #igt_display_t structure diff --git a/lib/igt_kms.h b/lib/igt_kms.h index 91355c910..350966214 100644 --- a/lib/igt_kms.h +++ b/lib/igt_kms.h @@ -485,6 +485,7 @@ int igt_display_drop_events(igt_display_t *display); int igt_display_get_n_pipes(igt_display_t *display); void igt_display_require_output(igt_display_t *display); void igt_display_require_output_on_pipe(igt_display_t *display, enum pipe pipe); +bool is_igt_display_require_output_valid(igt_display_t *display); const char *igt_output_name(igt_output_t *output); drmModeModeInfo *igt_output_get_mode(igt_output_t *output); @@ -722,6 +723,21 @@ uint64_t igt_plane_get_prop(igt_plane_t *plane, enum igt_atomic_plane_properties igt_plane_set_prop_changed(plane, prop); \ } while (0) +#define IGT_DISPLAY_REQUIRE_OUTPUT_VALID_MAX_RETRY_TIMES 5 + +#define igt_display_setup(display, fd, delay) \ + for (int j__ = 0; j__ < IGT_DISPLAY_REQUIRE_OUTPUT_VALID_MAX_RETRY_TIMES; j__++) { \ + igt_display_require(display, fd); \ + if (is_igt_display_require_output_valid(display)) { \ + if (j__ > 0) \ + igt_info("retry times:%d delay:%d seconds\n", j__, delay * j__); \ + break; \ + } \ + sleep(delay); \ + if (j__ == IGT_DISPLAY_REQUIRE_OUTPUT_VALID_MAX_RETRY_TIMES - 1) \ + igt_skip("No valid crtc/connector combinations found.\n"); \ + } + extern bool igt_plane_try_prop_enum(igt_plane_t *plane, enum igt_atomic_plane_properties prop, const char *val); -- 2.25.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [igt-dev] [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently 2023-08-10 14:52 [igt-dev] [PATCH 1/2] [i-g-t] lib/igt_kms: Re-try display_require if require output is not valid Hersen Wu @ 2023-08-10 14:52 ` Hersen Wu 2023-08-11 15:15 ` Wu, Hersen 0 siblings, 1 reply; 8+ messages in thread From: Hersen Wu @ 2023-08-10 14:52 UTC (permalink / raw) To: igt-dev, rodrigo.siqueira, aurabindo.pillai, alex.hung, stylon.wang, hamza.mahfooz, sunpeng.li Cc: Hersen Wu, markyacoub Use igt_display_setup to re-try igt_display_require if igt dislay require output is not valid. If previous test run suspend-resume test, current test igt display require output may not be valid after initial igt_display_require. This will let current test be skipped. By re-try igt_display_require, igt display require output could be valid. Signed-off-by: Hersen Wu <hersenxs.wu@amd.com> --- tests/amdgpu/amd_assr.c | 3 +-- tests/amdgpu/amd_bypass.c | 3 +-- tests/amdgpu/amd_color.c | 3 +-- tests/amdgpu/amd_dp_dsc.c | 6 +++--- tests/amdgpu/amd_freesync_video_mode.c | 3 +-- tests/amdgpu/amd_hotplug.c | 3 +-- tests/amdgpu/amd_ilr.c | 3 +-- tests/amdgpu/amd_link_settings.c | 3 +-- tests/amdgpu/amd_max_bpc.c | 3 +-- tests/amdgpu/amd_mem_leak.c | 3 +-- tests/amdgpu/amd_mode_switch.c | 5 ++--- tests/amdgpu/amd_plane.c | 3 +-- tests/amdgpu/amd_psr.c | 5 ++--- tests/amdgpu/amd_vrr_range.c | 3 +-- 14 files changed, 18 insertions(+), 31 deletions(-) diff --git a/tests/amdgpu/amd_assr.c b/tests/amdgpu/amd_assr.c index fc2367f99..6f4884d3b 100644 --- a/tests/amdgpu/amd_assr.c +++ b/tests/amdgpu/amd_assr.c @@ -281,9 +281,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_setup(&data.display, data.fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Test ASSR on connected DP/eDP links"); diff --git a/tests/amdgpu/amd_bypass.c b/tests/amdgpu/amd_bypass.c index d192a30ea..1c2756ae1 100644 --- a/tests/amdgpu/amd_bypass.c +++ b/tests/amdgpu/amd_bypass.c @@ -387,9 +387,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_display_setup(&data.display, data.drm_fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_subtest("8bpc-bypass-mode") diff --git a/tests/amdgpu/amd_color.c b/tests/amdgpu/amd_color.c index 34002ed88..6918f2b3c 100644 --- a/tests/amdgpu/amd_color.c +++ b/tests/amdgpu/amd_color.c @@ -404,9 +404,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_setup(&data.display, data.fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_subtest("crtc-linear-degamma") test_crtc_linear_degamma(&data); diff --git a/tests/amdgpu/amd_dp_dsc.c b/tests/amdgpu/amd_dp_dsc.c index e782ce84a..aa5e2ed08 100644 --- a/tests/amdgpu/amd_dp_dsc.c +++ b/tests/amdgpu/amd_dp_dsc.c @@ -526,12 +526,12 @@ igt_main { data.fd = drm_open_driver_master(DRIVER_ANY); - igt_display_require(&data.display, data.fd); + kmstest_set_vt_graphics_mode(); + + igt_display_setup(&data.display, data.fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); igt_amd_require_dsc(&data.display, data.fd); - kmstest_set_vt_graphics_mode(); } igt_describe("Forces DSC on/off & ensures it is reset properly"); diff --git a/tests/amdgpu/amd_freesync_video_mode.c b/tests/amdgpu/amd_freesync_video_mode.c index 7716598dc..54c2121a8 100644 --- a/tests/amdgpu/amd_freesync_video_mode.c +++ b/tests/amdgpu/amd_freesync_video_mode.c @@ -871,9 +871,8 @@ igt_main { igt_skip("Not an amdgpu driver.\n"); } kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_display_setup(&data.display, data.drm_fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } /* Expectation: Modeset happens instantaneously without blanking */ diff --git a/tests/amdgpu/amd_hotplug.c b/tests/amdgpu/amd_hotplug.c index c13bf49d3..73e3fef35 100644 --- a/tests/amdgpu/amd_hotplug.c +++ b/tests/amdgpu/amd_hotplug.c @@ -165,9 +165,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_setup(&data.display, data.fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); igt_amd_require_hpd(&data.display, data.fd); } diff --git a/tests/amdgpu/amd_ilr.c b/tests/amdgpu/amd_ilr.c index 50ca93a14..ca63e9c28 100644 --- a/tests/amdgpu/amd_ilr.c +++ b/tests/amdgpu/amd_ilr.c @@ -264,9 +264,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_display_setup(&data.display, data.drm_fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Test ILR by trying training link rate at all supported ILRs"); diff --git a/tests/amdgpu/amd_link_settings.c b/tests/amdgpu/amd_link_settings.c index 6a7e8cc53..4509e7f9c 100644 --- a/tests/amdgpu/amd_link_settings.c +++ b/tests/amdgpu/amd_link_settings.c @@ -237,9 +237,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_display_setup(&data.display, data.drm_fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Retrieves all link settings configurations and retrains " diff --git a/tests/amdgpu/amd_max_bpc.c b/tests/amdgpu/amd_max_bpc.c index effe830a2..9fe71d946 100644 --- a/tests/amdgpu/amd_max_bpc.c +++ b/tests/amdgpu/amd_max_bpc.c @@ -132,9 +132,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_setup(&data.display, data.fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Tests overly high 'max bpc' should not affect 4K modes on HDMI"); diff --git a/tests/amdgpu/amd_mem_leak.c b/tests/amdgpu/amd_mem_leak.c index e4a4b5c47..7fc7f608c 100644 --- a/tests/amdgpu/amd_mem_leak.c +++ b/tests/amdgpu/amd_mem_leak.c @@ -219,9 +219,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_setup(&data.display, data.fd, 5); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Test memory leaks after resume from suspend"); diff --git a/tests/amdgpu/amd_mode_switch.c b/tests/amdgpu/amd_mode_switch.c index 270b1b9f6..5b69269b9 100644 --- a/tests/amdgpu/amd_mode_switch.c +++ b/tests/amdgpu/amd_mode_switch.c @@ -191,9 +191,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); - igt_require(&data.display.is_atomic); - igt_display_require_output(&data.display); + igt_display_setup(&data.display, data.fd, 2); + igt_require(data.display.is_atomic); } for (i = 0; i < MAX_PIPES; i++) { diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c index ee7de5778..6dadca37f 100644 --- a/tests/amdgpu/amd_plane.c +++ b/tests/amdgpu/amd_plane.c @@ -910,9 +910,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_setup(&data.display, data.fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("MPO with 4K planes"); diff --git a/tests/amdgpu/amd_psr.c b/tests/amdgpu/amd_psr.c index 9da161a09..d753f0499 100644 --- a/tests/amdgpu/amd_psr.c +++ b/tests/amdgpu/amd_psr.c @@ -715,9 +715,8 @@ igt_main_args("", long_options, help_str, opt_handler, NULL) kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); - igt_require(&data.display.is_atomic); - igt_display_require_output(&data.display); + igt_display_setup(&data.display, data.fd, 2); + igt_require(data.display.is_atomic); /* check if visual confirm option available */ if (opt.visual_confirm) { diff --git a/tests/amdgpu/amd_vrr_range.c b/tests/amdgpu/amd_vrr_range.c index a77895622..a626e607d 100644 --- a/tests/amdgpu/amd_vrr_range.c +++ b/tests/amdgpu/amd_vrr_range.c @@ -388,9 +388,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_setup(&data.display, data.fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Hard coded Freesync EDID parsing"); -- 2.25.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [igt-dev] [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently 2023-08-10 14:52 ` [igt-dev] [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently Hersen Wu @ 2023-08-11 15:15 ` Wu, Hersen 0 siblings, 0 replies; 8+ messages in thread From: Wu, Hersen @ 2023-08-11 15:15 UTC (permalink / raw) To: Wu, Hersen, igt-dev@lists.freedesktop.org, Siqueira, Rodrigo, Pillai, Aurabindo, Hung, Alex, Wang, Chao-kai (Stylon), Mahfooz, Hamza, Li, Sun peng (Leo), petri.latvala@intel.com Cc: petri.latvala@intel.com, markyacoub@google.com [AMD Official Use Only - General] Re-send for review request. Thanks! Hersen -----Original Message----- From: Hersen Wu <hersenxs.wu@amd.com> Sent: Thursday, August 10, 2023 10:53 AM To: igt-dev@lists.freedesktop.org; Siqueira, Rodrigo <Rodrigo.Siqueira@amd.com>; Pillai, Aurabindo <Aurabindo.Pillai@amd.com>; Hung, Alex <Alex.Hung@amd.com>; Wang, Chao-kai (Stylon) <Stylon.Wang@amd.com>; Mahfooz, Hamza <Hamza.Mahfooz@amd.com>; Li, Sun peng (Leo) <Sunpeng.Li@amd.com> Cc: markyacoub@google.com; Wu, Hersen <hersenxs.wu@amd.com> Subject: [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently Use igt_display_setup to re-try igt_display_require if igt dislay require output is not valid. If previous test run suspend-resume test, current test igt display require output may not be valid after initial igt_display_require. This will let current test be skipped. By re-try igt_display_require, igt display require output could be valid. Signed-off-by: Hersen Wu <hersenxs.wu@amd.com> --- tests/amdgpu/amd_assr.c | 3 +-- tests/amdgpu/amd_bypass.c | 3 +-- tests/amdgpu/amd_color.c | 3 +-- tests/amdgpu/amd_dp_dsc.c | 6 +++--- tests/amdgpu/amd_freesync_video_mode.c | 3 +-- tests/amdgpu/amd_hotplug.c | 3 +-- tests/amdgpu/amd_ilr.c | 3 +-- tests/amdgpu/amd_link_settings.c | 3 +-- tests/amdgpu/amd_max_bpc.c | 3 +-- tests/amdgpu/amd_mem_leak.c | 3 +-- tests/amdgpu/amd_mode_switch.c | 5 ++--- tests/amdgpu/amd_plane.c | 3 +-- tests/amdgpu/amd_psr.c | 5 ++--- tests/amdgpu/amd_vrr_range.c | 3 +-- 14 files changed, 18 insertions(+), 31 deletions(-) diff --git a/tests/amdgpu/amd_assr.c b/tests/amdgpu/amd_assr.c index fc2367f99..6f4884d3b 100644 --- a/tests/amdgpu/amd_assr.c +++ b/tests/amdgpu/amd_assr.c @@ -281,9 +281,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_setup(&data.display, data.fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Test ASSR on connected DP/eDP links"); diff --git a/tests/amdgpu/amd_bypass.c b/tests/amdgpu/amd_bypass.c index d192a30ea..1c2756ae1 100644 --- a/tests/amdgpu/amd_bypass.c +++ b/tests/amdgpu/amd_bypass.c @@ -387,9 +387,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_display_setup(&data.display, data.drm_fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_subtest("8bpc-bypass-mode") diff --git a/tests/amdgpu/amd_color.c b/tests/amdgpu/amd_color.c index 34002ed88..6918f2b3c 100644 --- a/tests/amdgpu/amd_color.c +++ b/tests/amdgpu/amd_color.c @@ -404,9 +404,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_setup(&data.display, data.fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_subtest("crtc-linear-degamma") test_crtc_linear_degamma(&data); diff --git a/tests/amdgpu/amd_dp_dsc.c b/tests/amdgpu/amd_dp_dsc.c index e782ce84a..aa5e2ed08 100644 --- a/tests/amdgpu/amd_dp_dsc.c +++ b/tests/amdgpu/amd_dp_dsc.c @@ -526,12 +526,12 @@ igt_main { data.fd = drm_open_driver_master(DRIVER_ANY); - igt_display_require(&data.display, data.fd); + kmstest_set_vt_graphics_mode(); + + igt_display_setup(&data.display, data.fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); igt_amd_require_dsc(&data.display, data.fd); - kmstest_set_vt_graphics_mode(); } igt_describe("Forces DSC on/off & ensures it is reset properly"); diff --git a/tests/amdgpu/amd_freesync_video_mode.c b/tests/amdgpu/amd_freesync_video_mode.c index 7716598dc..54c2121a8 100644 --- a/tests/amdgpu/amd_freesync_video_mode.c +++ b/tests/amdgpu/amd_freesync_video_mode.c @@ -871,9 +871,8 @@ igt_main { igt_skip("Not an amdgpu driver.\n"); } kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_display_setup(&data.display, data.drm_fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } /* Expectation: Modeset happens instantaneously without blanking */ diff --git a/tests/amdgpu/amd_hotplug.c b/tests/amdgpu/amd_hotplug.c index c13bf49d3..73e3fef35 100644 --- a/tests/amdgpu/amd_hotplug.c +++ b/tests/amdgpu/amd_hotplug.c @@ -165,9 +165,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_setup(&data.display, data.fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); igt_amd_require_hpd(&data.display, data.fd); } diff --git a/tests/amdgpu/amd_ilr.c b/tests/amdgpu/amd_ilr.c index 50ca93a14..ca63e9c28 100644 --- a/tests/amdgpu/amd_ilr.c +++ b/tests/amdgpu/amd_ilr.c @@ -264,9 +264,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_display_setup(&data.display, data.drm_fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Test ILR by trying training link rate at all supported ILRs"); diff --git a/tests/amdgpu/amd_link_settings.c b/tests/amdgpu/amd_link_settings.c index 6a7e8cc53..4509e7f9c 100644 --- a/tests/amdgpu/amd_link_settings.c +++ b/tests/amdgpu/amd_link_settings.c @@ -237,9 +237,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); + igt_display_setup(&data.display, data.drm_fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Retrieves all link settings configurations and retrains " diff --git a/tests/amdgpu/amd_max_bpc.c b/tests/amdgpu/amd_max_bpc.c index effe830a2..9fe71d946 100644 --- a/tests/amdgpu/amd_max_bpc.c +++ b/tests/amdgpu/amd_max_bpc.c @@ -132,9 +132,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_setup(&data.display, data.fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Tests overly high 'max bpc' should not affect 4K modes on HDMI"); diff --git a/tests/amdgpu/amd_mem_leak.c b/tests/amdgpu/amd_mem_leak.c index e4a4b5c47..7fc7f608c 100644 --- a/tests/amdgpu/amd_mem_leak.c +++ b/tests/amdgpu/amd_mem_leak.c @@ -219,9 +219,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_setup(&data.display, data.fd, 5); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Test memory leaks after resume from suspend"); diff --git a/tests/amdgpu/amd_mode_switch.c b/tests/amdgpu/amd_mode_switch.c index 270b1b9f6..5b69269b9 100644 --- a/tests/amdgpu/amd_mode_switch.c +++ b/tests/amdgpu/amd_mode_switch.c @@ -191,9 +191,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); - igt_require(&data.display.is_atomic); - igt_display_require_output(&data.display); + igt_display_setup(&data.display, data.fd, 2); + igt_require(data.display.is_atomic); } for (i = 0; i < MAX_PIPES; i++) { diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c index ee7de5778..6dadca37f 100644 --- a/tests/amdgpu/amd_plane.c +++ b/tests/amdgpu/amd_plane.c @@ -910,9 +910,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_setup(&data.display, data.fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("MPO with 4K planes"); diff --git a/tests/amdgpu/amd_psr.c b/tests/amdgpu/amd_psr.c index 9da161a09..d753f0499 100644 --- a/tests/amdgpu/amd_psr.c +++ b/tests/amdgpu/amd_psr.c @@ -715,9 +715,8 @@ igt_main_args("", long_options, help_str, opt_handler, NULL) kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); - igt_require(&data.display.is_atomic); - igt_display_require_output(&data.display); + igt_display_setup(&data.display, data.fd, 2); + igt_require(data.display.is_atomic); /* check if visual confirm option available */ if (opt.visual_confirm) { diff --git a/tests/amdgpu/amd_vrr_range.c b/tests/amdgpu/amd_vrr_range.c index a77895622..a626e607d 100644 --- a/tests/amdgpu/amd_vrr_range.c +++ b/tests/amdgpu/amd_vrr_range.c @@ -388,9 +388,8 @@ igt_main kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.fd); + igt_display_setup(&data.display, data.fd, 2); igt_require(data.display.is_atomic); - igt_display_require_output(&data.display); } igt_describe("Hard coded Freesync EDID parsing"); -- 2.25.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-11-22 22:37 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-11-22 17:20 [igt-dev] [PATCH 1/2] [i-g-t] lib/igt_amd: Re-try display_require if require output is not valid Hersen Wu 2023-11-22 17:20 ` [igt-dev] [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently Hersen Wu 2023-11-22 21:23 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [1/2,i-g-t] lib/igt_amd: Re-try display_require if require output is not valid Patchwork 2023-11-22 22:37 ` [igt-dev] ✓ CI.xeBAT: success " Patchwork -- strict thread matches above, loose matches on Subject: below -- 2023-08-11 22:12 [igt-dev] [PATCH 1/2] [i-g-t] lib/igt_kms: " Hersen Wu 2023-08-11 22:12 ` [igt-dev] [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently Hersen Wu 2023-08-11 22:38 ` Alex Hung 2023-08-10 14:52 [igt-dev] [PATCH 1/2] [i-g-t] lib/igt_kms: Re-try display_require if require output is not valid Hersen Wu 2023-08-10 14:52 ` [igt-dev] [PATCH 2/2] [i-g-t] tests/amdgpu: Fix display tests be skipped intermittently Hersen Wu 2023-08-11 15:15 ` Wu, Hersen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox