* [igt-dev] [PATCH i-g-t 0/3] Add multi-gpu basic error state subtest
@ 2023-04-20 18:24 Kamil Konieczny
2023-04-20 18:24 ` [igt-dev] [PATCH i-g-t 1/3] tests/i915_hangman: make sysfs var local Kamil Konieczny
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Kamil Konieczny @ 2023-04-20 18:24 UTC (permalink / raw)
To: igt-dev
This adds basic error state check subtest for multi-GPU hw
config. First two patches are preparation for change and do only
moving out global vars into local ones.
Kamil Konieczny (3):
tests/i915_hangman: make sysfs var local
tests/i915_hangman: make device var local
tests/i915_hangman: add multigpu basic error state subtest
tests/i915/i915_hangman.c | 166 ++++++++++++++++++++++++--------------
1 file changed, 107 insertions(+), 59 deletions(-)
--
2.37.2
^ permalink raw reply [flat|nested] 9+ messages in thread
* [igt-dev] [PATCH i-g-t 1/3] tests/i915_hangman: make sysfs var local
2023-04-20 18:24 [igt-dev] [PATCH i-g-t 0/3] Add multi-gpu basic error state subtest Kamil Konieczny
@ 2023-04-20 18:24 ` Kamil Konieczny
2023-04-27 15:01 ` Mauro Carvalho Chehab
2023-04-20 18:24 ` [igt-dev] [PATCH i-g-t 2/3] tests/i915_hangman: make device " Kamil Konieczny
` (3 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Kamil Konieczny @ 2023-04-20 18:24 UTC (permalink / raw)
To: igt-dev
Global sysfs variable make it hard to use with multiGPU tests,
so make it local.
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
tests/i915/i915_hangman.c | 56 +++++++++++++++++++--------------------
1 file changed, 28 insertions(+), 28 deletions(-)
diff --git a/tests/i915/i915_hangman.c b/tests/i915/i915_hangman.c
index 8acce8f1a..274a0ede1 100644
--- a/tests/i915/i915_hangman.c
+++ b/tests/i915/i915_hangman.c
@@ -46,7 +46,6 @@
#endif
static int device = -1;
-static int sysfs = -1;
#define OFFSET_ALIVE 10
@@ -118,7 +117,7 @@ static bool has_error_state(int dir)
return result;
}
-static void assert_entry(const char *s, bool expect)
+static void assert_entry(int sysfs, const char *s, bool expect)
{
char *error;
@@ -132,40 +131,40 @@ static void assert_entry(const char *s, bool expect)
free(error);
}
-static void assert_error_state_clear(void)
+static void assert_error_state_clear(int sysfs)
{
- assert_entry("no error state collected", true);
+ assert_entry(sysfs, "no error state collected", true);
}
-static void assert_error_state_collected(void)
+static void assert_error_state_collected(int sysfs)
{
- assert_entry("no error state collected", false);
+ assert_entry(sysfs, "no error state collected", false);
}
-static void clear_error_state(void)
+static void clear_error_state(int sysfs)
{
igt_sysfs_write(sysfs, "error", "", 1);
}
-static void test_error_state_basic(void)
+static void test_error_state_basic(int i915, int sysfs)
{
int fd;
- clear_error_state();
- assert_error_state_clear();
+ clear_error_state(sysfs);
+ assert_error_state_clear(sysfs);
/* Manually trigger a hang by request a reset */
fd = igt_debugfs_open(device, "i915_wedged", O_WRONLY);
igt_ignore_warn(write(fd, "1\n", 2));
close(fd);
- assert_error_state_collected();
+ assert_error_state_collected(sysfs);
- clear_error_state();
- assert_error_state_clear();
+ clear_error_state(sysfs);
+ assert_error_state_clear(sysfs);
}
-static FILE *open_error(void)
+static FILE *open_error(int sysfs)
{
int fd;
@@ -188,12 +187,12 @@ static bool uses_cmd_parser(void)
return parser_version > 0;
}
-static void check_error_state(const char *expected_ring_name,
+static void check_error_state(int sysfs, const char *expected_ring_name,
uint64_t expected_offset,
const uint32_t *batch)
{
bool cmd_parser = uses_cmd_parser();
- FILE *file = open_error();
+ FILE *file = open_error(sysfs);
char *line = NULL;
size_t line_size = 0;
bool found = false;
@@ -254,12 +253,12 @@ static void check_error_state(const char *expected_ring_name,
free(line);
fclose(file);
- clear_error_state();
+ clear_error_state(sysfs);
igt_assert(found);
}
-static void test_error_state_capture(const intel_ctx_t *ctx,
+static void test_error_state_capture(int sysfs, const intel_ctx_t *ctx,
const struct intel_execution_engine2 *e)
{
uint32_t *batch;
@@ -267,7 +266,7 @@ static void test_error_state_capture(const intel_ctx_t *ctx,
uint64_t offset;
uint64_t ahnd = get_reloc_ahnd(device, ctx->id);
- clear_error_state();
+ clear_error_state(sysfs);
hang = igt_hang_ctx_with_ahnd(device, ahnd, ctx->id, e->flags,
HANG_ALLOW_CAPTURE);
@@ -278,7 +277,7 @@ static void test_error_state_capture(const intel_ctx_t *ctx,
igt_post_hang_ring(device, hang);
- check_error_state(e->name, offset, batch);
+ check_error_state(sysfs, e->name, offset, batch);
munmap(batch, 4096);
put_ahnd(ahnd);
@@ -457,7 +456,7 @@ static void hangcheck_unterminated(const intel_ctx_t *ctx)
check_alive();
}
-static void do_tests(const char *name, const char *prefix,
+static void do_tests(int sysfs, const char *name, const char *prefix,
const intel_ctx_t *ctx)
{
const struct intel_execution_engine2 *e;
@@ -469,7 +468,7 @@ static void do_tests(const char *name, const char *prefix,
igt_subtest_with_dynamic(buff) {
for_each_ctx_engine(device, ctx, e) {
igt_dynamic_f("%s", e->name)
- test_error_state_capture(ctx, e);
+ test_error_state_capture(sysfs, ctx, e);
}
}
@@ -521,6 +520,7 @@ igt_main
igt_hang_t hang = {};
struct gem_engine_properties saved_params[GEM_MAX_ENGINES];
int num_engines = 0;
+ int sysfs_fd = -1;
igt_fixture {
const struct intel_execution_engine2 *e;
@@ -532,10 +532,10 @@ igt_main
hang = igt_allow_hang(device, ctx->id, HANG_ALLOW_CAPTURE);
- sysfs = igt_sysfs_open(device);
- igt_assert(sysfs != -1);
+ sysfs_fd = igt_sysfs_open(device);
+ igt_assert(sysfs_fd != -1);
- igt_require(has_error_state(sysfs));
+ igt_require(has_error_state(sysfs_fd));
gem_require_mmap_device_coherent(device);
@@ -549,7 +549,7 @@ igt_main
igt_describe("Basic error capture");
igt_subtest("error-state-basic")
- test_error_state_basic();
+ test_error_state_basic(sysfs_fd, device);
igt_describe("Check that executing unintialised memory causes a hang");
igt_subtest("hangcheck-unterminated")
@@ -565,7 +565,7 @@ igt_main
}
}
- do_tests("GT", "gt", ctx);
+ do_tests(sysfs_fd, "GT", "gt", ctx);
igt_fixture {
igt_disallow_hang(device, hang);
@@ -573,7 +573,7 @@ igt_main
hang = igt_allow_hang(device, ctx->id, HANG_ALLOW_CAPTURE | HANG_WANT_ENGINE_RESET);
}
- do_tests("engine", "engine", ctx);
+ do_tests(sysfs_fd, "engine", "engine", ctx);
igt_fixture {
int i;
--
2.37.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [igt-dev] [PATCH i-g-t 2/3] tests/i915_hangman: make device var local
2023-04-20 18:24 [igt-dev] [PATCH i-g-t 0/3] Add multi-gpu basic error state subtest Kamil Konieczny
2023-04-20 18:24 ` [igt-dev] [PATCH i-g-t 1/3] tests/i915_hangman: make sysfs var local Kamil Konieczny
@ 2023-04-20 18:24 ` Kamil Konieczny
2023-04-27 15:04 ` Mauro Carvalho Chehab
2023-04-20 18:24 ` [igt-dev] [PATCH i-g-t 3/3] tests/i915_hangman: add multigpu basic error state subtest Kamil Konieczny
` (2 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Kamil Konieczny @ 2023-04-20 18:24 UTC (permalink / raw)
To: igt-dev
Global device variable make it hard to use with multiGPU tests,
so make it local.
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
tests/i915/i915_hangman.c | 71 ++++++++++++++++++++-------------------
1 file changed, 36 insertions(+), 35 deletions(-)
diff --git a/tests/i915/i915_hangman.c b/tests/i915/i915_hangman.c
index 274a0ede1..d76d0a037 100644
--- a/tests/i915/i915_hangman.c
+++ b/tests/i915/i915_hangman.c
@@ -45,8 +45,6 @@
#define I915_PARAM_CMD_PARSER_VERSION 28
#endif
-static int device = -1;
-
#define OFFSET_ALIVE 10
IGT_TEST_DESCRIPTION("Tests for hang detection and recovery");
@@ -146,7 +144,7 @@ static void clear_error_state(int sysfs)
igt_sysfs_write(sysfs, "error", "", 1);
}
-static void test_error_state_basic(int i915, int sysfs)
+static void test_error_state_basic(int device, int sysfs)
{
int fd;
@@ -175,7 +173,7 @@ static FILE *open_error(int sysfs)
return fdopen(fd, "r");
}
-static bool uses_cmd_parser(void)
+static bool uses_cmd_parser(int device)
{
int parser_version = 0;
drm_i915_getparam_t gp;
@@ -187,11 +185,12 @@ static bool uses_cmd_parser(void)
return parser_version > 0;
}
-static void check_error_state(int sysfs, const char *expected_ring_name,
+static void check_error_state(int device, int sysfs,
+ const char *expected_ring_name,
uint64_t expected_offset,
const uint32_t *batch)
{
- bool cmd_parser = uses_cmd_parser();
+ bool cmd_parser = uses_cmd_parser(device);
FILE *file = open_error(sysfs);
char *line = NULL;
size_t line_size = 0;
@@ -258,7 +257,8 @@ static void check_error_state(int sysfs, const char *expected_ring_name,
igt_assert(found);
}
-static void test_error_state_capture(int sysfs, const intel_ctx_t *ctx,
+static void test_error_state_capture(int device, int sysfs,
+ const intel_ctx_t *ctx,
const struct intel_execution_engine2 *e)
{
uint32_t *batch;
@@ -277,7 +277,7 @@ static void test_error_state_capture(int sysfs, const intel_ctx_t *ctx,
igt_post_hang_ring(device, hang);
- check_error_state(sysfs, e->name, offset, batch);
+ check_error_state(device, sysfs, e->name, offset, batch);
munmap(batch, 4096);
put_ahnd(ahnd);
@@ -310,7 +310,7 @@ static void chk_err(int *dst, int err, int expected)
#define ERR_FENCE_STAT 4
static void
-test_engine_hang(const intel_ctx_t *ctx,
+test_engine_hang(int device, const intel_ctx_t *ctx,
const struct intel_execution_engine2 *e, unsigned int flags)
{
const struct intel_execution_engine2 *other;
@@ -392,7 +392,7 @@ static void sig_io(int sig)
hang_count++;
}
-static void test_hang_detector(const intel_ctx_t *ctx,
+static void test_hang_detector(int device, const intel_ctx_t *ctx,
const struct intel_execution_engine2 *e)
{
igt_hang_t hang;
@@ -425,7 +425,7 @@ static void test_hang_detector(const intel_ctx_t *ctx,
* case and it takes a lot more time to wrap, so the acthd can potentially keep
* increasing for a long time
*/
-static void hangcheck_unterminated(const intel_ctx_t *ctx)
+static void hangcheck_unterminated(int device, const intel_ctx_t *ctx)
{
/* timeout needs to be greater than ~5*hangcheck */
int64_t timeout_ns = 100ull * NSEC_PER_SEC; /* 100 seconds */
@@ -456,7 +456,7 @@ static void hangcheck_unterminated(const intel_ctx_t *ctx)
check_alive();
}
-static void do_tests(int sysfs, const char *name, const char *prefix,
+static void do_tests(int device, int sysfs, const char *name, const char *prefix,
const intel_ctx_t *ctx)
{
const struct intel_execution_engine2 *e;
@@ -468,7 +468,7 @@ static void do_tests(int sysfs, const char *name, const char *prefix,
igt_subtest_with_dynamic(buff) {
for_each_ctx_engine(device, ctx, e) {
igt_dynamic_f("%s", e->name)
- test_error_state_capture(sysfs, ctx, e);
+ test_error_state_capture(device, sysfs, ctx, e);
}
}
@@ -489,7 +489,7 @@ static void do_tests(int sysfs, const char *name, const char *prefix,
for_each_ctx_engine(device, ctx, e) {
igt_dynamic_f("%s", e->name)
- test_engine_hang(ctx, e, 0);
+ test_engine_hang(device, ctx, e, 0);
}
}
@@ -509,7 +509,7 @@ static void do_tests(int sysfs, const char *name, const char *prefix,
for_each_ctx_engine(device, ctx, e) {
igt_dynamic_f("%s", e->name)
- test_engine_hang(ctx, e, IGT_SPIN_INVALID_CS);
+ test_engine_hang(device, ctx, e, IGT_SPIN_INVALID_CS);
}
}
}
@@ -521,68 +521,69 @@ igt_main
struct gem_engine_properties saved_params[GEM_MAX_ENGINES];
int num_engines = 0;
int sysfs_fd = -1;
+ int i915 = -1;
igt_fixture {
const struct intel_execution_engine2 *e;
- device = drm_open_driver(DRIVER_INTEL);
- igt_require_gem(device);
+ i915 = drm_open_driver(DRIVER_INTEL);
+ igt_require_gem(i915);
- ctx = intel_ctx_create_all_physical(device);
+ ctx = intel_ctx_create_all_physical(i915);
- hang = igt_allow_hang(device, ctx->id, HANG_ALLOW_CAPTURE);
+ hang = igt_allow_hang(i915, ctx->id, HANG_ALLOW_CAPTURE);
- sysfs_fd = igt_sysfs_open(device);
+ sysfs_fd = igt_sysfs_open(i915);
igt_assert(sysfs_fd != -1);
igt_require(has_error_state(sysfs_fd));
- gem_require_mmap_device_coherent(device);
+ gem_require_mmap_device_coherent(i915);
- for_each_physical_engine(device, e) {
+ for_each_physical_engine(i915, e) {
saved_params[num_engines].engine = e;
saved_params[num_engines].preempt_timeout = 500;
saved_params[num_engines].heartbeat_interval = 1000;
- gem_engine_properties_configure(device, saved_params + num_engines++);
+ gem_engine_properties_configure(i915, saved_params + num_engines++);
}
}
igt_describe("Basic error capture");
igt_subtest("error-state-basic")
- test_error_state_basic(sysfs_fd, device);
+ test_error_state_basic(i915, sysfs_fd);
igt_describe("Check that executing unintialised memory causes a hang");
igt_subtest("hangcheck-unterminated")
- hangcheck_unterminated(ctx);
+ hangcheck_unterminated(i915, ctx);
igt_describe("Check that hang detector works");
igt_subtest_with_dynamic("detector") {
const struct intel_execution_engine2 *e;
- for_each_ctx_engine(device, ctx, e) {
+ for_each_ctx_engine(i915, ctx, e) {
igt_dynamic_f("%s", e->name)
- test_hang_detector(ctx, e);
+ test_hang_detector(i915, ctx, e);
}
}
- do_tests(sysfs_fd, "GT", "gt", ctx);
+ do_tests(i915, sysfs_fd, "GT", "gt", ctx);
igt_fixture {
- igt_disallow_hang(device, hang);
+ igt_disallow_hang(i915, hang);
- hang = igt_allow_hang(device, ctx->id, HANG_ALLOW_CAPTURE | HANG_WANT_ENGINE_RESET);
+ hang = igt_allow_hang(i915, ctx->id, HANG_ALLOW_CAPTURE | HANG_WANT_ENGINE_RESET);
}
- do_tests(sysfs_fd, "engine", "engine", ctx);
+ do_tests(i915, sysfs_fd, "engine", "engine", ctx);
igt_fixture {
int i;
for (i = 0; i < num_engines; i++)
- gem_engine_properties_restore(device, saved_params + i);
+ gem_engine_properties_restore(i915, saved_params + i);
- igt_disallow_hang(device, hang);
- intel_ctx_destroy(device, ctx);
- close(device);
+ igt_disallow_hang(i915, hang);
+ intel_ctx_destroy(i915, ctx);
+ close(i915);
}
}
--
2.37.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [igt-dev] [PATCH i-g-t 3/3] tests/i915_hangman: add multigpu basic error state subtest
2023-04-20 18:24 [igt-dev] [PATCH i-g-t 0/3] Add multi-gpu basic error state subtest Kamil Konieczny
2023-04-20 18:24 ` [igt-dev] [PATCH i-g-t 1/3] tests/i915_hangman: make sysfs var local Kamil Konieczny
2023-04-20 18:24 ` [igt-dev] [PATCH i-g-t 2/3] tests/i915_hangman: make device " Kamil Konieczny
@ 2023-04-20 18:24 ` Kamil Konieczny
2023-04-27 15:09 ` Mauro Carvalho Chehab
2023-04-20 19:13 ` [igt-dev] ✓ Fi.CI.BAT: success for Add multi-gpu " Patchwork
2023-04-21 2:49 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
4 siblings, 1 reply; 9+ messages in thread
From: Kamil Konieczny @ 2023-04-20 18:24 UTC (permalink / raw)
To: igt-dev
Verify that basic error capture works in multiGPU hardware
configuration for two or more GPUs.
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
tests/i915/i915_hangman.c | 63 ++++++++++++++++++++++++++++++++++-----
1 file changed, 55 insertions(+), 8 deletions(-)
diff --git a/tests/i915/i915_hangman.c b/tests/i915/i915_hangman.c
index d76d0a037..580b3a739 100644
--- a/tests/i915/i915_hangman.c
+++ b/tests/i915/i915_hangman.c
@@ -39,6 +39,7 @@
#include "igt_store.h"
#include "igt_sysfs.h"
#include "igt_debugfs.h"
+#include "igt_device_scan.h"
#include "sw_sync.h"
#ifndef I915_PARAM_CMD_PARSER_VERSION
@@ -514,6 +515,21 @@ static void do_tests(int device, int sysfs, const char *name, const char *prefix
}
}
+static int set_engines_prop(int device, struct gem_engine_properties *params)
+{
+ const struct intel_execution_engine2 *e;
+ int num = 0;
+
+ for_each_physical_engine(device, e) {
+ params[num].engine = e;
+ params[num].preempt_timeout = 500;
+ params[num].heartbeat_interval = 1000;
+ gem_engine_properties_configure(device, params + num++);
+ }
+
+ return num;
+}
+
igt_main
{
const intel_ctx_t *ctx;
@@ -522,10 +538,9 @@ igt_main
int num_engines = 0;
int sysfs_fd = -1;
int i915 = -1;
+ int gpu_count;
igt_fixture {
- const struct intel_execution_engine2 *e;
-
i915 = drm_open_driver(DRIVER_INTEL);
igt_require_gem(i915);
@@ -540,12 +555,8 @@ igt_main
gem_require_mmap_device_coherent(i915);
- for_each_physical_engine(i915, e) {
- saved_params[num_engines].engine = e;
- saved_params[num_engines].preempt_timeout = 500;
- saved_params[num_engines].heartbeat_interval = 1000;
- gem_engine_properties_configure(i915, saved_params + num_engines++);
- }
+ num_engines = set_engines_prop(i915, &saved_params[0]);
+ gpu_count = igt_device_filter_count();
}
igt_describe("Basic error capture");
@@ -576,6 +587,42 @@ igt_main
do_tests(i915, sysfs_fd, "engine", "engine", ctx);
+ igt_describe("Basic multigpu error capture");
+ igt_subtest("multigpu-error-basic") {
+ igt_require(gpu_count > 1);
+
+ igt_multi_fork(child, gpu_count) {
+ int gpu_fd, gpu_sysfs;
+
+ if (child)
+ gpu_fd = __drm_open_driver_another(child, DRIVER_INTEL);
+ else
+ gpu_fd = gem_reopen_driver(i915);
+
+ igt_assert(gpu_fd > 0);
+ igt_require_gem(gpu_fd);
+ ctx = intel_ctx_create_all_physical(gpu_fd);
+ hang = igt_allow_hang(gpu_fd, ctx->id, HANG_ALLOW_CAPTURE | HANG_WANT_ENGINE_RESET);
+ gpu_sysfs = igt_sysfs_open(gpu_fd);
+ igt_assert(gpu_sysfs != -1);
+ igt_require(has_error_state(gpu_sysfs));
+ gem_require_mmap_device_coherent(gpu_sysfs);
+ num_engines = set_engines_prop(gpu_fd, &saved_params[0]);
+
+ test_error_state_basic(gpu_fd, gpu_sysfs);
+
+ igt_disallow_hang(gpu_fd, hang);
+ intel_ctx_destroy(gpu_fd, ctx);
+ if (child)
+ for (int i = 0; i < num_engines; i++)
+ gem_engine_properties_restore(i915, saved_params + i);
+ close(gpu_fd);
+ close(gpu_sysfs);
+ }
+
+ igt_waitchildren();
+ }
+
igt_fixture {
int i;
--
2.37.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for Add multi-gpu basic error state subtest
2023-04-20 18:24 [igt-dev] [PATCH i-g-t 0/3] Add multi-gpu basic error state subtest Kamil Konieczny
` (2 preceding siblings ...)
2023-04-20 18:24 ` [igt-dev] [PATCH i-g-t 3/3] tests/i915_hangman: add multigpu basic error state subtest Kamil Konieczny
@ 2023-04-20 19:13 ` Patchwork
2023-04-21 2:49 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2023-04-20 19:13 UTC (permalink / raw)
To: Kamil Konieczny; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 4896 bytes --]
== Series Details ==
Series: Add multi-gpu basic error state subtest
URL : https://patchwork.freedesktop.org/series/116775/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_13034 -> IGTPW_8833
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/index.html
Participating hosts (37 -> 37)
------------------------------
Additional (1): fi-kbl-soraka
Missing (1): fi-snb-2520m
Known issues
------------
Here are the changes found in IGTPW_8833 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_huc_copy@huc-copy:
- fi-kbl-soraka: NOTRUN -> [SKIP][1] ([fdo#109271] / [i915#2190])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@basic:
- fi-kbl-soraka: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#4613]) +3 similar issues
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html
* igt@i915_selftest@live@execlists:
- fi-kbl-soraka: NOTRUN -> [INCOMPLETE][3] ([i915#7156] / [i915#7913])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/fi-kbl-soraka/igt@i915_selftest@live@execlists.html
* igt@i915_selftest@live@gt_pm:
- fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][4] ([i915#1886])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html
* igt@i915_selftest@live@migrate:
- bat-adlp-6: [PASS][5] -> [DMESG-FAIL][6] ([i915#7699])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13034/bat-adlp-6/igt@i915_selftest@live@migrate.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/bat-adlp-6/igt@i915_selftest@live@migrate.html
* igt@i915_selftest@live@requests:
- bat-rpls-1: [PASS][7] -> [ABORT][8] ([i915#4983] / [i915#7911])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13034/bat-rpls-1/igt@i915_selftest@live@requests.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/bat-rpls-1/igt@i915_selftest@live@requests.html
* igt@kms_chamelium_frames@hdmi-crc-fast:
- fi-kbl-soraka: NOTRUN -> [SKIP][9] ([fdo#109271]) +16 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/fi-kbl-soraka/igt@kms_chamelium_frames@hdmi-crc-fast.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- bat-adlp-6: NOTRUN -> [SKIP][10] ([i915#7828])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/bat-adlp-6/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1:
- bat-dg2-8: [PASS][11] -> [FAIL][12] ([i915#7932])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13034/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html
#### Possible fixes ####
* igt@i915_suspend@basic-s3-without-i915:
- bat-adlp-6: [INCOMPLETE][13] ([i915#7443]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13034/bat-adlp-6/igt@i915_suspend@basic-s3-without-i915.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/bat-adlp-6/igt@i915_suspend@basic-s3-without-i915.html
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#7156]: https://gitlab.freedesktop.org/drm/intel/issues/7156
[i915#7443]: https://gitlab.freedesktop.org/drm/intel/issues/7443
[i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7911]: https://gitlab.freedesktop.org/drm/intel/issues/7911
[i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
[i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7263 -> IGTPW_8833
CI-20190529: 20190529
CI_DRM_13034: bf6a3fbb5a6d7afbbaeb93043fd0001d6b83591b @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8833: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/index.html
IGT_7263: a6bd8f415c4ec41b5a014c7db47e46c81ffd0074 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Testlist changes
----------------
+igt@i915_hangman@multigpu-error-basic
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/index.html
[-- Attachment #2: Type: text/html, Size: 5856 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for Add multi-gpu basic error state subtest
2023-04-20 18:24 [igt-dev] [PATCH i-g-t 0/3] Add multi-gpu basic error state subtest Kamil Konieczny
` (3 preceding siblings ...)
2023-04-20 19:13 ` [igt-dev] ✓ Fi.CI.BAT: success for Add multi-gpu " Patchwork
@ 2023-04-21 2:49 ` Patchwork
4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2023-04-21 2:49 UTC (permalink / raw)
To: Kamil Konieczny; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 14281 bytes --]
== Series Details ==
Series: Add multi-gpu basic error state subtest
URL : https://patchwork.freedesktop.org/series/116775/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_13034_full -> IGTPW_8833_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/index.html
Participating hosts (7 -> 7)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_8833_full:
### IGT changes ###
#### Possible regressions ####
* {igt@i915_hangman@multigpu-error-basic} (NEW):
- {shard-tglu}: NOTRUN -> [SKIP][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-tglu-6/igt@i915_hangman@multigpu-error-basic.html
- {shard-rkl}: NOTRUN -> [SKIP][2]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-rkl-3/igt@i915_hangman@multigpu-error-basic.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@kms_flip@2x-flip-vs-fences:
- {shard-dg1}: NOTRUN -> [SKIP][3] +1 similar issue
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-dg1-17/igt@kms_flip@2x-flip-vs-fences.html
New tests
---------
New tests have been introduced between CI_DRM_13034_full and IGTPW_8833_full:
### New IGT tests (1) ###
* igt@i915_hangman@multigpu-error-basic:
- Statuses : 5 skip(s)
- Exec time: [0.0] s
Known issues
------------
Here are the changes found in IGTPW_8833_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* {igt@i915_hangman@multigpu-error-basic} (NEW):
- shard-snb: NOTRUN -> [SKIP][4] ([fdo#109271]) +34 similar issues
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-snb7/igt@i915_hangman@multigpu-error-basic.html
- shard-apl: NOTRUN -> [SKIP][5] ([fdo#109271])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-apl7/igt@i915_hangman@multigpu-error-basic.html
- shard-glk: NOTRUN -> [SKIP][6] ([fdo#109271])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-glk9/igt@i915_hangman@multigpu-error-basic.html
* igt@kms_setmode@basic@pipe-a-vga-1:
- shard-snb: NOTRUN -> [FAIL][7] ([i915#5465]) +1 similar issue
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-snb6/igt@kms_setmode@basic@pipe-a-vga-1.html
#### Possible fixes ####
* igt@gem_barrier_race@remote-request@rcs0:
- {shard-rkl}: [ABORT][8] ([i915#8211]) -> [PASS][9]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13034/shard-rkl-7/igt@gem_barrier_race@remote-request@rcs0.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-rkl-6/igt@gem_barrier_race@remote-request@rcs0.html
* igt@gem_exec_endless@dispatch@rcs0:
- {shard-tglu}: [TIMEOUT][10] ([i915#3778]) -> [PASS][11]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13034/shard-tglu-8/igt@gem_exec_endless@dispatch@rcs0.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-tglu-7/igt@gem_exec_endless@dispatch@rcs0.html
* igt@gem_exec_fair@basic-deadline:
- shard-apl: [FAIL][12] ([i915#2846]) -> [PASS][13]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13034/shard-apl4/igt@gem_exec_fair@basic-deadline.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-apl3/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- {shard-rkl}: [FAIL][14] ([i915#2842]) -> [PASS][15]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13034/shard-rkl-7/igt@gem_exec_fair@basic-pace-share@rcs0.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-rkl-2/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@i915_pm_rpm@dpms-mode-unset-lpsp:
- {shard-rkl}: [SKIP][16] ([i915#1397]) -> [PASS][17]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13034/shard-rkl-6/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-rkl-7/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html
* igt@i915_pm_rpm@modeset-non-lpsp:
- {shard-dg1}: [SKIP][18] ([i915#1397]) -> [PASS][19]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13034/shard-dg1-14/igt@i915_pm_rpm@modeset-non-lpsp.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-dg1-18/igt@i915_pm_rpm@modeset-non-lpsp.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-glk: [FAIL][20] ([i915#2346]) -> [PASS][21]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13034/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
- shard-apl: [FAIL][22] ([i915#2346]) -> [PASS][23]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13034/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* igt@kms_cursor_legacy@forked-bo@pipe-b:
- {shard-rkl}: [INCOMPLETE][24] ([i915#8011]) -> [PASS][25]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13034/shard-rkl-7/igt@kms_cursor_legacy@forked-bo@pipe-b.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-rkl-2/igt@kms_cursor_legacy@forked-bo@pipe-b.html
#### Warnings ####
* igt@i915_pm_dc@dc9-dpms:
- shard-apl: [FAIL][26] ([i915#4275]) -> [SKIP][27] ([fdo#109271])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13034/shard-apl3/igt@i915_pm_dc@dc9-dpms.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/shard-apl3/igt@i915_pm_dc@dc9-dpms.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
[fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
[fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
[i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023
[i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
[i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
[i915#3778]: https://gitlab.freedesktop.org/drm/intel/issues/3778
[i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
[i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
[i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
[i915#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#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4275]: https://gitlab.freedesktop.org/drm/intel/issues/4275
[i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
[i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
[i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
[i915#5099]: https://gitlab.freedesktop.org/drm/intel/issues/5099
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
[i915#5465]: https://gitlab.freedesktop.org/drm/intel/issues/5465
[i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
[i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
[i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6245]: https://gitlab.freedesktop.org/drm/intel/issues/6245
[i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
[i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
[i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
[i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#7178]: https://gitlab.freedesktop.org/drm/intel/issues/7178
[i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
[i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
[i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
[i915#8150]: https://gitlab.freedesktop.org/drm/intel/issues/8150
[i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7263 -> IGTPW_8833
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_13034: bf6a3fbb5a6d7afbbaeb93043fd0001d6b83591b @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8833: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/index.html
IGT_7263: a6bd8f415c4ec41b5a014c7db47e46c81ffd0074 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8833/index.html
[-- Attachment #2: Type: text/html, Size: 8944 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/3] tests/i915_hangman: make sysfs var local
2023-04-20 18:24 ` [igt-dev] [PATCH i-g-t 1/3] tests/i915_hangman: make sysfs var local Kamil Konieczny
@ 2023-04-27 15:01 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 9+ messages in thread
From: Mauro Carvalho Chehab @ 2023-04-27 15:01 UTC (permalink / raw)
To: Kamil Konieczny; +Cc: igt-dev
On Thu, 20 Apr 2023 20:24:38 +0200
Kamil Konieczny <kamil.konieczny@linux.intel.com> wrote:
> Global sysfs variable make it hard to use with multiGPU tests,
> so make it local.
>
> Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
> ---
> tests/i915/i915_hangman.c | 56 +++++++++++++++++++--------------------
> 1 file changed, 28 insertions(+), 28 deletions(-)
>
> diff --git a/tests/i915/i915_hangman.c b/tests/i915/i915_hangman.c
> index 8acce8f1a..274a0ede1 100644
> --- a/tests/i915/i915_hangman.c
> +++ b/tests/i915/i915_hangman.c
> @@ -46,7 +46,6 @@
> #endif
>
> static int device = -1;
> -static int sysfs = -1;
>
> #define OFFSET_ALIVE 10
>
> @@ -118,7 +117,7 @@ static bool has_error_state(int dir)
> return result;
> }
>
> -static void assert_entry(const char *s, bool expect)
> +static void assert_entry(int sysfs, const char *s, bool expect)
> {
> char *error;
>
> @@ -132,40 +131,40 @@ static void assert_entry(const char *s, bool expect)
> free(error);
> }
>
> -static void assert_error_state_clear(void)
> +static void assert_error_state_clear(int sysfs)
> {
> - assert_entry("no error state collected", true);
> + assert_entry(sysfs, "no error state collected", true);
> }
>
> -static void assert_error_state_collected(void)
> +static void assert_error_state_collected(int sysfs)
> {
> - assert_entry("no error state collected", false);
> + assert_entry(sysfs, "no error state collected", false);
> }
>
> -static void clear_error_state(void)
> +static void clear_error_state(int sysfs)
> {
> igt_sysfs_write(sysfs, "error", "", 1);
> }
>
> -static void test_error_state_basic(void)
> +static void test_error_state_basic(int i915, int sysfs)
> {
> int fd;
>
> - clear_error_state();
> - assert_error_state_clear();
> + clear_error_state(sysfs);
> + assert_error_state_clear(sysfs);
>
> /* Manually trigger a hang by request a reset */
> fd = igt_debugfs_open(device, "i915_wedged", O_WRONLY);
> igt_ignore_warn(write(fd, "1\n", 2));
> close(fd);
>
> - assert_error_state_collected();
> + assert_error_state_collected(sysfs);
>
> - clear_error_state();
> - assert_error_state_clear();
> + clear_error_state(sysfs);
> + assert_error_state_clear(sysfs);
> }
>
> -static FILE *open_error(void)
> +static FILE *open_error(int sysfs)
> {
> int fd;
>
> @@ -188,12 +187,12 @@ static bool uses_cmd_parser(void)
> return parser_version > 0;
> }
>
> -static void check_error_state(const char *expected_ring_name,
> +static void check_error_state(int sysfs, const char *expected_ring_name,
> uint64_t expected_offset,
> const uint32_t *batch)
> {
> bool cmd_parser = uses_cmd_parser();
> - FILE *file = open_error();
> + FILE *file = open_error(sysfs);
> char *line = NULL;
> size_t line_size = 0;
> bool found = false;
> @@ -254,12 +253,12 @@ static void check_error_state(const char *expected_ring_name,
> free(line);
> fclose(file);
>
> - clear_error_state();
> + clear_error_state(sysfs);
>
> igt_assert(found);
> }
>
> -static void test_error_state_capture(const intel_ctx_t *ctx,
> +static void test_error_state_capture(int sysfs, const intel_ctx_t *ctx,
> const struct intel_execution_engine2 *e)
> {
> uint32_t *batch;
> @@ -267,7 +266,7 @@ static void test_error_state_capture(const intel_ctx_t *ctx,
> uint64_t offset;
> uint64_t ahnd = get_reloc_ahnd(device, ctx->id);
>
> - clear_error_state();
> + clear_error_state(sysfs);
>
> hang = igt_hang_ctx_with_ahnd(device, ahnd, ctx->id, e->flags,
> HANG_ALLOW_CAPTURE);
> @@ -278,7 +277,7 @@ static void test_error_state_capture(const intel_ctx_t *ctx,
>
> igt_post_hang_ring(device, hang);
>
> - check_error_state(e->name, offset, batch);
> + check_error_state(sysfs, e->name, offset, batch);
> munmap(batch, 4096);
> put_ahnd(ahnd);
>
> @@ -457,7 +456,7 @@ static void hangcheck_unterminated(const intel_ctx_t *ctx)
> check_alive();
> }
>
> -static void do_tests(const char *name, const char *prefix,
> +static void do_tests(int sysfs, const char *name, const char *prefix,
> const intel_ctx_t *ctx)
> {
> const struct intel_execution_engine2 *e;
> @@ -469,7 +468,7 @@ static void do_tests(const char *name, const char *prefix,
> igt_subtest_with_dynamic(buff) {
> for_each_ctx_engine(device, ctx, e) {
> igt_dynamic_f("%s", e->name)
> - test_error_state_capture(ctx, e);
> + test_error_state_capture(sysfs, ctx, e);
> }
> }
>
> @@ -521,6 +520,7 @@ igt_main
> igt_hang_t hang = {};
> struct gem_engine_properties saved_params[GEM_MAX_ENGINES];
> int num_engines = 0;
> + int sysfs_fd = -1;
>
> igt_fixture {
> const struct intel_execution_engine2 *e;
> @@ -532,10 +532,10 @@ igt_main
>
> hang = igt_allow_hang(device, ctx->id, HANG_ALLOW_CAPTURE);
>
> - sysfs = igt_sysfs_open(device);
> - igt_assert(sysfs != -1);
> + sysfs_fd = igt_sysfs_open(device);
> + igt_assert(sysfs_fd != -1);
>
> - igt_require(has_error_state(sysfs));
> + igt_require(has_error_state(sysfs_fd));
>
> gem_require_mmap_device_coherent(device);
>
> @@ -549,7 +549,7 @@ igt_main
>
> igt_describe("Basic error capture");
> igt_subtest("error-state-basic")
> - test_error_state_basic();
> + test_error_state_basic(sysfs_fd, device);
>
> igt_describe("Check that executing unintialised memory causes a hang");
> igt_subtest("hangcheck-unterminated")
> @@ -565,7 +565,7 @@ igt_main
> }
> }
>
> - do_tests("GT", "gt", ctx);
> + do_tests(sysfs_fd, "GT", "gt", ctx);
>
> igt_fixture {
> igt_disallow_hang(device, hang);
> @@ -573,7 +573,7 @@ igt_main
> hang = igt_allow_hang(device, ctx->id, HANG_ALLOW_CAPTURE | HANG_WANT_ENGINE_RESET);
> }
>
> - do_tests("engine", "engine", ctx);
> + do_tests(sysfs_fd, "engine", "engine", ctx);
>
> igt_fixture {
> int i;
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/3] tests/i915_hangman: make device var local
2023-04-20 18:24 ` [igt-dev] [PATCH i-g-t 2/3] tests/i915_hangman: make device " Kamil Konieczny
@ 2023-04-27 15:04 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 9+ messages in thread
From: Mauro Carvalho Chehab @ 2023-04-27 15:04 UTC (permalink / raw)
To: Kamil Konieczny; +Cc: igt-dev
On Thu, 20 Apr 2023 20:24:39 +0200
Kamil Konieczny <kamil.konieczny@linux.intel.com> wrote:
> Global device variable make it hard to use with multiGPU tests,
> so make it local.
>
> Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
> ---
> tests/i915/i915_hangman.c | 71 ++++++++++++++++++++-------------------
> 1 file changed, 36 insertions(+), 35 deletions(-)
>
> diff --git a/tests/i915/i915_hangman.c b/tests/i915/i915_hangman.c
> index 274a0ede1..d76d0a037 100644
> --- a/tests/i915/i915_hangman.c
> +++ b/tests/i915/i915_hangman.c
> @@ -45,8 +45,6 @@
> #define I915_PARAM_CMD_PARSER_VERSION 28
> #endif
>
> -static int device = -1;
> -
> #define OFFSET_ALIVE 10
>
> IGT_TEST_DESCRIPTION("Tests for hang detection and recovery");
> @@ -146,7 +144,7 @@ static void clear_error_state(int sysfs)
> igt_sysfs_write(sysfs, "error", "", 1);
> }
>
> -static void test_error_state_basic(int i915, int sysfs)
> +static void test_error_state_basic(int device, int sysfs)
> {
> int fd;
>
> @@ -175,7 +173,7 @@ static FILE *open_error(int sysfs)
> return fdopen(fd, "r");
> }
>
> -static bool uses_cmd_parser(void)
> +static bool uses_cmd_parser(int device)
> {
> int parser_version = 0;
> drm_i915_getparam_t gp;
> @@ -187,11 +185,12 @@ static bool uses_cmd_parser(void)
> return parser_version > 0;
> }
>
> -static void check_error_state(int sysfs, const char *expected_ring_name,
> +static void check_error_state(int device, int sysfs,
> + const char *expected_ring_name,
> uint64_t expected_offset,
> const uint32_t *batch)
> {
> - bool cmd_parser = uses_cmd_parser();
> + bool cmd_parser = uses_cmd_parser(device);
> FILE *file = open_error(sysfs);
> char *line = NULL;
> size_t line_size = 0;
> @@ -258,7 +257,8 @@ static void check_error_state(int sysfs, const char *expected_ring_name,
> igt_assert(found);
> }
>
> -static void test_error_state_capture(int sysfs, const intel_ctx_t *ctx,
> +static void test_error_state_capture(int device, int sysfs,
> + const intel_ctx_t *ctx,
> const struct intel_execution_engine2 *e)
> {
> uint32_t *batch;
> @@ -277,7 +277,7 @@ static void test_error_state_capture(int sysfs, const intel_ctx_t *ctx,
>
> igt_post_hang_ring(device, hang);
>
> - check_error_state(sysfs, e->name, offset, batch);
> + check_error_state(device, sysfs, e->name, offset, batch);
> munmap(batch, 4096);
> put_ahnd(ahnd);
>
> @@ -310,7 +310,7 @@ static void chk_err(int *dst, int err, int expected)
> #define ERR_FENCE_STAT 4
>
> static void
> -test_engine_hang(const intel_ctx_t *ctx,
> +test_engine_hang(int device, const intel_ctx_t *ctx,
> const struct intel_execution_engine2 *e, unsigned int flags)
> {
> const struct intel_execution_engine2 *other;
> @@ -392,7 +392,7 @@ static void sig_io(int sig)
> hang_count++;
> }
>
> -static void test_hang_detector(const intel_ctx_t *ctx,
> +static void test_hang_detector(int device, const intel_ctx_t *ctx,
> const struct intel_execution_engine2 *e)
> {
> igt_hang_t hang;
> @@ -425,7 +425,7 @@ static void test_hang_detector(const intel_ctx_t *ctx,
> * case and it takes a lot more time to wrap, so the acthd can potentially keep
> * increasing for a long time
> */
> -static void hangcheck_unterminated(const intel_ctx_t *ctx)
> +static void hangcheck_unterminated(int device, const intel_ctx_t *ctx)
> {
> /* timeout needs to be greater than ~5*hangcheck */
> int64_t timeout_ns = 100ull * NSEC_PER_SEC; /* 100 seconds */
> @@ -456,7 +456,7 @@ static void hangcheck_unterminated(const intel_ctx_t *ctx)
> check_alive();
> }
>
> -static void do_tests(int sysfs, const char *name, const char *prefix,
> +static void do_tests(int device, int sysfs, const char *name, const char *prefix,
> const intel_ctx_t *ctx)
> {
> const struct intel_execution_engine2 *e;
> @@ -468,7 +468,7 @@ static void do_tests(int sysfs, const char *name, const char *prefix,
> igt_subtest_with_dynamic(buff) {
> for_each_ctx_engine(device, ctx, e) {
> igt_dynamic_f("%s", e->name)
> - test_error_state_capture(sysfs, ctx, e);
> + test_error_state_capture(device, sysfs, ctx, e);
> }
> }
>
> @@ -489,7 +489,7 @@ static void do_tests(int sysfs, const char *name, const char *prefix,
>
> for_each_ctx_engine(device, ctx, e) {
> igt_dynamic_f("%s", e->name)
> - test_engine_hang(ctx, e, 0);
> + test_engine_hang(device, ctx, e, 0);
> }
> }
>
> @@ -509,7 +509,7 @@ static void do_tests(int sysfs, const char *name, const char *prefix,
>
> for_each_ctx_engine(device, ctx, e) {
> igt_dynamic_f("%s", e->name)
> - test_engine_hang(ctx, e, IGT_SPIN_INVALID_CS);
> + test_engine_hang(device, ctx, e, IGT_SPIN_INVALID_CS);
> }
> }
> }
> @@ -521,68 +521,69 @@ igt_main
> struct gem_engine_properties saved_params[GEM_MAX_ENGINES];
> int num_engines = 0;
> int sysfs_fd = -1;
> + int i915 = -1;
>
> igt_fixture {
> const struct intel_execution_engine2 *e;
>
> - device = drm_open_driver(DRIVER_INTEL);
> - igt_require_gem(device);
> + i915 = drm_open_driver(DRIVER_INTEL);
> + igt_require_gem(i915);
>
> - ctx = intel_ctx_create_all_physical(device);
> + ctx = intel_ctx_create_all_physical(i915);
>
> - hang = igt_allow_hang(device, ctx->id, HANG_ALLOW_CAPTURE);
> + hang = igt_allow_hang(i915, ctx->id, HANG_ALLOW_CAPTURE);
>
> - sysfs_fd = igt_sysfs_open(device);
> + sysfs_fd = igt_sysfs_open(i915);
> igt_assert(sysfs_fd != -1);
>
> igt_require(has_error_state(sysfs_fd));
>
> - gem_require_mmap_device_coherent(device);
> + gem_require_mmap_device_coherent(i915);
>
> - for_each_physical_engine(device, e) {
> + for_each_physical_engine(i915, e) {
> saved_params[num_engines].engine = e;
> saved_params[num_engines].preempt_timeout = 500;
> saved_params[num_engines].heartbeat_interval = 1000;
> - gem_engine_properties_configure(device, saved_params + num_engines++);
> + gem_engine_properties_configure(i915, saved_params + num_engines++);
> }
> }
>
> igt_describe("Basic error capture");
> igt_subtest("error-state-basic")
> - test_error_state_basic(sysfs_fd, device);
> + test_error_state_basic(i915, sysfs_fd);
>
> igt_describe("Check that executing unintialised memory causes a hang");
> igt_subtest("hangcheck-unterminated")
> - hangcheck_unterminated(ctx);
> + hangcheck_unterminated(i915, ctx);
>
> igt_describe("Check that hang detector works");
> igt_subtest_with_dynamic("detector") {
> const struct intel_execution_engine2 *e;
>
> - for_each_ctx_engine(device, ctx, e) {
> + for_each_ctx_engine(i915, ctx, e) {
> igt_dynamic_f("%s", e->name)
> - test_hang_detector(ctx, e);
> + test_hang_detector(i915, ctx, e);
> }
> }
>
> - do_tests(sysfs_fd, "GT", "gt", ctx);
> + do_tests(i915, sysfs_fd, "GT", "gt", ctx);
>
> igt_fixture {
> - igt_disallow_hang(device, hang);
> + igt_disallow_hang(i915, hang);
>
> - hang = igt_allow_hang(device, ctx->id, HANG_ALLOW_CAPTURE | HANG_WANT_ENGINE_RESET);
> + hang = igt_allow_hang(i915, ctx->id, HANG_ALLOW_CAPTURE | HANG_WANT_ENGINE_RESET);
> }
>
> - do_tests(sysfs_fd, "engine", "engine", ctx);
> + do_tests(i915, sysfs_fd, "engine", "engine", ctx);
>
> igt_fixture {
> int i;
>
> for (i = 0; i < num_engines; i++)
> - gem_engine_properties_restore(device, saved_params + i);
> + gem_engine_properties_restore(i915, saved_params + i);
>
> - igt_disallow_hang(device, hang);
> - intel_ctx_destroy(device, ctx);
> - close(device);
> + igt_disallow_hang(i915, hang);
> + intel_ctx_destroy(i915, ctx);
> + close(i915);
> }
> }
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 3/3] tests/i915_hangman: add multigpu basic error state subtest
2023-04-20 18:24 ` [igt-dev] [PATCH i-g-t 3/3] tests/i915_hangman: add multigpu basic error state subtest Kamil Konieczny
@ 2023-04-27 15:09 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 9+ messages in thread
From: Mauro Carvalho Chehab @ 2023-04-27 15:09 UTC (permalink / raw)
To: Kamil Konieczny; +Cc: igt-dev
On Thu, 20 Apr 2023 20:24:40 +0200
Kamil Konieczny <kamil.konieczny@linux.intel.com> wrote:
> Verify that basic error capture works in multiGPU hardware
> configuration for two or more GPUs.
>
> Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
LGTM.
Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
> ---
> tests/i915/i915_hangman.c | 63 ++++++++++++++++++++++++++++++++++-----
> 1 file changed, 55 insertions(+), 8 deletions(-)
>
> diff --git a/tests/i915/i915_hangman.c b/tests/i915/i915_hangman.c
> index d76d0a037..580b3a739 100644
> --- a/tests/i915/i915_hangman.c
> +++ b/tests/i915/i915_hangman.c
> @@ -39,6 +39,7 @@
> #include "igt_store.h"
> #include "igt_sysfs.h"
> #include "igt_debugfs.h"
> +#include "igt_device_scan.h"
> #include "sw_sync.h"
>
> #ifndef I915_PARAM_CMD_PARSER_VERSION
> @@ -514,6 +515,21 @@ static void do_tests(int device, int sysfs, const char *name, const char *prefix
> }
> }
>
> +static int set_engines_prop(int device, struct gem_engine_properties *params)
> +{
> + const struct intel_execution_engine2 *e;
> + int num = 0;
> +
> + for_each_physical_engine(device, e) {
> + params[num].engine = e;
> + params[num].preempt_timeout = 500;
> + params[num].heartbeat_interval = 1000;
> + gem_engine_properties_configure(device, params + num++);
> + }
> +
> + return num;
> +}
> +
> igt_main
> {
> const intel_ctx_t *ctx;
> @@ -522,10 +538,9 @@ igt_main
> int num_engines = 0;
> int sysfs_fd = -1;
> int i915 = -1;
> + int gpu_count;
>
> igt_fixture {
> - const struct intel_execution_engine2 *e;
> -
> i915 = drm_open_driver(DRIVER_INTEL);
> igt_require_gem(i915);
>
> @@ -540,12 +555,8 @@ igt_main
>
> gem_require_mmap_device_coherent(i915);
>
> - for_each_physical_engine(i915, e) {
> - saved_params[num_engines].engine = e;
> - saved_params[num_engines].preempt_timeout = 500;
> - saved_params[num_engines].heartbeat_interval = 1000;
> - gem_engine_properties_configure(i915, saved_params + num_engines++);
> - }
> + num_engines = set_engines_prop(i915, &saved_params[0]);
> + gpu_count = igt_device_filter_count();
> }
>
> igt_describe("Basic error capture");
> @@ -576,6 +587,42 @@ igt_main
>
> do_tests(i915, sysfs_fd, "engine", "engine", ctx);
>
> + igt_describe("Basic multigpu error capture");
> + igt_subtest("multigpu-error-basic") {
> + igt_require(gpu_count > 1);
> +
> + igt_multi_fork(child, gpu_count) {
> + int gpu_fd, gpu_sysfs;
> +
> + if (child)
> + gpu_fd = __drm_open_driver_another(child, DRIVER_INTEL);
> + else
> + gpu_fd = gem_reopen_driver(i915);
> +
> + igt_assert(gpu_fd > 0);
> + igt_require_gem(gpu_fd);
> + ctx = intel_ctx_create_all_physical(gpu_fd);
> + hang = igt_allow_hang(gpu_fd, ctx->id, HANG_ALLOW_CAPTURE | HANG_WANT_ENGINE_RESET);
> + gpu_sysfs = igt_sysfs_open(gpu_fd);
> + igt_assert(gpu_sysfs != -1);
> + igt_require(has_error_state(gpu_sysfs));
> + gem_require_mmap_device_coherent(gpu_sysfs);
> + num_engines = set_engines_prop(gpu_fd, &saved_params[0]);
> +
> + test_error_state_basic(gpu_fd, gpu_sysfs);
> +
> + igt_disallow_hang(gpu_fd, hang);
> + intel_ctx_destroy(gpu_fd, ctx);
> + if (child)
> + for (int i = 0; i < num_engines; i++)
> + gem_engine_properties_restore(i915, saved_params + i);
> + close(gpu_fd);
> + close(gpu_sysfs);
> + }
> +
> + igt_waitchildren();
> + }
> +
> igt_fixture {
> int i;
>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-04-27 15:09 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-20 18:24 [igt-dev] [PATCH i-g-t 0/3] Add multi-gpu basic error state subtest Kamil Konieczny
2023-04-20 18:24 ` [igt-dev] [PATCH i-g-t 1/3] tests/i915_hangman: make sysfs var local Kamil Konieczny
2023-04-27 15:01 ` Mauro Carvalho Chehab
2023-04-20 18:24 ` [igt-dev] [PATCH i-g-t 2/3] tests/i915_hangman: make device " Kamil Konieczny
2023-04-27 15:04 ` Mauro Carvalho Chehab
2023-04-20 18:24 ` [igt-dev] [PATCH i-g-t 3/3] tests/i915_hangman: add multigpu basic error state subtest Kamil Konieczny
2023-04-27 15:09 ` Mauro Carvalho Chehab
2023-04-20 19:13 ` [igt-dev] ✓ Fi.CI.BAT: success for Add multi-gpu " Patchwork
2023-04-21 2:49 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox