* [PATCH i-g-t v2 1/1] tests/intel/xe_eudebug: refactor exec-queue-placements test
@ 2025-01-16 12:57 Jan Sokolowski
2025-01-16 15:37 ` ✗ i915.CI.BAT: failure for series starting with [i-g-t,v2,1/1] " Patchwork
2025-01-17 10:36 ` [PATCH i-g-t v2 1/1] " Manszewski, Christoph
0 siblings, 2 replies; 3+ messages in thread
From: Jan Sokolowski @ 2025-01-16 12:57 UTC (permalink / raw)
To: igt-dev; +Cc: Jan Sokolowski
In some cases, ccs_mode_all_engines can fail,
which will cause test fixture to not execute properly
and put the rest of the tests in an unstable state. Also,
ccs_mode_all_engines changes the state of the card for
other tests as well, thus it should clean after itself too,
which until now it didn't do.
Move the test to the end in the execution list and add
a proper cleanup method, ccs_mode_restore;
Signed-off-by: Jan Sokolowski <jan.sokolowski@intel.com>
---
v2: Forgot proper path in title
---
tests/intel/xe_eudebug.c | 46 ++++++++++++++++++++++++++++++----------
1 file changed, 35 insertions(+), 11 deletions(-)
diff --git a/tests/intel/xe_eudebug.c b/tests/intel/xe_eudebug.c
index 91e9ae885..c93b55857 100644
--- a/tests/intel/xe_eudebug.c
+++ b/tests/intel/xe_eudebug.c
@@ -2805,6 +2805,25 @@ static void ccs_mode_all_engines(int num_gt)
igt_require(num_gts_with_ccs_mode > 0);
}
+static void ccs_mode_restore(int num_gt)
+{
+ int fd, gt, gt_fd, ccs_mode, num_slices;
+
+ for (gt = 0; gt < num_gt; gt++) {
+ fd = drm_open_driver(DRIVER_XE);
+ gt_fd = xe_sysfs_gt_open(fd, gt);
+ close(fd);
+
+ if (igt_sysfs_scanf(gt_fd, "num_cslices", "%u", &num_slices) <= 0)
+ continue;
+
+ igt_assert(igt_sysfs_printf(gt_fd, "ccs_mode", "%u", 1) > 0);
+ igt_assert(igt_sysfs_scanf(gt_fd, "ccs_mode", "%u", &ccs_mode) > 0);
+ igt_assert(ccs_mode == 1);
+ close(gt_fd);
+ }
+}
+
igt_main
{
bool was_enabled;
@@ -2919,17 +2938,6 @@ igt_main
igt_subtest("discovery-empty-clients")
test_empty_discovery(fd, DISCOVERY_DESTROY_RESOURCES, 16);
- igt_subtest_group {
- igt_fixture {
- drm_close_driver(fd);
- ccs_mode_all_engines(gt_count);
- fd = drm_open_driver(DRIVER_XE);
- }
-
- igt_subtest("exec-queue-placements")
- test_basic_sessions(fd, EXEC_QUEUES_PLACEMENTS, 1, true);
- }
-
igt_fixture {
xe_eudebug_enable(fd, was_enabled);
drm_close_driver(fd);
@@ -2984,4 +2992,20 @@ igt_main
free(multigpu_was_enabled);
}
}
+
+ igt_subtest_group {
+ igt_fixture {
+ ccs_mode_all_engines(gt_count);
+ }
+
+ igt_subtest("exec-queue-placements") {
+ fd = drm_open_driver(DRIVER_XE);
+
+ test_basic_sessions(fd, EXEC_QUEUES_PLACEMENTS, 1, true);
+
+ ccs_mode_restore(gt_count);
+ drm_close_driver(fd);
+ }
+ }
+
}
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* ✗ i915.CI.BAT: failure for series starting with [i-g-t,v2,1/1] tests/intel/xe_eudebug: refactor exec-queue-placements test
2025-01-16 12:57 [PATCH i-g-t v2 1/1] tests/intel/xe_eudebug: refactor exec-queue-placements test Jan Sokolowski
@ 2025-01-16 15:37 ` Patchwork
2025-01-17 10:36 ` [PATCH i-g-t v2 1/1] " Manszewski, Christoph
1 sibling, 0 replies; 3+ messages in thread
From: Patchwork @ 2025-01-16 15:37 UTC (permalink / raw)
To: Jan Sokolowski; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 4859 bytes --]
== Series Details ==
Series: series starting with [i-g-t,v2,1/1] tests/intel/xe_eudebug: refactor exec-queue-placements test
URL : https://patchwork.freedesktop.org/series/143607/
State : failure
== Summary ==
CI Bug Log - changes from IGT_8195 -> IGTPW_12449
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_12449 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_12449, please notify your bug team (I915-ci-infra@lists.freedesktop.org) 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_12449/index.html
Participating hosts (42 -> 40)
------------------------------
Missing (2): bat-atsm-1 fi-snb-2520m
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_12449:
### IGT changes ###
#### Possible regressions ####
* igt@i915_selftest@live@workarounds:
- bat-adlp-9: [PASS][1] -> [ABORT][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8195/bat-adlp-9/igt@i915_selftest@live@workarounds.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12449/bat-adlp-9/igt@i915_selftest@live@workarounds.html
Known issues
------------
Here are the changes found in IGTPW_12449 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live:
- bat-mtlp-8: [PASS][3] -> [DMESG-FAIL][4] ([i915#12061]) +1 other test dmesg-fail
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8195/bat-mtlp-8/igt@i915_selftest@live.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12449/bat-mtlp-8/igt@i915_selftest@live.html
- bat-adlp-9: [PASS][5] -> [ABORT][6] ([i915#13399])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8195/bat-adlp-9/igt@i915_selftest@live.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12449/bat-adlp-9/igt@i915_selftest@live.html
- bat-arlh-2: [PASS][7] -> [INCOMPLETE][8] ([i915#12445])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8195/bat-arlh-2/igt@i915_selftest@live.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12449/bat-arlh-2/igt@i915_selftest@live.html
* igt@i915_selftest@live@workarounds:
- bat-arls-5: [PASS][9] -> [DMESG-FAIL][10] ([i915#12061]) +1 other test dmesg-fail
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8195/bat-arls-5/igt@i915_selftest@live@workarounds.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12449/bat-arls-5/igt@i915_selftest@live@workarounds.html
- bat-arlh-2: [PASS][11] -> [INCOMPLETE][12] ([i915#13269])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8195/bat-arlh-2/igt@i915_selftest@live@workarounds.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12449/bat-arlh-2/igt@i915_selftest@live@workarounds.html
#### Possible fixes ####
* igt@i915_selftest@live:
- bat-adlp-6: [ABORT][13] ([i915#13399]) -> [PASS][14] +1 other test pass
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8195/bat-adlp-6/igt@i915_selftest@live.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12449/bat-adlp-6/igt@i915_selftest@live.html
* igt@i915_selftest@live@workarounds:
- bat-mtlp-6: [DMESG-FAIL][15] ([i915#12061]) -> [PASS][16] +1 other test pass
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8195/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12449/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#12445]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12445
[i915#13269]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13269
[i915#13399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13399
[i915#13494]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13494
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_8195 -> IGTPW_12449
* Linux: CI_DRM_15966 -> CI_DRM_15967
CI-20190529: 20190529
CI_DRM_15966: 2334d1179d652eb4032fcb0d8e6f53cbc6a1011c @ git://anongit.freedesktop.org/gfx-ci/linux
CI_DRM_15967: 50d15a728295807727a2642284d639fc71ecaa15 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_12449: 60034091ec5e0fc09c76c44fd3e34775b5ab681b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_8195: 8195
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12449/index.html
[-- Attachment #2: Type: text/html, Size: 5763 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH i-g-t v2 1/1] tests/intel/xe_eudebug: refactor exec-queue-placements test
2025-01-16 12:57 [PATCH i-g-t v2 1/1] tests/intel/xe_eudebug: refactor exec-queue-placements test Jan Sokolowski
2025-01-16 15:37 ` ✗ i915.CI.BAT: failure for series starting with [i-g-t,v2,1/1] " Patchwork
@ 2025-01-17 10:36 ` Manszewski, Christoph
1 sibling, 0 replies; 3+ messages in thread
From: Manszewski, Christoph @ 2025-01-17 10:36 UTC (permalink / raw)
To: Jan Sokolowski, igt-dev
Hi Jan,
On 16.01.2025 13:57, Jan Sokolowski wrote:
> In some cases, ccs_mode_all_engines can fail,
> which will cause test fixture to not execute properly
> and put the rest of the tests in an unstable state. Also,
> ccs_mode_all_engines changes the state of the card for
> other tests as well, thus it should clean after itself too,
> which until now it didn't do.
>
> Move the test to the end in the execution list and add
> a proper cleanup method, ccs_mode_restore;
>
> Signed-off-by: Jan Sokolowski <jan.sokolowski@intel.com>
> ---
>
> v2: Forgot proper path in title
>
> ---
> tests/intel/xe_eudebug.c | 46 ++++++++++++++++++++++++++++++----------
> 1 file changed, 35 insertions(+), 11 deletions(-)
>
> diff --git a/tests/intel/xe_eudebug.c b/tests/intel/xe_eudebug.c
> index 91e9ae885..c93b55857 100644
> --- a/tests/intel/xe_eudebug.c
> +++ b/tests/intel/xe_eudebug.c
> @@ -2805,6 +2805,25 @@ static void ccs_mode_all_engines(int num_gt)
> igt_require(num_gts_with_ccs_mode > 0);
> }
>
> +static void ccs_mode_restore(int num_gt)
> +{
> + int fd, gt, gt_fd, ccs_mode, num_slices;
> +
> + for (gt = 0; gt < num_gt; gt++) {
> + fd = drm_open_driver(DRIVER_XE);
> + gt_fd = xe_sysfs_gt_open(fd, gt);
> + close(fd);
> +
> + if (igt_sysfs_scanf(gt_fd, "num_cslices", "%u", &num_slices) <= 0)
> + continue;
> +
> + igt_assert(igt_sysfs_printf(gt_fd, "ccs_mode", "%u", 1) > 0);
Well - this doesn't really restore the previous value, rather sets it to 1.
> + igt_assert(igt_sysfs_scanf(gt_fd, "ccs_mode", "%u", &ccs_mode) > 0);
> + igt_assert(ccs_mode == 1);
> + close(gt_fd);
> + }
> +}
> +
> igt_main
> {
> bool was_enabled;
> @@ -2919,17 +2938,6 @@ igt_main
> igt_subtest("discovery-empty-clients")
> test_empty_discovery(fd, DISCOVERY_DESTROY_RESOURCES, 16);
>
> - igt_subtest_group {
> - igt_fixture {
> - drm_close_driver(fd);
> - ccs_mode_all_engines(gt_count);
> - fd = drm_open_driver(DRIVER_XE);
> - }
> -
> - igt_subtest("exec-queue-placements")
> - test_basic_sessions(fd, EXEC_QUEUES_PLACEMENTS, 1, true);
> - }
> -
> igt_fixture {
> xe_eudebug_enable(fd, was_enabled);
> drm_close_driver(fd);
> @@ -2984,4 +2992,20 @@ igt_main
> free(multigpu_was_enabled);
> }
> }
> +
> + igt_subtest_group {
> + igt_fixture {
> + ccs_mode_all_engines(gt_count);
> + }
> +
> + igt_subtest("exec-queue-placements") {
> + fd = drm_open_driver(DRIVER_XE);
> +
> + test_basic_sessions(fd, EXEC_QUEUES_PLACEMENTS, 1, true);
> +
> + ccs_mode_restore(gt_count);
This looks weird - the fixture sets something, that the test unsets. I
think this should be symmetric - either we want the setting to apply for
a subtest_group and we set/unset it in a fixture, or we want it to be
subtest specific so we set/unset it in a subtest. The original placement
in the fixture indicates the former, though for now we only have a
single subtest and I am not sure what the plans for future tests are.
I am also not convinced about moving the subtest group to work around
the fact, that the skip from 'ccs_mode_all_engines' could leave the
device closed. You could just fix it by either returning an appropriate
value based on which you skip after reopening the driver in the fixture,
or let the function handle the closing and opening by passing in the fd,
and returning a new one. In the end I am also not sure why we need that
close/open in the first place though I assume it is there for a reason.
Thanks,
Christoph
> + drm_close_driver(fd);
> + }
> + }
> +
> }
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-01-17 10:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-16 12:57 [PATCH i-g-t v2 1/1] tests/intel/xe_eudebug: refactor exec-queue-placements test Jan Sokolowski
2025-01-16 15:37 ` ✗ i915.CI.BAT: failure for series starting with [i-g-t,v2,1/1] " Patchwork
2025-01-17 10:36 ` [PATCH i-g-t v2 1/1] " Manszewski, Christoph
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox