* [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues
@ 2023-09-18 13:42 Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 01/17] lib/kunit: Drop unused file stream Janusz Krzysztofik
` (20 more replies)
0 siblings, 21 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:42 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
v3: Also call igt_skip() on igt_ktest_init() failure (Mauro), but then,
initialize local tst structure when declaring it to avoid freeing a
random pointer from igt_ktest_fini() when only listing subtests,
- call igt_ktest_end() from igt_fixture so it is not unnecessarily
called when only listing subtests,
- drop EINTR handling completely as not applicable since SIGINT default
signal handler kills the whole process anyway,
- update commit description to also mention read error handling fix,
- interrupt blocking read() on modprobe failure.
v2: Fix incorrect and missing includes in the test source file,
- add license and copyright clauses to the test source file.
Janusz Krzysztofik (17):
lib/kunit: Drop unused file stream
lib/kunit: Stop loading kunit module explicitly
lib/kunit: Fix struct kmod_module kunit_kmod not freed
lib/kunit: Optimize calls to igt_success/skip/fail()
lib/kunit: Fix illegal igt_fail() calls inside subtest body
lib/ktap: Make sure we fail on premature cancel
lib/ktap: Drop checks for EINTR on read() failures
lib/kunit: Cancel KTP parser on module load failure
lib/ktap: Drop is_running flag
lib/ktap: Read /dev/kmsg in blocking mode
lib/kunit: Fail / skip on kernel taint
lib/ktap: Use IGT linked lists for storing KTAP results
lib/ktap: Reimplement KTAP parser
lib/kunit: Load test modules in background
lib/kunit: Parse KTAP report from the main process thread
lib/kunit: Strip "_test" or "_kunit" suffix from subtest names
lib/kunit: Omit suite name prefix if the same as subtest name
lib/igt_kmod.c | 320 ++++++++++----
lib/igt_ktap.c | 833 ++++++++++++------------------------
lib/igt_ktap.h | 28 +-
lib/tests/igt_ktap_parser.c | 246 +++++++++++
lib/tests/meson.build | 1 +
tests/drm_mm.c | 42 +-
6 files changed, 775 insertions(+), 695 deletions(-)
create mode 100644 lib/tests/igt_ktap_parser.c
--
2.41.0
^ permalink raw reply [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 01/17] lib/kunit: Drop unused file stream
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
@ 2023-09-18 13:42 ` Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 02/17] lib/kunit: Stop loading kunit module explicitly Janusz Krzysztofik
` (19 subsequent siblings)
20 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:42 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
In the process of reviewing patches that introduced kunit support, I asked
once if we could use line buffered input instead of explicitly looking for
newlines in kmsg data. While my idea was wrong because each read of raw
data from /dev/kmsg always returns one full log record that always ends
with a newline, conversion of /dev/kmsg file descriptor to a file stream
with freopen() was added to the code. However, that file stream has never
been used for line buffered input. While the file stream is passed to
functions that actually read the data, there it is converted back to a
file descriptor with fileno() and raw data is read with read().
Drop the unnecessary conversions and teach functions to accept and process
just the file descriptor of /dev/kmsg.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
lib/igt_kmod.c | 12 +---------
lib/igt_ktap.c | 62 +++++++++++++++++++++++---------------------------
lib/igt_ktap.h | 2 +-
3 files changed, 31 insertions(+), 45 deletions(-)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 6205871791..97667a896f 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -758,7 +758,6 @@ static void __igt_kunit(const char *module_name, const char *opts)
{
struct igt_ktest tst;
struct kmod_module *kunit_kmod;
- FILE *f;
bool is_builtin;
int ret;
struct ktap_test_results *results;
@@ -774,7 +773,6 @@ static void __igt_kunit(const char *module_name, const char *opts)
if (igt_ktest_begin(&tst) != 0) {
igt_warn("Unable to begin ktest for %s\n", module_name);
-
igt_ktest_fini(&tst);
igt_fail(IGT_EXIT_ABORT);
}
@@ -791,14 +789,6 @@ static void __igt_kunit(const char *module_name, const char *opts)
goto unload;
}
- f = fdopen(tst.kmsg, "r");
-
- if (f == NULL) {
- igt_warn("Could not turn /dev/kmsg file descriptor into a FILE pointer\n");
- fail = true;
- goto unload;
- }
-
/* The KUnit module is required for running any KUnit tests */
ret = igt_kmod_load("kunit", NULL);
if (ret) {
@@ -814,7 +804,7 @@ static void __igt_kunit(const char *module_name, const char *opts)
is_builtin = kmod_module_get_initstate(kunit_kmod) == KMOD_MODULE_BUILTIN;
- results = ktap_parser_start(f, is_builtin);
+ results = ktap_parser_start(tst.kmsg, is_builtin);
ret = igt_kmod_load(module_name, opts);
if (ret) {
diff --git a/lib/igt_ktap.c b/lib/igt_ktap.c
index ecdcb8d83d..123a40d183 100644
--- a/lib/igt_ktap.c
+++ b/lib/igt_ktap.c
@@ -16,7 +16,7 @@
#define DELIMITER "-"
struct ktap_parser_args {
- FILE *fp;
+ int fd;
bool is_builtin;
volatile bool is_running;
int ret;
@@ -24,7 +24,7 @@ struct ktap_parser_args {
static struct ktap_test_results results;
-static int log_to_end(enum igt_log_level level, FILE *f,
+static int log_to_end(enum igt_log_level level, int fd,
char *record, const char *format, ...) __attribute__((format(printf, 4, 5)));
/**
@@ -39,12 +39,11 @@ static int log_to_end(enum igt_log_level level, FILE *f,
*
* Returns: 0 for success, or -2 if there's an error reading from the file
*/
-static int log_to_end(enum igt_log_level level, FILE *f,
+static int log_to_end(enum igt_log_level level, int fd,
char *record, const char *format, ...)
{
va_list args;
const char *lend;
- int f_fd = fileno(f);
/* Cutoff after newline character, in order to not display garbage */
char *cutoff = strchr(record, '\n');
@@ -61,7 +60,7 @@ static int log_to_end(enum igt_log_level level, FILE *f,
while (*lend == '\0') {
igt_log(IGT_LOG_DOMAIN, level, "%s", record);
- while (read(f_fd, record, BUF_LEN) < 0) {
+ while (read(fd, record, BUF_LEN) < 0) {
if (!READ_ONCE(ktap_args.is_running)) {
igt_warn("ktap parser stopped\n");
return -2;
@@ -157,8 +156,8 @@ static int tap_version_present(char* record, bool print_info)
/**
* find_next_tap_subtest:
- * @fp: FILE pointer
- * @record: buffer used to read fp
+ * @fd: file descriptor
+ * @record: buffer used to read fd
* @is_builtin: whether KUnit is built-in or not
*
* Returns:
@@ -167,11 +166,10 @@ static int tap_version_present(char* record, bool print_info)
* -2 if there are problems while reading the file.
* any other value corresponds to the amount of cases of the next (sub)test
*/
-static int find_next_tap_subtest(FILE *fp, char *record, char *test_name, bool is_builtin)
+static int find_next_tap_subtest(int fd, char *record, char *test_name, bool is_builtin)
{
const char *test_lookup_str, *subtest_lookup_str, *name_rptr;
long test_count;
- int fp_fd = fileno(fp);
char *cutoff;
test_name[0] = '\0';
@@ -184,7 +182,7 @@ static int find_next_tap_subtest(FILE *fp, char *record, char *test_name, bool i
return -1;
if (is_builtin) {
- while (read(fp_fd, record, BUF_LEN) < 0) {
+ while (read(fd, record, BUF_LEN) < 0) {
if (!READ_ONCE(ktap_args.is_running)) {
igt_warn("ktap parser stopped\n");
return -2;
@@ -228,7 +226,7 @@ static int find_next_tap_subtest(FILE *fp, char *record, char *test_name, bool i
if (cutoff)
cutoff[0] = '\0';
- while (read(fp_fd, record, BUF_LEN) < 0) {
+ while (read(fd, record, BUF_LEN) < 0) {
if (!READ_ONCE(ktap_args.is_running)) {
igt_warn("ktap parser stopped\n");
return -2;
@@ -265,7 +263,7 @@ static int find_next_tap_subtest(FILE *fp, char *record, char *test_name, bool i
igt_info("Missing test count\n");
if (test_name[0] == '\0')
return 0;
- if (log_to_end(IGT_LOG_INFO, fp, record,
+ if (log_to_end(IGT_LOG_INFO, fd, record,
"Running some tests in: %s\n",
test_name) < 0)
return -2;
@@ -275,7 +273,7 @@ static int find_next_tap_subtest(FILE *fp, char *record, char *test_name, bool i
return 0;
}
- if (log_to_end(IGT_LOG_INFO, fp, record,
+ if (log_to_end(IGT_LOG_INFO, fd, record,
"Executing %ld tests in: %s\n",
test_count, test_name) < 0)
return -2;
@@ -285,8 +283,8 @@ static int find_next_tap_subtest(FILE *fp, char *record, char *test_name, bool i
/**
* parse_kmsg_for_tap:
- * @fp: FILE pointer
- * @record: buffer used to read fp
+ * @fd: file descriptor
+ * @record: buffer used to read fd
* @test_name: buffer to store the test name
*
* Returns:
@@ -295,7 +293,7 @@ static int find_next_tap_subtest(FILE *fp, char *record, char *test_name, bool i
* -1 if a test failed
* -2 if there are problems reading the file
*/
-static int parse_kmsg_for_tap(FILE *fp, char *record, char *test_name)
+static int parse_kmsg_for_tap(int fd, char *record, char *test_name)
{
const char *lstart, *ok_lookup_str, *nok_lookup_str,
*ok_rptr, *nok_rptr, *comment_start, *value_parse_start;
@@ -324,7 +322,7 @@ static int parse_kmsg_for_tap(FILE *fp, char *record, char *test_name)
while (!isspace(*test_name_end))
test_name_end++;
*test_name_end = '\0';
- if (log_to_end(IGT_LOG_WARN, fp, record,
+ if (log_to_end(IGT_LOG_WARN, fd, record,
"%s", lstart) < 0)
return -2;
return -1;
@@ -338,7 +336,7 @@ static int parse_kmsg_for_tap(FILE *fp, char *record, char *test_name)
value_parse_start = comment_start;
if (lookup_value(value_parse_start, "fail: ") > 0) {
- if (log_to_end(IGT_LOG_WARN, fp, record,
+ if (log_to_end(IGT_LOG_WARN, fd, record,
"%s", lstart) < 0)
return -2;
return -1;
@@ -362,7 +360,7 @@ static int parse_kmsg_for_tap(FILE *fp, char *record, char *test_name)
/**
* parse_tap_level:
- * @fp: FILE pointer
+ * @fd: file descriptor
* @base_test_name: test_name from upper recursion level
* @test_count: test_count of this level
* @failed_tests: top level failed_tests pointer
@@ -373,10 +371,9 @@ static int parse_kmsg_for_tap(FILE *fp, char *record, char *test_name)
* 0 if succeded
* -1 if error occurred
*/
-static int parse_tap_level(FILE *fp, char *base_test_name, int test_count, bool *failed_tests,
+static int parse_tap_level(int fd, char *base_test_name, int test_count, bool *failed_tests,
bool *found_tests, bool is_builtin)
{
- int fp_fd = fileno(fp);
char record[BUF_LEN + 1];
struct ktap_test_results_element *r, *temp;
int internal_test_count;
@@ -384,7 +381,7 @@ static int parse_tap_level(FILE *fp, char *base_test_name, int test_count, bool
char base_test_name_for_next_level[BUF_LEN + 1];
for (int i = 0; i < test_count; i++) {
- while (read(fp_fd, record, BUF_LEN) < 0) {
+ while (read(fd, record, BUF_LEN) < 0) {
if (!READ_ONCE(ktap_args.is_running)) {
igt_warn("ktap parser stopped\n");
return -1;
@@ -409,7 +406,7 @@ static int parse_tap_level(FILE *fp, char *base_test_name, int test_count, bool
/* Sublevel found */
if (tap_version_present(record, false))
{
- internal_test_count = find_next_tap_subtest(fp, record, test_name,
+ internal_test_count = find_next_tap_subtest(fd, record, test_name,
is_builtin);
switch (internal_test_count) {
case -2:
@@ -433,7 +430,7 @@ static int parse_tap_level(FILE *fp, char *base_test_name, int test_count, bool
memcpy(base_test_name_for_next_level + strlen(base_test_name_for_next_level),
test_name, BUF_LEN - strlen(base_test_name_for_next_level));
- if (parse_tap_level(fp, base_test_name_for_next_level,
+ if (parse_tap_level(fd, base_test_name_for_next_level,
internal_test_count, failed_tests, found_tests,
is_builtin) == -1)
return -1;
@@ -441,7 +438,7 @@ static int parse_tap_level(FILE *fp, char *base_test_name, int test_count, bool
}
}
- switch (parse_kmsg_for_tap(fp, record, test_name)) {
+ switch (parse_kmsg_for_tap(fd, record, test_name)) {
case -2:
return -1;
case -1:
@@ -516,8 +513,7 @@ static int parse_tap_level(FILE *fp, char *base_test_name, int test_count, bool
*/
void *igt_ktap_parser(void *unused)
{
- FILE *fp = ktap_args.fp;
- int fp_fd = fileno(fp);
+ int fd = ktap_args.fd;
char record[BUF_LEN + 1];
bool is_builtin = ktap_args.is_builtin;
char test_name[BUF_LEN + 1];
@@ -534,7 +530,7 @@ igt_ktap_parser_start:
test_name[0] = '\0';
test_name[BUF_LEN] = '\0';
- while (read(fp_fd, record, BUF_LEN) < 0) {
+ while (read(fd, record, BUF_LEN) < 0) {
if (!READ_ONCE(ktap_args.is_running)) {
igt_warn("ktap parser stopped\n");
goto igt_ktap_parser_end;
@@ -553,7 +549,7 @@ igt_ktap_parser_start:
}
}
- test_count = find_next_tap_subtest(fp, record, test_name, is_builtin);
+ test_count = find_next_tap_subtest(fd, record, test_name, is_builtin);
switch (test_count) {
case -2:
@@ -569,7 +565,7 @@ igt_ktap_parser_start:
default:
found_tests = true;
- if (parse_tap_level(fp, test_name, test_count, &failed_tests, &found_tests,
+ if (parse_tap_level(fd, test_name, test_count, &failed_tests, &found_tests,
is_builtin) == -1)
goto igt_ktap_parser_end;
@@ -578,7 +574,7 @@ igt_ktap_parser_start:
/* Parse topmost level */
test_name[0] = '\0';
- parse_tap_level(fp, test_name, test_count, &failed_tests, &found_tests, is_builtin);
+ parse_tap_level(fd, test_name, test_count, &failed_tests, &found_tests, is_builtin);
igt_ktap_parser_end:
results.still_running = false;
@@ -593,13 +589,13 @@ igt_ktap_parser_end:
static pthread_t ktap_parser_thread;
-struct ktap_test_results *ktap_parser_start(FILE *fp, bool is_builtin)
+struct ktap_test_results *ktap_parser_start(int fd, bool is_builtin)
{
results.head = NULL;
pthread_mutex_init(&results.mutex, NULL);
results.still_running = true;
- ktap_args.fp = fp;
+ ktap_args.fd = fd;
ktap_args.is_builtin = is_builtin;
ktap_args.is_running = true;
pthread_create(&ktap_parser_thread, NULL, igt_ktap_parser, NULL);
diff --git a/lib/igt_ktap.h b/lib/igt_ktap.h
index 34fe095720..ea57c2bb9b 100644
--- a/lib/igt_ktap.h
+++ b/lib/igt_ktap.h
@@ -44,7 +44,7 @@ struct ktap_test_results {
-struct ktap_test_results *ktap_parser_start(FILE *fp, bool is_builtin);
+struct ktap_test_results *ktap_parser_start(int fd, bool is_builtin);
int ktap_parser_stop(void);
#endif /* IGT_KTAP_H */
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 02/17] lib/kunit: Stop loading kunit module explicitly
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 01/17] lib/kunit: Drop unused file stream Janusz Krzysztofik
@ 2023-09-18 13:42 ` Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 03/17] lib/kunit: Fix struct kmod_module kunit_kmod not freed Janusz Krzysztofik
` (18 subsequent siblings)
20 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:42 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
Since kmod functions we use for module loading can process module
dependencies, there is no need to load the "kunit" module explicitly
before loading a kunit test module. For the same reason we already don't
unload the "kunit" module explicitly on cleanup. Drop the unnecessary
operation.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
lib/igt_kmod.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 97667a896f..faf31afabc 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -789,12 +789,6 @@ static void __igt_kunit(const char *module_name, const char *opts)
goto unload;
}
- /* The KUnit module is required for running any KUnit tests */
- ret = igt_kmod_load("kunit", NULL);
- if (ret) {
- skip = ret;
- goto unload;
- }
ret = kmod_module_new_from_name(kmod_ctx(), "kunit", &kunit_kmod);
if (ret) {
igt_warn("Unable to load KUnit\n");
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 03/17] lib/kunit: Fix struct kmod_module kunit_kmod not freed
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 01/17] lib/kunit: Drop unused file stream Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 02/17] lib/kunit: Stop loading kunit module explicitly Janusz Krzysztofik
@ 2023-09-18 13:42 ` Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 04/17] lib/kunit: Optimize calls to igt_success/skip/fail() Janusz Krzysztofik
` (17 subsequent siblings)
20 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:42 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
We obtain a kmod_module structure for kunit module in order to check if
it is modular or built-in, then we never release that structure. Fix it.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
lib/igt_kmod.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index faf31afabc..34ddec3fad 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -797,6 +797,7 @@ static void __igt_kunit(const char *module_name, const char *opts)
}
is_builtin = kmod_module_get_initstate(kunit_kmod) == KMOD_MODULE_BUILTIN;
+ kmod_module_unref(kunit_kmod);
results = ktap_parser_start(tst.kmsg, is_builtin);
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 04/17] lib/kunit: Optimize calls to igt_success/skip/fail()
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (2 preceding siblings ...)
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 03/17] lib/kunit: Fix struct kmod_module kunit_kmod not freed Janusz Krzysztofik
@ 2023-09-18 13:42 ` Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 05/17] lib/kunit: Fix illegal igt_fail() calls inside subtest body Janusz Krzysztofik
` (16 subsequent siblings)
20 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:42 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
Calling igt_success() explicitly at the end of subtest body is not needed.
Other calls to igt_success() can be usually avoided by inverting test
result checks. Optimize the code that now calls igt_success().
Moreover, using more advanced variants of igt_skip() and igt_fail() where
applicable makes the code more compact. Go for it.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
lib/igt_kmod.c | 14 +++-----------
1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 34ddec3fad..1d1cd51170 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -814,12 +814,8 @@ static void __igt_kunit(const char *module_name, const char *opts)
if (READ_ONCE(results->head) != NULL) {
pthread_mutex_lock(&results->mutex);
- igt_dynamic(results->head->test_name) {
- if (READ_ONCE(results->head->passed))
- igt_success();
- else
- igt_fail(IGT_EXIT_FAILURE);
- }
+ igt_dynamic(results->head->test_name)
+ igt_assert(READ_ONCE(results->head->passed));
temp = results->head;
results->head = results->head->next;
@@ -834,8 +830,7 @@ unload:
igt_ktest_fini(&tst);
- if (skip)
- igt_skip("Skipping test, as probing KUnit module returned %d", skip);
+ igt_skip_on_f(skip, "Skipping test, as probing KUnit module failed\n");
if (fail)
igt_fail(IGT_EXIT_ABORT);
@@ -844,9 +839,6 @@ unload:
if (ret != 0)
igt_fail(IGT_EXIT_ABORT);
-
- if (ret == 0)
- igt_success();
}
void igt_kunit(const char *module_name, const char *name, const char *opts)
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 05/17] lib/kunit: Fix illegal igt_fail() calls inside subtest body
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (3 preceding siblings ...)
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 04/17] lib/kunit: Optimize calls to igt_success/skip/fail() Janusz Krzysztofik
@ 2023-09-18 13:42 ` Janusz Krzysztofik
2023-09-19 6:25 ` [igt-dev] [Intel-gfx] " Mauro Carvalho Chehab
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 06/17] lib/ktap: Make sure we fail on premature cancel Janusz Krzysztofik
` (15 subsequent siblings)
20 siblings, 1 reply; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:42 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
In a body of a subtest with dynamic sub-subtests, it is illegal to call
igt_fail() and its variants from outside of a dynamic sub-subtest body.
On the other hand, it is perfectly legal to call either igt_skip() and
friends or __igt_abort() or its variant from there.
In the current implementation of igt_kunit(), there are several places
where igt_fail() is called despite being illegal. Moreover, it is called
with IGT_EXIT_ABORT as an argument with no good reason for using such
aggressive method that forces CI to trigger system reboot (in most cases
igt_runner can decide if abort is required).
Follow igt_kselftests() pattern more closely, where similar setup and
cleanup operations are performed but their potential errors are processed
in a more friendly way. Move common cleanup and their corresponding setup
steps out of the subtest body. Place the latter as requirements in a
preceding igt_fixture section. Replace remaining illegal igt_fail() calls
with more friendly skips. Let igt_runner decide if abort is needed.
v2: Also call igt_skip() on igt_ktest_init() failure (Mauro), but then,
initialize local tst structure when declaring it to avoid freeing a
random pointer from igt_ktest_fini() when only listing subtests,
- call igt_ktest_end() from igt_fixture so it is not unnecessarily
called when only listing subtests.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Cc: Mauro Carvalho Chehab <mauro.chehab@linux.intel.com>
---
lib/igt_kmod.c | 76 +++++++++++++++-----------------------------------
1 file changed, 23 insertions(+), 53 deletions(-)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 1d1cd51170..063e4c12db 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -754,59 +754,27 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
*
* Returns: IGT default codes
*/
-static void __igt_kunit(const char *module_name, const char *opts)
+static void __igt_kunit(struct igt_ktest *tst, const char *opts)
{
- struct igt_ktest tst;
struct kmod_module *kunit_kmod;
bool is_builtin;
int ret;
struct ktap_test_results *results;
struct ktap_test_results_element *temp;
- int skip = 0;
- bool fail = false;
-
- /* get normalized module name */
- if (igt_ktest_init(&tst, module_name) != 0) {
- igt_warn("Unable to initialize ktest for %s\n", module_name);
- igt_fail(IGT_EXIT_ABORT);
- }
- if (igt_ktest_begin(&tst) != 0) {
- igt_warn("Unable to begin ktest for %s\n", module_name);
- igt_ktest_fini(&tst);
- igt_fail(IGT_EXIT_ABORT);
- }
+ igt_skip_on_f(tst->kmsg < 0, "Could not open /dev/kmsg\n");
- if (tst.kmsg < 0) {
- igt_warn("Could not open /dev/kmsg\n");
- fail = true;
- goto unload;
- }
-
- if (lseek(tst.kmsg, 0, SEEK_END)) {
- igt_warn("Could not seek the end of /dev/kmsg\n");
- fail = true;
- goto unload;
- }
-
- ret = kmod_module_new_from_name(kmod_ctx(), "kunit", &kunit_kmod);
- if (ret) {
- igt_warn("Unable to load KUnit\n");
- skip = ret;
- goto unload;
- }
+ igt_skip_on(lseek(tst->kmsg, 0, SEEK_END) < 0);
+ igt_skip_on(kmod_module_new_from_name(kmod_ctx(), "kunit", &kunit_kmod));
is_builtin = kmod_module_get_initstate(kunit_kmod) == KMOD_MODULE_BUILTIN;
kmod_module_unref(kunit_kmod);
- results = ktap_parser_start(tst.kmsg, is_builtin);
+ results = ktap_parser_start(tst->kmsg, is_builtin);
- ret = igt_kmod_load(module_name, opts);
- if (ret) {
- skip = ret;
- igt_warn("Unable to load %s module\n", module_name);
- ret = ktap_parser_stop();
- goto unload;
+ if (igt_debug_on(igt_kmod_load(tst->module_name, opts) < 0)) {
+ igt_ignore_warn(ktap_parser_stop());
+ igt_skip("Unable to load %s module\n", tst->module_name);
}
while (READ_ONCE(results->still_running) || READ_ONCE(results->head) != NULL)
@@ -825,24 +793,21 @@ static void __igt_kunit(const char *module_name, const char *opts)
}
}
-unload:
- igt_ktest_end(&tst);
-
- igt_ktest_fini(&tst);
-
- igt_skip_on_f(skip, "Skipping test, as probing KUnit module failed\n");
-
- if (fail)
- igt_fail(IGT_EXIT_ABORT);
-
ret = ktap_parser_stop();
- if (ret != 0)
- igt_fail(IGT_EXIT_ABORT);
+ igt_skip_on_f(ret, "KTAP parser failed\n");
}
void igt_kunit(const char *module_name, const char *name, const char *opts)
{
+ struct igt_ktest tst = { .kmsg = -1, };
+
+
+ igt_fixture {
+ igt_skip_on(igt_ktest_init(&tst, module_name));
+ igt_skip_on(igt_ktest_begin(&tst));
+ }
+
/*
* We need to use igt_subtest here, as otherwise it may crash with:
* skipping is allowed only in fixtures, subtests or igt_simple_main
@@ -854,7 +819,12 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
name = module_name;
igt_subtest_with_dynamic(name)
- __igt_kunit(module_name, opts);
+ __igt_kunit(&tst, opts);
+
+ igt_fixture
+ igt_ktest_end(&tst);
+
+ igt_ktest_fini(&tst);
}
static int open_parameters(const char *module_name)
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 06/17] lib/ktap: Make sure we fail on premature cancel
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (4 preceding siblings ...)
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 05/17] lib/kunit: Fix illegal igt_fail() calls inside subtest body Janusz Krzysztofik
@ 2023-09-18 13:42 ` Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 07/17] lib/ktap: Drop checks for EINTR on read() failures Janusz Krzysztofik
` (14 subsequent siblings)
20 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:42 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
After loading a kunit test module that executes some kunit test cases, we
evaluate overall result of an IGT subtest that corresponds to that module
based on an error code returned by kunit_parser_stop() helper, obtained
from a .ret field of a ktap_args structure. That code is now assigned to
that structure field right before completion of the KTAP parser thread
start routine. If the thread is canceled for some reason then the return
code will be undefined.
Initialize the return code on KTAP parser startup with a value that
indicates a failure, then change it to success when so indicated by result
of KTAP parsing.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
lib/igt_ktap.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/lib/igt_ktap.c b/lib/igt_ktap.c
index 123a40d183..84fb13218f 100644
--- a/lib/igt_ktap.c
+++ b/lib/igt_ktap.c
@@ -579,9 +579,7 @@ igt_ktap_parser_start:
igt_ktap_parser_end:
results.still_running = false;
- if (failed_tests || !found_tests)
- ktap_args.ret = IGT_EXIT_FAILURE;
- else
+ if (found_tests && !failed_tests)
ktap_args.ret = IGT_EXIT_SUCCESS;
return NULL;
@@ -598,6 +596,7 @@ struct ktap_test_results *ktap_parser_start(int fd, bool is_builtin)
ktap_args.fd = fd;
ktap_args.is_builtin = is_builtin;
ktap_args.is_running = true;
+ ktap_args.ret = IGT_EXIT_FAILURE;
pthread_create(&ktap_parser_thread, NULL, igt_ktap_parser, NULL);
return &results;
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 07/17] lib/ktap: Drop checks for EINTR on read() failures
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (5 preceding siblings ...)
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 06/17] lib/ktap: Make sure we fail on premature cancel Janusz Krzysztofik
@ 2023-09-18 13:42 ` Janusz Krzysztofik
2023-09-19 6:30 ` [igt-dev] [Intel-gfx] " Mauro Carvalho Chehab
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 08/17] lib/kunit: Cancel KTP parser on module load failure Janusz Krzysztofik
` (13 subsequent siblings)
20 siblings, 1 reply; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:42 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
While reading KTAP data from /dev/kmsg we now ignore EINTR failures that
may occur during read() and we continue reading the data. No explanation
has been provided on what that could be needed for.
Since we use default SIGINT signal handler, read() should never fail with
errno set to EINTR on user interrupt, only the whole process should be
terminated. Drop checks for errno == EINTR as not applicable.
v2: Drop handling of EINTR completely, update commit message and
descripion.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Cc: Mauro Carvalho Chehab <mauro.chehab@linux.intel.com>
---
lib/igt_ktap.c | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/lib/igt_ktap.c b/lib/igt_ktap.c
index 84fb13218f..ce07f9aed7 100644
--- a/lib/igt_ktap.c
+++ b/lib/igt_ktap.c
@@ -66,9 +66,6 @@ static int log_to_end(enum igt_log_level level, int fd,
return -2;
}
- if (errno == EINTR)
- continue;
-
if (errno == EPIPE) {
igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
return -2;
@@ -188,9 +185,6 @@ static int find_next_tap_subtest(int fd, char *record, char *test_name, bool is_
return -2;
}
- if (errno == EINTR)
- continue;
-
if (errno == EPIPE) {
igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
return -2;
@@ -232,9 +226,6 @@ static int find_next_tap_subtest(int fd, char *record, char *test_name, bool is_
return -2;
}
- if (errno == EINTR)
- continue;
-
if (errno == EPIPE) {
igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
return -2;
@@ -387,9 +378,6 @@ static int parse_tap_level(int fd, char *base_test_name, int test_count, bool *f
return -1;
}
- if (errno == EINTR)
- continue;
-
if (errno == EAGAIN)
/* No records available */
continue;
@@ -540,9 +528,6 @@ igt_ktap_parser_start:
/* No records available */
continue;
- if (errno == EINTR)
- continue;
-
if (errno == EPIPE) {
igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
goto igt_ktap_parser_end;
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 08/17] lib/kunit: Cancel KTP parser on module load failure
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (6 preceding siblings ...)
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 07/17] lib/ktap: Drop checks for EINTR on read() failures Janusz Krzysztofik
@ 2023-09-18 13:42 ` Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 09/17] lib/ktap: Drop is_running flag Janusz Krzysztofik
` (12 subsequent siblings)
20 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:42 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
For our KTAP parser to be running in parallel with kunit test module
loading, we now start it in a separate thread before we load the module.
If the module loading fails then we join the KTAP parser thread right
after that failure. If the KTAP thread sleeps for some reason then we
can fail to break the test immediately.
Cancel the KTAP parser thread right after module load error and before
joining it.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
lib/igt_kmod.c | 1 +
lib/igt_ktap.c | 6 ++++++
lib/igt_ktap.h | 1 +
3 files changed, 8 insertions(+)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 063e4c12db..7392276401 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -773,6 +773,7 @@ static void __igt_kunit(struct igt_ktest *tst, const char *opts)
results = ktap_parser_start(tst->kmsg, is_builtin);
if (igt_debug_on(igt_kmod_load(tst->module_name, opts) < 0)) {
+ ktap_parser_cancel();
igt_ignore_warn(ktap_parser_stop());
igt_skip("Unable to load %s module\n", tst->module_name);
}
diff --git a/lib/igt_ktap.c b/lib/igt_ktap.c
index ce07f9aed7..0db42d1243 100644
--- a/lib/igt_ktap.c
+++ b/lib/igt_ktap.c
@@ -587,6 +587,12 @@ struct ktap_test_results *ktap_parser_start(int fd, bool is_builtin)
return &results;
}
+void ktap_parser_cancel(void)
+{
+ ktap_args.is_running = false;
+ pthread_cancel(ktap_parser_thread);
+}
+
int ktap_parser_stop(void)
{
ktap_args.is_running = false;
diff --git a/lib/igt_ktap.h b/lib/igt_ktap.h
index ea57c2bb9b..991800e912 100644
--- a/lib/igt_ktap.h
+++ b/lib/igt_ktap.h
@@ -45,6 +45,7 @@ struct ktap_test_results {
struct ktap_test_results *ktap_parser_start(int fd, bool is_builtin);
+void ktap_parser_cancel(void);
int ktap_parser_stop(void);
#endif /* IGT_KTAP_H */
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 09/17] lib/ktap: Drop is_running flag
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (7 preceding siblings ...)
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 08/17] lib/kunit: Cancel KTP parser on module load failure Janusz Krzysztofik
@ 2023-09-18 13:42 ` Janusz Krzysztofik
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 10/17] lib/ktap: Read /dev/kmsg in blocking mode Janusz Krzysztofik
` (11 subsequent siblings)
20 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:42 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
Since we now call pthread_cancel() when we want to stop KTAP parser before
it completes, and we take care of returning failure in that case as a
result of KTAP parsing, we no longer need to check a flag that indicates
whether we should continue parsing or return a failure. Drop that flag.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
lib/igt_ktap.c | 32 --------------------------------
1 file changed, 32 deletions(-)
diff --git a/lib/igt_ktap.c b/lib/igt_ktap.c
index 0db42d1243..5bc5e003d7 100644
--- a/lib/igt_ktap.c
+++ b/lib/igt_ktap.c
@@ -18,7 +18,6 @@
struct ktap_parser_args {
int fd;
bool is_builtin;
- volatile bool is_running;
int ret;
} ktap_args;
@@ -61,11 +60,6 @@ static int log_to_end(enum igt_log_level level, int fd,
igt_log(IGT_LOG_DOMAIN, level, "%s", record);
while (read(fd, record, BUF_LEN) < 0) {
- if (!READ_ONCE(ktap_args.is_running)) {
- igt_warn("ktap parser stopped\n");
- return -2;
- }
-
if (errno == EPIPE) {
igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
return -2;
@@ -180,11 +174,6 @@ static int find_next_tap_subtest(int fd, char *record, char *test_name, bool is_
if (is_builtin) {
while (read(fd, record, BUF_LEN) < 0) {
- if (!READ_ONCE(ktap_args.is_running)) {
- igt_warn("ktap parser stopped\n");
- return -2;
- }
-
if (errno == EPIPE) {
igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
return -2;
@@ -221,11 +210,6 @@ static int find_next_tap_subtest(int fd, char *record, char *test_name, bool is_
cutoff[0] = '\0';
while (read(fd, record, BUF_LEN) < 0) {
- if (!READ_ONCE(ktap_args.is_running)) {
- igt_warn("ktap parser stopped\n");
- return -2;
- }
-
if (errno == EPIPE) {
igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
return -2;
@@ -373,11 +357,6 @@ static int parse_tap_level(int fd, char *base_test_name, int test_count, bool *f
for (int i = 0; i < test_count; i++) {
while (read(fd, record, BUF_LEN) < 0) {
- if (!READ_ONCE(ktap_args.is_running)) {
- igt_warn("ktap parser stopped\n");
- return -1;
- }
-
if (errno == EAGAIN)
/* No records available */
continue;
@@ -511,19 +490,11 @@ void *igt_ktap_parser(void *unused)
failed_tests = false;
found_tests = false;
- if (!READ_ONCE(ktap_args.is_running))
- goto igt_ktap_parser_end;
-
igt_ktap_parser_start:
test_name[0] = '\0';
test_name[BUF_LEN] = '\0';
while (read(fd, record, BUF_LEN) < 0) {
- if (!READ_ONCE(ktap_args.is_running)) {
- igt_warn("ktap parser stopped\n");
- goto igt_ktap_parser_end;
- }
-
if (errno == EAGAIN)
/* No records available */
continue;
@@ -580,7 +551,6 @@ struct ktap_test_results *ktap_parser_start(int fd, bool is_builtin)
ktap_args.fd = fd;
ktap_args.is_builtin = is_builtin;
- ktap_args.is_running = true;
ktap_args.ret = IGT_EXIT_FAILURE;
pthread_create(&ktap_parser_thread, NULL, igt_ktap_parser, NULL);
@@ -589,13 +559,11 @@ struct ktap_test_results *ktap_parser_start(int fd, bool is_builtin)
void ktap_parser_cancel(void)
{
- ktap_args.is_running = false;
pthread_cancel(ktap_parser_thread);
}
int ktap_parser_stop(void)
{
- ktap_args.is_running = false;
pthread_join(ktap_parser_thread, NULL);
return ktap_args.ret;
}
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 10/17] lib/ktap: Read /dev/kmsg in blocking mode
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (8 preceding siblings ...)
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 09/17] lib/ktap: Drop is_running flag Janusz Krzysztofik
@ 2023-09-18 13:43 ` Janusz Krzysztofik
2023-09-19 6:23 ` [igt-dev] [Intel-gfx] " Mauro Carvalho Chehab
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 11/17] lib/kunit: Fail / skip on kernel taint Janusz Krzysztofik
` (10 subsequent siblings)
20 siblings, 1 reply; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:43 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
We obtain KTAP report from /dev/kmsg. That file is now opened from
igt_ktest_begin(), a function originally designed for i915 selftests and
now reused with kunit tests. The original intention of opening that file
was to dump kernel messages to stderr on selftest error. For that
purpose, the file is now opened in non-blocking mode so we don't end up
waiting for more kernel messages than already available. Since our ktap
parser code reuses the file descriptor, we now have to loop over
EAGAIN responses, waiting for more KTAP data. Since we have no sleeps
inside those loops, extremely high CPU usage can be observed.
Simplify reading KTAP reports by first switching the file descriptor back
to blocking mode.
While being at it, fix read errors other than EPIPE likely unintentionally
ignored when reading first line of KTAP data.
v2: Drop EINTR handling as not applicable since SIGINT default signal
handler kills the whole process anyway,
- update commit description to also mention read error handling fix.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org> # v1
---
lib/igt_kmod.c | 7 +++++-
lib/igt_ktap.c | 66 +++++++++++++++++---------------------------------
2 files changed, 28 insertions(+), 45 deletions(-)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 7392276401..96240543a7 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -24,6 +24,7 @@
#include <ctype.h>
#include <signal.h>
#include <errno.h>
+#include <fcntl.h>
#include <sys/utsname.h>
#include "igt_aux.h"
@@ -758,12 +759,16 @@ static void __igt_kunit(struct igt_ktest *tst, const char *opts)
{
struct kmod_module *kunit_kmod;
bool is_builtin;
- int ret;
struct ktap_test_results *results;
struct ktap_test_results_element *temp;
+ int flags, ret;
igt_skip_on_f(tst->kmsg < 0, "Could not open /dev/kmsg\n");
+ flags = fcntl(tst->kmsg, F_GETFL, 0) & ~O_NONBLOCK;
+ igt_skip_on_f(fcntl(tst->kmsg, F_SETFL, flags) == -1,
+ "Could not set /dev/kmsg to blocking mode\n");
+
igt_skip_on(lseek(tst->kmsg, 0, SEEK_END) < 0);
igt_skip_on(kmod_module_new_from_name(kmod_ctx(), "kunit", &kunit_kmod));
diff --git a/lib/igt_ktap.c b/lib/igt_ktap.c
index 5bc5e003d7..282e44176e 100644
--- a/lib/igt_ktap.c
+++ b/lib/igt_ktap.c
@@ -59,17 +59,12 @@ static int log_to_end(enum igt_log_level level, int fd,
while (*lend == '\0') {
igt_log(IGT_LOG_DOMAIN, level, "%s", record);
- while (read(fd, record, BUF_LEN) < 0) {
- if (errno == EPIPE) {
+ if (read(fd, record, BUF_LEN) < 0) {
+ if (errno == EPIPE)
igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
- return -2;
- }
-
- if (errno == EAGAIN)
- /* No records available */
- continue;
+ else
+ igt_warn("an error occurred while reading kmsg: %m\n");
- igt_warn("kmsg truncated: unknown error (%m)\n");
return -2;
}
@@ -173,17 +168,12 @@ static int find_next_tap_subtest(int fd, char *record, char *test_name, bool is_
return -1;
if (is_builtin) {
- while (read(fd, record, BUF_LEN) < 0) {
- if (errno == EPIPE) {
+ if (read(fd, record, BUF_LEN) < 0) {
+ if (errno == EPIPE)
igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
- return -2;
- }
+ else
+ igt_warn("an error occurred while reading kmsg: %m\n");
- if (errno == EAGAIN)
- /* No records available */
- continue;
-
- igt_warn("kmsg truncated: unknown error (%m)\n");
return -2;
}
}
@@ -209,17 +199,12 @@ static int find_next_tap_subtest(int fd, char *record, char *test_name, bool is_
if (cutoff)
cutoff[0] = '\0';
- while (read(fd, record, BUF_LEN) < 0) {
- if (errno == EPIPE) {
+ if (read(fd, record, BUF_LEN) < 0) {
+ if (errno == EPIPE)
igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
- return -2;
- }
-
- if (errno == EAGAIN)
- /* No records available */
- continue;
+ else
+ igt_warn("unknown error reading kmsg (%m)\n");
- igt_warn("kmsg truncated: unknown error (%m)\n");
return -2;
}
@@ -356,17 +341,12 @@ static int parse_tap_level(int fd, char *base_test_name, int test_count, bool *f
char base_test_name_for_next_level[BUF_LEN + 1];
for (int i = 0; i < test_count; i++) {
- while (read(fd, record, BUF_LEN) < 0) {
- if (errno == EAGAIN)
- /* No records available */
- continue;
-
- if (errno == EPIPE) {
+ if (read(fd, record, BUF_LEN) < 0) {
+ if (errno == EPIPE)
igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
- return -1;
- }
+ else
+ igt_warn("error reading kmsg (%m)\n");
- igt_warn("kmsg truncated: unknown error (%m)\n");
return -1;
}
@@ -494,15 +474,13 @@ igt_ktap_parser_start:
test_name[0] = '\0';
test_name[BUF_LEN] = '\0';
- while (read(fd, record, BUF_LEN) < 0) {
- if (errno == EAGAIN)
- /* No records available */
- continue;
-
- if (errno == EPIPE) {
+ if (read(fd, record, BUF_LEN) < 0) {
+ if (errno == EPIPE)
igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
- goto igt_ktap_parser_end;
- }
+ else
+ igt_warn("error reading kmsg (%m)\n");
+
+ goto igt_ktap_parser_end;
}
test_count = find_next_tap_subtest(fd, record, test_name, is_builtin);
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 11/17] lib/kunit: Fail / skip on kernel taint
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (9 preceding siblings ...)
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 10/17] lib/ktap: Read /dev/kmsg in blocking mode Janusz Krzysztofik
@ 2023-09-18 13:43 ` Janusz Krzysztofik
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 12/17] lib/ktap: Use IGT linked lists for storing KTAP results Janusz Krzysztofik
` (9 subsequent siblings)
20 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:43 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
Similar to how igt_kselftest() handles kernel taints, fail current dynamic
sub-subtest and skip remaining ones when a kernel taint is detected during
execution of kunit test cases.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
lib/igt_kmod.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 96240543a7..77fc971f8f 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -761,6 +761,7 @@ static void __igt_kunit(struct igt_ktest *tst, const char *opts)
bool is_builtin;
struct ktap_test_results *results;
struct ktap_test_results_element *temp;
+ unsigned long taints;
int flags, ret;
igt_skip_on_f(tst->kmsg < 0, "Could not open /dev/kmsg\n");
@@ -785,12 +786,20 @@ static void __igt_kunit(struct igt_ktest *tst, const char *opts)
while (READ_ONCE(results->still_running) || READ_ONCE(results->head) != NULL)
{
+ if (igt_kernel_tainted(&taints)) {
+ ktap_parser_cancel();
+ break;
+ }
+
if (READ_ONCE(results->head) != NULL) {
pthread_mutex_lock(&results->mutex);
- igt_dynamic(results->head->test_name)
+ igt_dynamic(results->head->test_name) {
igt_assert(READ_ONCE(results->head->passed));
+ igt_fail_on(igt_kernel_tainted(&taints));
+ }
+
temp = results->head;
results->head = results->head->next;
free(temp);
@@ -801,6 +810,7 @@ static void __igt_kunit(struct igt_ktest *tst, const char *opts)
ret = ktap_parser_stop();
+ igt_skip_on(igt_kernel_tainted(&taints));
igt_skip_on_f(ret, "KTAP parser failed\n");
}
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 12/17] lib/ktap: Use IGT linked lists for storing KTAP results
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (10 preceding siblings ...)
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 11/17] lib/kunit: Fail / skip on kernel taint Janusz Krzysztofik
@ 2023-09-18 13:43 ` Janusz Krzysztofik
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 13/17] lib/ktap: Reimplement KTAP parser Janusz Krzysztofik
` (8 subsequent siblings)
20 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:43 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
For code simplicity and clarity, use existing IGT linked lists library
instead of open coding a custom implementation of a list of KTAP results.
While being at it, flatten the code by inverting a check for pending
results.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
lib/igt_kmod.c | 28 ++++++++++++++++------------
lib/igt_ktap.c | 25 +++++--------------------
lib/igt_ktap.h | 6 ++++--
3 files changed, 25 insertions(+), 34 deletions(-)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 77fc971f8f..2941524bb4 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -760,7 +760,6 @@ static void __igt_kunit(struct igt_ktest *tst, const char *opts)
struct kmod_module *kunit_kmod;
bool is_builtin;
struct ktap_test_results *results;
- struct ktap_test_results_element *temp;
unsigned long taints;
int flags, ret;
@@ -784,28 +783,33 @@ static void __igt_kunit(struct igt_ktest *tst, const char *opts)
igt_skip("Unable to load %s module\n", tst->module_name);
}
- while (READ_ONCE(results->still_running) || READ_ONCE(results->head) != NULL)
+ while (READ_ONCE(results->still_running) || !igt_list_empty(&results->list))
{
+ struct ktap_test_results_element *result;
+
if (igt_kernel_tainted(&taints)) {
ktap_parser_cancel();
break;
}
- if (READ_ONCE(results->head) != NULL) {
- pthread_mutex_lock(&results->mutex);
+ pthread_mutex_lock(&results->mutex);
+ if (igt_list_empty(&results->list)) {
+ pthread_mutex_unlock(&results->mutex);
+ continue;
+ }
- igt_dynamic(results->head->test_name) {
- igt_assert(READ_ONCE(results->head->passed));
+ result = igt_list_first_entry(&results->list, result, link);
- igt_fail_on(igt_kernel_tainted(&taints));
- }
+ igt_list_del(&result->link);
+ pthread_mutex_unlock(&results->mutex);
- temp = results->head;
- results->head = results->head->next;
- free(temp);
+ igt_dynamic(result->test_name) {
+ igt_assert(READ_ONCE(result->passed));
- pthread_mutex_unlock(&results->mutex);
+ igt_fail_on(igt_kernel_tainted(&taints));
}
+
+ free(result);
}
ret = ktap_parser_stop();
diff --git a/lib/igt_ktap.c b/lib/igt_ktap.c
index 282e44176e..c64323d9b4 100644
--- a/lib/igt_ktap.c
+++ b/lib/igt_ktap.c
@@ -12,6 +12,7 @@
#include "igt_aux.h"
#include "igt_core.h"
#include "igt_ktap.h"
+#include "igt_list.h"
#define DELIMITER "-"
@@ -335,7 +336,7 @@ static int parse_tap_level(int fd, char *base_test_name, int test_count, bool *f
bool *found_tests, bool is_builtin)
{
char record[BUF_LEN + 1];
- struct ktap_test_results_element *r, *temp;
+ struct ktap_test_results_element *r;
int internal_test_count;
char test_name[BUF_LEN + 1];
char base_test_name_for_next_level[BUF_LEN + 1];
@@ -403,17 +404,9 @@ static int parse_tap_level(int fd, char *base_test_name, int test_count, bool *f
r->test_name[BUF_LEN] = '\0';
r->passed = false;
- r->next = NULL;
pthread_mutex_lock(&results.mutex);
- if (results.head == NULL) {
- results.head = r;
- } else {
- temp = results.head;
- while (temp->next != NULL)
- temp = temp->next;
- temp->next = r;
- }
+ igt_list_add_tail(&r->link, &results.list);
pthread_mutex_unlock(&results.mutex);
test_name[0] = '\0';
@@ -431,17 +424,9 @@ static int parse_tap_level(int fd, char *base_test_name, int test_count, bool *f
r->test_name[BUF_LEN] = '\0';
r->passed = true;
- r->next = NULL;
pthread_mutex_lock(&results.mutex);
- if (results.head == NULL) {
- results.head = r;
- } else {
- temp = results.head;
- while (temp->next != NULL)
- temp = temp->next;
- temp->next = r;
- }
+ igt_list_add_tail(&r->link, &results.list);
pthread_mutex_unlock(&results.mutex);
test_name[0] = '\0';
@@ -523,7 +508,7 @@ static pthread_t ktap_parser_thread;
struct ktap_test_results *ktap_parser_start(int fd, bool is_builtin)
{
- results.head = NULL;
+ IGT_INIT_LIST_HEAD(&results.list);
pthread_mutex_init(&results.mutex, NULL);
results.still_running = true;
diff --git a/lib/igt_ktap.h b/lib/igt_ktap.h
index 991800e912..b4d7a6dbc7 100644
--- a/lib/igt_ktap.h
+++ b/lib/igt_ktap.h
@@ -28,16 +28,18 @@
#include <pthread.h>
+#include "igt_list.h"
+
void *igt_ktap_parser(void *unused);
typedef struct ktap_test_results_element {
char test_name[BUF_LEN + 1];
bool passed;
- struct ktap_test_results_element *next;
+ struct igt_list_head link;
} ktap_test_results_element;
struct ktap_test_results {
- ktap_test_results_element *head;
+ struct igt_list_head list;
pthread_mutex_t mutex;
bool still_running;
};
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 13/17] lib/ktap: Reimplement KTAP parser
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (11 preceding siblings ...)
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 12/17] lib/ktap: Use IGT linked lists for storing KTAP results Janusz Krzysztofik
@ 2023-09-18 13:43 ` Janusz Krzysztofik
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 14/17] lib/kunit: Load test modules in background Janusz Krzysztofik
` (7 subsequent siblings)
20 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:43 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
Current implementation of KTAP parser suffers from several issues:
- works only with built-in kunit, can't parse KTAP output if modular,
- in most cases, kernel messages that are not part of KTAP output but
happen to appear in between break the parser,
- results from parametrized test cases, not preceded with a "1..N" test
plan, break the parser,
- skips are not supported, reported as success,
- IGT results from all 3 kunit test nesting levels, i.e., from
parametrized subtests (should those were fixed to work correctly), test
cases and test suites, are reported individually as if all those items
were executed sequentially, all at the same level of nesting, which can
be confusing to igt_runner,
- subtest names mostly consist of kunit suite name and kunit test case
name but not always, sometimes the first component is omited,
- the parser is not only parsing the data, but also handles data input
from a /dev/kmsg like source, which is integrated into it, making it
hard if not impossible to feed KTAP data from different sources,
including mock sources,
- since the parser has been designed for running it in a separate thread,
it's not possible to use igt_skip() nor igt_fail() and friends
immediately when a result is available, only pass it to the main thread
over a buffer. As a consequence, it is virtually impossible to
synchronize IGT output with KTAP output.
Fixing the existing parser occurred more complicated than re-implementing
it from scratch. This patch provides a new implementation.
Only results from kunit test cases are reported as results of IGT dynamic
sub-subtests. Results from individual parametrized subtests have been
considered problematic since many of them provide multi-word descriptions
in place of single-word subtest names. If a parametrized test case fails
then full KTAP output from its subtests, potentially mixed with
accompanying kernel messages, is available in dmesg for analysis so users
can still find out which individual subtests succeeded and which failed.
Results from test suites level are also omitted in faith that IGT can
handle aggregation of results from individual kunit test cases reported as
IGT dynamic sub-subtests and report those aggregated results correctly as
results from an IGT dynamic subtest. That 1:1 mapping of kunit test
suites to IGT dynamic subtests now works perfectly for modules that
provide only one test suite, which is the case for all kunit test modules
now existing under drivers/gpu/drm, and the most common case among all
kunit test modules in the whole kernel tree.
New igt_ktap functions can be called directly from igt_kunit subtest body,
but for this patch, the old igt_ktap_parser() function that runs in a
separate thread has been preserved, only modified to use the new
implementation and translate results from those new functions to legacy
format. Unlike the former implementation, translation of kunit names to
IGT names is handled outside the parser itself, though for now it is still
performed inside the legacy igt_ktap_parser() function.
For better readability of the patch, no longer used functions have been
left untouched, only tagged with __maybe_unused to shut up compiler
warnings / errors. Kunit library functions will be modified to use the
new igt_ktap interface, and those old ktap functions removed by follow-
up patches.
A test with example subtests that feed igt_ktap_parse() function with some
example data and verifies correctness of their parsing is also provided.
v2: Fix incorrect and missing includes in the test source file,
- add license and copyright clauses to the test source file.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
lib/igt_ktap.c | 422 ++++++++++++++++++++++++++++++++----
lib/igt_ktap.h | 15 ++
lib/tests/igt_ktap_parser.c | 246 +++++++++++++++++++++
lib/tests/meson.build | 1 +
4 files changed, 645 insertions(+), 39 deletions(-)
create mode 100644 lib/tests/igt_ktap_parser.c
diff --git a/lib/igt_ktap.c b/lib/igt_ktap.c
index c64323d9b4..5eac102417 100644
--- a/lib/igt_ktap.c
+++ b/lib/igt_ktap.c
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: MIT
/*
* Copyright © 2023 Isabella Basso do Amaral <isabbasso@riseup.net>
+ * Copyright © 2023 Intel Corporation
*/
#include <ctype.h>
@@ -8,12 +9,310 @@
#include <libkmod.h>
#include <pthread.h>
#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
#include "igt_aux.h"
#include "igt_core.h"
#include "igt_ktap.h"
#include "igt_list.h"
+enum ktap_phase {
+ KTAP_START,
+ SUITE_COUNT,
+ SUITE_START,
+ SUITE_NAME,
+ CASE_COUNT,
+ CASE_NAME,
+ SUB_RESULT,
+ CASE_RESULT,
+ SUITE_RESULT,
+};
+
+struct igt_ktap_results {
+ enum ktap_phase expect;
+ unsigned int suite_count;
+ unsigned int suite_last;
+ char *suite_name;
+ unsigned int case_count;
+ unsigned int case_last;
+ char *case_name;
+ unsigned int sub_last;
+ struct igt_list_head *results;
+};
+
+/**
+ * igt_ktap_parse:
+ *
+ * This function parses a line of text for KTAP report data
+ * and passes results back to IGT kunit layer.
+ */
+int igt_ktap_parse(const char *buf, struct igt_ktap_results *ktap)
+{
+ char *suite_name = NULL, *case_name = NULL, *msg = NULL;
+ struct igt_ktap_result *result;
+ int code = IGT_EXIT_INVALID;
+ unsigned int n, len;
+ char s[2];
+
+ /* KTAP report header */
+ if (igt_debug_on(sscanf(buf, "KTAP%*[ ]version%*[ ]%u %n",
+ &n, &len) == 1 && len == strlen(buf))) {
+ if (igt_debug_on(ktap->expect != KTAP_START))
+ return -EPROTO;
+
+ ktap->suite_count = 0;
+ ktap->expect = SUITE_COUNT;
+
+ /* malformed TAP test plan? */
+ } else if (len = 0,
+ igt_debug_on(sscanf(buf, " 1..%1[ ]", s) == 1)) {
+ return -EINPROGRESS;
+
+ /* valid test plan of a KTAP report */
+ } else if (igt_debug_on(sscanf(buf, "1..%u %n", &n, &len) == 1 &&
+ len == strlen(buf))) {
+ if (igt_debug_on(ktap->expect != SUITE_COUNT))
+ return -EPROTO;
+
+ if (!n)
+ return 0;
+
+ ktap->suite_count = n;
+ ktap->suite_last = 0;
+ ktap->suite_name = NULL;
+ ktap->expect = SUITE_START;
+
+ /* KTAP test suite header */
+ } else if (len = 0,
+ igt_debug_on(sscanf(buf,
+ "%*1[ ]%*1[ ]%*1[ ]%*1[ ]KTAP%*[ ]version%*[ ]%u %n",
+ &n, &len) == 1 && len == strlen(buf))) {
+ /*
+ * TODO: drop the following workaround as soon as
+ * kernel side issue of missing lines with top level
+ * KTAP version and test suite plan is fixed.
+ */
+ if (ktap->expect == KTAP_START) {
+ ktap->suite_count = 1;
+ ktap->suite_last = 0;
+ ktap->suite_name = NULL;
+ ktap->expect = SUITE_START;
+ }
+
+ if (igt_debug_on(ktap->expect != SUITE_START))
+ return -EPROTO;
+
+ ktap->expect = SUITE_NAME;
+
+ /* KTAP test suite name */
+ } else if (len = 0,
+ igt_debug_on(sscanf(buf,
+ "%*1[ ]%*1[ ]%*1[ ]%*1[ ]#%*[ ]Subtest:%*[ ]%ms %n",
+ &suite_name, &len) == 1 && len == strlen(buf))) {
+ if (igt_debug_on(ktap->expect != SUITE_NAME))
+ return -EPROTO;
+
+ ktap->suite_name = suite_name;
+ suite_name = NULL;
+ ktap->case_count = 0;
+ ktap->expect = CASE_COUNT;
+
+ /* valid test plan of a KTAP test suite */
+ } else if (len = 0, free(suite_name), suite_name = NULL,
+ igt_debug_on(sscanf(buf,
+ "%*1[ ]%*1[ ]%*1[ ]%*1[ ]1..%u %n",
+ &n, &len) == 1 && len == strlen(buf))) {
+ if (igt_debug_on(ktap->expect != CASE_COUNT))
+ return -EPROTO;
+
+ if (n) {
+ ktap->case_count = n;
+ ktap->case_last = 0;
+ ktap->case_name = NULL;
+ ktap->expect = CASE_RESULT;
+ } else {
+ ktap->expect = SUITE_RESULT;
+ }
+
+ /* KTAP parametrized test case header */
+ } else if (len = 0,
+ igt_debug_on(sscanf(buf,
+ "%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]KTAP%*[ ]version%*[ ]%u %n",
+ &n, &len) == 1 && len == strlen(buf))) {
+ if (igt_debug_on(ktap->expect != CASE_RESULT))
+ return -EPROTO;
+
+ ktap->sub_last = 0;
+ ktap->expect = CASE_NAME;
+
+ /* KTAP parametrized test case name */
+ } else if (len = 0,
+ igt_debug_on(sscanf(buf,
+ "%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]#%*[ ]Subtest:%*[ ]%ms %n",
+ &case_name, &len) == 1 && len == strlen(buf))) {
+ if (igt_debug_on(ktap->expect != CASE_NAME))
+ return -EPROTO;
+
+ n = ktap->case_last + 1;
+ ktap->expect = SUB_RESULT;
+
+ /* KTAP parametrized subtest result */
+ } else if (len = 0, free(case_name), case_name = NULL,
+ igt_debug_on(sscanf(buf,
+ "%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]ok%*[ ]%u%*[ ]%*[^#\n]%1[#\n]",
+ &n, s) == 2) ||
+ igt_debug_on(sscanf(buf,
+ "%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]%*1[ ]not%*1[ ]ok%*[ ]%u%*[ ]%*[^#\n]%1[#\n]",
+ &n, s) == 2)) {
+ /* at lease one result of a parametrised subtest expected */
+ if (igt_debug_on(ktap->expect == SUB_RESULT &&
+ ktap->sub_last == 0))
+ ktap->expect = CASE_RESULT;
+
+ if (igt_debug_on(ktap->expect != CASE_RESULT) ||
+ igt_debug_on(n != ++ktap->sub_last))
+ return -EPROTO;
+
+ /* KTAP test case skip result */
+ } else if ((igt_debug_on(sscanf(buf,
+ "%*1[ ]%*1[ ]%*1[ ]%*1[ ]ok%*[ ]%u%*[ ]%ms%*[ ]#%*[ ]SKIP %n",
+ &n, &case_name, &len) == 2 &&
+ len == strlen(buf))) ||
+ (len = 0, free(case_name), case_name = NULL,
+ igt_debug_on(sscanf(buf,
+ "%*1[ ]%*1[ ]%*1[ ]%*1[ ]ok%*[ ]%u%*[ ]%ms%*[ ]#%*[ ]SKIP%*[ ]%m[^\n]",
+ &n, &case_name, &msg) == 3))) {
+ code = IGT_EXIT_SKIP;
+
+ /* KTAP test case pass result */
+ } else if ((free(case_name), case_name = NULL, free(msg), msg = NULL,
+ igt_debug_on(sscanf(buf,
+ "%*1[ ]%*1[ ]%*1[ ]%*1[ ]ok%*[ ]%u%*[ ]%ms %n",
+ &n, &case_name, &len) == 2 &&
+ len == strlen(buf))) ||
+ (len = 0, free(case_name), case_name = NULL,
+ igt_debug_on(sscanf(buf,
+ "%*1[ ]%*1[ ]%*1[ ]%*1[ ]ok%*[ ]%u%*[ ]%ms%*[ ]#%*[ ]%m[^\n]",
+ &n, &case_name, &msg) == 3))) {
+ code = IGT_EXIT_SUCCESS;
+
+ /* KTAP test case fail result */
+ } else if ((free(case_name), case_name = NULL, free(msg), msg = NULL,
+ igt_debug_on(sscanf(buf,
+ "%*1[ ]%*1[ ]%*1[ ]%*1[ ]not%*1[ ]ok%*[ ]%u%*[ ]%ms %n",
+ &n, &case_name, &len) == 2 &&
+ len == strlen(buf))) ||
+ (len = 0, free(case_name), case_name = NULL,
+ igt_debug_on(sscanf(buf,
+ "%*1[ ]%*1[ ]%*1[ ]%*1[ ]not%*1[ ]ok%*[ ]%u%*[ ]%ms%*[ ]#%*[ ]%m[^\n]",
+ &n, &case_name, &msg) == 3))) {
+ code = IGT_EXIT_FAILURE;
+
+ /* KTAP test suite result */
+ } else if ((free(case_name), free(msg),
+ igt_debug_on(sscanf(buf, "ok%*[ ]%u%*[ ]%ms %n",
+ &n, &suite_name, &len) == 2 &&
+ len == strlen(buf))) ||
+ (len = 0, free(suite_name), suite_name = NULL,
+ igt_debug_on(sscanf(buf, "ok%*[ ]%u%*[ ]%ms%*[ ]%1[#]",
+ &n, &suite_name, s) == 3)) ||
+ (free(suite_name), suite_name = NULL,
+ igt_debug_on(sscanf(buf,
+ "not%*[ ]ok%*[ ]%u%*[ ]%ms %n",
+ &n, &suite_name, &len) == 2 &&
+ len == strlen(buf))) ||
+ (len = 0, free(suite_name), suite_name = NULL,
+ igt_debug_on(sscanf(buf,
+ "not%*[ ]ok%*[ ]%u%*[ ]%ms%*[ ]%1[#]",
+ &n, &suite_name, s) == 3))) {
+ if (igt_debug_on(ktap->expect != SUITE_RESULT) ||
+ igt_debug_on(strcmp(suite_name, ktap->suite_name)) ||
+ igt_debug_on(n != ++ktap->suite_last) ||
+ igt_debug_on(n > ktap->suite_count)) {
+ free(suite_name);
+ return -EPROTO;
+ }
+ free(suite_name);
+
+ /* last test suite? */
+ if (igt_debug_on(n == ktap->suite_count))
+ return 0;
+
+ ktap->suite_name = NULL;
+ ktap->expect = SUITE_START;
+
+ } else {
+ return -EINPROGRESS;
+ }
+
+ /* neither a test case name nor result */
+ if (ktap->expect != SUB_RESULT && code == IGT_EXIT_INVALID)
+ return -EINPROGRESS;
+
+ if (igt_debug_on(ktap->expect == SUB_RESULT &&
+ code != IGT_EXIT_INVALID) ||
+ igt_debug_on(code != IGT_EXIT_INVALID &&
+ ktap->expect != CASE_RESULT) ||
+ igt_debug_on(!ktap->suite_name) || igt_debug_on(!case_name) ||
+ igt_debug_on(ktap->expect == CASE_RESULT && ktap->case_name &&
+ strcmp(case_name, ktap->case_name)) ||
+ igt_debug_on(n > ktap->case_count) ||
+ igt_debug_on(n != (ktap->expect == SUB_RESULT ?
+ ktap->case_last + 1: ++ktap->case_last))) {
+ free(case_name);
+ free(msg);
+ return -EPROTO;
+ }
+
+ if (ktap->expect == SUB_RESULT) {
+ /* KTAP parametrized test case name */
+ ktap->case_name = case_name;
+
+ } else {
+ /* KTAP test case result */
+ ktap->case_name = NULL;
+
+ /* last test case in a suite */
+ if (n == ktap->case_count)
+ ktap->expect = SUITE_RESULT;
+ }
+
+ if (igt_debug_on((result = calloc(1, sizeof(*result)), !result))) {
+ free(case_name);
+ free(msg);
+ return -ENOMEM;
+ }
+
+ result->suite_name = ktap->suite_name;
+ result->case_name = case_name;
+ result->code = code;
+ result->msg = msg;
+ igt_list_add_tail(&result->link, ktap->results);
+
+ return -EINPROGRESS;
+}
+
+struct igt_ktap_results *igt_ktap_alloc(struct igt_list_head *results)
+{
+ struct igt_ktap_results *ktap = calloc(1, sizeof(*ktap));
+
+ if (!ktap)
+ return NULL;
+
+ ktap->expect = KTAP_START;
+ ktap->results = results;
+
+ return ktap;
+}
+
+void igt_ktap_free(struct igt_ktap_results *ktap)
+{
+ free(ktap);
+}
+
#define DELIMITER "-"
struct ktap_parser_args {
@@ -332,6 +631,7 @@ static int parse_kmsg_for_tap(int fd, char *record, char *test_name)
* 0 if succeded
* -1 if error occurred
*/
+__maybe_unused
static int parse_tap_level(int fd, char *base_test_name, int test_count, bool *failed_tests,
bool *found_tests, bool is_builtin)
{
@@ -445,62 +745,106 @@ static int parse_tap_level(int fd, char *base_test_name, int test_count, bool *f
*/
void *igt_ktap_parser(void *unused)
{
+ char record[BUF_LEN + 1], *buf, *suite_name = NULL, *case_name = NULL;
+ struct igt_ktap_results *ktap = NULL;
int fd = ktap_args.fd;
- char record[BUF_LEN + 1];
- bool is_builtin = ktap_args.is_builtin;
- char test_name[BUF_LEN + 1];
- bool failed_tests, found_tests;
- int test_count;
+ IGT_LIST_HEAD(list);
+ int err;
- failed_tests = false;
- found_tests = false;
+ ktap = igt_ktap_alloc(&list);
+ if (igt_debug_on(!ktap))
+ goto igt_ktap_parser_end;
-igt_ktap_parser_start:
- test_name[0] = '\0';
- test_name[BUF_LEN] = '\0';
+ while (err = read(fd, record, BUF_LEN), err > 0) {
+ struct igt_ktap_result *r, *rn;
- if (read(fd, record, BUF_LEN) < 0) {
- if (errno == EPIPE)
- igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
- else
- igt_warn("error reading kmsg (%m)\n");
+ /* skip kmsg continuation lines */
+ if (igt_debug_on(*record == ' '))
+ continue;
- goto igt_ktap_parser_end;
- }
+ /* NULL-terminate the record */
+ record[err] = '\0';
- test_count = find_next_tap_subtest(fd, record, test_name, is_builtin);
+ /* detect start of log message, continue if not found */
+ buf = strchrnul(record, ';');
+ if (igt_debug_on(*buf == '\0'))
+ continue;
+ buf++;
- switch (test_count) {
- case -2:
- /* Problems while reading the file */
- goto igt_ktap_parser_end;
- case -1:
- /* No test found */
- goto igt_ktap_parser_start;
- case 0:
- /* Tests found, but they're missing info */
- found_tests = true;
- goto igt_ktap_parser_end;
- default:
- found_tests = true;
+ err = igt_ktap_parse(buf, ktap);
- if (parse_tap_level(fd, test_name, test_count, &failed_tests, &found_tests,
- is_builtin) == -1)
+ /* parsing error */
+ if (err && err != -EINPROGRESS)
goto igt_ktap_parser_end;
- break;
+ igt_list_for_each_entry_safe(r, rn, &list, link) {
+ struct ktap_test_results_element *result = NULL;
+ int code = r->code;
+
+ if (code != IGT_EXIT_INVALID)
+ result = calloc(1, sizeof(*result));
+
+ if (result) {
+ snprintf(result->test_name, sizeof(result->test_name),
+ "%s-%s", r->suite_name, r->case_name);
+
+ if (code == IGT_EXIT_SUCCESS)
+ result->passed = true;
+ }
+
+ igt_list_del(&r->link);
+ if (r->suite_name != suite_name) {
+ free(suite_name);
+ suite_name = r->suite_name;
+ }
+ if (r->case_name != case_name) {
+ free(case_name);
+ case_name = r->case_name;
+ }
+ free(r->msg);
+ free(r);
+
+ /*
+ * no extra result record expected on start
+ * of parametrized test case -- skip it
+ */
+ if (code == IGT_EXIT_INVALID)
+ continue;
+
+ if (!result) {
+ err = -ENOMEM;
+ goto igt_ktap_parser_end;
+ }
+
+ pthread_mutex_lock(&results.mutex);
+ igt_list_add_tail(&result->link, &results.list);
+ pthread_mutex_unlock(&results.mutex);
+ }
+
+ /* end of KTAP report */
+ if (!err)
+ goto igt_ktap_parser_end;
}
- /* Parse topmost level */
- test_name[0] = '\0';
- parse_tap_level(fd, test_name, test_count, &failed_tests, &found_tests, is_builtin);
+ if (err < 0) {
+ if (errno == EPIPE)
+ igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
+ else
+ igt_warn("error reading kmsg (%m)\n");
+ }
igt_ktap_parser_end:
- results.still_running = false;
+ free(suite_name);
+ free(case_name);
- if (found_tests && !failed_tests)
+ if (!err)
ktap_args.ret = IGT_EXIT_SUCCESS;
+ results.still_running = false;
+
+ if (ktap)
+ igt_ktap_free(ktap);
+
return NULL;
}
diff --git a/lib/igt_ktap.h b/lib/igt_ktap.h
index b4d7a6dbc7..6f8da3eab6 100644
--- a/lib/igt_ktap.h
+++ b/lib/igt_ktap.h
@@ -1,5 +1,6 @@
/*
* Copyright © 2022 Isabella Basso do Amaral <isabbasso@riseup.net>
+ * Copyright © 2023 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -30,6 +31,20 @@
#include "igt_list.h"
+struct igt_ktap_result {
+ struct igt_list_head link;
+ char *suite_name;
+ char *case_name;
+ char *msg;
+ int code;
+};
+
+struct igt_ktap_results;
+
+struct igt_ktap_results *igt_ktap_alloc(struct igt_list_head *results);
+int igt_ktap_parse(const char *buf, struct igt_ktap_results *ktap);
+void igt_ktap_free(struct igt_ktap_results *ktap);
+
void *igt_ktap_parser(void *unused);
typedef struct ktap_test_results_element {
diff --git a/lib/tests/igt_ktap_parser.c b/lib/tests/igt_ktap_parser.c
new file mode 100644
index 0000000000..6357bdf6a5
--- /dev/null
+++ b/lib/tests/igt_ktap_parser.c
@@ -0,0 +1,246 @@
+// SPDX-License-Identifier: MIT
+/*
+* Copyright © 2023 Intel Corporation
+*/
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "igt_core.h"
+#include "igt_ktap.h"
+#include "igt_list.h"
+
+static void ktap_list(void)
+{
+ struct igt_ktap_result *result, *rn;
+ struct igt_ktap_results *ktap;
+ int suite = 1, test = 1;
+ IGT_LIST_HEAD(results);
+
+ ktap = igt_ktap_alloc(&results);
+ igt_require(ktap);
+
+ igt_assert_eq(igt_ktap_parse("KTAP version 1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse("1..3\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" KTAP version 1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" # Subtest: test_suite_1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" 1..3\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" ok 1 test_case_1 # SKIP\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" ok 2 test_case_2 # SKIP\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" ok 3 test_case_3 # SKIP\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse("ok 1 test_suite_1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" KTAP version 1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" # Subtest: test_suite_2\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" 1..1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" ok 1 test_case_1 # SKIP\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse("ok 2 test_suite_2\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" KTAP version 1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" # Subtest: test_suite_3\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" 1..4\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" ok 1 test_case_1 # SKIP\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" ok 2 test_case_2 # SKIP\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" ok 3 test_case_3 # SKIP\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" ok 4 test_case_4 # SKIP\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse("ok 3 test_suite_3\n", ktap), 0);
+
+ igt_ktap_free(ktap);
+
+ igt_assert_eq(igt_list_length(&results), 8);
+
+ igt_list_for_each_entry_safe(result, rn, &results, link) {
+ char *case_name, *suite_name;
+
+ igt_list_del(&result->link);
+
+ igt_assert_lt(0, asprintf(&case_name, "test_case_%u", test));
+ igt_assert_lt(0, asprintf(&suite_name, "test_suite_%u", suite));
+
+ igt_assert(result->case_name);
+ igt_assert_eq(strcmp(result->case_name, case_name), 0);
+ free(result->case_name);
+ free(case_name);
+
+ igt_assert(result->suite_name);
+ igt_assert_eq(strcmp(result->suite_name, suite_name), 0);
+ free(suite_name);
+
+ igt_assert(!result->msg);
+ igt_assert_eq(result->code, IGT_EXIT_SKIP);
+
+ if ((suite == 1 && test < 3) || (suite == 3 && test < 4)) {
+ test++;
+ } else {
+ free(result->suite_name);
+ suite++;
+ test = 1;
+ }
+
+ free(result);
+ }
+}
+
+static void ktap_results(void)
+{
+ struct igt_ktap_result *result;
+ struct igt_ktap_results *ktap;
+ char *suite_name, *case_name;
+ IGT_LIST_HEAD(results);
+
+ ktap = igt_ktap_alloc(&results);
+ igt_require(ktap);
+
+ igt_assert_eq(igt_ktap_parse("KTAP version 1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse("1..1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" KTAP version 1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" # Subtest: test_suite\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" 1..1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" KTAP version 1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" # Subtest: test_case\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" ok 1 parameter 1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" ok 2 parameter 2 # a comment\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" ok 3 parameter 3 # SKIP\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" ok 4 parameter 4 # SKIP with a message\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" not ok 5 parameter 5\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" not ok 6 parameter 6 # failure message\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" ok 1 test_case\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse("not ok 1 test_suite\n", ktap), 0);
+
+ igt_ktap_free(ktap);
+
+ igt_assert_eq(igt_list_length(&results), 2);
+
+ result = igt_list_first_entry(&results, result, link);
+ igt_list_del(&result->link);
+ igt_assert_eq(strcmp(result->suite_name, "test_suite"), 0);
+ igt_assert_eq(strcmp(result->case_name, "test_case"), 0);
+ igt_assert_eq(result->code, IGT_EXIT_INVALID);
+ igt_assert(!result->msg);
+ free(result->msg);
+ suite_name = result->suite_name;
+ case_name = result->case_name;
+ free(result);
+
+ result = igt_list_first_entry(&results, result, link);
+ igt_list_del(&result->link);
+ igt_assert_eq(strcmp(result->suite_name, suite_name), 0);
+ igt_assert_eq(strcmp(result->case_name, case_name), 0);
+ igt_assert_neq(result->code, IGT_EXIT_INVALID);
+ free(result->msg);
+ free(suite_name);
+ free(case_name);
+ free(result);
+}
+
+static void ktap_success(void)
+{
+ struct igt_ktap_result *result;
+ struct igt_ktap_results *ktap;
+ IGT_LIST_HEAD(results);
+
+ ktap = igt_ktap_alloc(&results);
+ igt_require(ktap);
+
+ igt_assert_eq(igt_ktap_parse("KTAP version 1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse("1..1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" KTAP version 1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" # Subtest: test_suite\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" 1..1\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_ktap_parse(" KTAP version 1\n", ktap), -EINPROGRESS);
+ igt_assert(igt_list_empty(&results));
+
+ igt_assert_eq(igt_ktap_parse(" # Subtest: test_case\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_list_length(&results), 1);
+
+ igt_assert_eq(igt_ktap_parse(" ok 1 parameter # SKIP\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_list_length(&results), 1);
+
+ igt_assert_eq(igt_ktap_parse(" ok 1 test_case\n", ktap), -EINPROGRESS);
+ igt_assert_eq(igt_list_length(&results), 2);
+
+ igt_assert_eq(igt_ktap_parse("not ok 1 test_suite\n", ktap), 0);
+ igt_assert_eq(igt_list_length(&results), 2);
+
+ igt_ktap_free(ktap);
+
+ result = igt_list_last_entry(&results, result, link);
+ igt_list_del(&result->link);
+ igt_assert_eq(result->code, IGT_EXIT_SUCCESS);
+ free(result->msg);
+ free(result);
+
+ result = igt_list_last_entry(&results, result, link);
+ igt_list_del(&result->link);
+ free(result->suite_name);
+ free(result->case_name);
+ free(result->msg);
+ free(result);
+}
+
+static void ktap_top_version(void)
+{
+ struct igt_ktap_results *ktap;
+ IGT_LIST_HEAD(results);
+
+ ktap = igt_ktap_alloc(&results);
+ igt_require(ktap);
+ igt_assert_eq(igt_ktap_parse("1..1\n", ktap), -EPROTO);
+ igt_ktap_free(ktap);
+
+ ktap = igt_ktap_alloc(&results);
+ igt_require(ktap);
+ /* TODO: change to -EPROTO as soon as related workaround is dropped */
+ igt_assert_eq(igt_ktap_parse(" KTAP version 1\n", ktap), -EINPROGRESS);
+ igt_ktap_free(ktap);
+
+ ktap = igt_ktap_alloc(&results);
+ igt_require(ktap);
+ igt_assert_eq(igt_ktap_parse(" # Subtest: test_suite\n", ktap), -EPROTO);
+ igt_ktap_free(ktap);
+
+ ktap = igt_ktap_alloc(&results);
+ igt_require(ktap);
+ igt_assert_eq(igt_ktap_parse(" 1..1\n", ktap), -EPROTO);
+ igt_ktap_free(ktap);
+
+ ktap = igt_ktap_alloc(&results);
+ igt_require(ktap);
+ igt_assert_eq(igt_ktap_parse(" KTAP version 1\n", ktap), -EPROTO);
+ igt_ktap_free(ktap);
+
+ ktap = igt_ktap_alloc(&results);
+ igt_require(ktap);
+ igt_assert_eq(igt_ktap_parse(" # Subtest: test_case\n", ktap), -EPROTO);
+ igt_ktap_free(ktap);
+
+ ktap = igt_ktap_alloc(&results);
+ igt_require(ktap);
+ igt_assert_eq(igt_ktap_parse(" ok 1 parameter 1\n", ktap), -EPROTO);
+ igt_ktap_free(ktap);
+
+ ktap = igt_ktap_alloc(&results);
+ igt_require(ktap);
+ igt_assert_eq(igt_ktap_parse(" ok 1 test_case\n", ktap), -EPROTO);
+ igt_ktap_free(ktap);
+
+ ktap = igt_ktap_alloc(&results);
+ igt_require(ktap);
+ igt_assert_eq(igt_ktap_parse("ok 1 test_suite\n", ktap), -EPROTO);
+ igt_ktap_free(ktap);
+}
+
+igt_main
+{
+ igt_subtest("list")
+ ktap_list();
+
+ igt_subtest("results")
+ ktap_results();
+
+ igt_subtest("success")
+ ktap_success();
+
+ igt_subtest("top-ktap-version")
+ ktap_top_version();
+}
diff --git a/lib/tests/meson.build b/lib/tests/meson.build
index 7a52a7876e..fa3d81de6c 100644
--- a/lib/tests/meson.build
+++ b/lib/tests/meson.build
@@ -10,6 +10,7 @@ lib_tests = [
'igt_exit_handler',
'igt_fork',
'igt_fork_helper',
+ 'igt_ktap_parser',
'igt_list_only',
'igt_invalid_subtest_name',
'igt_nesting',
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 14/17] lib/kunit: Load test modules in background
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (12 preceding siblings ...)
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 13/17] lib/ktap: Reimplement KTAP parser Janusz Krzysztofik
@ 2023-09-18 13:43 ` Janusz Krzysztofik
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 15/17] lib/kunit: Parse KTAP report from the main process thread Janusz Krzysztofik
` (6 subsequent siblings)
20 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:43 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
For igt_runner to be able to correlate a stream of IGT results from
dynamic sub-subtests that correspond to individual kunit test cases, read
by the igt_runner from stdout / stderr of the test process, with a stream
of kernel messages read from /dev/kmsg, we need both result streams being
fed with data in parallel. While our KTAP parser is currently started in
the background and reads KTAP results from /dev/kmsg in parallel with
execution of kunit tests performed by the kernel while we are loading a
kunit test module, results from the parser are then only stored as
intermediate data and not processed any further until the module loading
completes. As a consequence, there is no synchronization between the two
streams.
Call the function that loads the kunit test module from a separate thread
and process the intermediate results immediately, as soon as available
from the background parser, without waiting for completion of module
loading.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
lib/igt_kmod.c | 35 +++++++++++++++++++++++++++++++++--
1 file changed, 33 insertions(+), 2 deletions(-)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 2941524bb4..8fbd274ccf 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -25,6 +25,7 @@
#include <signal.h>
#include <errno.h>
#include <fcntl.h>
+#include <pthread.h>
#include <sys/utsname.h>
#include "igt_aux.h"
@@ -746,6 +747,21 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
kmod_module_info_free_list(pre);
}
+struct modprobe_data {
+ struct kmod_module *kmod;
+ const char *opts;
+ int err;
+};
+
+static void *modprobe_task(void *arg)
+{
+ struct modprobe_data *data = arg;
+
+ data->err = modprobe(data->kmod, data->opts);
+
+ return NULL;
+}
+
/**
* igt_kunit:
* @module_name: the name of the module
@@ -757,9 +773,11 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
*/
static void __igt_kunit(struct igt_ktest *tst, const char *opts)
{
+ struct modprobe_data modprobe = { tst->kmod, opts, 0, };
struct kmod_module *kunit_kmod;
bool is_builtin;
struct ktap_test_results *results;
+ pthread_t modprobe_thread;
unsigned long taints;
int flags, ret;
@@ -777,18 +795,25 @@ static void __igt_kunit(struct igt_ktest *tst, const char *opts)
results = ktap_parser_start(tst->kmsg, is_builtin);
- if (igt_debug_on(igt_kmod_load(tst->module_name, opts) < 0)) {
+ if (igt_debug_on(pthread_create(&modprobe_thread, NULL,
+ modprobe_task, &modprobe))) {
ktap_parser_cancel();
igt_ignore_warn(ktap_parser_stop());
- igt_skip("Unable to load %s module\n", tst->module_name);
+ igt_skip("Failed to create a modprobe thread\n");
}
while (READ_ONCE(results->still_running) || !igt_list_empty(&results->list))
{
struct ktap_test_results_element *result;
+ if (!pthread_tryjoin_np(modprobe_thread, NULL) && modprobe.err) {
+ ktap_parser_cancel();
+ break;
+ }
+
if (igt_kernel_tainted(&taints)) {
ktap_parser_cancel();
+ pthread_cancel(modprobe_thread);
break;
}
@@ -806,14 +831,20 @@ static void __igt_kunit(struct igt_ktest *tst, const char *opts)
igt_dynamic(result->test_name) {
igt_assert(READ_ONCE(result->passed));
+ if (!pthread_tryjoin_np(modprobe_thread, NULL))
+ igt_assert_eq(modprobe.err, 0);
+
igt_fail_on(igt_kernel_tainted(&taints));
}
free(result);
}
+ pthread_join(modprobe_thread, NULL);
+
ret = ktap_parser_stop();
+ igt_skip_on(modprobe.err);
igt_skip_on(igt_kernel_tainted(&taints));
igt_skip_on_f(ret, "KTAP parser failed\n");
}
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 15/17] lib/kunit: Parse KTAP report from the main process thread
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (13 preceding siblings ...)
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 14/17] lib/kunit: Load test modules in background Janusz Krzysztofik
@ 2023-09-18 13:43 ` Janusz Krzysztofik
2023-09-20 18:05 ` [igt-dev] [Intel-gfx] " Mauro Carvalho Chehab
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 16/17] lib/kunit: Strip "_test" or "_kunit" suffix from subtest names Janusz Krzysztofik
` (5 subsequent siblings)
20 siblings, 1 reply; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:43 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
There was an attempt to parse KTAP reports in the background while a kunit
test module is loading. However, since dynamic sub-subtests can be
executed only from the main thread, that attempt was not quite successful,
as IGT results from all executed kunit test cases were generated only
after loading of kunit test module completed.
Now that the parser maintains its state and we can call it separately for
each input line of a KTAP report, it is perfectly possible to call the
parser from the main thread while the module is loading in the background,
and convert results from kunit test cases immediately to results of IGT
dynamic sub-subtests by running an igt_dynamic() section for each result
as soon as returned by the parser.
Drop igt_ktap_parser() thread and execute igt_dynamic() for each kunit
result obtained from igt_ktap_parse() called from the main thread.
Also, drop no longer needed functions from igt_ktap soruces.
v2: Interrupt blocking read() on modprobe failure.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
---
lib/igt_kmod.c | 208 ++++++++++++++----
lib/igt_ktap.c | 568 -------------------------------------------------
lib/igt_ktap.h | 22 --
3 files changed, 166 insertions(+), 632 deletions(-)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 8fbd274ccf..7fa5b4aa80 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -1,5 +1,5 @@
/*
- * Copyright © 2016 Intel Corporation
+ * Copyright © 2016-2023 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -26,7 +26,10 @@
#include <errno.h>
#include <fcntl.h>
#include <pthread.h>
+#include <stdlib.h>
+#include <string.h>
#include <sys/utsname.h>
+#include <unistd.h>
#include "igt_aux.h"
#include "igt_core.h"
@@ -748,20 +751,109 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
}
struct modprobe_data {
+ pthread_t parent;
struct kmod_module *kmod;
const char *opts;
int err;
+ pthread_mutex_t lock;
+ pthread_t thread;
};
static void *modprobe_task(void *arg)
{
struct modprobe_data *data = arg;
+ int err;
+
+ err = modprobe(data->kmod, data->opts);
- data->err = modprobe(data->kmod, data->opts);
+ if (err) {
+ while (pthread_mutex_trylock(&data->lock) == EBUSY)
+ pthread_kill(data->parent, SIGCHLD);
+
+ data->err = err;
+ pthread_mutex_unlock(&data->lock);
+ }
return NULL;
}
+static void kunit_sigchld_handler(int signal)
+{
+ return;
+}
+
+static int kunit_kmsg_result_get(struct igt_list_head *results,
+ struct modprobe_data *modprobe,
+ int fd, struct igt_ktap_results *ktap)
+{
+ struct sigaction sigchld = { .sa_handler = kunit_sigchld_handler, };
+ char record[BUF_LEN + 1], *buf;
+ unsigned long taints;
+ int ret;
+
+ do {
+ if (igt_kernel_tainted(&taints))
+ return -ENOTRECOVERABLE;
+
+ pthread_mutex_lock(&modprobe->lock);
+ if (!pthread_tryjoin_np(modprobe->thread, NULL) &&
+ modprobe->err) {
+ pthread_mutex_unlock(&modprobe->lock);
+ return modprobe->err;
+ }
+
+ sigaction(SIGCHLD, &sigchld, NULL);
+ ret = read(fd, record, BUF_LEN);
+ sigaction(SIGCHLD, NULL, NULL);
+ pthread_mutex_unlock(&modprobe->lock);
+
+ if (!ret)
+ return -ENODATA;
+ if (ret == -1)
+ return -errno;
+
+ igt_assert_lt(0, ret);
+
+ /* skip kmsg continuation lines */
+ if (igt_debug_on(*record == ' '))
+ continue;
+
+ /* NULL-terminate the record */
+ record[ret] = '\0';
+
+ /* detect start of log message, continue if not found */
+ buf = strchrnul(record, ';');
+ if (igt_debug_on(*buf == '\0'))
+ continue;
+ buf++;
+
+ ret = igt_ktap_parse(buf, ktap);
+ if (ret != -EINPROGRESS)
+ break;
+ } while (igt_list_empty(results));
+
+ return ret;
+}
+
+static void kunit_result_free(struct igt_ktap_result *r,
+ char **suite_name, char **case_name)
+{
+ igt_list_del(&r->link);
+
+ if (r->suite_name != *suite_name) {
+ free(*suite_name);
+ *suite_name = r->suite_name;
+ }
+
+ if (r->case_name != *case_name) {
+ free(*case_name);
+ *case_name = r->case_name;
+ }
+
+ free(r->msg);
+ free(r);
+}
+
/**
* igt_kunit:
* @module_name: the name of the module
@@ -773,11 +865,12 @@ static void *modprobe_task(void *arg)
*/
static void __igt_kunit(struct igt_ktest *tst, const char *opts)
{
- struct modprobe_data modprobe = { tst->kmod, opts, 0, };
- struct kmod_module *kunit_kmod;
- bool is_builtin;
- struct ktap_test_results *results;
- pthread_t modprobe_thread;
+ struct modprobe_data modprobe = { pthread_self(), tst->kmod, opts, 0,
+ PTHREAD_MUTEX_INITIALIZER, };
+ char *suite_name = NULL, *case_name = NULL;
+ struct igt_ktap_result *r, *rn;
+ struct igt_ktap_results *ktap;
+ IGT_LIST_HEAD(results);
unsigned long taints;
int flags, ret;
@@ -787,62 +880,93 @@ static void __igt_kunit(struct igt_ktest *tst, const char *opts)
igt_skip_on_f(fcntl(tst->kmsg, F_SETFL, flags) == -1,
"Could not set /dev/kmsg to blocking mode\n");
- igt_skip_on(lseek(tst->kmsg, 0, SEEK_END) < 0);
-
- igt_skip_on(kmod_module_new_from_name(kmod_ctx(), "kunit", &kunit_kmod));
- is_builtin = kmod_module_get_initstate(kunit_kmod) == KMOD_MODULE_BUILTIN;
- kmod_module_unref(kunit_kmod);
+ ktap = igt_ktap_alloc(&results);
+ igt_require(ktap);
- results = ktap_parser_start(tst->kmsg, is_builtin);
+ igt_skip_on(lseek(tst->kmsg, 0, SEEK_END) < 0);
- if (igt_debug_on(pthread_create(&modprobe_thread, NULL,
+ if (igt_debug_on(pthread_create(&modprobe.thread, NULL,
modprobe_task, &modprobe))) {
- ktap_parser_cancel();
- igt_ignore_warn(ktap_parser_stop());
+ igt_ktap_free(ktap);
igt_skip("Failed to create a modprobe thread\n");
}
- while (READ_ONCE(results->still_running) || !igt_list_empty(&results->list))
- {
- struct ktap_test_results_element *result;
-
- if (!pthread_tryjoin_np(modprobe_thread, NULL) && modprobe.err) {
- ktap_parser_cancel();
+ do {
+ ret = kunit_kmsg_result_get(&results, &modprobe,
+ tst->kmsg, ktap);
+ if (igt_debug_on(ret && ret != -EINPROGRESS))
break;
- }
- if (igt_kernel_tainted(&taints)) {
- ktap_parser_cancel();
- pthread_cancel(modprobe_thread);
+ if (igt_debug_on(igt_list_empty(&results)))
break;
- }
- pthread_mutex_lock(&results->mutex);
- if (igt_list_empty(&results->list)) {
- pthread_mutex_unlock(&results->mutex);
- continue;
- }
+ r = igt_list_first_entry(&results, r, link);
+
+ igt_dynamic_f("%s-%s", r->suite_name, r->case_name) {
+ if (r->code == IGT_EXIT_INVALID) {
+ /* parametrized test case, get actual result */
+ kunit_result_free(r, &suite_name, &case_name);
+ r = NULL;
+
+ igt_assert(igt_list_empty(&results));
+
+ ret = kunit_kmsg_result_get(&results, &modprobe,
+ tst->kmsg, ktap);
+ if (ret != -EINPROGRESS)
+ igt_fail_on(ret);
- result = igt_list_first_entry(&results->list, result, link);
+ igt_fail_on(igt_list_empty(&results));
- igt_list_del(&result->link);
- pthread_mutex_unlock(&results->mutex);
+ r = igt_list_first_entry(&results, r, link);
- igt_dynamic(result->test_name) {
- igt_assert(READ_ONCE(result->passed));
+ igt_fail_on_f(strcmp(r->suite_name, suite_name),
+ "suite_name expected: %s, got: %s\n",
+ suite_name, r->suite_name);
+ igt_fail_on_f(strcmp(r->case_name, case_name),
+ "case_name expected: %s, got: %s\n",
+ case_name, r->case_name);
+ }
+
+ igt_assert_neq(r->code, IGT_EXIT_INVALID);
+
+ if (r->msg && *r->msg) {
+ igt_skip_on_f(r->code == IGT_EXIT_SKIP,
+ "%s", r->msg);
+ igt_fail_on_f(r->code == IGT_EXIT_FAILURE,
+ "%s", r->msg);
+ igt_abort_on_f(r->code == IGT_EXIT_ABORT,
+ "%s", r->msg);
+ } else {
+ igt_skip_on(r->code == IGT_EXIT_SKIP);
+ igt_fail_on(r->code == IGT_EXIT_FAILURE);
+ if (igt_debug_on(r->code != IGT_EXIT_SUCCESS))
+ igt_fail(r->code);
+ }
- if (!pthread_tryjoin_np(modprobe_thread, NULL))
+ if (ret != -EINPROGRESS)
+ igt_assert_eq(ret, 0);
+
+ if (!pthread_tryjoin_np(modprobe.thread, NULL))
igt_assert_eq(modprobe.err, 0);
igt_fail_on(igt_kernel_tainted(&taints));
}
- free(result);
- }
+ kunit_result_free(r, &suite_name, &case_name);
+
+ } while (ret == -EINPROGRESS);
- pthread_join(modprobe_thread, NULL);
+ igt_list_for_each_entry_safe(r, rn, &results, link)
+ kunit_result_free(r, &suite_name, &case_name);
+
+ free(case_name);
+ free(suite_name);
+
+ if (ret)
+ pthread_cancel(modprobe.thread);
+ pthread_join(modprobe.thread, NULL);
- ret = ktap_parser_stop();
+ igt_ktap_free(ktap);
igt_skip_on(modprobe.err);
igt_skip_on(igt_kernel_tainted(&taints));
diff --git a/lib/igt_ktap.c b/lib/igt_ktap.c
index 5eac102417..53a6c63288 100644
--- a/lib/igt_ktap.c
+++ b/lib/igt_ktap.c
@@ -4,17 +4,11 @@
* Copyright © 2023 Intel Corporation
*/
-#include <ctype.h>
-#include <limits.h>
-#include <libkmod.h>
-#include <pthread.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
-#include "igt_aux.h"
#include "igt_core.h"
#include "igt_ktap.h"
#include "igt_list.h"
@@ -312,565 +306,3 @@ void igt_ktap_free(struct igt_ktap_results *ktap)
{
free(ktap);
}
-
-#define DELIMITER "-"
-
-struct ktap_parser_args {
- int fd;
- bool is_builtin;
- int ret;
-} ktap_args;
-
-static struct ktap_test_results results;
-
-static int log_to_end(enum igt_log_level level, int fd,
- char *record, const char *format, ...) __attribute__((format(printf, 4, 5)));
-
-/**
- * log_to_end:
- * @level: #igt_log_level
- * @record: record to store the read data
- * @format: format string
- * @...: optional arguments used in the format string
- *
- * This is an altered version of the generic structured logging helper function
- * igt_log capable of reading to the end of a given line.
- *
- * Returns: 0 for success, or -2 if there's an error reading from the file
- */
-static int log_to_end(enum igt_log_level level, int fd,
- char *record, const char *format, ...)
-{
- va_list args;
- const char *lend;
-
- /* Cutoff after newline character, in order to not display garbage */
- char *cutoff = strchr(record, '\n');
- if (cutoff) {
- if (cutoff - record < BUF_LEN)
- cutoff[1] = '\0';
- }
-
- va_start(args, format);
- igt_vlog(IGT_LOG_DOMAIN, level, format, args);
- va_end(args);
-
- lend = strchrnul(record, '\n');
- while (*lend == '\0') {
- igt_log(IGT_LOG_DOMAIN, level, "%s", record);
-
- if (read(fd, record, BUF_LEN) < 0) {
- if (errno == EPIPE)
- igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
- else
- igt_warn("an error occurred while reading kmsg: %m\n");
-
- return -2;
- }
-
- lend = strchrnul(record, '\n');
- }
- return 0;
-}
-
-/**
- * lookup_value:
- * @haystack: the string to search in
- * @needle: the string to search for
- *
- * Returns: the value of the needle in the haystack, or -1 if not found.
- */
-static long lookup_value(const char *haystack, const char *needle)
-{
- const char *needle_rptr;
- char *needle_end;
- long num;
-
- needle_rptr = strcasestr(haystack, needle);
-
- if (needle_rptr == NULL)
- return -1;
-
- /* Skip search string and whitespaces after it */
- needle_rptr += strlen(needle);
-
- num = strtol(needle_rptr, &needle_end, 10);
-
- if (needle_rptr == needle_end)
- return -1;
-
- if (num == LONG_MIN || num == LONG_MAX)
- return 0;
-
- return num > 0 ? num : 0;
-}
-
-/**
- * tap_version_present:
- * @record: buffer with tap data
- * @print_info: whether tap version should be printed or not
- *
- * Returns:
- * 0 if not found
- * 1 if found
- */
-static int tap_version_present(char* record, bool print_info)
-{
- /*
- * "(K)TAP version XX" should be the first line on all (sub)tests as per
- * https://kernel.org/doc/html/latest/dev-tools/ktap.html#version-lines
- *
- * but actually isn't, as it currently depends on the KUnit module
- * being built-in, so we can't rely on it every time
- */
- const char *version_rptr = strcasestr(record, "TAP version ");
- char *cutoff;
-
- if (version_rptr == NULL)
- return 0;
-
- /* Cutoff after newline character, in order to not display garbage */
- cutoff = strchr(version_rptr, '\n');
- if (cutoff)
- cutoff[0] = '\0';
-
- if (print_info)
- igt_info("%s\n", version_rptr);
-
- return 1;
-}
-
-/**
- * find_next_tap_subtest:
- * @fd: file descriptor
- * @record: buffer used to read fd
- * @is_builtin: whether KUnit is built-in or not
- *
- * Returns:
- * 0 if there's missing information
- * -1 if not found
- * -2 if there are problems while reading the file.
- * any other value corresponds to the amount of cases of the next (sub)test
- */
-static int find_next_tap_subtest(int fd, char *record, char *test_name, bool is_builtin)
-{
- const char *test_lookup_str, *subtest_lookup_str, *name_rptr;
- long test_count;
- char *cutoff;
-
- test_name[0] = '\0';
- test_name[BUF_LEN] = '\0';
-
- test_lookup_str = " subtest: ";
- subtest_lookup_str = " test: ";
-
- if (!tap_version_present(record, true))
- return -1;
-
- if (is_builtin) {
- if (read(fd, record, BUF_LEN) < 0) {
- if (errno == EPIPE)
- igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
- else
- igt_warn("an error occurred while reading kmsg: %m\n");
-
- return -2;
- }
- }
-
- name_rptr = strcasestr(record, test_lookup_str);
- if (name_rptr != NULL) {
- name_rptr += strlen(test_lookup_str);
- } else {
- name_rptr = strcasestr(record, subtest_lookup_str);
- if (name_rptr != NULL)
- name_rptr += strlen(subtest_lookup_str);
- }
-
- if (name_rptr == NULL) {
- if (!is_builtin)
- /* We've probably found nothing */
- return -1;
- igt_info("Missing test name\n");
- } else {
- strncpy(test_name, name_rptr, BUF_LEN);
- /* Cutoff after newline character, in order to not display garbage */
- cutoff = strchr(test_name, '\n');
- if (cutoff)
- cutoff[0] = '\0';
-
- if (read(fd, record, BUF_LEN) < 0) {
- if (errno == EPIPE)
- igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
- else
- igt_warn("unknown error reading kmsg (%m)\n");
-
- return -2;
- }
-
- /* Now we can be sure we found tests */
- if (!is_builtin)
- igt_info("KUnit is not built-in, skipping version check...\n");
- }
-
- /*
- * Total test count will almost always appear as 0..N at the beginning
- * of a run, so we use it to reliably identify a new run
- */
- test_count = lookup_value(record, "..");
-
- if (test_count <= 0) {
- igt_info("Missing test count\n");
- if (test_name[0] == '\0')
- return 0;
- if (log_to_end(IGT_LOG_INFO, fd, record,
- "Running some tests in: %s\n",
- test_name) < 0)
- return -2;
- return 0;
- } else if (test_name[0] == '\0') {
- igt_info("Running %ld tests...\n", test_count);
- return 0;
- }
-
- if (log_to_end(IGT_LOG_INFO, fd, record,
- "Executing %ld tests in: %s\n",
- test_count, test_name) < 0)
- return -2;
-
- return test_count;
-}
-
-/**
- * parse_kmsg_for_tap:
- * @fd: file descriptor
- * @record: buffer used to read fd
- * @test_name: buffer to store the test name
- *
- * Returns:
- * 1 if no results were found
- * 0 if a test succeded
- * -1 if a test failed
- * -2 if there are problems reading the file
- */
-static int parse_kmsg_for_tap(int fd, char *record, char *test_name)
-{
- const char *lstart, *ok_lookup_str, *nok_lookup_str,
- *ok_rptr, *nok_rptr, *comment_start, *value_parse_start;
- char *test_name_end;
-
- ok_lookup_str = "ok ";
- nok_lookup_str = "not ok ";
-
- lstart = strchrnul(record, ';');
-
- if (*lstart == '\0') {
- igt_warn("kmsg truncated: output malformed (%m)\n");
- return -2;
- }
-
- lstart++;
- while (isspace(*lstart))
- lstart++;
-
- nok_rptr = strstr(lstart, nok_lookup_str);
- if (nok_rptr != NULL) {
- nok_rptr += strlen(nok_lookup_str);
- while (isdigit(*nok_rptr) || isspace(*nok_rptr) || *nok_rptr == '-')
- nok_rptr++;
- test_name_end = strncpy(test_name, nok_rptr, BUF_LEN);
- while (!isspace(*test_name_end))
- test_name_end++;
- *test_name_end = '\0';
- if (log_to_end(IGT_LOG_WARN, fd, record,
- "%s", lstart) < 0)
- return -2;
- return -1;
- }
-
- comment_start = strchrnul(lstart, '#');
-
- /* Check if we're still in a subtest */
- if (*comment_start != '\0') {
- comment_start++;
- value_parse_start = comment_start;
-
- if (lookup_value(value_parse_start, "fail: ") > 0) {
- if (log_to_end(IGT_LOG_WARN, fd, record,
- "%s", lstart) < 0)
- return -2;
- return -1;
- }
- }
-
- ok_rptr = strstr(lstart, ok_lookup_str);
- if (ok_rptr != NULL) {
- ok_rptr += strlen(ok_lookup_str);
- while (isdigit(*ok_rptr) || isspace(*ok_rptr) || *ok_rptr == '-')
- ok_rptr++;
- test_name_end = strncpy(test_name, ok_rptr, BUF_LEN);
- while (!isspace(*test_name_end))
- test_name_end++;
- *test_name_end = '\0';
- return 0;
- }
-
- return 1;
-}
-
-/**
- * parse_tap_level:
- * @fd: file descriptor
- * @base_test_name: test_name from upper recursion level
- * @test_count: test_count of this level
- * @failed_tests: top level failed_tests pointer
- * @found_tests: top level found_tests pointer
- * @is_builtin: whether the KUnit module is built-in or not
- *
- * Returns:
- * 0 if succeded
- * -1 if error occurred
- */
-__maybe_unused
-static int parse_tap_level(int fd, char *base_test_name, int test_count, bool *failed_tests,
- bool *found_tests, bool is_builtin)
-{
- char record[BUF_LEN + 1];
- struct ktap_test_results_element *r;
- int internal_test_count;
- char test_name[BUF_LEN + 1];
- char base_test_name_for_next_level[BUF_LEN + 1];
-
- for (int i = 0; i < test_count; i++) {
- if (read(fd, record, BUF_LEN) < 0) {
- if (errno == EPIPE)
- igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
- else
- igt_warn("error reading kmsg (%m)\n");
-
- return -1;
- }
-
- /* Sublevel found */
- if (tap_version_present(record, false))
- {
- internal_test_count = find_next_tap_subtest(fd, record, test_name,
- is_builtin);
- switch (internal_test_count) {
- case -2:
- /* No more data to read */
- return -1;
- case -1:
- /* No test found */
- return -1;
- case 0:
- /* Tests found, but they're missing info */
- *found_tests = true;
- return -1;
- default:
- *found_tests = true;
-
- memcpy(base_test_name_for_next_level, base_test_name, BUF_LEN);
- if (strlen(base_test_name_for_next_level) < BUF_LEN - 1 &&
- base_test_name_for_next_level[0])
- strncat(base_test_name_for_next_level, DELIMITER,
- BUF_LEN - strlen(base_test_name_for_next_level));
- memcpy(base_test_name_for_next_level + strlen(base_test_name_for_next_level),
- test_name, BUF_LEN - strlen(base_test_name_for_next_level));
-
- if (parse_tap_level(fd, base_test_name_for_next_level,
- internal_test_count, failed_tests, found_tests,
- is_builtin) == -1)
- return -1;
- break;
- }
- }
-
- switch (parse_kmsg_for_tap(fd, record, test_name)) {
- case -2:
- return -1;
- case -1:
- *failed_tests = true;
-
- r = malloc(sizeof(*r));
-
- memcpy(r->test_name, base_test_name, BUF_LEN);
- if (strlen(r->test_name) < BUF_LEN - 1)
- if (r->test_name[0])
- strncat(r->test_name, DELIMITER,
- BUF_LEN - strlen(r->test_name));
- memcpy(r->test_name + strlen(r->test_name), test_name,
- BUF_LEN - strlen(r->test_name));
- r->test_name[BUF_LEN] = '\0';
-
- r->passed = false;
-
- pthread_mutex_lock(&results.mutex);
- igt_list_add_tail(&r->link, &results.list);
- pthread_mutex_unlock(&results.mutex);
-
- test_name[0] = '\0';
- break;
- case 0:
- r = malloc(sizeof(*r));
-
- memcpy(r->test_name, base_test_name, BUF_LEN);
- if (strlen(r->test_name) < BUF_LEN - 1)
- if (r->test_name[0])
- strncat(r->test_name, DELIMITER,
- BUF_LEN - strlen(r->test_name));
- memcpy(r->test_name + strlen(r->test_name), test_name,
- BUF_LEN - strlen(r->test_name));
- r->test_name[BUF_LEN] = '\0';
-
- r->passed = true;
-
- pthread_mutex_lock(&results.mutex);
- igt_list_add_tail(&r->link, &results.list);
- pthread_mutex_unlock(&results.mutex);
-
- test_name[0] = '\0';
- break;
- default:
- break;
- }
- }
- return 0;
-}
-
-/**
- * igt_ktap_parser:
- *
- * This function parses the output of a ktap script and passes it to main thread.
- */
-void *igt_ktap_parser(void *unused)
-{
- char record[BUF_LEN + 1], *buf, *suite_name = NULL, *case_name = NULL;
- struct igt_ktap_results *ktap = NULL;
- int fd = ktap_args.fd;
- IGT_LIST_HEAD(list);
- int err;
-
- ktap = igt_ktap_alloc(&list);
- if (igt_debug_on(!ktap))
- goto igt_ktap_parser_end;
-
- while (err = read(fd, record, BUF_LEN), err > 0) {
- struct igt_ktap_result *r, *rn;
-
- /* skip kmsg continuation lines */
- if (igt_debug_on(*record == ' '))
- continue;
-
- /* NULL-terminate the record */
- record[err] = '\0';
-
- /* detect start of log message, continue if not found */
- buf = strchrnul(record, ';');
- if (igt_debug_on(*buf == '\0'))
- continue;
- buf++;
-
- err = igt_ktap_parse(buf, ktap);
-
- /* parsing error */
- if (err && err != -EINPROGRESS)
- goto igt_ktap_parser_end;
-
- igt_list_for_each_entry_safe(r, rn, &list, link) {
- struct ktap_test_results_element *result = NULL;
- int code = r->code;
-
- if (code != IGT_EXIT_INVALID)
- result = calloc(1, sizeof(*result));
-
- if (result) {
- snprintf(result->test_name, sizeof(result->test_name),
- "%s-%s", r->suite_name, r->case_name);
-
- if (code == IGT_EXIT_SUCCESS)
- result->passed = true;
- }
-
- igt_list_del(&r->link);
- if (r->suite_name != suite_name) {
- free(suite_name);
- suite_name = r->suite_name;
- }
- if (r->case_name != case_name) {
- free(case_name);
- case_name = r->case_name;
- }
- free(r->msg);
- free(r);
-
- /*
- * no extra result record expected on start
- * of parametrized test case -- skip it
- */
- if (code == IGT_EXIT_INVALID)
- continue;
-
- if (!result) {
- err = -ENOMEM;
- goto igt_ktap_parser_end;
- }
-
- pthread_mutex_lock(&results.mutex);
- igt_list_add_tail(&result->link, &results.list);
- pthread_mutex_unlock(&results.mutex);
- }
-
- /* end of KTAP report */
- if (!err)
- goto igt_ktap_parser_end;
- }
-
- if (err < 0) {
- if (errno == EPIPE)
- igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
- else
- igt_warn("error reading kmsg (%m)\n");
- }
-
-igt_ktap_parser_end:
- free(suite_name);
- free(case_name);
-
- if (!err)
- ktap_args.ret = IGT_EXIT_SUCCESS;
-
- results.still_running = false;
-
- if (ktap)
- igt_ktap_free(ktap);
-
- return NULL;
-}
-
-static pthread_t ktap_parser_thread;
-
-struct ktap_test_results *ktap_parser_start(int fd, bool is_builtin)
-{
- IGT_INIT_LIST_HEAD(&results.list);
- pthread_mutex_init(&results.mutex, NULL);
- results.still_running = true;
-
- ktap_args.fd = fd;
- ktap_args.is_builtin = is_builtin;
- ktap_args.ret = IGT_EXIT_FAILURE;
- pthread_create(&ktap_parser_thread, NULL, igt_ktap_parser, NULL);
-
- return &results;
-}
-
-void ktap_parser_cancel(void)
-{
- pthread_cancel(ktap_parser_thread);
-}
-
-int ktap_parser_stop(void)
-{
- pthread_join(ktap_parser_thread, NULL);
- return ktap_args.ret;
-}
diff --git a/lib/igt_ktap.h b/lib/igt_ktap.h
index 6f8da3eab6..c422636bfc 100644
--- a/lib/igt_ktap.h
+++ b/lib/igt_ktap.h
@@ -27,8 +27,6 @@
#define BUF_LEN 4096
-#include <pthread.h>
-
#include "igt_list.h"
struct igt_ktap_result {
@@ -45,24 +43,4 @@ struct igt_ktap_results *igt_ktap_alloc(struct igt_list_head *results);
int igt_ktap_parse(const char *buf, struct igt_ktap_results *ktap);
void igt_ktap_free(struct igt_ktap_results *ktap);
-void *igt_ktap_parser(void *unused);
-
-typedef struct ktap_test_results_element {
- char test_name[BUF_LEN + 1];
- bool passed;
- struct igt_list_head link;
-} ktap_test_results_element;
-
-struct ktap_test_results {
- struct igt_list_head list;
- pthread_mutex_t mutex;
- bool still_running;
-};
-
-
-
-struct ktap_test_results *ktap_parser_start(int fd, bool is_builtin);
-void ktap_parser_cancel(void);
-int ktap_parser_stop(void);
-
#endif /* IGT_KTAP_H */
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 16/17] lib/kunit: Strip "_test" or "_kunit" suffix from subtest names
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (14 preceding siblings ...)
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 15/17] lib/kunit: Parse KTAP report from the main process thread Janusz Krzysztofik
@ 2023-09-18 13:43 ` Janusz Krzysztofik
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 17/17] lib/kunit: Omit suite name prefix if the same as subtest name Janusz Krzysztofik
` (4 subsequent siblings)
20 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:43 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
If a user (an IGT test) doesn't provide a subtest name when calling
igt_kunit() then we now use the requested kernel module name as IGT
subtest name. Since names of kunit test modules usually end with a
"_test" or "_kunit" suffix, those parts of the names don't carry any
useful information. Strip those suffixes from IGT subtest names.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
lib/igt_kmod.c | 23 ++++++++++++++++++++---
tests/drm_mm.c | 42 +++++++++++++++++++++---------------------
2 files changed, 41 insertions(+), 24 deletions(-)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 7fa5b4aa80..f6e0ab07ce 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -978,7 +978,27 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
struct igt_ktest tst = { .kmsg = -1, };
+ /*
+ * If the caller (an IGT test) provides no subtest name then we
+ * take the module name, drop the trailing "_test" or "_kunit"
+ * suffix, if any, and use the result as our IGT subtest name.
+ */
+ if (!name) {
+ name = strdup(module_name);
+ if (name) {
+ char *suffix = strstr(name, "_test");
+
+ if (!suffix)
+ suffix = strstr(name, "_kunit");
+
+ if (suffix)
+ *suffix = '\0';
+ }
+ }
+
igt_fixture {
+ igt_require(name);
+
igt_skip_on(igt_ktest_init(&tst, module_name));
igt_skip_on(igt_ktest_begin(&tst));
}
@@ -990,9 +1010,6 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
* proper namespace for dynamic subtests, with is required for CI
* and for documentation.
*/
- if (name == NULL)
- name = module_name;
-
igt_subtest_with_dynamic(name)
__igt_kunit(&tst, opts);
diff --git a/tests/drm_mm.c b/tests/drm_mm.c
index 9a8b3f3fcb..e6ba224745 100644
--- a/tests/drm_mm.c
+++ b/tests/drm_mm.c
@@ -29,123 +29,123 @@
* Feature: mapping
* Run type: FULL
*
- * SUBTEST: drm_mm_test
+ * SUBTEST: drm_mm
*
- * SUBTEST: drm_mm_test@align
+ * SUBTEST: drm_mm@align
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@align32
+ * SUBTEST: drm_mm@align32
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@align64
+ * SUBTEST: drm_mm@align64
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@bottomup
+ * SUBTEST: drm_mm@bottomup
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@color
+ * SUBTEST: drm_mm@color
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@color_evict
+ * SUBTEST: drm_mm@color_evict
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@color_evict_range
+ * SUBTEST: drm_mm@color_evict_range
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@debug
+ * SUBTEST: drm_mm@debug
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@evict
+ * SUBTEST: drm_mm@evict
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@evict_range
+ * SUBTEST: drm_mm@evict_range
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@frag
+ * SUBTEST: drm_mm@frag
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@highest
+ * SUBTEST: drm_mm@highest
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@init
+ * SUBTEST: drm_mm@init
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@insert
+ * SUBTEST: drm_mm@insert
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@insert_range
+ * SUBTEST: drm_mm@insert_range
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@lowest
+ * SUBTEST: drm_mm@lowest
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@replace
+ * SUBTEST: drm_mm@replace
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@reserve
+ * SUBTEST: drm_mm@reserve
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@sanitycheck
+ * SUBTEST: drm_mm@sanitycheck
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
* Test category: GEM_Legacy
*
- * SUBTEST: drm_mm_test@topdown
+ * SUBTEST: drm_mm@topdown
* Category: Infrastructure
* Description: drm_mm range manager SW validation
* Functionality: DRM memory mangemnt
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] [PATCH i-g-t v3 17/17] lib/kunit: Omit suite name prefix if the same as subtest name
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (15 preceding siblings ...)
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 16/17] lib/kunit: Strip "_test" or "_kunit" suffix from subtest names Janusz Krzysztofik
@ 2023-09-18 13:43 ` Janusz Krzysztofik
2023-09-19 6:36 ` [igt-dev] [Intel-gfx] " Mauro Carvalho Chehab
2023-09-18 20:24 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix IGT Kunit implementation issues (rev3) Patchwork
` (3 subsequent siblings)
20 siblings, 1 reply; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-18 13:43 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Isabella Basso, intel-xe
Kunit test modules usually contain one test suite, named after the module
name with the trailing "_test" or "_kunit" suffix omitted. Since we
follow the same convention when we derive subtest names from module names,
there is a great chance that those two names match. Take this into
account when composing names for IGT dynamic sub-subtest names and drop
the leading test suite name component when it is the same as subtest name.
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
---
lib/igt_kmod.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index f6e0ab07ce..05c837031c 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -863,7 +863,8 @@ static void kunit_result_free(struct igt_ktap_result *r,
*
* Returns: IGT default codes
*/
-static void __igt_kunit(struct igt_ktest *tst, const char *opts)
+static void
+__igt_kunit(struct igt_ktest *tst, const char *name, const char *opts)
{
struct modprobe_data modprobe = { pthread_self(), tst->kmod, opts, 0,
PTHREAD_MUTEX_INITIALIZER, };
@@ -902,7 +903,11 @@ static void __igt_kunit(struct igt_ktest *tst, const char *opts)
r = igt_list_first_entry(&results, r, link);
- igt_dynamic_f("%s-%s", r->suite_name, r->case_name) {
+ igt_dynamic_f("%s%s%s",
+ strcmp(r->suite_name, name) ? r->suite_name : "",
+ strcmp(r->suite_name, name) ? "-" : "",
+ r->case_name) {
+
if (r->code == IGT_EXIT_INVALID) {
/* parametrized test case, get actual result */
kunit_result_free(r, &suite_name, &case_name);
@@ -1011,7 +1016,7 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
* and for documentation.
*/
igt_subtest_with_dynamic(name)
- __igt_kunit(&tst, opts);
+ __igt_kunit(&tst, name, opts);
igt_fixture
igt_ktest_end(&tst);
--
2.41.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for Fix IGT Kunit implementation issues (rev3)
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (16 preceding siblings ...)
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 17/17] lib/kunit: Omit suite name prefix if the same as subtest name Janusz Krzysztofik
@ 2023-09-18 20:24 ` Patchwork
2023-09-18 20:58 ` [igt-dev] ✓ CI.xeBAT: " Patchwork
` (2 subsequent siblings)
20 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2023-09-18 20:24 UTC (permalink / raw)
To: Janusz Krzysztofik; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 8419 bytes --]
== Series Details ==
Series: Fix IGT Kunit implementation issues (rev3)
URL : https://patchwork.freedesktop.org/series/123434/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_13651 -> IGTPW_9821
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/index.html
Participating hosts (38 -> 36)
------------------------------
Additional (1): bat-dg2-8
Missing (3): fi-skl-guc fi-hsw-4770 fi-snb-2520m
Known issues
------------
Here are the changes found in IGTPW_9821 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_suspend@basic-s0@lmem0:
- bat-dg2-9: [PASS][1] -> [INCOMPLETE][2] ([i915#9275])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/bat-dg2-9/igt@gem_exec_suspend@basic-s0@lmem0.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-9/igt@gem_exec_suspend@basic-s0@lmem0.html
* igt@gem_mmap@basic:
- bat-dg2-8: NOTRUN -> [SKIP][3] ([i915#4083])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@gem_mmap@basic.html
* igt@gem_mmap_gtt@basic:
- bat-dg2-8: NOTRUN -> [SKIP][4] ([i915#4077]) +2 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@gem_mmap_gtt@basic.html
* igt@gem_tiled_pread_basic:
- bat-dg2-8: NOTRUN -> [SKIP][5] ([i915#4079]) +1 other test skip
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@gem_tiled_pread_basic.html
* igt@i915_pm_rps@basic-api:
- bat-dg2-8: NOTRUN -> [SKIP][6] ([i915#6621])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@i915_pm_rps@basic-api.html
* igt@i915_suspend@basic-s3-without-i915:
- bat-dg2-8: NOTRUN -> [SKIP][7] ([i915#6645])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@i915_suspend@basic-s3-without-i915.html
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-dg2-8: NOTRUN -> [SKIP][8] ([i915#5190])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_addfb_basic@basic-y-tiled-legacy:
- bat-dg2-8: NOTRUN -> [SKIP][9] ([i915#4215] / [i915#5190])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@kms_addfb_basic@basic-y-tiled-legacy.html
* igt@kms_addfb_basic@framebuffer-vs-set-tiling:
- bat-dg2-8: NOTRUN -> [SKIP][10] ([i915#4212]) +6 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html
* igt@kms_addfb_basic@tile-pitch-mismatch:
- bat-dg2-8: NOTRUN -> [SKIP][11] ([i915#4212] / [i915#5608])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@kms_addfb_basic@tile-pitch-mismatch.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-dg2-8: NOTRUN -> [SKIP][12] ([i915#4103] / [i915#4213] / [i915#5608]) +1 other test skip
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_force_connector_basic@force-load-detect:
- bat-dg2-8: NOTRUN -> [SKIP][13] ([fdo#109285])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_force_connector_basic@prune-stale-modes:
- bat-dg2-8: NOTRUN -> [SKIP][14] ([i915#5274])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@kms_force_connector_basic@prune-stale-modes.html
* igt@kms_psr@cursor_plane_move:
- bat-dg2-8: NOTRUN -> [SKIP][15] ([i915#1072]) +3 other tests skip
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@kms_psr@cursor_plane_move.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-dg2-8: NOTRUN -> [SKIP][16] ([i915#3555])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-fence-flip:
- bat-dg2-8: NOTRUN -> [SKIP][17] ([i915#3708])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@prime_vgem@basic-fence-flip.html
* igt@prime_vgem@basic-fence-mmap:
- bat-dg2-8: NOTRUN -> [SKIP][18] ([i915#3708] / [i915#4077]) +1 other test skip
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@prime_vgem@basic-fence-mmap.html
* igt@prime_vgem@basic-write:
- bat-dg2-8: NOTRUN -> [SKIP][19] ([i915#3291] / [i915#3708]) +2 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-8/igt@prime_vgem@basic-write.html
#### Possible fixes ####
* igt@i915_selftest@live@execlists:
- fi-bsw-n3050: [ABORT][20] ([i915#7913]) -> [PASS][21]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/fi-bsw-n3050/igt@i915_selftest@live@execlists.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/fi-bsw-n3050/igt@i915_selftest@live@execlists.html
* igt@kms_chamelium_edid@hdmi-edid-read:
- {bat-dg2-13}: [DMESG-WARN][22] ([i915#7952]) -> [PASS][23]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/bat-dg2-13/igt@kms_chamelium_edid@hdmi-edid-read.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/bat-dg2-13/igt@kms_chamelium_edid@hdmi-edid-read.html
* igt@kms_hdmi_inject@inject-audio:
- fi-kbl-guc: [FAIL][24] ([IGT#3] / [i915#6121]) -> [PASS][25]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/fi-kbl-guc/igt@kms_hdmi_inject@inject-audio.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/fi-kbl-guc/igt@kms_hdmi_inject@inject-audio.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[IGT#3]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/3
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[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#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#6121]: https://gitlab.freedesktop.org/drm/intel/issues/6121
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645
[i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
[i915#7952]: https://gitlab.freedesktop.org/drm/intel/issues/7952
[i915#9275]: https://gitlab.freedesktop.org/drm/intel/issues/9275
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7493 -> IGTPW_9821
CI-20190529: 20190529
CI_DRM_13651: 61b71c3f061a44a6ab1dcf756918886aa03a5480 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_9821: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/index.html
IGT_7493: 2517e42d612e0c1ca096acf8b5f6177f7ef4bce7 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Testlist changes
----------------
+igt@drm_buddy@drm_buddy
+igt@drm_mm@drm_mm
-igt@drm_buddy@drm_buddy_test
-igt@drm_mm@drm_mm_test
-igt@kms_writeback@writeback-check-output-xrgb2101010
-igt@kms_writeback@writeback-fb-id-xrgb2101010
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/index.html
[-- Attachment #2: Type: text/html, Size: 9915 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* [igt-dev] ✓ CI.xeBAT: success for Fix IGT Kunit implementation issues (rev3)
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (17 preceding siblings ...)
2023-09-18 20:24 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix IGT Kunit implementation issues (rev3) Patchwork
@ 2023-09-18 20:58 ` Patchwork
2023-09-19 23:21 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2023-09-21 5:20 ` [igt-dev] ✓ Fi.CI.IGT: success " Patchwork
20 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2023-09-18 20:58 UTC (permalink / raw)
To: Janusz Krzysztofik; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 2743 bytes --]
== Series Details ==
Series: Fix IGT Kunit implementation issues (rev3)
URL : https://patchwork.freedesktop.org/series/123434/
State : success
== Summary ==
CI Bug Log - changes from XEIGT_7493_BAT -> XEIGTPW_9821_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (4 -> 3)
------------------------------
Missing (1): bat-adlp-7
Known issues
------------
Here are the changes found in XEIGTPW_9821_BAT that come from known issues:
### IGT changes ###
#### Possible fixes ####
* igt@xe_live_ktest@bo:
- bat-dg2-oem2: [SKIP][1] ([Intel XE#483]) -> [PASS][2] +1 other test pass
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7493/bat-dg2-oem2/igt@xe_live_ktest@bo.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_9821/bat-dg2-oem2/igt@xe_live_ktest@bo.html
- bat-atsm-2: [SKIP][3] ([Intel XE#483]) -> [PASS][4] +1 other test pass
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7493/bat-atsm-2/igt@xe_live_ktest@bo.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_9821/bat-atsm-2/igt@xe_live_ktest@bo.html
#### Warnings ####
* igt@xe_live_ktest@dmabuf:
- bat-atsm-2: [SKIP][5] ([Intel XE#483]) -> [FAIL][6] ([Intel XE#674])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7493/bat-atsm-2/igt@xe_live_ktest@dmabuf.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_9821/bat-atsm-2/igt@xe_live_ktest@dmabuf.html
- bat-dg2-oem2: [SKIP][7] ([Intel XE#483]) -> [FAIL][8] ([Intel XE#674])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7493/bat-dg2-oem2/igt@xe_live_ktest@dmabuf.html
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_9821/bat-dg2-oem2/igt@xe_live_ktest@dmabuf.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#483]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/483
[Intel XE#674]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/674
Build changes
-------------
* IGT: IGT_7493 -> IGTPW_9821
* Linux: xe-376-9da40abcc0ccdf8fdfed4e21d76060bfcd35fe7d -> xe-378-36847d2f951d5149463d85714a2df030d9cea11c
IGTPW_9821: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/index.html
IGT_7493: 2517e42d612e0c1ca096acf8b5f6177f7ef4bce7 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-376-9da40abcc0ccdf8fdfed4e21d76060bfcd35fe7d: 9da40abcc0ccdf8fdfed4e21d76060bfcd35fe7d
xe-378-36847d2f951d5149463d85714a2df030d9cea11c: 36847d2f951d5149463d85714a2df030d9cea11c
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_9821/index.html
[-- Attachment #2: Type: text/html, Size: 3694 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [igt-dev] [Intel-gfx] [PATCH i-g-t v3 10/17] lib/ktap: Read /dev/kmsg in blocking mode
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 10/17] lib/ktap: Read /dev/kmsg in blocking mode Janusz Krzysztofik
@ 2023-09-19 6:23 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 29+ messages in thread
From: Mauro Carvalho Chehab @ 2023-09-19 6:23 UTC (permalink / raw)
To: Janusz Krzysztofik; +Cc: intel-gfx, igt-dev, Isabella Basso, intel-xe
On Mon, 18 Sep 2023 15:43:00 +0200
Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> wrote:
> We obtain KTAP report from /dev/kmsg. That file is now opened from
> igt_ktest_begin(), a function originally designed for i915 selftests and
> now reused with kunit tests. The original intention of opening that file
> was to dump kernel messages to stderr on selftest error. For that
> purpose, the file is now opened in non-blocking mode so we don't end up
> waiting for more kernel messages than already available. Since our ktap
> parser code reuses the file descriptor, we now have to loop over
> EAGAIN responses, waiting for more KTAP data. Since we have no sleeps
> inside those loops, extremely high CPU usage can be observed.
>
> Simplify reading KTAP reports by first switching the file descriptor back
> to blocking mode.
>
> While being at it, fix read errors other than EPIPE likely unintentionally
> ignored when reading first line of KTAP data.
>
> v2: Drop EINTR handling as not applicable since SIGINT default signal
> handler kills the whole process anyway,
> - update commit description to also mention read error handling fix.
>
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org> # v1
LGTM.
Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
> ---
> lib/igt_kmod.c | 7 +++++-
> lib/igt_ktap.c | 66 +++++++++++++++++---------------------------------
> 2 files changed, 28 insertions(+), 45 deletions(-)
>
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index 7392276401..96240543a7 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -24,6 +24,7 @@
> #include <ctype.h>
> #include <signal.h>
> #include <errno.h>
> +#include <fcntl.h>
> #include <sys/utsname.h>
>
> #include "igt_aux.h"
> @@ -758,12 +759,16 @@ static void __igt_kunit(struct igt_ktest *tst, const char *opts)
> {
> struct kmod_module *kunit_kmod;
> bool is_builtin;
> - int ret;
> struct ktap_test_results *results;
> struct ktap_test_results_element *temp;
> + int flags, ret;
>
> igt_skip_on_f(tst->kmsg < 0, "Could not open /dev/kmsg\n");
>
> + flags = fcntl(tst->kmsg, F_GETFL, 0) & ~O_NONBLOCK;
> + igt_skip_on_f(fcntl(tst->kmsg, F_SETFL, flags) == -1,
> + "Could not set /dev/kmsg to blocking mode\n");
> +
> igt_skip_on(lseek(tst->kmsg, 0, SEEK_END) < 0);
>
> igt_skip_on(kmod_module_new_from_name(kmod_ctx(), "kunit", &kunit_kmod));
> diff --git a/lib/igt_ktap.c b/lib/igt_ktap.c
> index 5bc5e003d7..282e44176e 100644
> --- a/lib/igt_ktap.c
> +++ b/lib/igt_ktap.c
> @@ -59,17 +59,12 @@ static int log_to_end(enum igt_log_level level, int fd,
> while (*lend == '\0') {
> igt_log(IGT_LOG_DOMAIN, level, "%s", record);
>
> - while (read(fd, record, BUF_LEN) < 0) {
> - if (errno == EPIPE) {
> + if (read(fd, record, BUF_LEN) < 0) {
> + if (errno == EPIPE)
> igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
> - return -2;
> - }
> -
> - if (errno == EAGAIN)
> - /* No records available */
> - continue;
> + else
> + igt_warn("an error occurred while reading kmsg: %m\n");
>
> - igt_warn("kmsg truncated: unknown error (%m)\n");
> return -2;
> }
>
> @@ -173,17 +168,12 @@ static int find_next_tap_subtest(int fd, char *record, char *test_name, bool is_
> return -1;
>
> if (is_builtin) {
> - while (read(fd, record, BUF_LEN) < 0) {
> - if (errno == EPIPE) {
> + if (read(fd, record, BUF_LEN) < 0) {
> + if (errno == EPIPE)
> igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
> - return -2;
> - }
> + else
> + igt_warn("an error occurred while reading kmsg: %m\n");
>
> - if (errno == EAGAIN)
> - /* No records available */
> - continue;
> -
> - igt_warn("kmsg truncated: unknown error (%m)\n");
> return -2;
> }
> }
> @@ -209,17 +199,12 @@ static int find_next_tap_subtest(int fd, char *record, char *test_name, bool is_
> if (cutoff)
> cutoff[0] = '\0';
>
> - while (read(fd, record, BUF_LEN) < 0) {
> - if (errno == EPIPE) {
> + if (read(fd, record, BUF_LEN) < 0) {
> + if (errno == EPIPE)
> igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
> - return -2;
> - }
> -
> - if (errno == EAGAIN)
> - /* No records available */
> - continue;
> + else
> + igt_warn("unknown error reading kmsg (%m)\n");
>
> - igt_warn("kmsg truncated: unknown error (%m)\n");
> return -2;
> }
>
> @@ -356,17 +341,12 @@ static int parse_tap_level(int fd, char *base_test_name, int test_count, bool *f
> char base_test_name_for_next_level[BUF_LEN + 1];
>
> for (int i = 0; i < test_count; i++) {
> - while (read(fd, record, BUF_LEN) < 0) {
> - if (errno == EAGAIN)
> - /* No records available */
> - continue;
> -
> - if (errno == EPIPE) {
> + if (read(fd, record, BUF_LEN) < 0) {
> + if (errno == EPIPE)
> igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
> - return -1;
> - }
> + else
> + igt_warn("error reading kmsg (%m)\n");
>
> - igt_warn("kmsg truncated: unknown error (%m)\n");
> return -1;
> }
>
> @@ -494,15 +474,13 @@ igt_ktap_parser_start:
> test_name[0] = '\0';
> test_name[BUF_LEN] = '\0';
>
> - while (read(fd, record, BUF_LEN) < 0) {
> - if (errno == EAGAIN)
> - /* No records available */
> - continue;
> -
> - if (errno == EPIPE) {
> + if (read(fd, record, BUF_LEN) < 0) {
> + if (errno == EPIPE)
> igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
> - goto igt_ktap_parser_end;
> - }
> + else
> + igt_warn("error reading kmsg (%m)\n");
> +
> + goto igt_ktap_parser_end;
> }
>
> test_count = find_next_tap_subtest(fd, record, test_name, is_builtin);
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [igt-dev] [Intel-gfx] [PATCH i-g-t v3 05/17] lib/kunit: Fix illegal igt_fail() calls inside subtest body
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 05/17] lib/kunit: Fix illegal igt_fail() calls inside subtest body Janusz Krzysztofik
@ 2023-09-19 6:25 ` Mauro Carvalho Chehab
2023-09-19 6:26 ` Mauro Carvalho Chehab
0 siblings, 1 reply; 29+ messages in thread
From: Mauro Carvalho Chehab @ 2023-09-19 6:25 UTC (permalink / raw)
To: Janusz Krzysztofik; +Cc: intel-gfx, igt-dev, Isabella Basso, intel-xe
On Mon, 18 Sep 2023 15:42:55 +0200
Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> wrote:
> In a body of a subtest with dynamic sub-subtests, it is illegal to call
> igt_fail() and its variants from outside of a dynamic sub-subtest body.
> On the other hand, it is perfectly legal to call either igt_skip() and
> friends or __igt_abort() or its variant from there.
>
> In the current implementation of igt_kunit(), there are several places
> where igt_fail() is called despite being illegal. Moreover, it is called
> with IGT_EXIT_ABORT as an argument with no good reason for using such
> aggressive method that forces CI to trigger system reboot (in most cases
> igt_runner can decide if abort is required).
>
> Follow igt_kselftests() pattern more closely, where similar setup and
> cleanup operations are performed but their potential errors are processed
> in a more friendly way. Move common cleanup and their corresponding setup
> steps out of the subtest body. Place the latter as requirements in a
> preceding igt_fixture section. Replace remaining illegal igt_fail() calls
> with more friendly skips. Let igt_runner decide if abort is needed.
>
> v2: Also call igt_skip() on igt_ktest_init() failure (Mauro), but then,
> initialize local tst structure when declaring it to avoid freeing a
> random pointer from igt_ktest_fini() when only listing subtests,
> - call igt_ktest_end() from igt_fixture so it is not unnecessarily
> called when only listing subtests.
>
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> Cc: Mauro Carvalho Chehab <mauro.chehab@linux.intel.com>
LGTM.
Acked-by: Mauro Carvalho Chehab <mauro.chehab@linux.intel.com>
> ---
> lib/igt_kmod.c | 76 +++++++++++++++-----------------------------------
> 1 file changed, 23 insertions(+), 53 deletions(-)
>
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index 1d1cd51170..063e4c12db 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -754,59 +754,27 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
> *
> * Returns: IGT default codes
> */
> -static void __igt_kunit(const char *module_name, const char *opts)
> +static void __igt_kunit(struct igt_ktest *tst, const char *opts)
> {
> - struct igt_ktest tst;
> struct kmod_module *kunit_kmod;
> bool is_builtin;
> int ret;
> struct ktap_test_results *results;
> struct ktap_test_results_element *temp;
> - int skip = 0;
> - bool fail = false;
> -
> - /* get normalized module name */
> - if (igt_ktest_init(&tst, module_name) != 0) {
> - igt_warn("Unable to initialize ktest for %s\n", module_name);
> - igt_fail(IGT_EXIT_ABORT);
> - }
>
> - if (igt_ktest_begin(&tst) != 0) {
> - igt_warn("Unable to begin ktest for %s\n", module_name);
> - igt_ktest_fini(&tst);
> - igt_fail(IGT_EXIT_ABORT);
> - }
> + igt_skip_on_f(tst->kmsg < 0, "Could not open /dev/kmsg\n");
>
> - if (tst.kmsg < 0) {
> - igt_warn("Could not open /dev/kmsg\n");
> - fail = true;
> - goto unload;
> - }
> -
> - if (lseek(tst.kmsg, 0, SEEK_END)) {
> - igt_warn("Could not seek the end of /dev/kmsg\n");
> - fail = true;
> - goto unload;
> - }
> -
> - ret = kmod_module_new_from_name(kmod_ctx(), "kunit", &kunit_kmod);
> - if (ret) {
> - igt_warn("Unable to load KUnit\n");
> - skip = ret;
> - goto unload;
> - }
> + igt_skip_on(lseek(tst->kmsg, 0, SEEK_END) < 0);
>
> + igt_skip_on(kmod_module_new_from_name(kmod_ctx(), "kunit", &kunit_kmod));
> is_builtin = kmod_module_get_initstate(kunit_kmod) == KMOD_MODULE_BUILTIN;
> kmod_module_unref(kunit_kmod);
>
> - results = ktap_parser_start(tst.kmsg, is_builtin);
> + results = ktap_parser_start(tst->kmsg, is_builtin);
>
> - ret = igt_kmod_load(module_name, opts);
> - if (ret) {
> - skip = ret;
> - igt_warn("Unable to load %s module\n", module_name);
> - ret = ktap_parser_stop();
> - goto unload;
> + if (igt_debug_on(igt_kmod_load(tst->module_name, opts) < 0)) {
> + igt_ignore_warn(ktap_parser_stop());
> + igt_skip("Unable to load %s module\n", tst->module_name);
> }
>
> while (READ_ONCE(results->still_running) || READ_ONCE(results->head) != NULL)
> @@ -825,24 +793,21 @@ static void __igt_kunit(const char *module_name, const char *opts)
> }
> }
>
> -unload:
> - igt_ktest_end(&tst);
> -
> - igt_ktest_fini(&tst);
> -
> - igt_skip_on_f(skip, "Skipping test, as probing KUnit module failed\n");
> -
> - if (fail)
> - igt_fail(IGT_EXIT_ABORT);
> -
> ret = ktap_parser_stop();
>
> - if (ret != 0)
> - igt_fail(IGT_EXIT_ABORT);
> + igt_skip_on_f(ret, "KTAP parser failed\n");
> }
>
> void igt_kunit(const char *module_name, const char *name, const char *opts)
> {
> + struct igt_ktest tst = { .kmsg = -1, };
> +
> +
> + igt_fixture {
> + igt_skip_on(igt_ktest_init(&tst, module_name));
> + igt_skip_on(igt_ktest_begin(&tst));
> + }
> +
> /*
> * We need to use igt_subtest here, as otherwise it may crash with:
> * skipping is allowed only in fixtures, subtests or igt_simple_main
> @@ -854,7 +819,12 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
> name = module_name;
>
> igt_subtest_with_dynamic(name)
> - __igt_kunit(module_name, opts);
> + __igt_kunit(&tst, opts);
> +
> + igt_fixture
> + igt_ktest_end(&tst);
> +
> + igt_ktest_fini(&tst);
> }
>
> static int open_parameters(const char *module_name)
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [igt-dev] [Intel-gfx] [PATCH i-g-t v3 05/17] lib/kunit: Fix illegal igt_fail() calls inside subtest body
2023-09-19 6:25 ` [igt-dev] [Intel-gfx] " Mauro Carvalho Chehab
@ 2023-09-19 6:26 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 29+ messages in thread
From: Mauro Carvalho Chehab @ 2023-09-19 6:26 UTC (permalink / raw)
To: Janusz Krzysztofik; +Cc: intel-gfx, igt-dev, Isabella Basso, intel-xe
On Tue, 19 Sep 2023 08:25:22 +0200
Mauro Carvalho Chehab <mauro.chehab@linux.intel.com> wrote:
> On Mon, 18 Sep 2023 15:42:55 +0200
> Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> wrote:
>
> > In a body of a subtest with dynamic sub-subtests, it is illegal to call
> > igt_fail() and its variants from outside of a dynamic sub-subtest body.
> > On the other hand, it is perfectly legal to call either igt_skip() and
> > friends or __igt_abort() or its variant from there.
> >
> > In the current implementation of igt_kunit(), there are several places
> > where igt_fail() is called despite being illegal. Moreover, it is called
> > with IGT_EXIT_ABORT as an argument with no good reason for using such
> > aggressive method that forces CI to trigger system reboot (in most cases
> > igt_runner can decide if abort is required).
> >
> > Follow igt_kselftests() pattern more closely, where similar setup and
> > cleanup operations are performed but their potential errors are processed
> > in a more friendly way. Move common cleanup and their corresponding setup
> > steps out of the subtest body. Place the latter as requirements in a
> > preceding igt_fixture section. Replace remaining illegal igt_fail() calls
> > with more friendly skips. Let igt_runner decide if abort is needed.
> >
> > v2: Also call igt_skip() on igt_ktest_init() failure (Mauro), but then,
> > initialize local tst structure when declaring it to avoid freeing a
> > random pointer from igt_ktest_fini() when only listing subtests,
> > - call igt_ktest_end() from igt_fixture so it is not unnecessarily
> > called when only listing subtests.
> >
> > Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> > Cc: Mauro Carvalho Chehab <mauro.chehab@linux.intel.com>
>
> LGTM.
>
> Acked-by: Mauro Carvalho Chehab <mauro.chehab@linux.intel.com>
Err... Please use another e-mail on my ack:
LGTM.
Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org>
>
> > ---
> > lib/igt_kmod.c | 76 +++++++++++++++-----------------------------------
> > 1 file changed, 23 insertions(+), 53 deletions(-)
> >
> > diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> > index 1d1cd51170..063e4c12db 100644
> > --- a/lib/igt_kmod.c
> > +++ b/lib/igt_kmod.c
> > @@ -754,59 +754,27 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
> > *
> > * Returns: IGT default codes
> > */
> > -static void __igt_kunit(const char *module_name, const char *opts)
> > +static void __igt_kunit(struct igt_ktest *tst, const char *opts)
> > {
> > - struct igt_ktest tst;
> > struct kmod_module *kunit_kmod;
> > bool is_builtin;
> > int ret;
> > struct ktap_test_results *results;
> > struct ktap_test_results_element *temp;
> > - int skip = 0;
> > - bool fail = false;
> > -
> > - /* get normalized module name */
> > - if (igt_ktest_init(&tst, module_name) != 0) {
> > - igt_warn("Unable to initialize ktest for %s\n", module_name);
> > - igt_fail(IGT_EXIT_ABORT);
> > - }
> >
> > - if (igt_ktest_begin(&tst) != 0) {
> > - igt_warn("Unable to begin ktest for %s\n", module_name);
> > - igt_ktest_fini(&tst);
> > - igt_fail(IGT_EXIT_ABORT);
> > - }
> > + igt_skip_on_f(tst->kmsg < 0, "Could not open /dev/kmsg\n");
> >
> > - if (tst.kmsg < 0) {
> > - igt_warn("Could not open /dev/kmsg\n");
> > - fail = true;
> > - goto unload;
> > - }
> > -
> > - if (lseek(tst.kmsg, 0, SEEK_END)) {
> > - igt_warn("Could not seek the end of /dev/kmsg\n");
> > - fail = true;
> > - goto unload;
> > - }
> > -
> > - ret = kmod_module_new_from_name(kmod_ctx(), "kunit", &kunit_kmod);
> > - if (ret) {
> > - igt_warn("Unable to load KUnit\n");
> > - skip = ret;
> > - goto unload;
> > - }
> > + igt_skip_on(lseek(tst->kmsg, 0, SEEK_END) < 0);
> >
> > + igt_skip_on(kmod_module_new_from_name(kmod_ctx(), "kunit", &kunit_kmod));
> > is_builtin = kmod_module_get_initstate(kunit_kmod) == KMOD_MODULE_BUILTIN;
> > kmod_module_unref(kunit_kmod);
> >
> > - results = ktap_parser_start(tst.kmsg, is_builtin);
> > + results = ktap_parser_start(tst->kmsg, is_builtin);
> >
> > - ret = igt_kmod_load(module_name, opts);
> > - if (ret) {
> > - skip = ret;
> > - igt_warn("Unable to load %s module\n", module_name);
> > - ret = ktap_parser_stop();
> > - goto unload;
> > + if (igt_debug_on(igt_kmod_load(tst->module_name, opts) < 0)) {
> > + igt_ignore_warn(ktap_parser_stop());
> > + igt_skip("Unable to load %s module\n", tst->module_name);
> > }
> >
> > while (READ_ONCE(results->still_running) || READ_ONCE(results->head) != NULL)
> > @@ -825,24 +793,21 @@ static void __igt_kunit(const char *module_name, const char *opts)
> > }
> > }
> >
> > -unload:
> > - igt_ktest_end(&tst);
> > -
> > - igt_ktest_fini(&tst);
> > -
> > - igt_skip_on_f(skip, "Skipping test, as probing KUnit module failed\n");
> > -
> > - if (fail)
> > - igt_fail(IGT_EXIT_ABORT);
> > -
> > ret = ktap_parser_stop();
> >
> > - if (ret != 0)
> > - igt_fail(IGT_EXIT_ABORT);
> > + igt_skip_on_f(ret, "KTAP parser failed\n");
> > }
> >
> > void igt_kunit(const char *module_name, const char *name, const char *opts)
> > {
> > + struct igt_ktest tst = { .kmsg = -1, };
> > +
> > +
> > + igt_fixture {
> > + igt_skip_on(igt_ktest_init(&tst, module_name));
> > + igt_skip_on(igt_ktest_begin(&tst));
> > + }
> > +
> > /*
> > * We need to use igt_subtest here, as otherwise it may crash with:
> > * skipping is allowed only in fixtures, subtests or igt_simple_main
> > @@ -854,7 +819,12 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
> > name = module_name;
> >
> > igt_subtest_with_dynamic(name)
> > - __igt_kunit(module_name, opts);
> > + __igt_kunit(&tst, opts);
> > +
> > + igt_fixture
> > + igt_ktest_end(&tst);
> > +
> > + igt_ktest_fini(&tst);
> > }
> >
> > static int open_parameters(const char *module_name)
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [igt-dev] [Intel-gfx] [PATCH i-g-t v3 07/17] lib/ktap: Drop checks for EINTR on read() failures
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 07/17] lib/ktap: Drop checks for EINTR on read() failures Janusz Krzysztofik
@ 2023-09-19 6:30 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 29+ messages in thread
From: Mauro Carvalho Chehab @ 2023-09-19 6:30 UTC (permalink / raw)
To: Janusz Krzysztofik; +Cc: intel-gfx, igt-dev, Isabella Basso, intel-xe
On Mon, 18 Sep 2023 15:42:57 +0200
Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> wrote:
> While reading KTAP data from /dev/kmsg we now ignore EINTR failures that
> may occur during read() and we continue reading the data. No explanation
> has been provided on what that could be needed for.
>
> Since we use default SIGINT signal handler, read() should never fail with
> errno set to EINTR on user interrupt, only the whole process should be
> terminated. Drop checks for errno == EINTR as not applicable.
This explanation makes sense to me.
Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org>
>
> v2: Drop handling of EINTR completely, update commit message and
> descripion.
>
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> Cc: Mauro Carvalho Chehab <mauro.chehab@linux.intel.com>
> ---
> lib/igt_ktap.c | 15 ---------------
> 1 file changed, 15 deletions(-)
>
> diff --git a/lib/igt_ktap.c b/lib/igt_ktap.c
> index 84fb13218f..ce07f9aed7 100644
> --- a/lib/igt_ktap.c
> +++ b/lib/igt_ktap.c
> @@ -66,9 +66,6 @@ static int log_to_end(enum igt_log_level level, int fd,
> return -2;
> }
>
> - if (errno == EINTR)
> - continue;
> -
> if (errno == EPIPE) {
> igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
> return -2;
> @@ -188,9 +185,6 @@ static int find_next_tap_subtest(int fd, char *record, char *test_name, bool is_
> return -2;
> }
>
> - if (errno == EINTR)
> - continue;
> -
> if (errno == EPIPE) {
> igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
> return -2;
> @@ -232,9 +226,6 @@ static int find_next_tap_subtest(int fd, char *record, char *test_name, bool is_
> return -2;
> }
>
> - if (errno == EINTR)
> - continue;
> -
> if (errno == EPIPE) {
> igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
> return -2;
> @@ -387,9 +378,6 @@ static int parse_tap_level(int fd, char *base_test_name, int test_count, bool *f
> return -1;
> }
>
> - if (errno == EINTR)
> - continue;
> -
> if (errno == EAGAIN)
> /* No records available */
> continue;
> @@ -540,9 +528,6 @@ igt_ktap_parser_start:
> /* No records available */
> continue;
>
> - if (errno == EINTR)
> - continue;
> -
> if (errno == EPIPE) {
> igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
> goto igt_ktap_parser_end;
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [igt-dev] [Intel-gfx] [PATCH i-g-t v3 17/17] lib/kunit: Omit suite name prefix if the same as subtest name
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 17/17] lib/kunit: Omit suite name prefix if the same as subtest name Janusz Krzysztofik
@ 2023-09-19 6:36 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 29+ messages in thread
From: Mauro Carvalho Chehab @ 2023-09-19 6:36 UTC (permalink / raw)
To: Janusz Krzysztofik; +Cc: intel-gfx, igt-dev, Isabella Basso, intel-xe
On Mon, 18 Sep 2023 15:43:07 +0200
Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> wrote:
> Kunit test modules usually contain one test suite, named after the module
> name with the trailing "_test" or "_kunit" suffix omitted. Since we
> follow the same convention when we derive subtest names from module names,
> there is a great chance that those two names match. Take this into
> account when composing names for IGT dynamic sub-subtest names and drop
> the leading test suite name component when it is the same as subtest name.
>
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
> ---
> lib/igt_kmod.c | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index f6e0ab07ce..05c837031c 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -863,7 +863,8 @@ static void kunit_result_free(struct igt_ktap_result *r,
> *
> * Returns: IGT default codes
> */
> -static void __igt_kunit(struct igt_ktest *tst, const char *opts)
> +static void
> +__igt_kunit(struct igt_ktest *tst, const char *name, const char *opts)
> {
> struct modprobe_data modprobe = { pthread_self(), tst->kmod, opts, 0,
> PTHREAD_MUTEX_INITIALIZER, };
> @@ -902,7 +903,11 @@ static void __igt_kunit(struct igt_ktest *tst, const char *opts)
>
> r = igt_list_first_entry(&results, r, link);
>
> - igt_dynamic_f("%s-%s", r->suite_name, r->case_name) {
> + igt_dynamic_f("%s%s%s",
> + strcmp(r->suite_name, name) ? r->suite_name : "",
> + strcmp(r->suite_name, name) ? "-" : "",
> + r->case_name) {
> +
> if (r->code == IGT_EXIT_INVALID) {
> /* parametrized test case, get actual result */
> kunit_result_free(r, &suite_name, &case_name);
> @@ -1011,7 +1016,7 @@ void igt_kunit(const char *module_name, const char *name, const char *opts)
> * and for documentation.
> */
> igt_subtest_with_dynamic(name)
> - __igt_kunit(&tst, opts);
> + __igt_kunit(&tst, name, opts);
>
> igt_fixture
> igt_ktest_end(&tst);
^ permalink raw reply [flat|nested] 29+ messages in thread
* [igt-dev] ✗ Fi.CI.IGT: failure for Fix IGT Kunit implementation issues (rev3)
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (18 preceding siblings ...)
2023-09-18 20:58 ` [igt-dev] ✓ CI.xeBAT: " Patchwork
@ 2023-09-19 23:21 ` Patchwork
2023-09-20 9:44 ` Janusz Krzysztofik
2023-09-21 5:20 ` [igt-dev] ✓ Fi.CI.IGT: success " Patchwork
20 siblings, 1 reply; 29+ messages in thread
From: Patchwork @ 2023-09-19 23:21 UTC (permalink / raw)
To: Janusz Krzysztofik; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 100261 bytes --]
== Series Details ==
Series: Fix IGT Kunit implementation issues (rev3)
URL : https://patchwork.freedesktop.org/series/123434/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_13651_full -> IGTPW_9821_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_9821_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_9821_full, 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_9821/index.html
Participating hosts (9 -> 9)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_9821_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1:
- shard-dg2: NOTRUN -> [INCOMPLETE][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1.html
* igt@kms_plane_lowres@tiling-y@pipe-a-hdmi-a-2:
- shard-rkl: [PASS][2] -> [INCOMPLETE][3]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-1/igt@kms_plane_lowres@tiling-y@pipe-a-hdmi-a-2.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-4/igt@kms_plane_lowres@tiling-y@pipe-a-hdmi-a-2.html
New tests
---------
New tests have been introduced between CI_DRM_13651_full and IGTPW_9821_full:
### New IGT tests (126) ###
* igt@drm_buddy@drm_buddy:
- Statuses :
- Exec time: [None] s
* igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_optimistic:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_pathological:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_pessimistic:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_range:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_smoke:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm:
- Statuses :
- Exec time: [None] s
* igt@drm_mm@drm_mm@drm_test_mm_align:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_align32:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_align64:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_bottomup:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_color:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_color_evict:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_color_evict_range:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_debug:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_evict:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_evict_range:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_frag:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_highest:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_init:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_insert:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_insert_range:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_lowest:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_replace:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_reserve:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_topdown:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_bpp_extra_and_option:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_extra_and_option:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_force_d_only:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_force_d_only_dvi:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_force_d_only_hdmi:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_force_d_only_not_digital:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_force_e_only:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_freestanding_force_e_and_options:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_freestanding_options:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_hmirror:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_invalid:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_margin_options:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_multiple_options:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_name:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_name_bpp:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_name_bpp_option:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_name_option:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_panel_orientation:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh_force_off:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh_force_on:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh_force_on_analog:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh_force_on_digital:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh_interlaced:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh_margins:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_margins_force_on:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_rblank:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_refresh:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_vesa:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_vesa_margins:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_vesa_rblank:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_rotate_0:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_rotate_180:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_rotate_270:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_rotate_90:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_tv_options:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_vmirror:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_damage:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_damage_not_visible:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_damage_one_intersect:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_damage_one_outside:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_damage_src_moved:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_no_damage:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_no_damage_fractional_src:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_no_damage_fractional_src_moved:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_no_damage_no_crtc:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_no_damage_no_fb:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_no_damage_not_visible:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_no_damage_src_moved:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_simple_damage:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage_fractional_src:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage_fractional_src_moved:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage_intersect_fractional_src:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage_intersect_src:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage_outside_fractional_src:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage_outside_src:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage_src_moved:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_dp_mst@drm_dp_mst_helper-drm_test_dp_mst_calc_pbn_mode:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_dp_mst@drm_dp_mst_helper-drm_test_dp_mst_sideband_msg_req_decode:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_height_invalid:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_height_one_plane:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_height_three_plane:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_height_tiled:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_height_two_plane:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_width_invalid:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_width_one_plane:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_width_three_plane:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_width_tiled:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_width_two_plane:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_invalid:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_one_plane_16bpp:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_one_plane_24bpp:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_one_plane_32bpp:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_one_plane_8bpp:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_three_plane_8bpp:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_tiled:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_two_plane:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list:
- Statuses : 6 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_clip_offset:
- Statuses : 6 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_memcpy:
- Statuses : 6 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_swab:
- Statuses : 6 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_argb1555:
- Statuses : 6 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_argb2101010:
- Statuses : 6 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_argb8888:
- Statuses : 6 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_gray8:
- Statuses : 6 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_mono:
- Statuses : 6 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_rgb332:
- Statuses : 6 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_rgb565:
- Statuses : 6 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_rgb888:
- Statuses : 6 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_rgba5551:
- Statuses : 6 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_xrgb1555:
- Statuses : 6 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_xrgb2101010:
- Statuses : 6 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_plane@drm_plane_helper-drm_test_check_invalid_plane_state:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_plane@drm_plane_helper-drm_test_check_plane_state:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@framebuffer@drm_framebuffer-drm_test_framebuffer_create:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
Known issues
------------
Here are the changes found in IGTPW_9821_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@api_intel_bb@blit-reloc-keep-cache:
- shard-dg2: NOTRUN -> [SKIP][4] ([i915#8411])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@api_intel_bb@blit-reloc-keep-cache.html
* igt@device_reset@unbind-cold-reset-rebind:
- shard-mtlp: NOTRUN -> [SKIP][5] ([i915#7701])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@device_reset@unbind-cold-reset-rebind.html
- shard-dg2: NOTRUN -> [SKIP][6] ([i915#7701])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@device_reset@unbind-cold-reset-rebind.html
* igt@drm_fdinfo@busy-check-all@ccs0:
- shard-mtlp: NOTRUN -> [SKIP][7] ([i915#8414]) +6 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@drm_fdinfo@busy-check-all@ccs0.html
* igt@drm_fdinfo@busy-hang@bcs0:
- shard-dg2: NOTRUN -> [SKIP][8] ([i915#8414]) +21 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@drm_fdinfo@busy-hang@bcs0.html
* igt@drm_fdinfo@virtual-busy-hang-all:
- shard-dg1: NOTRUN -> [SKIP][9] ([i915#8414])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-17/igt@drm_fdinfo@virtual-busy-hang-all.html
* igt@gem_basic@multigpu-create-close:
- shard-dg2: NOTRUN -> [SKIP][10] ([i915#7697])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@gem_basic@multigpu-create-close.html
* igt@gem_caching@reads:
- shard-mtlp: NOTRUN -> [SKIP][11] ([i915#4873]) +1 other test skip
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_caching@reads.html
* igt@gem_ccs@block-multicopy-compressed:
- shard-mtlp: NOTRUN -> [SKIP][12] ([i915#9323])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@gem_ccs@block-multicopy-compressed.html
* igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0:
- shard-dg2: [PASS][13] -> [INCOMPLETE][14] ([i915#7297])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-2/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html
* igt@gem_create@create-ext-cpu-access-big:
- shard-mtlp: NOTRUN -> [SKIP][15] ([i915#6335])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_create@create-ext-cpu-access-big.html
* igt@gem_ctx_param@set-priority-not-supported:
- shard-mtlp: NOTRUN -> [SKIP][16] ([fdo#109314])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_ctx_param@set-priority-not-supported.html
* igt@gem_ctx_persistence@engines-hostile@vcs0:
- shard-mtlp: NOTRUN -> [ABORT][17] ([i915#9262]) +12 other tests abort
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@gem_ctx_persistence@engines-hostile@vcs0.html
* igt@gem_ctx_persistence@hang:
- shard-mtlp: NOTRUN -> [SKIP][18] ([i915#8555])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@gem_ctx_persistence@hang.html
* igt@gem_ctx_persistence@heartbeat-stop:
- shard-dg2: NOTRUN -> [SKIP][19] ([i915#8555]) +1 other test skip
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@gem_ctx_persistence@heartbeat-stop.html
* igt@gem_ctx_persistence@legacy-engines-mixed:
- shard-snb: NOTRUN -> [SKIP][20] ([fdo#109271] / [i915#1099]) +1 other test skip
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb7/igt@gem_ctx_persistence@legacy-engines-mixed.html
* igt@gem_ctx_sseu@mmap-args:
- shard-mtlp: NOTRUN -> [SKIP][21] ([i915#280])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@gem_ctx_sseu@mmap-args.html
* igt@gem_eio@hibernate:
- shard-dg2: NOTRUN -> [ABORT][22] ([i915#7975] / [i915#8213])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@gem_eio@hibernate.html
* igt@gem_eio@unwedge-stress:
- shard-dg2: [PASS][23] -> [FAIL][24] ([i915#5784]) +1 other test fail
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-5/igt@gem_eio@unwedge-stress.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@gem_eio@unwedge-stress.html
* igt@gem_exec_balancer@bonded-pair:
- shard-mtlp: NOTRUN -> [SKIP][25] ([i915#4771])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@gem_exec_balancer@bonded-pair.html
* igt@gem_exec_balancer@hang:
- shard-mtlp: [PASS][26] -> [ABORT][27] ([i915#8104] / [i915#9262])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-5/igt@gem_exec_balancer@hang.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_exec_balancer@hang.html
* igt@gem_exec_balancer@sliced:
- shard-mtlp: NOTRUN -> [SKIP][28] ([i915#4812]) +1 other test skip
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_exec_balancer@sliced.html
* igt@gem_exec_fair@basic-none-rrul:
- shard-dg2: NOTRUN -> [SKIP][29] ([i915#3539] / [i915#4852]) +5 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@gem_exec_fair@basic-none-rrul.html
* igt@gem_exec_fair@basic-sync:
- shard-mtlp: NOTRUN -> [SKIP][30] ([i915#4473] / [i915#4771]) +1 other test skip
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@gem_exec_fair@basic-sync.html
* igt@gem_exec_fence@submit67:
- shard-dg2: NOTRUN -> [SKIP][31] ([i915#4812]) +2 other tests skip
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@gem_exec_fence@submit67.html
- shard-dg1: NOTRUN -> [SKIP][32] ([i915#4812])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@gem_exec_fence@submit67.html
* igt@gem_exec_flush@basic-uc-set-default:
- shard-dg2: NOTRUN -> [SKIP][33] ([i915#3539]) +1 other test skip
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@gem_exec_flush@basic-uc-set-default.html
* igt@gem_exec_gttfill@multigpu-basic:
- shard-mtlp: NOTRUN -> [SKIP][34] ([i915#7697])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_exec_gttfill@multigpu-basic.html
* igt@gem_exec_reloc@basic-cpu-noreloc:
- shard-rkl: NOTRUN -> [SKIP][35] ([i915#3281])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@gem_exec_reloc@basic-cpu-noreloc.html
* igt@gem_exec_reloc@basic-cpu-wc-noreloc:
- shard-mtlp: NOTRUN -> [SKIP][36] ([i915#3281]) +15 other tests skip
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_exec_reloc@basic-cpu-wc-noreloc.html
* igt@gem_exec_reloc@basic-gtt-cpu-active:
- shard-dg2: NOTRUN -> [SKIP][37] ([i915#3281]) +5 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@gem_exec_reloc@basic-gtt-cpu-active.html
* igt@gem_exec_schedule@deep@rcs0:
- shard-mtlp: NOTRUN -> [SKIP][38] ([i915#4537])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_exec_schedule@deep@rcs0.html
* igt@gem_exec_schedule@preempt-queue-chain:
- shard-dg2: NOTRUN -> [SKIP][39] ([i915#4537] / [i915#4812])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@gem_exec_schedule@preempt-queue-chain.html
* igt@gem_exec_schedule@preempt-queue-contexts-chain:
- shard-mtlp: NOTRUN -> [SKIP][40] ([i915#4537] / [i915#4812])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@gem_exec_schedule@preempt-queue-contexts-chain.html
* igt@gem_exec_suspend@basic-s3@smem:
- shard-snb: NOTRUN -> [DMESG-WARN][41] ([i915#8841]) +3 other tests dmesg-warn
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb4/igt@gem_exec_suspend@basic-s3@smem.html
* igt@gem_exec_suspend@basic-s4-devices@lmem0:
- shard-dg2: [PASS][42] -> [ABORT][43] ([i915#7975] / [i915#8213])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-11/igt@gem_exec_suspend@basic-s4-devices@lmem0.html
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@gem_exec_suspend@basic-s4-devices@lmem0.html
* igt@gem_exec_whisper@basic-fds-priority-all:
- shard-tglu: [PASS][44] -> [INCOMPLETE][45] ([i915#6755] / [i915#7392])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-6/igt@gem_exec_whisper@basic-fds-priority-all.html
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-8/igt@gem_exec_whisper@basic-fds-priority-all.html
* igt@gem_fence_thrash@bo-write-verify-none:
- shard-mtlp: NOTRUN -> [SKIP][46] ([i915#4860]) +2 other tests skip
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_fence_thrash@bo-write-verify-none.html
* igt@gem_lmem_swapping@smem-oom:
- shard-mtlp: NOTRUN -> [SKIP][47] ([i915#4613]) +5 other tests skip
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_lmem_swapping@smem-oom.html
* igt@gem_lmem_swapping@smem-oom@lmem0:
- shard-dg2: NOTRUN -> [TIMEOUT][48] ([i915#5493])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@gem_lmem_swapping@smem-oom@lmem0.html
* igt@gem_mmap@bad-size:
- shard-mtlp: NOTRUN -> [SKIP][49] ([i915#4083]) +6 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@gem_mmap@bad-size.html
* igt@gem_mmap_gtt@basic-write-read:
- shard-mtlp: NOTRUN -> [SKIP][50] ([i915#4077]) +13 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_mmap_gtt@basic-write-read.html
* igt@gem_mmap_gtt@close-race:
- shard-dg1: NOTRUN -> [SKIP][51] ([i915#4077]) +2 other tests skip
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@gem_mmap_gtt@close-race.html
* igt@gem_mmap_gtt@cpuset-big-copy-odd:
- shard-dg2: NOTRUN -> [SKIP][52] ([i915#4077]) +14 other tests skip
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@gem_mmap_gtt@cpuset-big-copy-odd.html
* igt@gem_mmap_wc@copy:
- shard-dg2: NOTRUN -> [SKIP][53] ([i915#4083]) +4 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@gem_mmap_wc@copy.html
* igt@gem_pread@snoop:
- shard-dg1: NOTRUN -> [SKIP][54] ([i915#3282])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@gem_pread@snoop.html
* igt@gem_pxp@reject-modify-context-protection-off-1:
- shard-dg1: NOTRUN -> [SKIP][55] ([i915#4270])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@gem_pxp@reject-modify-context-protection-off-1.html
* igt@gem_pxp@verify-pxp-execution-after-suspend-resume:
- shard-dg2: NOTRUN -> [SKIP][56] ([i915#4270]) +6 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@gem_pxp@verify-pxp-execution-after-suspend-resume.html
* igt@gem_pxp@verify-pxp-stale-buf-execution:
- shard-mtlp: NOTRUN -> [SKIP][57] ([i915#4270]) +2 other tests skip
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@gem_pxp@verify-pxp-stale-buf-execution.html
* igt@gem_readwrite@beyond-eob:
- shard-dg2: NOTRUN -> [SKIP][58] ([i915#3282]) +5 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@gem_readwrite@beyond-eob.html
* igt@gem_readwrite@new-obj:
- shard-mtlp: NOTRUN -> [SKIP][59] ([i915#3282]) +7 other tests skip
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@gem_readwrite@new-obj.html
* igt@gem_render_copy@y-tiled-ccs-to-yf-tiled:
- shard-mtlp: NOTRUN -> [SKIP][60] ([i915#8428]) +8 other tests skip
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@gem_render_copy@y-tiled-ccs-to-yf-tiled.html
* igt@gem_render_copy@y-tiled-to-vebox-linear:
- shard-dg2: NOTRUN -> [SKIP][61] ([i915#5190]) +11 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@gem_render_copy@y-tiled-to-vebox-linear.html
* igt@gem_set_tiling_vs_gtt:
- shard-dg1: NOTRUN -> [SKIP][62] ([i915#4079])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@gem_set_tiling_vs_gtt.html
* igt@gem_set_tiling_vs_pwrite:
- shard-mtlp: NOTRUN -> [SKIP][63] ([i915#4079]) +1 other test skip
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_set_tiling_vs_pwrite.html
* igt@gem_softpin@evict-snoop-interruptible:
- shard-dg2: NOTRUN -> [SKIP][64] ([i915#4885])
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@gem_softpin@evict-snoop-interruptible.html
* igt@gem_softpin@noreloc-s3:
- shard-mtlp: [PASS][65] -> [ABORT][66] ([i915#9262]) +1 other test abort
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-8/igt@gem_softpin@noreloc-s3.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@gem_softpin@noreloc-s3.html
* igt@gem_tiled_pread_pwrite:
- shard-dg2: NOTRUN -> [SKIP][67] ([i915#4079]) +1 other test skip
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@gem_tiled_pread_pwrite.html
* igt@gem_unfence_active_buffers:
- shard-dg2: NOTRUN -> [SKIP][68] ([i915#4879])
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@gem_unfence_active_buffers.html
* igt@gem_userptr_blits@access-control:
- shard-mtlp: NOTRUN -> [SKIP][69] ([i915#3297]) +3 other tests skip
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_userptr_blits@access-control.html
* igt@gem_userptr_blits@create-destroy-unsync:
- shard-dg2: NOTRUN -> [SKIP][70] ([i915#3297]) +5 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@gem_userptr_blits@create-destroy-unsync.html
* igt@gem_userptr_blits@map-fixed-invalidate-overlap:
- shard-dg2: NOTRUN -> [SKIP][71] ([i915#3297] / [i915#4880])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@gem_userptr_blits@map-fixed-invalidate-overlap.html
* igt@gem_userptr_blits@unsync-overlap:
- shard-tglu: NOTRUN -> [SKIP][72] ([i915#3297])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-9/igt@gem_userptr_blits@unsync-overlap.html
* igt@gem_userptr_blits@vma-merge:
- shard-dg2: NOTRUN -> [FAIL][73] ([i915#3318])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@gem_userptr_blits@vma-merge.html
- shard-snb: NOTRUN -> [FAIL][74] ([i915#2724])
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb2/igt@gem_userptr_blits@vma-merge.html
- shard-mtlp: NOTRUN -> [FAIL][75] ([i915#3318])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_userptr_blits@vma-merge.html
* igt@gen7_exec_parse@basic-allocation:
- shard-mtlp: NOTRUN -> [SKIP][76] ([fdo#109289]) +3 other tests skip
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@gen7_exec_parse@basic-allocation.html
- shard-rkl: NOTRUN -> [SKIP][77] ([fdo#109289])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-1/igt@gen7_exec_parse@basic-allocation.html
* igt@gen7_exec_parse@basic-offset:
- shard-dg2: NOTRUN -> [SKIP][78] ([fdo#109289]) +6 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@gen7_exec_parse@basic-offset.html
* igt@gen9_exec_parse@allowed-all:
- shard-dg2: NOTRUN -> [SKIP][79] ([i915#2856]) +4 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@gen9_exec_parse@allowed-all.html
* igt@gen9_exec_parse@basic-rejected:
- shard-dg1: NOTRUN -> [SKIP][80] ([i915#2527])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-15/igt@gen9_exec_parse@basic-rejected.html
* igt@gen9_exec_parse@bb-large:
- shard-mtlp: NOTRUN -> [SKIP][81] ([i915#2856]) +3 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gen9_exec_parse@bb-large.html
* igt@gen9_exec_parse@bb-start-param:
- shard-rkl: NOTRUN -> [SKIP][82] ([i915#2527])
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@gen9_exec_parse@bb-start-param.html
* igt@i915_fb_tiling:
- shard-mtlp: NOTRUN -> [SKIP][83] ([i915#4881])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@i915_fb_tiling.html
* igt@i915_hangman@detector@vcs0:
- shard-mtlp: NOTRUN -> [FAIL][84] ([i915#8456]) +2 other tests fail
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@i915_hangman@detector@vcs0.html
* igt@i915_hwmon@hwmon-read:
- shard-mtlp: NOTRUN -> [SKIP][85] ([i915#7707])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@i915_hwmon@hwmon-read.html
* igt@i915_module_load@reload-with-fault-injection:
- shard-dg2: NOTRUN -> [DMESG-WARN][86] ([i915#8617])
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@i915_module_load@reload-with-fault-injection.html
- shard-snb: [PASS][87] -> [INCOMPLETE][88] ([i915#4528] / [i915#9200])
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-snb6/igt@i915_module_load@reload-with-fault-injection.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb5/igt@i915_module_load@reload-with-fault-injection.html
* igt@i915_pm_freq_api@freq-suspend@gt1:
- shard-mtlp: NOTRUN -> [DMESG-WARN][89] ([i915#9262])
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@i915_pm_freq_api@freq-suspend@gt1.html
* igt@i915_pm_rc6_residency@rc6-idle@bcs0:
- shard-dg1: [PASS][90] -> [FAIL][91] ([i915#3591])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-17/igt@i915_pm_rc6_residency@rc6-idle@bcs0.html
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@i915_pm_rc6_residency@rc6-idle@bcs0.html
* igt@i915_pm_rpm@dpms-lpsp:
- shard-rkl: [PASS][92] -> [SKIP][93] ([i915#1397])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-7/igt@i915_pm_rpm@dpms-lpsp.html
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@i915_pm_rpm@dpms-lpsp.html
* igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
- shard-mtlp: NOTRUN -> [SKIP][94] ([i915#1397]) +1 other test skip
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
* igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait:
- shard-dg1: [PASS][95] -> [SKIP][96] ([i915#1397])
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-18/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
* igt@i915_pm_rps@basic-api:
- shard-dg2: NOTRUN -> [SKIP][97] ([i915#6621])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@i915_pm_rps@basic-api.html
* igt@i915_pm_rps@thresholds-idle-park@gt0:
- shard-mtlp: NOTRUN -> [SKIP][98] ([i915#8925]) +3 other tests skip
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@i915_pm_rps@thresholds-idle-park@gt0.html
- shard-dg2: NOTRUN -> [SKIP][99] ([i915#8925])
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@i915_pm_rps@thresholds-idle-park@gt0.html
* igt@i915_query@query-topology-unsupported:
- shard-mtlp: NOTRUN -> [SKIP][100] ([fdo#109302])
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@i915_query@query-topology-unsupported.html
* igt@kms_addfb_basic@addfb25-x-tiled-legacy:
- shard-mtlp: NOTRUN -> [SKIP][101] ([i915#4212]) +2 other tests skip
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html
* igt@kms_addfb_basic@basic-x-tiled-legacy:
- shard-dg2: NOTRUN -> [SKIP][102] ([i915#4212]) +1 other test skip
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_addfb_basic@basic-x-tiled-legacy.html
* igt@kms_addfb_basic@basic-y-tiled-legacy:
- shard-dg2: NOTRUN -> [SKIP][103] ([i915#4215] / [i915#5190])
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_addfb_basic@basic-y-tiled-legacy.html
* igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
- shard-mtlp: NOTRUN -> [SKIP][104] ([i915#3826])
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-3-4-mc_ccs:
- shard-dg2: NOTRUN -> [SKIP][105] ([i915#8502] / [i915#8709]) +11 other tests skip
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-3-4-mc_ccs.html
* igt@kms_async_flips@crc@pipe-a-hdmi-a-3:
- shard-dg2: NOTRUN -> [FAIL][106] ([i915#8247]) +3 other tests fail
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@kms_async_flips@crc@pipe-a-hdmi-a-3.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
- shard-mtlp: NOTRUN -> [SKIP][107] ([i915#1769] / [i915#3555])
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
* igt@kms_big_fb@4-tiled-16bpp-rotate-90:
- shard-dg2: NOTRUN -> [SKIP][108] ([fdo#111614]) +4 other tests skip
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html
- shard-dg1: NOTRUN -> [SKIP][109] ([i915#4538] / [i915#5286])
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
- shard-rkl: NOTRUN -> [SKIP][110] ([i915#5286])
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html
* igt@kms_big_fb@linear-16bpp-rotate-270:
- shard-mtlp: NOTRUN -> [SKIP][111] ([fdo#111614]) +4 other tests skip
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_big_fb@linear-16bpp-rotate-270.html
* igt@kms_big_fb@x-tiled-8bpp-rotate-270:
- shard-rkl: NOTRUN -> [SKIP][112] ([fdo#111614] / [i915#3638])
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-1/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-addfb-size-overflow:
- shard-mtlp: NOTRUN -> [SKIP][113] ([i915#6187]) +2 other tests skip
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-180:
- shard-dg1: NOTRUN -> [SKIP][114] ([i915#4538])
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@kms_big_fb@yf-tiled-16bpp-rotate-180.html
* igt@kms_big_fb@yf-tiled-32bpp-rotate-0:
- shard-mtlp: NOTRUN -> [SKIP][115] ([fdo#111615]) +12 other tests skip
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html
* igt@kms_big_fb@yf-tiled-32bpp-rotate-180:
- shard-rkl: NOTRUN -> [SKIP][116] ([fdo#110723]) +1 other test skip
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@kms_big_fb@yf-tiled-32bpp-rotate-180.html
* igt@kms_big_fb@yf-tiled-addfb:
- shard-dg1: NOTRUN -> [SKIP][117] ([fdo#111615])
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_big_fb@yf-tiled-addfb.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-dg2: NOTRUN -> [SKIP][118] ([i915#4538] / [i915#5190]) +7 other tests skip
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_big_joiner@invalid-modeset:
- shard-rkl: NOTRUN -> [SKIP][119] ([i915#2705])
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_big_joiner@invalid-modeset.html
* igt@kms_ccs@pipe-a-bad-pixel-format-4_tiled_mtl_mc_ccs:
- shard-dg2: NOTRUN -> [SKIP][120] ([i915#5354]) +49 other tests skip
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@kms_ccs@pipe-a-bad-pixel-format-4_tiled_mtl_mc_ccs.html
* igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs:
- shard-mtlp: NOTRUN -> [SKIP][121] ([i915#3886] / [i915#6095]) +11 other tests skip
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
- shard-mtlp: NOTRUN -> [SKIP][122] ([i915#3886] / [i915#5354] / [i915#6095])
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_dg2_rc_ccs_cc:
- shard-rkl: NOTRUN -> [SKIP][123] ([i915#5354] / [i915#6095])
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-1/igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_dg2_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs:
- shard-glk: NOTRUN -> [SKIP][124] ([fdo#109271] / [i915#3886]) +1 other test skip
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk5/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
- shard-apl: NOTRUN -> [SKIP][125] ([fdo#109271] / [i915#3886])
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-apl2/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_mc_ccs:
- shard-dg1: NOTRUN -> [SKIP][126] ([i915#3689] / [i915#3886] / [i915#5354] / [i915#6095])
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
- shard-dg2: NOTRUN -> [SKIP][127] ([i915#3689] / [i915#3886] / [i915#5354]) +12 other tests skip
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-c-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs:
- shard-tglu: NOTRUN -> [SKIP][128] ([i915#5354] / [i915#6095])
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-2/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs.html
* igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_ccs:
- shard-glk: NOTRUN -> [SKIP][129] ([fdo#109271]) +29 other tests skip
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk4/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_ccs.html
* igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_rc_ccs:
- shard-dg2: NOTRUN -> [SKIP][130] ([i915#3689] / [i915#5354]) +18 other tests skip
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_rc_ccs.html
* igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_dg2_mc_ccs:
- shard-mtlp: NOTRUN -> [SKIP][131] ([i915#6095]) +31 other tests skip
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_dg2_mc_ccs.html
* igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_mtl_mc_ccs:
- shard-dg1: NOTRUN -> [SKIP][132] ([i915#5354] / [i915#6095]) +2 other tests skip
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_mtl_mc_ccs.html
* igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs:
- shard-rkl: NOTRUN -> [SKIP][133] ([i915#5354]) +3 other tests skip
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-4/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs.html
* igt@kms_ccs@pipe-d-random-ccs-data-yf_tiled_ccs:
- shard-dg1: NOTRUN -> [SKIP][134] ([i915#3689] / [i915#5354] / [i915#6095]) +2 other tests skip
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@kms_ccs@pipe-d-random-ccs-data-yf_tiled_ccs.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-dg2: NOTRUN -> [SKIP][135] ([i915#4087] / [i915#7213])
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_cdclk@plane-scaling@pipe-a-hdmi-a-2:
- shard-dg2: NOTRUN -> [SKIP][136] ([i915#4087]) +3 other tests skip
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_cdclk@plane-scaling@pipe-a-hdmi-a-2.html
* igt@kms_cdclk@plane-scaling@pipe-c-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][137] ([i915#4087]) +3 other tests skip
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_cdclk@plane-scaling@pipe-c-edp-1.html
* igt@kms_chamelium_color@ctm-blue-to-red:
- shard-mtlp: NOTRUN -> [SKIP][138] ([fdo#111827]) +1 other test skip
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_chamelium_color@ctm-blue-to-red.html
* igt@kms_chamelium_color@gamma:
- shard-dg2: NOTRUN -> [SKIP][139] ([fdo#111827]) +2 other tests skip
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@kms_chamelium_color@gamma.html
* igt@kms_chamelium_edid@dp-edid-resolution-list:
- shard-dg2: NOTRUN -> [SKIP][140] ([i915#7828]) +9 other tests skip
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_chamelium_edid@dp-edid-resolution-list.html
* igt@kms_chamelium_frames@hdmi-cmp-planar-formats:
- shard-dg1: NOTRUN -> [SKIP][141] ([i915#7828]) +1 other test skip
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-15/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html
* igt@kms_chamelium_hpd@dp-hpd-for-each-pipe:
- shard-mtlp: NOTRUN -> [SKIP][142] ([i915#7828]) +7 other tests skip
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@kms_chamelium_hpd@dp-hpd-for-each-pipe.html
* igt@kms_color@deep-color@pipe-b-edp-1-degamma:
- shard-mtlp: NOTRUN -> [FAIL][143] ([i915#6892]) +3 other tests fail
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_color@deep-color@pipe-b-edp-1-degamma.html
* igt@kms_content_protection@dp-mst-lic-type-0:
- shard-mtlp: NOTRUN -> [SKIP][144] ([i915#3299])
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_content_protection@dp-mst-lic-type-0.html
* igt@kms_content_protection@legacy:
- shard-dg1: NOTRUN -> [SKIP][145] ([i915#7116])
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_content_protection@legacy.html
* igt@kms_content_protection@srm:
- shard-dg2: NOTRUN -> [SKIP][146] ([i915#7118]) +3 other tests skip
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_content_protection@srm.html
* igt@kms_content_protection@uevent:
- shard-mtlp: NOTRUN -> [SKIP][147] ([i915#6944])
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_content_protection@uevent.html
* igt@kms_cursor_crc@cursor-onscreen-32x32:
- shard-mtlp: NOTRUN -> [SKIP][148] ([i915#3555] / [i915#8814]) +4 other tests skip
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_cursor_crc@cursor-onscreen-32x32.html
* igt@kms_cursor_crc@cursor-onscreen-512x512:
- shard-mtlp: NOTRUN -> [SKIP][149] ([i915#3359]) +1 other test skip
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_cursor_crc@cursor-onscreen-512x512.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x170:
- shard-dg2: NOTRUN -> [SKIP][150] ([i915#3359])
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html
* igt@kms_cursor_crc@cursor-sliding-32x10:
- shard-dg2: NOTRUN -> [SKIP][151] ([i915#3555]) +8 other tests skip
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@kms_cursor_crc@cursor-sliding-32x10.html
- shard-dg1: NOTRUN -> [SKIP][152] ([i915#3555]) +1 other test skip
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_cursor_crc@cursor-sliding-32x10.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
- shard-dg2: NOTRUN -> [SKIP][153] ([fdo#109274] / [fdo#111767] / [i915#5354])
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
* igt@kms_cursor_legacy@cursora-vs-flipa-legacy:
- shard-snb: [PASS][154] -> [ABORT][155] ([i915#8865])
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-snb5/igt@kms_cursor_legacy@cursora-vs-flipa-legacy.html
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb7/igt@kms_cursor_legacy@cursora-vs-flipa-legacy.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions:
- shard-snb: NOTRUN -> [SKIP][156] ([fdo#109271] / [fdo#111767])
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb5/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-toggle:
- shard-mtlp: NOTRUN -> [SKIP][157] ([fdo#111767] / [i915#3546])
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_cursor_legacy@cursorb-vs-flipb-toggle.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size:
- shard-dg2: NOTRUN -> [SKIP][158] ([fdo#109274] / [i915#5354]) +7 other tests skip
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-glk: [PASS][159] -> [FAIL][160] ([i915#2346])
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_dirtyfb@dirtyfb-ioctl@fbc-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][161] ([i915#9227])
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@kms_dirtyfb@dirtyfb-ioctl@fbc-hdmi-a-1.html
- shard-rkl: NOTRUN -> [SKIP][162] ([i915#9227])
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_dirtyfb@dirtyfb-ioctl@fbc-hdmi-a-1.html
- shard-dg1: NOTRUN -> [SKIP][163] ([i915#9227])
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_dirtyfb@dirtyfb-ioctl@fbc-hdmi-a-1.html
* igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][164] ([i915#9226] / [i915#9261]) +1 other test skip
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-1.html
- shard-rkl: NOTRUN -> [SKIP][165] ([i915#9226] / [i915#9261]) +1 other test skip
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-1.html
- shard-dg1: NOTRUN -> [SKIP][166] ([i915#9226] / [i915#9261]) +1 other test skip
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-1.html
* igt@kms_display_modes@extended-mode-basic:
- shard-mtlp: NOTRUN -> [SKIP][167] ([i915#3555] / [i915#8827])
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_display_modes@extended-mode-basic.html
* igt@kms_draw_crc@draw-method-mmap-gtt:
- shard-mtlp: NOTRUN -> [SKIP][168] ([i915#8812])
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_draw_crc@draw-method-mmap-gtt.html
* igt@kms_draw_crc@draw-method-mmap-wc:
- shard-dg2: NOTRUN -> [SKIP][169] ([i915#8812]) +1 other test skip
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@kms_draw_crc@draw-method-mmap-wc.html
* igt@kms_dsc@dsc-basic:
- shard-mtlp: NOTRUN -> [SKIP][170] ([i915#3555] / [i915#3840] / [i915#9159])
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_dsc@dsc-basic.html
* igt@kms_flip@2x-flip-vs-fences:
- shard-dg2: NOTRUN -> [SKIP][171] ([i915#8381]) +1 other test skip
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_flip@2x-flip-vs-fences.html
* igt@kms_flip@2x-flip-vs-modeset:
- shard-dg2: NOTRUN -> [SKIP][172] ([fdo#109274]) +4 other tests skip
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@kms_flip@2x-flip-vs-modeset.html
* igt@kms_flip@2x-flip-vs-panning:
- shard-rkl: NOTRUN -> [SKIP][173] ([fdo#111825]) +1 other test skip
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@kms_flip@2x-flip-vs-panning.html
* igt@kms_flip@2x-plain-flip:
- shard-mtlp: NOTRUN -> [SKIP][174] ([i915#3637]) +5 other tests skip
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@kms_flip@2x-plain-flip.html
* igt@kms_flip@flip-vs-fences-interruptible:
- shard-mtlp: NOTRUN -> [SKIP][175] ([i915#8381])
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_flip@flip-vs-fences-interruptible.html
* igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a3:
- shard-dg2: [PASS][176] -> [FAIL][177] ([fdo#103375]) +3 other tests fail
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-3/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a3.html
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a3.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode:
- shard-tglu: NOTRUN -> [SKIP][178] ([i915#2587] / [i915#2672])
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-4/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-rkl: NOTRUN -> [SKIP][179] ([i915#2672]) +1 other test skip
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][180] ([i915#2672]) +4 other tests skip
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][181] ([i915#3555] / [i915#8810])
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][182] ([i915#2672]) +2 other tests skip
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][183] ([i915#2672] / [i915#3555]) +1 other test skip
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling@pipe-a-default-mode.html
* igt@kms_frontbuffer_tracking@fbc-2p-indfb-fliptrack-mmap-gtt:
- shard-mtlp: NOTRUN -> [SKIP][184] ([i915#8708]) +8 other tests skip
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_frontbuffer_tracking@fbc-2p-indfb-fliptrack-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-gtt:
- shard-dg2: NOTRUN -> [SKIP][185] ([i915#8708]) +18 other tests skip
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render:
- shard-dg1: NOTRUN -> [SKIP][186] ([fdo#111825]) +2 other tests skip
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite:
- shard-dg2: NOTRUN -> [FAIL][187] ([i915#6880])
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render:
- shard-dg2: NOTRUN -> [SKIP][188] ([i915#3458]) +17 other tests skip
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt:
- shard-dg1: NOTRUN -> [SKIP][189] ([i915#8708]) +1 other test skip
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff:
- shard-mtlp: NOTRUN -> [SKIP][190] ([i915#1825]) +38 other tests skip
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-cpu:
- shard-tglu: NOTRUN -> [SKIP][191] ([fdo#110189]) +1 other test skip
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-4/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render:
- shard-dg1: NOTRUN -> [SKIP][192] ([i915#3458]) +1 other test skip
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-pwrite:
- shard-rkl: NOTRUN -> [SKIP][193] ([fdo#111825] / [i915#1825]) +2 other tests skip
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render:
- shard-tglu: NOTRUN -> [SKIP][194] ([fdo#109280]) +1 other test skip
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt:
- shard-rkl: NOTRUN -> [SKIP][195] ([i915#3023]) +3 other tests skip
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt.html
* igt@kms_hdr@invalid-metadata-sizes:
- shard-dg2: NOTRUN -> [SKIP][196] ([i915#3555] / [i915#8228]) +1 other test skip
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@kms_hdr@invalid-metadata-sizes.html
* igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-1:
- shard-apl: [PASS][197] -> [INCOMPLETE][198] ([i915#180])
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-apl3/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-1.html
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-apl3/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-1.html
* igt@kms_plane_lowres@tiling-none@pipe-b-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][199] ([i915#3582]) +7 other tests skip
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_plane_lowres@tiling-none@pipe-b-edp-1.html
* igt@kms_plane_multiple@tiling-y:
- shard-dg2: NOTRUN -> [SKIP][200] ([i915#8806])
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@kms_plane_multiple@tiling-y.html
* igt@kms_plane_scaling@2x-scaler-multi-pipe:
- shard-mtlp: NOTRUN -> [SKIP][201] ([i915#3546]) +1 other test skip
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
* igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-c-hdmi-a-2:
- shard-dg2: NOTRUN -> [SKIP][202] ([i915#5176]) +11 other tests skip
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-c-hdmi-a-2.html
* igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25@pipe-b-hdmi-a-1:
- shard-rkl: NOTRUN -> [SKIP][203] ([i915#5176]) +3 other tests skip
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25@pipe-b-hdmi-a-1.html
* igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-5@pipe-c-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][204] ([i915#5176]) +9 other tests skip
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-5@pipe-c-edp-1.html
* igt@kms_plane_scaling@plane-upscale-with-rotation-factor-0-25@pipe-a-hdmi-a-3:
- shard-dg1: NOTRUN -> [SKIP][205] ([i915#5176]) +19 other tests skip
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@kms_plane_scaling@plane-upscale-with-rotation-factor-0-25@pipe-a-hdmi-a-3.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-c-hdmi-a-1:
- shard-dg1: NOTRUN -> [SKIP][206] ([i915#5235]) +23 other tests skip
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-c-hdmi-a-1.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c-hdmi-a-2:
- shard-dg2: NOTRUN -> [SKIP][207] ([i915#5235]) +19 other tests skip
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c-hdmi-a-2.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1:
- shard-snb: NOTRUN -> [SKIP][208] ([fdo#109271]) +202 other tests skip
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb6/igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20@pipe-a-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][209] ([i915#5235]) +7 other tests skip
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20@pipe-a-edp-1.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][210] ([i915#5235]) +3 other tests skip
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b-hdmi-a-2.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-c-dp-1:
- shard-apl: NOTRUN -> [SKIP][211] ([fdo#109271]) +43 other tests skip
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-apl6/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-c-dp-1.html
* igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf:
- shard-glk: NOTRUN -> [SKIP][212] ([fdo#109271] / [i915#658])
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk5/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-dg2: NOTRUN -> [SKIP][213] ([i915#658]) +2 other tests skip
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr@psr2_sprite_blt:
- shard-dg2: NOTRUN -> [SKIP][214] ([i915#1072]) +4 other tests skip
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_psr@psr2_sprite_blt.html
* igt@kms_rotation_crc@primary-rotation-90:
- shard-mtlp: NOTRUN -> [SKIP][215] ([i915#4235]) +2 other tests skip
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_rotation_crc@primary-rotation-90.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
- shard-mtlp: NOTRUN -> [SKIP][216] ([i915#5289])
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
- shard-dg2: NOTRUN -> [SKIP][217] ([i915#4235] / [i915#5190])
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
- shard-rkl: NOTRUN -> [SKIP][218] ([fdo#111615] / [i915#5289])
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-4/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
* igt@kms_universal_plane@cursor-fb-leak-pipe-a:
- shard-tglu: [PASS][219] -> [FAIL][220] ([i915#9196])
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-4/igt@kms_universal_plane@cursor-fb-leak-pipe-a.html
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-10/igt@kms_universal_plane@cursor-fb-leak-pipe-a.html
* igt@kms_vblank@pipe-c-wait-forked-busy:
- shard-rkl: NOTRUN -> [SKIP][221] ([i915#4070] / [i915#6768]) +1 other test skip
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@kms_vblank@pipe-c-wait-forked-busy.html
* igt@kms_vblank@pipe-d-query-forked-busy:
- shard-rkl: NOTRUN -> [SKIP][222] ([i915#4070] / [i915#533] / [i915#6768]) +2 other tests skip
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@kms_vblank@pipe-d-query-forked-busy.html
* igt@perf@buffer-fill@0-rcs0:
- shard-mtlp: NOTRUN -> [FAIL][223] ([i915#7823] / [i915#9265])
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@perf@buffer-fill@0-rcs0.html
* igt@perf@gen12-group-concurrent-oa-buffer-read:
- shard-mtlp: NOTRUN -> [FAIL][224] ([i915#9259]) +2 other tests fail
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@perf@gen12-group-concurrent-oa-buffer-read.html
* igt@perf@polling-small-buf:
- shard-mtlp: NOTRUN -> [FAIL][225] ([i915#1722])
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@perf@polling-small-buf.html
* igt@perf_pmu@busy-check-all@rcs0:
- shard-mtlp: NOTRUN -> [FAIL][226] ([i915#4521]) +2 other tests fail
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@perf_pmu@busy-check-all@rcs0.html
* igt@perf_pmu@busy-idle@vcs0:
- shard-dg1: [PASS][227] -> [FAIL][228] ([i915#4349]) +2 other tests fail
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-13/igt@perf_pmu@busy-idle@vcs0.html
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@perf_pmu@busy-idle@vcs0.html
* igt@perf_pmu@busy@rcs0:
- shard-mtlp: NOTRUN -> [FAIL][229] ([i915#4349]) +5 other tests fail
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@perf_pmu@busy@rcs0.html
* igt@perf_pmu@cpu-hotplug:
- shard-mtlp: NOTRUN -> [SKIP][230] ([i915#8850])
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@perf_pmu@cpu-hotplug.html
* igt@perf_pmu@faulting-read@gtt:
- shard-mtlp: NOTRUN -> [SKIP][231] ([i915#8440])
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-8/igt@perf_pmu@faulting-read@gtt.html
* igt@perf_pmu@frequency@gt0:
- shard-dg2: NOTRUN -> [FAIL][232] ([i915#6806])
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@perf_pmu@frequency@gt0.html
* igt@prime_vgem@basic-blt:
- shard-mtlp: NOTRUN -> [FAIL][233] ([i915#8445]) +1 other test fail
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@prime_vgem@basic-blt.html
* igt@prime_vgem@basic-gtt:
- shard-dg2: NOTRUN -> [SKIP][234] ([i915#3708] / [i915#4077])
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@prime_vgem@basic-gtt.html
* igt@prime_vgem@basic-read:
- shard-mtlp: NOTRUN -> [SKIP][235] ([i915#3708]) +1 other test skip
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@prime_vgem@basic-read.html
* igt@prime_vgem@basic-write:
- shard-dg2: NOTRUN -> [SKIP][236] ([i915#3291] / [i915#3708])
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@prime_vgem@basic-write.html
* igt@prime_vgem@coherency-gtt:
- shard-mtlp: NOTRUN -> [SKIP][237] ([i915#3708] / [i915#4077])
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@prime_vgem@coherency-gtt.html
* igt@prime_vgem@fence-flip-hang:
- shard-dg2: NOTRUN -> [SKIP][238] ([i915#3708]) +1 other test skip
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@prime_vgem@fence-flip-hang.html
* igt@v3d/v3d_job_submission@multiple-singlesync-to-multisync:
- shard-dg1: NOTRUN -> [SKIP][239] ([i915#2575]) +2 other tests skip
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@v3d/v3d_job_submission@multiple-singlesync-to-multisync.html
* igt@v3d/v3d_perfmon@create-perfmon-0:
- shard-rkl: NOTRUN -> [SKIP][240] ([fdo#109315]) +2 other tests skip
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@v3d/v3d_perfmon@create-perfmon-0.html
* igt@v3d/v3d_submit_cl@bad-multisync-out-sync:
- shard-dg2: NOTRUN -> [SKIP][241] ([i915#2575]) +15 other tests skip
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@v3d/v3d_submit_cl@bad-multisync-out-sync.html
* igt@v3d/v3d_wait_bo@used-bo:
- shard-mtlp: NOTRUN -> [SKIP][242] ([i915#2575]) +15 other tests skip
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@v3d/v3d_wait_bo@used-bo.html
* igt@vc4/vc4_mmap@mmap-bo:
- shard-dg2: NOTRUN -> [SKIP][243] ([i915#7711]) +9 other tests skip
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@vc4/vc4_mmap@mmap-bo.html
* igt@vc4/vc4_perfmon@destroy-valid-perfmon:
- shard-dg1: NOTRUN -> [SKIP][244] ([i915#7711])
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-15/igt@vc4/vc4_perfmon@destroy-valid-perfmon.html
* igt@vc4/vc4_purgeable_bo@access-purged-bo-mem:
- shard-mtlp: NOTRUN -> [SKIP][245] ([i915#7711]) +8 other tests skip
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-8/igt@vc4/vc4_purgeable_bo@access-purged-bo-mem.html
* igt@vc4/vc4_tiling@set-bad-modifier:
- shard-rkl: NOTRUN -> [SKIP][246] ([i915#7711])
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@vc4/vc4_tiling@set-bad-modifier.html
#### Possible fixes ####
* igt@core_hotunplug@unbind-rebind:
- shard-snb: [INCOMPLETE][247] -> [PASS][248]
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-snb1/igt@core_hotunplug@unbind-rebind.html
[248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb6/igt@core_hotunplug@unbind-rebind.html
* igt@gem_ctx_exec@basic-nohangcheck:
- shard-rkl: [FAIL][249] ([i915#6268]) -> [PASS][250]
[249]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-6/igt@gem_ctx_exec@basic-nohangcheck.html
[250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-4/igt@gem_ctx_exec@basic-nohangcheck.html
- shard-tglu: [FAIL][251] ([i915#6268]) -> [PASS][252]
[251]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-10/igt@gem_ctx_exec@basic-nohangcheck.html
[252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-6/igt@gem_ctx_exec@basic-nohangcheck.html
* igt@gem_ctx_persistence@hostile:
- shard-mtlp: [ABORT][253] ([i915#9262]) -> [PASS][254] +1 other test pass
[253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-6/igt@gem_ctx_persistence@hostile.html
[254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@gem_ctx_persistence@hostile.html
* igt@gem_eio@reset-stress:
- shard-dg1: [FAIL][255] ([i915#5784]) -> [PASS][256]
[255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-14/igt@gem_eio@reset-stress.html
[256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@gem_eio@reset-stress.html
* igt@gem_exec_endless@dispatch@vecs0:
- shard-dg1: [TIMEOUT][257] ([i915#3778]) -> [PASS][258]
[257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-16/igt@gem_exec_endless@dispatch@vecs0.html
[258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@gem_exec_endless@dispatch@vecs0.html
* igt@gem_exec_fair@basic-flow@rcs0:
- shard-tglu: [FAIL][259] ([i915#2842]) -> [PASS][260]
[259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-6/igt@gem_exec_fair@basic-flow@rcs0.html
[260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-5/igt@gem_exec_fair@basic-flow@rcs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-rkl: [FAIL][261] ([i915#2842]) -> [PASS][262] +2 other tests pass
[261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-1/igt@gem_exec_fair@basic-pace-share@rcs0.html
[262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_lmem_swapping@smem-oom@lmem0:
- shard-dg1: [TIMEOUT][263] ([i915#5493]) -> [PASS][264]
[263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-15/igt@gem_lmem_swapping@smem-oom@lmem0.html
[264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@gem_lmem_swapping@smem-oom@lmem0.html
* igt@gen9_exec_parse@allowed-single:
- shard-apl: [INCOMPLETE][265] ([i915#5566]) -> [PASS][266]
[265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-apl4/igt@gen9_exec_parse@allowed-single.html
[266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-apl3/igt@gen9_exec_parse@allowed-single.html
* igt@i915_pm_rpm@modeset-lpsp:
- shard-rkl: [SKIP][267] ([i915#1397]) -> [PASS][268]
[267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-6/igt@i915_pm_rpm@modeset-lpsp.html
[268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@i915_pm_rpm@modeset-lpsp.html
* igt@i915_pm_rpm@modeset-non-lpsp:
- shard-dg2: [SKIP][269] ([i915#1397]) -> [PASS][270]
[269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-10/igt@i915_pm_rpm@modeset-non-lpsp.html
[270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@i915_pm_rpm@modeset-non-lpsp.html
* igt@i915_selftest@live@gt_heartbeat:
- shard-glk: [DMESG-FAIL][271] ([i915#5334]) -> [PASS][272]
[271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-glk2/igt@i915_selftest@live@gt_heartbeat.html
[272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk5/igt@i915_selftest@live@gt_heartbeat.html
* igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs:
- shard-dg1: [DMESG-WARN][273] ([i915#4423]) -> [PASS][274]
[273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-17/igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs.html
[274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-apl: [FAIL][275] ([i915#2346]) -> [PASS][276]
[275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-apl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt:
- shard-dg2: [FAIL][277] ([i915#6880]) -> [PASS][278]
[277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-11/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt.html
[278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt.html
* igt@kms_plane@pixel-format@pipe-a-planes:
- shard-glk: [DMESG-FAIL][279] ([i915#118]) -> [PASS][280]
[279]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-glk2/igt@kms_plane@pixel-format@pipe-a-planes.html
[280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk2/igt@kms_plane@pixel-format@pipe-a-planes.html
* {igt@kms_pm_dc@dc9-dpms}:
- shard-tglu: [SKIP][281] ([i915#4281]) -> [PASS][282]
[281]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-4/igt@kms_pm_dc@dc9-dpms.html
[282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-9/igt@kms_pm_dc@dc9-dpms.html
* {igt@kms_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a}:
- shard-rkl: [SKIP][283] ([i915#1937]) -> [PASS][284]
[283]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-2/igt@kms_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html
[284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html
- shard-dg1: [SKIP][285] ([i915#1937]) -> [PASS][286]
[285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-16/igt@kms_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html
[286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html
* igt@kms_universal_plane@cursor-fb-leak-pipe-d:
- shard-mtlp: [FAIL][287] ([i915#9196]) -> [PASS][288]
[287]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-2/igt@kms_universal_plane@cursor-fb-leak-pipe-d.html
[288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-8/igt@kms_universal_plane@cursor-fb-leak-pipe-d.html
* igt@kms_vblank@pipe-b-ts-continuation-suspend:
- shard-dg2: [FAIL][289] ([fdo#103375]) -> [PASS][290] +2 other tests pass
[289]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-5/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
[290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
#### Warnings ####
* igt@device_reset@unbind-reset-rebind:
- shard-dg1: [ABORT][291] ([i915#4983] / [i915#7461]) -> [INCOMPLETE][292] ([i915#4983])
[291]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-13/igt@device_reset@unbind-reset-rebind.html
[292]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@device_reset@unbind-reset-rebind.html
* igt@i915_pm_rc6_residency@rc6-idle@rcs0:
- shard-tglu: [FAIL][293] ([i915#2681] / [i915#3591]) -> [WARN][294] ([i915#2681]) +1 other test warn
[293]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-3/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
[294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-9/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
* igt@kms_async_flips@crc@pipe-b-edp-1:
- shard-mtlp: [FAIL][295] ([i915#8247]) -> [DMESG-FAIL][296] ([i915#8561])
[295]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-4/igt@kms_async_flips@crc@pipe-b-edp-1.html
[296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-8/igt@kms_async_flips@crc@pipe-b-edp-1.html
* igt@kms_async_flips@crc@pipe-d-edp-1:
- shard-mtlp: [DMESG-FAIL][297] ([i915#8561]) -> [FAIL][298] ([i915#8247]) +1 other test fail
[297]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-4/igt@kms_async_flips@crc@pipe-d-edp-1.html
[298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-8/igt@kms_async_flips@crc@pipe-d-edp-1.html
* igt@kms_content_protection@mei_interface:
- shard-dg2: [SKIP][299] ([i915#7118]) -> [SKIP][300] ([i915#7118] / [i915#7162])
[299]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-3/igt@kms_content_protection@mei_interface.html
[300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@kms_content_protection@mei_interface.html
* igt@kms_flip@flip-vs-suspend@a-edp1:
- shard-mtlp: [ABORT][301] ([i915#9262]) -> [FAIL][302] ([fdo#103375])
[301]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-4/igt@kms_flip@flip-vs-suspend@a-edp1.html
[302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_flip@flip-vs-suspend@a-edp1.html
* igt@kms_flip@flip-vs-suspend@b-edp1:
- shard-mtlp: [DMESG-WARN][303] ([i915#9262]) -> [FAIL][304] ([fdo#103375]) +2 other tests fail
[303]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-4/igt@kms_flip@flip-vs-suspend@b-edp1.html
[304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_flip@flip-vs-suspend@b-edp1.html
* igt@kms_force_connector_basic@force-load-detect:
- shard-rkl: [SKIP][305] ([fdo#109285] / [i915#4098]) -> [SKIP][306] ([fdo#109285])
[305]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-1/igt@kms_force_connector_basic@force-load-detect.html
[306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_psr@sprite_plane_onoff:
- shard-dg1: [SKIP][307] ([i915#1072]) -> [SKIP][308] ([i915#1072] / [i915#4078]) +2 other tests skip
[307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-19/igt@kms_psr@sprite_plane_onoff.html
[308]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@kms_psr@sprite_plane_onoff.html
* igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem:
- shard-dg2: [INCOMPLETE][309] ([i915#5493]) -> [CRASH][310] ([i915#9351])
[309]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-10/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
[310]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[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#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
[fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111767]: https://bugs.freedesktop.org/show_bug.cgi?id=111767
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
[i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[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#2724]: https://gitlab.freedesktop.org/drm/intel/issues/2724
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
[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#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3582]: https://gitlab.freedesktop.org/drm/intel/issues/3582
[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#3778]: https://gitlab.freedesktop.org/drm/intel/issues/3778
[i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
[i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[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#4087]: https://gitlab.freedesktop.org/drm/intel/issues/4087
[i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
[i915#4235]: https://gitlab.freedesktop.org/drm/intel/issues/4235
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
[i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
[i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423
[i915#4473]: https://gitlab.freedesktop.org/drm/intel/issues/4473
[i915#4521]: https://gitlab.freedesktop.org/drm/intel/issues/4521
[i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
[i915#4537]: https://gitlab.freedesktop.org/drm/intel/issues/4537
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
[i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879
[i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
[i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
[i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
[i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493
[i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
[i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#5978]: https://gitlab.freedesktop.org/drm/intel/issues/5978
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6187]: https://gitlab.freedesktop.org/drm/intel/issues/6187
[i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
[i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#6755]: https://gitlab.freedesktop.org/drm/intel/issues/6755
[i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
[i915#6806]: https://gitlab.freedesktop.org/drm/intel/issues/6806
[i915#6880]: https://gitlab.freedesktop.org/drm/intel/issues/6880
[i915#6892]: https://gitlab.freedesktop.org/drm/intel/issues/6892
[i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
[i915#7162]: https://gitlab.freedesktop.org/drm/intel/issues/7162
[i915#7213]: https://gitlab.freedesktop.org/drm/intel/issues/7213
[i915#7297]: https://gitlab.freedesktop.org/drm/intel/issues/7297
[i915#7392]: https://gitlab.freedesktop.org/drm/intel/issues/7392
[i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461
[i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
[i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
[i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7823]: https://gitlab.freedesktop.org/drm/intel/issues/7823
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
[i915#8104]: https://gitlab.freedesktop.org/drm/intel/issues/8104
[i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
[i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228
[i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247
[i915#8381]: https://gitlab.freedesktop.org/drm/intel/issues/8381
[i915#8411]: https://gitlab.freedesktop.org/drm/intel/issues/8411
[i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414
[i915#8428]: https://gitlab.freedesktop.org/drm/intel/issues/8428
[i915#8440]: https://gitlab.freedesktop.org/drm/intel/issues/8440
[i915#8445]: https://gitlab.freedesktop.org/drm/intel/issues/8445
[i915#8456]: https://gitlab.freedesktop.org/drm/intel/issues/8456
[i915#8502]: https://gitlab.freedesktop.org/drm/intel/issues/8502
[i915#8555]: https://gitlab.freedesktop.org/drm/intel/issues/8555
[i915#8561]: https://gitlab.freedesktop.org/drm/intel/issues/8561
[i915#8617]: https://gitlab.freedesktop.org/drm/intel/issues/8617
[i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708
[i915#8709]: https://gitlab.freedesktop.org/drm/intel/issues/8709
[i915#8806]: https://gitlab.freedesktop.org/drm/intel/issues/8806
[i915#8810]: https://gitlab.freedesktop.org/drm/intel/issues/8810
[i915#8812]: https://gitlab.freedesktop.org/drm/intel/issues/8812
[i915#8814]: https://gitlab.freedesktop.org/drm/intel/issues/8814
[i915#8827]: https://gitlab.freedesktop.org/drm/intel/issues/8827
[i915#8841]: https://gitlab.freedesktop.org/drm/intel/issues/8841
[i915#8850]: https://gitlab.freedesktop.org/drm/intel/issues/8850
[i915#8865]: https://gitlab.freedesktop.org/drm/intel/issues/8865
[i915#8925]: https://gitlab.freedesktop.org/drm/intel/issues/8925
[i915#9053]: https://gitlab.freedesktop.org/drm/intel/issues/9053
[i915#9159]: https://gitlab.freedesktop.org/drm/intel/issues/9159
[i915#9196]: https://gitlab.freedesktop.org/drm/intel/issues/9196
[i915#9200]: https://gitlab.freedesktop.org/drm/intel/issues/9200
[i915#9226]: https://gitlab.freedesktop.org/drm/intel/issues/9226
[i915#9227]: https://gitlab.freedesktop.org/drm/intel/issues/9227
[i915#9259]: https://gitlab.freedesktop.org/drm/intel/issues/9259
[i915#9261]: https://gitlab.freedesktop.org/drm/intel/issues/9261
[i915#9262]: https://gitlab.freedesktop.org/drm/intel/issues/9262
[i915#9265]: https://gitlab.freedesktop.org/drm/intel/issues/9265
[i915#9292]: https://gitlab.freedesktop.org/drm/intel/issues/9292
[i915#9323]: https://gitlab.freedesktop.org/drm/intel/issues/9323
[i915#9351]: https://gitlab.freedesktop.org/drm/intel/issues/9351
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7493 -> IGTPW_9821
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_13651: 61b71c3f061a44a6ab1dcf756918886aa03a5480 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_9821: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/index.html
IGT_7493: 2517e42d612e0c1ca096acf8b5f6177f7ef4bce7 @ https://gitlab.freedesktop.org/drm/igt-gpu-to
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/index.html
[-- Attachment #2: Type: text/html, Size: 122043 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [igt-dev] ✗ Fi.CI.IGT: failure for Fix IGT Kunit implementation issues (rev3)
2023-09-19 23:21 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2023-09-20 9:44 ` Janusz Krzysztofik
0 siblings, 0 replies; 29+ messages in thread
From: Janusz Krzysztofik @ 2023-09-20 9:44 UTC (permalink / raw)
To: igt-dev; +Cc: igt-dev
On Wednesday, 20 September 2023 01:21:07 CEST Patchwork wrote:
> == Series Details ==
>
> Series: Fix IGT Kunit implementation issues (rev3)
> URL : https://patchwork.freedesktop.org/series/123434/
> State : failure
>
> == Summary ==
>
> CI Bug Log - changes from CI_DRM_13651_full -> IGTPW_9821_full
> ====================================================
>
> Summary
> -------
>
> **FAILURE**
>
> Serious unknown changes coming with IGTPW_9821_full absolutely need to be
> verified manually.
>
> If you think the reported changes have nothing to do with the changes
> introduced in IGTPW_9821_full, 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_9821/index.html
>
> Participating hosts (9 -> 9)
> ------------------------------
>
> No changes in participating hosts
>
> Possible new issues
> -------------------
>
> Here are the unknown changes that may have been introduced in IGTPW_9821_full:
>
> ### IGT changes ###
>
> #### Possible regressions ####
>
> * igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1:
> - shard-dg2: NOTRUN -> [INCOMPLETE][1]
> [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1.html
>
> * igt@kms_plane_lowres@tiling-y@pipe-a-hdmi-a-2:
> - shard-rkl: [PASS][2] -> [INCOMPLETE][3]
> [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-1/igt@kms_plane_lowres@tiling-y@pipe-a-hdmi-a-2.html
> [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-4/igt@kms_plane_lowres@tiling-y@pipe-a-hdmi-a-2.html
Any of the above two has anything to do with changes introduced by the series.
I've already asked BUG Filing team to update cibuglog filters and re-report.
OTOH, the below list of new tests introduced by this series and their results
confirm validity of the changes.
Thanks,
Janusz
> New tests
> ---------
>
> New tests have been introduced between CI_DRM_13651_full and IGTPW_9821_full:
>
> ### New IGT tests (126) ###
>
> * igt@drm_buddy@drm_buddy:
> - Statuses :
> - Exec time: [None] s
>
> * igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_optimistic:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_pathological:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_pessimistic:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_range:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_smoke:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm:
> - Statuses :
> - Exec time: [None] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_align:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_align32:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_align64:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_bottomup:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_color:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_color_evict:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_color_evict_range:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_debug:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_evict:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_evict_range:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_frag:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_highest:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_init:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_insert:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_insert_range:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_lowest:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_replace:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_reserve:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@drm_mm@drm_mm@drm_test_mm_topdown:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_bpp_extra_and_option:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_extra_and_option:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_force_d_only:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_force_d_only_dvi:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_force_d_only_hdmi:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_force_d_only_not_digital:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_force_e_only:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_freestanding_force_e_and_options:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_freestanding_options:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_hmirror:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_invalid:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_margin_options:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_multiple_options:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_name:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_name_bpp:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_name_bpp_option:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_name_option:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_panel_orientation:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh_force_off:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh_force_on:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh_force_on_analog:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh_force_on_digital:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh_interlaced:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_bpp_refresh_margins:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_margins_force_on:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_rblank:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_refresh:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_vesa:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_vesa_margins:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_res_vesa_rblank:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_rotate_0:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_rotate_180:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_rotate_270:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_rotate_90:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_tv_options:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_cmdline@drm_cmdline_parser-drm_test_cmdline_vmirror:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_damage:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_damage_not_visible:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_damage_one_intersect:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_damage_one_outside:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_damage_src_moved:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_no_damage:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_no_damage_fractional_src:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_no_damage_fractional_src_moved:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_no_damage_no_crtc:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_no_damage_no_fb:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_no_damage_not_visible:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_no_damage_src_moved:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_simple_damage:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage_fractional_src:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage_fractional_src_moved:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage_intersect_fractional_src:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage_intersect_src:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage_outside_fractional_src:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage_outside_src:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_damage@drm_damage_helper-drm_test_damage_iter_single_damage_src_moved:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_dp_mst@drm_dp_mst_helper-drm_test_dp_mst_calc_pbn_mode:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_dp_mst@drm_dp_mst_helper-drm_test_dp_mst_sideband_msg_req_decode:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_block_height_invalid:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_block_height_one_plane:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_block_height_three_plane:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_block_height_tiled:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_block_height_two_plane:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_block_width_invalid:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_block_width_one_plane:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_block_width_three_plane:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_block_width_tiled:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_block_width_two_plane:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_min_pitch_invalid:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_min_pitch_one_plane_16bpp:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_min_pitch_one_plane_24bpp:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_min_pitch_one_plane_32bpp:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_min_pitch_one_plane_8bpp:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_min_pitch_three_plane_8bpp:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_min_pitch_tiled:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format@drm_test_format_min_pitch_two_plane:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_build_fourcc_list:
> - Statuses : 6 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_clip_offset:
> - Statuses : 6 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_memcpy:
> - Statuses : 6 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_swab:
> - Statuses : 6 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_argb1555:
> - Statuses : 6 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_argb2101010:
> - Statuses : 6 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_argb8888:
> - Statuses : 6 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_gray8:
> - Statuses : 6 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_mono:
> - Statuses : 6 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_rgb332:
> - Statuses : 6 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_rgb565:
> - Statuses : 6 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_rgb888:
> - Statuses : 6 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_rgba5551:
> - Statuses : 6 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_xrgb1555:
> - Statuses : 6 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_xrgb2101010:
> - Statuses : 6 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_plane@drm_plane_helper-drm_test_check_invalid_plane_state:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@drm_plane@drm_plane_helper-drm_test_check_plane_state:
> - Statuses : 8 pass(s)
> - Exec time: [0.0] s
>
> * igt@kms_selftest@framebuffer@drm_framebuffer-drm_test_framebuffer_create:
> - Statuses : 7 pass(s)
> - Exec time: [0.0] s
>
>
>
> Known issues
> ------------
>
> Here are the changes found in IGTPW_9821_full that come from known issues:
>
> ### IGT changes ###
>
> #### Issues hit ####
>
> * igt@api_intel_bb@blit-reloc-keep-cache:
> - shard-dg2: NOTRUN -> [SKIP][4] ([i915#8411])
> [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@api_intel_bb@blit-reloc-keep-cache.html
>
> * igt@device_reset@unbind-cold-reset-rebind:
> - shard-mtlp: NOTRUN -> [SKIP][5] ([i915#7701])
> [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@device_reset@unbind-cold-reset-rebind.html
> - shard-dg2: NOTRUN -> [SKIP][6] ([i915#7701])
> [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@device_reset@unbind-cold-reset-rebind.html
>
> * igt@drm_fdinfo@busy-check-all@ccs0:
> - shard-mtlp: NOTRUN -> [SKIP][7] ([i915#8414]) +6 other tests skip
> [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@drm_fdinfo@busy-check-all@ccs0.html
>
> * igt@drm_fdinfo@busy-hang@bcs0:
> - shard-dg2: NOTRUN -> [SKIP][8] ([i915#8414]) +21 other tests skip
> [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@drm_fdinfo@busy-hang@bcs0.html
>
> * igt@drm_fdinfo@virtual-busy-hang-all:
> - shard-dg1: NOTRUN -> [SKIP][9] ([i915#8414])
> [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-17/igt@drm_fdinfo@virtual-busy-hang-all.html
>
> * igt@gem_basic@multigpu-create-close:
> - shard-dg2: NOTRUN -> [SKIP][10] ([i915#7697])
> [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@gem_basic@multigpu-create-close.html
>
> * igt@gem_caching@reads:
> - shard-mtlp: NOTRUN -> [SKIP][11] ([i915#4873]) +1 other test skip
> [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_caching@reads.html
>
> * igt@gem_ccs@block-multicopy-compressed:
> - shard-mtlp: NOTRUN -> [SKIP][12] ([i915#9323])
> [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@gem_ccs@block-multicopy-compressed.html
>
> * igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0:
> - shard-dg2: [PASS][13] -> [INCOMPLETE][14] ([i915#7297])
> [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-2/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html
> [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html
>
> * igt@gem_create@create-ext-cpu-access-big:
> - shard-mtlp: NOTRUN -> [SKIP][15] ([i915#6335])
> [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_create@create-ext-cpu-access-big.html
>
> * igt@gem_ctx_param@set-priority-not-supported:
> - shard-mtlp: NOTRUN -> [SKIP][16] ([fdo#109314])
> [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_ctx_param@set-priority-not-supported.html
>
> * igt@gem_ctx_persistence@engines-hostile@vcs0:
> - shard-mtlp: NOTRUN -> [ABORT][17] ([i915#9262]) +12 other tests abort
> [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@gem_ctx_persistence@engines-hostile@vcs0.html
>
> * igt@gem_ctx_persistence@hang:
> - shard-mtlp: NOTRUN -> [SKIP][18] ([i915#8555])
> [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@gem_ctx_persistence@hang.html
>
> * igt@gem_ctx_persistence@heartbeat-stop:
> - shard-dg2: NOTRUN -> [SKIP][19] ([i915#8555]) +1 other test skip
> [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@gem_ctx_persistence@heartbeat-stop.html
>
> * igt@gem_ctx_persistence@legacy-engines-mixed:
> - shard-snb: NOTRUN -> [SKIP][20] ([fdo#109271] / [i915#1099]) +1 other test skip
> [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb7/igt@gem_ctx_persistence@legacy-engines-mixed.html
>
> * igt@gem_ctx_sseu@mmap-args:
> - shard-mtlp: NOTRUN -> [SKIP][21] ([i915#280])
> [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@gem_ctx_sseu@mmap-args.html
>
> * igt@gem_eio@hibernate:
> - shard-dg2: NOTRUN -> [ABORT][22] ([i915#7975] / [i915#8213])
> [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@gem_eio@hibernate.html
>
> * igt@gem_eio@unwedge-stress:
> - shard-dg2: [PASS][23] -> [FAIL][24] ([i915#5784]) +1 other test fail
> [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-5/igt@gem_eio@unwedge-stress.html
> [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@gem_eio@unwedge-stress.html
>
> * igt@gem_exec_balancer@bonded-pair:
> - shard-mtlp: NOTRUN -> [SKIP][25] ([i915#4771])
> [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@gem_exec_balancer@bonded-pair.html
>
> * igt@gem_exec_balancer@hang:
> - shard-mtlp: [PASS][26] -> [ABORT][27] ([i915#8104] / [i915#9262])
> [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-5/igt@gem_exec_balancer@hang.html
> [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_exec_balancer@hang.html
>
> * igt@gem_exec_balancer@sliced:
> - shard-mtlp: NOTRUN -> [SKIP][28] ([i915#4812]) +1 other test skip
> [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_exec_balancer@sliced.html
>
> * igt@gem_exec_fair@basic-none-rrul:
> - shard-dg2: NOTRUN -> [SKIP][29] ([i915#3539] / [i915#4852]) +5 other tests skip
> [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@gem_exec_fair@basic-none-rrul.html
>
> * igt@gem_exec_fair@basic-sync:
> - shard-mtlp: NOTRUN -> [SKIP][30] ([i915#4473] / [i915#4771]) +1 other test skip
> [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@gem_exec_fair@basic-sync.html
>
> * igt@gem_exec_fence@submit67:
> - shard-dg2: NOTRUN -> [SKIP][31] ([i915#4812]) +2 other tests skip
> [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@gem_exec_fence@submit67.html
> - shard-dg1: NOTRUN -> [SKIP][32] ([i915#4812])
> [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@gem_exec_fence@submit67.html
>
> * igt@gem_exec_flush@basic-uc-set-default:
> - shard-dg2: NOTRUN -> [SKIP][33] ([i915#3539]) +1 other test skip
> [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@gem_exec_flush@basic-uc-set-default.html
>
> * igt@gem_exec_gttfill@multigpu-basic:
> - shard-mtlp: NOTRUN -> [SKIP][34] ([i915#7697])
> [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_exec_gttfill@multigpu-basic.html
>
> * igt@gem_exec_reloc@basic-cpu-noreloc:
> - shard-rkl: NOTRUN -> [SKIP][35] ([i915#3281])
> [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@gem_exec_reloc@basic-cpu-noreloc.html
>
> * igt@gem_exec_reloc@basic-cpu-wc-noreloc:
> - shard-mtlp: NOTRUN -> [SKIP][36] ([i915#3281]) +15 other tests skip
> [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_exec_reloc@basic-cpu-wc-noreloc.html
>
> * igt@gem_exec_reloc@basic-gtt-cpu-active:
> - shard-dg2: NOTRUN -> [SKIP][37] ([i915#3281]) +5 other tests skip
> [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@gem_exec_reloc@basic-gtt-cpu-active.html
>
> * igt@gem_exec_schedule@deep@rcs0:
> - shard-mtlp: NOTRUN -> [SKIP][38] ([i915#4537])
> [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_exec_schedule@deep@rcs0.html
>
> * igt@gem_exec_schedule@preempt-queue-chain:
> - shard-dg2: NOTRUN -> [SKIP][39] ([i915#4537] / [i915#4812])
> [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@gem_exec_schedule@preempt-queue-chain.html
>
> * igt@gem_exec_schedule@preempt-queue-contexts-chain:
> - shard-mtlp: NOTRUN -> [SKIP][40] ([i915#4537] / [i915#4812])
> [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@gem_exec_schedule@preempt-queue-contexts-chain.html
>
> * igt@gem_exec_suspend@basic-s3@smem:
> - shard-snb: NOTRUN -> [DMESG-WARN][41] ([i915#8841]) +3 other tests dmesg-warn
> [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb4/igt@gem_exec_suspend@basic-s3@smem.html
>
> * igt@gem_exec_suspend@basic-s4-devices@lmem0:
> - shard-dg2: [PASS][42] -> [ABORT][43] ([i915#7975] / [i915#8213])
> [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-11/igt@gem_exec_suspend@basic-s4-devices@lmem0.html
> [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@gem_exec_suspend@basic-s4-devices@lmem0.html
>
> * igt@gem_exec_whisper@basic-fds-priority-all:
> - shard-tglu: [PASS][44] -> [INCOMPLETE][45] ([i915#6755] / [i915#7392])
> [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-6/igt@gem_exec_whisper@basic-fds-priority-all.html
> [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-8/igt@gem_exec_whisper@basic-fds-priority-all.html
>
> * igt@gem_fence_thrash@bo-write-verify-none:
> - shard-mtlp: NOTRUN -> [SKIP][46] ([i915#4860]) +2 other tests skip
> [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_fence_thrash@bo-write-verify-none.html
>
> * igt@gem_lmem_swapping@smem-oom:
> - shard-mtlp: NOTRUN -> [SKIP][47] ([i915#4613]) +5 other tests skip
> [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_lmem_swapping@smem-oom.html
>
> * igt@gem_lmem_swapping@smem-oom@lmem0:
> - shard-dg2: NOTRUN -> [TIMEOUT][48] ([i915#5493])
> [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@gem_lmem_swapping@smem-oom@lmem0.html
>
> * igt@gem_mmap@bad-size:
> - shard-mtlp: NOTRUN -> [SKIP][49] ([i915#4083]) +6 other tests skip
> [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@gem_mmap@bad-size.html
>
> * igt@gem_mmap_gtt@basic-write-read:
> - shard-mtlp: NOTRUN -> [SKIP][50] ([i915#4077]) +13 other tests skip
> [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_mmap_gtt@basic-write-read.html
>
> * igt@gem_mmap_gtt@close-race:
> - shard-dg1: NOTRUN -> [SKIP][51] ([i915#4077]) +2 other tests skip
> [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@gem_mmap_gtt@close-race.html
>
> * igt@gem_mmap_gtt@cpuset-big-copy-odd:
> - shard-dg2: NOTRUN -> [SKIP][52] ([i915#4077]) +14 other tests skip
> [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@gem_mmap_gtt@cpuset-big-copy-odd.html
>
> * igt@gem_mmap_wc@copy:
> - shard-dg2: NOTRUN -> [SKIP][53] ([i915#4083]) +4 other tests skip
> [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@gem_mmap_wc@copy.html
>
> * igt@gem_pread@snoop:
> - shard-dg1: NOTRUN -> [SKIP][54] ([i915#3282])
> [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@gem_pread@snoop.html
>
> * igt@gem_pxp@reject-modify-context-protection-off-1:
> - shard-dg1: NOTRUN -> [SKIP][55] ([i915#4270])
> [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@gem_pxp@reject-modify-context-protection-off-1.html
>
> * igt@gem_pxp@verify-pxp-execution-after-suspend-resume:
> - shard-dg2: NOTRUN -> [SKIP][56] ([i915#4270]) +6 other tests skip
> [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@gem_pxp@verify-pxp-execution-after-suspend-resume.html
>
> * igt@gem_pxp@verify-pxp-stale-buf-execution:
> - shard-mtlp: NOTRUN -> [SKIP][57] ([i915#4270]) +2 other tests skip
> [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@gem_pxp@verify-pxp-stale-buf-execution.html
>
> * igt@gem_readwrite@beyond-eob:
> - shard-dg2: NOTRUN -> [SKIP][58] ([i915#3282]) +5 other tests skip
> [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@gem_readwrite@beyond-eob.html
>
> * igt@gem_readwrite@new-obj:
> - shard-mtlp: NOTRUN -> [SKIP][59] ([i915#3282]) +7 other tests skip
> [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@gem_readwrite@new-obj.html
>
> * igt@gem_render_copy@y-tiled-ccs-to-yf-tiled:
> - shard-mtlp: NOTRUN -> [SKIP][60] ([i915#8428]) +8 other tests skip
> [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@gem_render_copy@y-tiled-ccs-to-yf-tiled.html
>
> * igt@gem_render_copy@y-tiled-to-vebox-linear:
> - shard-dg2: NOTRUN -> [SKIP][61] ([i915#5190]) +11 other tests skip
> [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@gem_render_copy@y-tiled-to-vebox-linear.html
>
> * igt@gem_set_tiling_vs_gtt:
> - shard-dg1: NOTRUN -> [SKIP][62] ([i915#4079])
> [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@gem_set_tiling_vs_gtt.html
>
> * igt@gem_set_tiling_vs_pwrite:
> - shard-mtlp: NOTRUN -> [SKIP][63] ([i915#4079]) +1 other test skip
> [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_set_tiling_vs_pwrite.html
>
> * igt@gem_softpin@evict-snoop-interruptible:
> - shard-dg2: NOTRUN -> [SKIP][64] ([i915#4885])
> [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@gem_softpin@evict-snoop-interruptible.html
>
> * igt@gem_softpin@noreloc-s3:
> - shard-mtlp: [PASS][65] -> [ABORT][66] ([i915#9262]) +1 other test abort
> [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-8/igt@gem_softpin@noreloc-s3.html
> [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@gem_softpin@noreloc-s3.html
>
> * igt@gem_tiled_pread_pwrite:
> - shard-dg2: NOTRUN -> [SKIP][67] ([i915#4079]) +1 other test skip
> [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@gem_tiled_pread_pwrite.html
>
> * igt@gem_unfence_active_buffers:
> - shard-dg2: NOTRUN -> [SKIP][68] ([i915#4879])
> [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@gem_unfence_active_buffers.html
>
> * igt@gem_userptr_blits@access-control:
> - shard-mtlp: NOTRUN -> [SKIP][69] ([i915#3297]) +3 other tests skip
> [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_userptr_blits@access-control.html
>
> * igt@gem_userptr_blits@create-destroy-unsync:
> - shard-dg2: NOTRUN -> [SKIP][70] ([i915#3297]) +5 other tests skip
> [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@gem_userptr_blits@create-destroy-unsync.html
>
> * igt@gem_userptr_blits@map-fixed-invalidate-overlap:
> - shard-dg2: NOTRUN -> [SKIP][71] ([i915#3297] / [i915#4880])
> [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@gem_userptr_blits@map-fixed-invalidate-overlap.html
>
> * igt@gem_userptr_blits@unsync-overlap:
> - shard-tglu: NOTRUN -> [SKIP][72] ([i915#3297])
> [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-9/igt@gem_userptr_blits@unsync-overlap.html
>
> * igt@gem_userptr_blits@vma-merge:
> - shard-dg2: NOTRUN -> [FAIL][73] ([i915#3318])
> [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@gem_userptr_blits@vma-merge.html
> - shard-snb: NOTRUN -> [FAIL][74] ([i915#2724])
> [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb2/igt@gem_userptr_blits@vma-merge.html
> - shard-mtlp: NOTRUN -> [FAIL][75] ([i915#3318])
> [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_userptr_blits@vma-merge.html
>
> * igt@gen7_exec_parse@basic-allocation:
> - shard-mtlp: NOTRUN -> [SKIP][76] ([fdo#109289]) +3 other tests skip
> [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@gen7_exec_parse@basic-allocation.html
> - shard-rkl: NOTRUN -> [SKIP][77] ([fdo#109289])
> [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-1/igt@gen7_exec_parse@basic-allocation.html
>
> * igt@gen7_exec_parse@basic-offset:
> - shard-dg2: NOTRUN -> [SKIP][78] ([fdo#109289]) +6 other tests skip
> [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@gen7_exec_parse@basic-offset.html
>
> * igt@gen9_exec_parse@allowed-all:
> - shard-dg2: NOTRUN -> [SKIP][79] ([i915#2856]) +4 other tests skip
> [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@gen9_exec_parse@allowed-all.html
>
> * igt@gen9_exec_parse@basic-rejected:
> - shard-dg1: NOTRUN -> [SKIP][80] ([i915#2527])
> [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-15/igt@gen9_exec_parse@basic-rejected.html
>
> * igt@gen9_exec_parse@bb-large:
> - shard-mtlp: NOTRUN -> [SKIP][81] ([i915#2856]) +3 other tests skip
> [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gen9_exec_parse@bb-large.html
>
> * igt@gen9_exec_parse@bb-start-param:
> - shard-rkl: NOTRUN -> [SKIP][82] ([i915#2527])
> [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@gen9_exec_parse@bb-start-param.html
>
> * igt@i915_fb_tiling:
> - shard-mtlp: NOTRUN -> [SKIP][83] ([i915#4881])
> [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@i915_fb_tiling.html
>
> * igt@i915_hangman@detector@vcs0:
> - shard-mtlp: NOTRUN -> [FAIL][84] ([i915#8456]) +2 other tests fail
> [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@i915_hangman@detector@vcs0.html
>
> * igt@i915_hwmon@hwmon-read:
> - shard-mtlp: NOTRUN -> [SKIP][85] ([i915#7707])
> [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@i915_hwmon@hwmon-read.html
>
> * igt@i915_module_load@reload-with-fault-injection:
> - shard-dg2: NOTRUN -> [DMESG-WARN][86] ([i915#8617])
> [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@i915_module_load@reload-with-fault-injection.html
> - shard-snb: [PASS][87] -> [INCOMPLETE][88] ([i915#4528] / [i915#9200])
> [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-snb6/igt@i915_module_load@reload-with-fault-injection.html
> [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb5/igt@i915_module_load@reload-with-fault-injection.html
>
> * igt@i915_pm_freq_api@freq-suspend@gt1:
> - shard-mtlp: NOTRUN -> [DMESG-WARN][89] ([i915#9262])
> [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@i915_pm_freq_api@freq-suspend@gt1.html
>
> * igt@i915_pm_rc6_residency@rc6-idle@bcs0:
> - shard-dg1: [PASS][90] -> [FAIL][91] ([i915#3591])
> [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-17/igt@i915_pm_rc6_residency@rc6-idle@bcs0.html
> [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@i915_pm_rc6_residency@rc6-idle@bcs0.html
>
> * igt@i915_pm_rpm@dpms-lpsp:
> - shard-rkl: [PASS][92] -> [SKIP][93] ([i915#1397])
> [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-7/igt@i915_pm_rpm@dpms-lpsp.html
> [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@i915_pm_rpm@dpms-lpsp.html
>
> * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
> - shard-mtlp: NOTRUN -> [SKIP][94] ([i915#1397]) +1 other test skip
> [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
>
> * igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait:
> - shard-dg1: [PASS][95] -> [SKIP][96] ([i915#1397])
> [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-18/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
> [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
>
> * igt@i915_pm_rps@basic-api:
> - shard-dg2: NOTRUN -> [SKIP][97] ([i915#6621])
> [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@i915_pm_rps@basic-api.html
>
> * igt@i915_pm_rps@thresholds-idle-park@gt0:
> - shard-mtlp: NOTRUN -> [SKIP][98] ([i915#8925]) +3 other tests skip
> [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@i915_pm_rps@thresholds-idle-park@gt0.html
> - shard-dg2: NOTRUN -> [SKIP][99] ([i915#8925])
> [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@i915_pm_rps@thresholds-idle-park@gt0.html
>
> * igt@i915_query@query-topology-unsupported:
> - shard-mtlp: NOTRUN -> [SKIP][100] ([fdo#109302])
> [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@i915_query@query-topology-unsupported.html
>
> * igt@kms_addfb_basic@addfb25-x-tiled-legacy:
> - shard-mtlp: NOTRUN -> [SKIP][101] ([i915#4212]) +2 other tests skip
> [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html
>
> * igt@kms_addfb_basic@basic-x-tiled-legacy:
> - shard-dg2: NOTRUN -> [SKIP][102] ([i915#4212]) +1 other test skip
> [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_addfb_basic@basic-x-tiled-legacy.html
>
> * igt@kms_addfb_basic@basic-y-tiled-legacy:
> - shard-dg2: NOTRUN -> [SKIP][103] ([i915#4215] / [i915#5190])
> [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_addfb_basic@basic-y-tiled-legacy.html
>
> * igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
> - shard-mtlp: NOTRUN -> [SKIP][104] ([i915#3826])
> [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html
>
> * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-3-4-mc_ccs:
> - shard-dg2: NOTRUN -> [SKIP][105] ([i915#8502] / [i915#8709]) +11 other tests skip
> [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-3-4-mc_ccs.html
>
> * igt@kms_async_flips@crc@pipe-a-hdmi-a-3:
> - shard-dg2: NOTRUN -> [FAIL][106] ([i915#8247]) +3 other tests fail
> [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@kms_async_flips@crc@pipe-a-hdmi-a-3.html
>
> * igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
> - shard-mtlp: NOTRUN -> [SKIP][107] ([i915#1769] / [i915#3555])
> [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
>
> * igt@kms_big_fb@4-tiled-16bpp-rotate-90:
> - shard-dg2: NOTRUN -> [SKIP][108] ([fdo#111614]) +4 other tests skip
> [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html
> - shard-dg1: NOTRUN -> [SKIP][109] ([i915#4538] / [i915#5286])
> [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html
>
> * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
> - shard-rkl: NOTRUN -> [SKIP][110] ([i915#5286])
> [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html
>
> * igt@kms_big_fb@linear-16bpp-rotate-270:
> - shard-mtlp: NOTRUN -> [SKIP][111] ([fdo#111614]) +4 other tests skip
> [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_big_fb@linear-16bpp-rotate-270.html
>
> * igt@kms_big_fb@x-tiled-8bpp-rotate-270:
> - shard-rkl: NOTRUN -> [SKIP][112] ([fdo#111614] / [i915#3638])
> [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-1/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html
>
> * igt@kms_big_fb@y-tiled-addfb-size-overflow:
> - shard-mtlp: NOTRUN -> [SKIP][113] ([i915#6187]) +2 other tests skip
> [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
>
> * igt@kms_big_fb@yf-tiled-16bpp-rotate-180:
> - shard-dg1: NOTRUN -> [SKIP][114] ([i915#4538])
> [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@kms_big_fb@yf-tiled-16bpp-rotate-180.html
>
> * igt@kms_big_fb@yf-tiled-32bpp-rotate-0:
> - shard-mtlp: NOTRUN -> [SKIP][115] ([fdo#111615]) +12 other tests skip
> [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html
>
> * igt@kms_big_fb@yf-tiled-32bpp-rotate-180:
> - shard-rkl: NOTRUN -> [SKIP][116] ([fdo#110723]) +1 other test skip
> [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@kms_big_fb@yf-tiled-32bpp-rotate-180.html
>
> * igt@kms_big_fb@yf-tiled-addfb:
> - shard-dg1: NOTRUN -> [SKIP][117] ([fdo#111615])
> [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_big_fb@yf-tiled-addfb.html
>
> * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip:
> - shard-dg2: NOTRUN -> [SKIP][118] ([i915#4538] / [i915#5190]) +7 other tests skip
> [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
>
> * igt@kms_big_joiner@invalid-modeset:
> - shard-rkl: NOTRUN -> [SKIP][119] ([i915#2705])
> [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_big_joiner@invalid-modeset.html
>
> * igt@kms_ccs@pipe-a-bad-pixel-format-4_tiled_mtl_mc_ccs:
> - shard-dg2: NOTRUN -> [SKIP][120] ([i915#5354]) +49 other tests skip
> [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@kms_ccs@pipe-a-bad-pixel-format-4_tiled_mtl_mc_ccs.html
>
> * igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs:
> - shard-mtlp: NOTRUN -> [SKIP][121] ([i915#3886] / [i915#6095]) +11 other tests skip
> [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs.html
>
> * igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
> - shard-mtlp: NOTRUN -> [SKIP][122] ([i915#3886] / [i915#5354] / [i915#6095])
> [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html
>
> * igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_dg2_rc_ccs_cc:
> - shard-rkl: NOTRUN -> [SKIP][123] ([i915#5354] / [i915#6095])
> [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-1/igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_dg2_rc_ccs_cc.html
>
> * igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs:
> - shard-glk: NOTRUN -> [SKIP][124] ([fdo#109271] / [i915#3886]) +1 other test skip
> [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk5/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs.html
>
> * igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
> - shard-apl: NOTRUN -> [SKIP][125] ([fdo#109271] / [i915#3886])
> [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-apl2/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html
>
> * igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_mc_ccs:
> - shard-dg1: NOTRUN -> [SKIP][126] ([i915#3689] / [i915#3886] / [i915#5354] / [i915#6095])
> [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_mc_ccs.html
>
> * igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
> - shard-dg2: NOTRUN -> [SKIP][127] ([i915#3689] / [i915#3886] / [i915#5354]) +12 other tests skip
> [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html
>
> * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs:
> - shard-tglu: NOTRUN -> [SKIP][128] ([i915#5354] / [i915#6095])
> [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-2/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs.html
>
> * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_ccs:
> - shard-glk: NOTRUN -> [SKIP][129] ([fdo#109271]) +29 other tests skip
> [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk4/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_ccs.html
>
> * igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_rc_ccs:
> - shard-dg2: NOTRUN -> [SKIP][130] ([i915#3689] / [i915#5354]) +18 other tests skip
> [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_rc_ccs.html
>
> * igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_dg2_mc_ccs:
> - shard-mtlp: NOTRUN -> [SKIP][131] ([i915#6095]) +31 other tests skip
> [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_dg2_mc_ccs.html
>
> * igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_mtl_mc_ccs:
> - shard-dg1: NOTRUN -> [SKIP][132] ([i915#5354] / [i915#6095]) +2 other tests skip
> [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_mtl_mc_ccs.html
>
> * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs:
> - shard-rkl: NOTRUN -> [SKIP][133] ([i915#5354]) +3 other tests skip
> [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-4/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs.html
>
> * igt@kms_ccs@pipe-d-random-ccs-data-yf_tiled_ccs:
> - shard-dg1: NOTRUN -> [SKIP][134] ([i915#3689] / [i915#5354] / [i915#6095]) +2 other tests skip
> [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@kms_ccs@pipe-d-random-ccs-data-yf_tiled_ccs.html
>
> * igt@kms_cdclk@mode-transition-all-outputs:
> - shard-dg2: NOTRUN -> [SKIP][135] ([i915#4087] / [i915#7213])
> [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_cdclk@mode-transition-all-outputs.html
>
> * igt@kms_cdclk@plane-scaling@pipe-a-hdmi-a-2:
> - shard-dg2: NOTRUN -> [SKIP][136] ([i915#4087]) +3 other tests skip
> [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_cdclk@plane-scaling@pipe-a-hdmi-a-2.html
>
> * igt@kms_cdclk@plane-scaling@pipe-c-edp-1:
> - shard-mtlp: NOTRUN -> [SKIP][137] ([i915#4087]) +3 other tests skip
> [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_cdclk@plane-scaling@pipe-c-edp-1.html
>
> * igt@kms_chamelium_color@ctm-blue-to-red:
> - shard-mtlp: NOTRUN -> [SKIP][138] ([fdo#111827]) +1 other test skip
> [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_chamelium_color@ctm-blue-to-red.html
>
> * igt@kms_chamelium_color@gamma:
> - shard-dg2: NOTRUN -> [SKIP][139] ([fdo#111827]) +2 other tests skip
> [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@kms_chamelium_color@gamma.html
>
> * igt@kms_chamelium_edid@dp-edid-resolution-list:
> - shard-dg2: NOTRUN -> [SKIP][140] ([i915#7828]) +9 other tests skip
> [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_chamelium_edid@dp-edid-resolution-list.html
>
> * igt@kms_chamelium_frames@hdmi-cmp-planar-formats:
> - shard-dg1: NOTRUN -> [SKIP][141] ([i915#7828]) +1 other test skip
> [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-15/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html
>
> * igt@kms_chamelium_hpd@dp-hpd-for-each-pipe:
> - shard-mtlp: NOTRUN -> [SKIP][142] ([i915#7828]) +7 other tests skip
> [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@kms_chamelium_hpd@dp-hpd-for-each-pipe.html
>
> * igt@kms_color@deep-color@pipe-b-edp-1-degamma:
> - shard-mtlp: NOTRUN -> [FAIL][143] ([i915#6892]) +3 other tests fail
> [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_color@deep-color@pipe-b-edp-1-degamma.html
>
> * igt@kms_content_protection@dp-mst-lic-type-0:
> - shard-mtlp: NOTRUN -> [SKIP][144] ([i915#3299])
> [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_content_protection@dp-mst-lic-type-0.html
>
> * igt@kms_content_protection@legacy:
> - shard-dg1: NOTRUN -> [SKIP][145] ([i915#7116])
> [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_content_protection@legacy.html
>
> * igt@kms_content_protection@srm:
> - shard-dg2: NOTRUN -> [SKIP][146] ([i915#7118]) +3 other tests skip
> [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_content_protection@srm.html
>
> * igt@kms_content_protection@uevent:
> - shard-mtlp: NOTRUN -> [SKIP][147] ([i915#6944])
> [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_content_protection@uevent.html
>
> * igt@kms_cursor_crc@cursor-onscreen-32x32:
> - shard-mtlp: NOTRUN -> [SKIP][148] ([i915#3555] / [i915#8814]) +4 other tests skip
> [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_cursor_crc@cursor-onscreen-32x32.html
>
> * igt@kms_cursor_crc@cursor-onscreen-512x512:
> - shard-mtlp: NOTRUN -> [SKIP][149] ([i915#3359]) +1 other test skip
> [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_cursor_crc@cursor-onscreen-512x512.html
>
> * igt@kms_cursor_crc@cursor-rapid-movement-512x170:
> - shard-dg2: NOTRUN -> [SKIP][150] ([i915#3359])
> [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html
>
> * igt@kms_cursor_crc@cursor-sliding-32x10:
> - shard-dg2: NOTRUN -> [SKIP][151] ([i915#3555]) +8 other tests skip
> [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@kms_cursor_crc@cursor-sliding-32x10.html
> - shard-dg1: NOTRUN -> [SKIP][152] ([i915#3555]) +1 other test skip
> [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_cursor_crc@cursor-sliding-32x10.html
>
> * igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
> - shard-dg2: NOTRUN -> [SKIP][153] ([fdo#109274] / [fdo#111767] / [i915#5354])
> [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
>
> * igt@kms_cursor_legacy@cursora-vs-flipa-legacy:
> - shard-snb: [PASS][154] -> [ABORT][155] ([i915#8865])
> [154]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-snb5/igt@kms_cursor_legacy@cursora-vs-flipa-legacy.html
> [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb7/igt@kms_cursor_legacy@cursora-vs-flipa-legacy.html
>
> * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions:
> - shard-snb: NOTRUN -> [SKIP][156] ([fdo#109271] / [fdo#111767])
> [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb5/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html
>
> * igt@kms_cursor_legacy@cursorb-vs-flipb-toggle:
> - shard-mtlp: NOTRUN -> [SKIP][157] ([fdo#111767] / [i915#3546])
> [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_cursor_legacy@cursorb-vs-flipb-toggle.html
>
> * igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size:
> - shard-dg2: NOTRUN -> [SKIP][158] ([fdo#109274] / [i915#5354]) +7 other tests skip
> [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html
>
> * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
> - shard-glk: [PASS][159] -> [FAIL][160] ([i915#2346])
> [159]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
> [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
>
> * igt@kms_dirtyfb@dirtyfb-ioctl@fbc-hdmi-a-1:
> - shard-dg2: NOTRUN -> [SKIP][161] ([i915#9227])
> [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@kms_dirtyfb@dirtyfb-ioctl@fbc-hdmi-a-1.html
> - shard-rkl: NOTRUN -> [SKIP][162] ([i915#9227])
> [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_dirtyfb@dirtyfb-ioctl@fbc-hdmi-a-1.html
> - shard-dg1: NOTRUN -> [SKIP][163] ([i915#9227])
> [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_dirtyfb@dirtyfb-ioctl@fbc-hdmi-a-1.html
>
> * igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-1:
> - shard-dg2: NOTRUN -> [SKIP][164] ([i915#9226] / [i915#9261]) +1 other test skip
> [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-1.html
> - shard-rkl: NOTRUN -> [SKIP][165] ([i915#9226] / [i915#9261]) +1 other test skip
> [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-1.html
> - shard-dg1: NOTRUN -> [SKIP][166] ([i915#9226] / [i915#9261]) +1 other test skip
> [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-1.html
>
> * igt@kms_display_modes@extended-mode-basic:
> - shard-mtlp: NOTRUN -> [SKIP][167] ([i915#3555] / [i915#8827])
> [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_display_modes@extended-mode-basic.html
>
> * igt@kms_draw_crc@draw-method-mmap-gtt:
> - shard-mtlp: NOTRUN -> [SKIP][168] ([i915#8812])
> [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_draw_crc@draw-method-mmap-gtt.html
>
> * igt@kms_draw_crc@draw-method-mmap-wc:
> - shard-dg2: NOTRUN -> [SKIP][169] ([i915#8812]) +1 other test skip
> [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@kms_draw_crc@draw-method-mmap-wc.html
>
> * igt@kms_dsc@dsc-basic:
> - shard-mtlp: NOTRUN -> [SKIP][170] ([i915#3555] / [i915#3840] / [i915#9159])
> [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_dsc@dsc-basic.html
>
> * igt@kms_flip@2x-flip-vs-fences:
> - shard-dg2: NOTRUN -> [SKIP][171] ([i915#8381]) +1 other test skip
> [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_flip@2x-flip-vs-fences.html
>
> * igt@kms_flip@2x-flip-vs-modeset:
> - shard-dg2: NOTRUN -> [SKIP][172] ([fdo#109274]) +4 other tests skip
> [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@kms_flip@2x-flip-vs-modeset.html
>
> * igt@kms_flip@2x-flip-vs-panning:
> - shard-rkl: NOTRUN -> [SKIP][173] ([fdo#111825]) +1 other test skip
> [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@kms_flip@2x-flip-vs-panning.html
>
> * igt@kms_flip@2x-plain-flip:
> - shard-mtlp: NOTRUN -> [SKIP][174] ([i915#3637]) +5 other tests skip
> [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@kms_flip@2x-plain-flip.html
>
> * igt@kms_flip@flip-vs-fences-interruptible:
> - shard-mtlp: NOTRUN -> [SKIP][175] ([i915#8381])
> [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_flip@flip-vs-fences-interruptible.html
>
> * igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a3:
> - shard-dg2: [PASS][176] -> [FAIL][177] ([fdo#103375]) +3 other tests fail
> [176]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-3/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a3.html
> [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a3.html
>
> * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode:
> - shard-tglu: NOTRUN -> [SKIP][178] ([i915#2587] / [i915#2672])
> [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-4/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html
>
> * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
> - shard-rkl: NOTRUN -> [SKIP][179] ([i915#2672]) +1 other test skip
> [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
>
> * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode:
> - shard-dg2: NOTRUN -> [SKIP][180] ([i915#2672]) +4 other tests skip
> [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode.html
>
> * igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode:
> - shard-mtlp: NOTRUN -> [SKIP][181] ([i915#3555] / [i915#8810])
> [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode.html
>
> * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-default-mode:
> - shard-mtlp: NOTRUN -> [SKIP][182] ([i915#2672]) +2 other tests skip
> [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-default-mode.html
>
> * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling@pipe-a-default-mode:
> - shard-mtlp: NOTRUN -> [SKIP][183] ([i915#2672] / [i915#3555]) +1 other test skip
> [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling@pipe-a-default-mode.html
>
> * igt@kms_frontbuffer_tracking@fbc-2p-indfb-fliptrack-mmap-gtt:
> - shard-mtlp: NOTRUN -> [SKIP][184] ([i915#8708]) +8 other tests skip
> [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_frontbuffer_tracking@fbc-2p-indfb-fliptrack-mmap-gtt.html
>
> * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-gtt:
> - shard-dg2: NOTRUN -> [SKIP][185] ([i915#8708]) +18 other tests skip
> [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-gtt.html
>
> * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render:
> - shard-dg1: NOTRUN -> [SKIP][186] ([fdo#111825]) +2 other tests skip
> [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render.html
>
> * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite:
> - shard-dg2: NOTRUN -> [FAIL][187] ([i915#6880])
> [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite.html
>
> * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render:
> - shard-dg2: NOTRUN -> [SKIP][188] ([i915#3458]) +17 other tests skip
> [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html
>
> * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt:
> - shard-dg1: NOTRUN -> [SKIP][189] ([i915#8708]) +1 other test skip
> [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt.html
>
> * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff:
> - shard-mtlp: NOTRUN -> [SKIP][190] ([i915#1825]) +38 other tests skip
> [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff.html
>
> * igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-cpu:
> - shard-tglu: NOTRUN -> [SKIP][191] ([fdo#110189]) +1 other test skip
> [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-4/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-cpu.html
>
> * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render:
> - shard-dg1: NOTRUN -> [SKIP][192] ([i915#3458]) +1 other test skip
> [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render.html
>
> * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-pwrite:
> - shard-rkl: NOTRUN -> [SKIP][193] ([fdo#111825] / [i915#1825]) +2 other tests skip
> [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-pwrite.html
>
> * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render:
> - shard-tglu: NOTRUN -> [SKIP][194] ([fdo#109280]) +1 other test skip
> [194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render.html
>
> * igt@kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt:
> - shard-rkl: NOTRUN -> [SKIP][195] ([i915#3023]) +3 other tests skip
> [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt.html
>
> * igt@kms_hdr@invalid-metadata-sizes:
> - shard-dg2: NOTRUN -> [SKIP][196] ([i915#3555] / [i915#8228]) +1 other test skip
> [196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@kms_hdr@invalid-metadata-sizes.html
>
> * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-1:
> - shard-apl: [PASS][197] -> [INCOMPLETE][198] ([i915#180])
> [197]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-apl3/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-1.html
> [198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-apl3/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-1.html
>
> * igt@kms_plane_lowres@tiling-none@pipe-b-edp-1:
> - shard-mtlp: NOTRUN -> [SKIP][199] ([i915#3582]) +7 other tests skip
> [199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_plane_lowres@tiling-none@pipe-b-edp-1.html
>
> * igt@kms_plane_multiple@tiling-y:
> - shard-dg2: NOTRUN -> [SKIP][200] ([i915#8806])
> [200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@kms_plane_multiple@tiling-y.html
>
> * igt@kms_plane_scaling@2x-scaler-multi-pipe:
> - shard-mtlp: NOTRUN -> [SKIP][201] ([i915#3546]) +1 other test skip
> [201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
>
> * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-c-hdmi-a-2:
> - shard-dg2: NOTRUN -> [SKIP][202] ([i915#5176]) +11 other tests skip
> [202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-c-hdmi-a-2.html
>
> * igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25@pipe-b-hdmi-a-1:
> - shard-rkl: NOTRUN -> [SKIP][203] ([i915#5176]) +3 other tests skip
> [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25@pipe-b-hdmi-a-1.html
>
> * igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-5@pipe-c-edp-1:
> - shard-mtlp: NOTRUN -> [SKIP][204] ([i915#5176]) +9 other tests skip
> [204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-5@pipe-c-edp-1.html
>
> * igt@kms_plane_scaling@plane-upscale-with-rotation-factor-0-25@pipe-a-hdmi-a-3:
> - shard-dg1: NOTRUN -> [SKIP][205] ([i915#5176]) +19 other tests skip
> [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@kms_plane_scaling@plane-upscale-with-rotation-factor-0-25@pipe-a-hdmi-a-3.html
>
> * igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-c-hdmi-a-1:
> - shard-dg1: NOTRUN -> [SKIP][206] ([i915#5235]) +23 other tests skip
> [206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-c-hdmi-a-1.html
>
> * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c-hdmi-a-2:
> - shard-dg2: NOTRUN -> [SKIP][207] ([i915#5235]) +19 other tests skip
> [207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c-hdmi-a-2.html
>
> * igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1:
> - shard-snb: NOTRUN -> [SKIP][208] ([fdo#109271]) +202 other tests skip
> [208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb6/igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1.html
>
> * igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20@pipe-a-edp-1:
> - shard-mtlp: NOTRUN -> [SKIP][209] ([i915#5235]) +7 other tests skip
> [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20@pipe-a-edp-1.html
>
> * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b-hdmi-a-2:
> - shard-rkl: NOTRUN -> [SKIP][210] ([i915#5235]) +3 other tests skip
> [210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b-hdmi-a-2.html
>
> * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-c-dp-1:
> - shard-apl: NOTRUN -> [SKIP][211] ([fdo#109271]) +43 other tests skip
> [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-apl6/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-c-dp-1.html
>
> * igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf:
> - shard-glk: NOTRUN -> [SKIP][212] ([fdo#109271] / [i915#658])
> [212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk5/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html
>
> * igt@kms_psr2_su@frontbuffer-xrgb8888:
> - shard-dg2: NOTRUN -> [SKIP][213] ([i915#658]) +2 other tests skip
> [213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@kms_psr2_su@frontbuffer-xrgb8888.html
>
> * igt@kms_psr@psr2_sprite_blt:
> - shard-dg2: NOTRUN -> [SKIP][214] ([i915#1072]) +4 other tests skip
> [214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_psr@psr2_sprite_blt.html
>
> * igt@kms_rotation_crc@primary-rotation-90:
> - shard-mtlp: NOTRUN -> [SKIP][215] ([i915#4235]) +2 other tests skip
> [215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_rotation_crc@primary-rotation-90.html
>
> * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
> - shard-mtlp: NOTRUN -> [SKIP][216] ([i915#5289])
> [216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
>
> * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
> - shard-dg2: NOTRUN -> [SKIP][217] ([i915#4235] / [i915#5190])
> [217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
> - shard-rkl: NOTRUN -> [SKIP][218] ([fdo#111615] / [i915#5289])
> [218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-4/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
>
> * igt@kms_universal_plane@cursor-fb-leak-pipe-a:
> - shard-tglu: [PASS][219] -> [FAIL][220] ([i915#9196])
> [219]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-4/igt@kms_universal_plane@cursor-fb-leak-pipe-a.html
> [220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-10/igt@kms_universal_plane@cursor-fb-leak-pipe-a.html
>
> * igt@kms_vblank@pipe-c-wait-forked-busy:
> - shard-rkl: NOTRUN -> [SKIP][221] ([i915#4070] / [i915#6768]) +1 other test skip
> [221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@kms_vblank@pipe-c-wait-forked-busy.html
>
> * igt@kms_vblank@pipe-d-query-forked-busy:
> - shard-rkl: NOTRUN -> [SKIP][222] ([i915#4070] / [i915#533] / [i915#6768]) +2 other tests skip
> [222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@kms_vblank@pipe-d-query-forked-busy.html
>
> * igt@perf@buffer-fill@0-rcs0:
> - shard-mtlp: NOTRUN -> [FAIL][223] ([i915#7823] / [i915#9265])
> [223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@perf@buffer-fill@0-rcs0.html
>
> * igt@perf@gen12-group-concurrent-oa-buffer-read:
> - shard-mtlp: NOTRUN -> [FAIL][224] ([i915#9259]) +2 other tests fail
> [224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@perf@gen12-group-concurrent-oa-buffer-read.html
>
> * igt@perf@polling-small-buf:
> - shard-mtlp: NOTRUN -> [FAIL][225] ([i915#1722])
> [225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@perf@polling-small-buf.html
>
> * igt@perf_pmu@busy-check-all@rcs0:
> - shard-mtlp: NOTRUN -> [FAIL][226] ([i915#4521]) +2 other tests fail
> [226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@perf_pmu@busy-check-all@rcs0.html
>
> * igt@perf_pmu@busy-idle@vcs0:
> - shard-dg1: [PASS][227] -> [FAIL][228] ([i915#4349]) +2 other tests fail
> [227]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-13/igt@perf_pmu@busy-idle@vcs0.html
> [228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@perf_pmu@busy-idle@vcs0.html
>
> * igt@perf_pmu@busy@rcs0:
> - shard-mtlp: NOTRUN -> [FAIL][229] ([i915#4349]) +5 other tests fail
> [229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@perf_pmu@busy@rcs0.html
>
> * igt@perf_pmu@cpu-hotplug:
> - shard-mtlp: NOTRUN -> [SKIP][230] ([i915#8850])
> [230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@perf_pmu@cpu-hotplug.html
>
> * igt@perf_pmu@faulting-read@gtt:
> - shard-mtlp: NOTRUN -> [SKIP][231] ([i915#8440])
> [231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-8/igt@perf_pmu@faulting-read@gtt.html
>
> * igt@perf_pmu@frequency@gt0:
> - shard-dg2: NOTRUN -> [FAIL][232] ([i915#6806])
> [232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@perf_pmu@frequency@gt0.html
>
> * igt@prime_vgem@basic-blt:
> - shard-mtlp: NOTRUN -> [FAIL][233] ([i915#8445]) +1 other test fail
> [233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@prime_vgem@basic-blt.html
>
> * igt@prime_vgem@basic-gtt:
> - shard-dg2: NOTRUN -> [SKIP][234] ([i915#3708] / [i915#4077])
> [234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@prime_vgem@basic-gtt.html
>
> * igt@prime_vgem@basic-read:
> - shard-mtlp: NOTRUN -> [SKIP][235] ([i915#3708]) +1 other test skip
> [235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@prime_vgem@basic-read.html
>
> * igt@prime_vgem@basic-write:
> - shard-dg2: NOTRUN -> [SKIP][236] ([i915#3291] / [i915#3708])
> [236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@prime_vgem@basic-write.html
>
> * igt@prime_vgem@coherency-gtt:
> - shard-mtlp: NOTRUN -> [SKIP][237] ([i915#3708] / [i915#4077])
> [237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@prime_vgem@coherency-gtt.html
>
> * igt@prime_vgem@fence-flip-hang:
> - shard-dg2: NOTRUN -> [SKIP][238] ([i915#3708]) +1 other test skip
> [238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@prime_vgem@fence-flip-hang.html
>
> * igt@v3d/v3d_job_submission@multiple-singlesync-to-multisync:
> - shard-dg1: NOTRUN -> [SKIP][239] ([i915#2575]) +2 other tests skip
> [239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@v3d/v3d_job_submission@multiple-singlesync-to-multisync.html
>
> * igt@v3d/v3d_perfmon@create-perfmon-0:
> - shard-rkl: NOTRUN -> [SKIP][240] ([fdo#109315]) +2 other tests skip
> [240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@v3d/v3d_perfmon@create-perfmon-0.html
>
> * igt@v3d/v3d_submit_cl@bad-multisync-out-sync:
> - shard-dg2: NOTRUN -> [SKIP][241] ([i915#2575]) +15 other tests skip
> [241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@v3d/v3d_submit_cl@bad-multisync-out-sync.html
>
> * igt@v3d/v3d_wait_bo@used-bo:
> - shard-mtlp: NOTRUN -> [SKIP][242] ([i915#2575]) +15 other tests skip
> [242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@v3d/v3d_wait_bo@used-bo.html
>
> * igt@vc4/vc4_mmap@mmap-bo:
> - shard-dg2: NOTRUN -> [SKIP][243] ([i915#7711]) +9 other tests skip
> [243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@vc4/vc4_mmap@mmap-bo.html
>
> * igt@vc4/vc4_perfmon@destroy-valid-perfmon:
> - shard-dg1: NOTRUN -> [SKIP][244] ([i915#7711])
> [244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-15/igt@vc4/vc4_perfmon@destroy-valid-perfmon.html
>
> * igt@vc4/vc4_purgeable_bo@access-purged-bo-mem:
> - shard-mtlp: NOTRUN -> [SKIP][245] ([i915#7711]) +8 other tests skip
> [245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-8/igt@vc4/vc4_purgeable_bo@access-purged-bo-mem.html
>
> * igt@vc4/vc4_tiling@set-bad-modifier:
> - shard-rkl: NOTRUN -> [SKIP][246] ([i915#7711])
> [246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@vc4/vc4_tiling@set-bad-modifier.html
>
>
> #### Possible fixes ####
>
> * igt@core_hotunplug@unbind-rebind:
> - shard-snb: [INCOMPLETE][247] -> [PASS][248]
> [247]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-snb1/igt@core_hotunplug@unbind-rebind.html
> [248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb6/igt@core_hotunplug@unbind-rebind.html
>
> * igt@gem_ctx_exec@basic-nohangcheck:
> - shard-rkl: [FAIL][249] ([i915#6268]) -> [PASS][250]
> [249]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-6/igt@gem_ctx_exec@basic-nohangcheck.html
> [250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-4/igt@gem_ctx_exec@basic-nohangcheck.html
> - shard-tglu: [FAIL][251] ([i915#6268]) -> [PASS][252]
> [251]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-10/igt@gem_ctx_exec@basic-nohangcheck.html
> [252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-6/igt@gem_ctx_exec@basic-nohangcheck.html
>
> * igt@gem_ctx_persistence@hostile:
> - shard-mtlp: [ABORT][253] ([i915#9262]) -> [PASS][254] +1 other test pass
> [253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-6/igt@gem_ctx_persistence@hostile.html
> [254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@gem_ctx_persistence@hostile.html
>
> * igt@gem_eio@reset-stress:
> - shard-dg1: [FAIL][255] ([i915#5784]) -> [PASS][256]
> [255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-14/igt@gem_eio@reset-stress.html
> [256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@gem_eio@reset-stress.html
>
> * igt@gem_exec_endless@dispatch@vecs0:
> - shard-dg1: [TIMEOUT][257] ([i915#3778]) -> [PASS][258]
> [257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-16/igt@gem_exec_endless@dispatch@vecs0.html
> [258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@gem_exec_endless@dispatch@vecs0.html
>
> * igt@gem_exec_fair@basic-flow@rcs0:
> - shard-tglu: [FAIL][259] ([i915#2842]) -> [PASS][260]
> [259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-6/igt@gem_exec_fair@basic-flow@rcs0.html
> [260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-5/igt@gem_exec_fair@basic-flow@rcs0.html
>
> * igt@gem_exec_fair@basic-pace-share@rcs0:
> - shard-rkl: [FAIL][261] ([i915#2842]) -> [PASS][262] +2 other tests pass
> [261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-1/igt@gem_exec_fair@basic-pace-share@rcs0.html
> [262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@gem_exec_fair@basic-pace-share@rcs0.html
>
> * igt@gem_lmem_swapping@smem-oom@lmem0:
> - shard-dg1: [TIMEOUT][263] ([i915#5493]) -> [PASS][264]
> [263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-15/igt@gem_lmem_swapping@smem-oom@lmem0.html
> [264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@gem_lmem_swapping@smem-oom@lmem0.html
>
> * igt@gen9_exec_parse@allowed-single:
> - shard-apl: [INCOMPLETE][265] ([i915#5566]) -> [PASS][266]
> [265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-apl4/igt@gen9_exec_parse@allowed-single.html
> [266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-apl3/igt@gen9_exec_parse@allowed-single.html
>
> * igt@i915_pm_rpm@modeset-lpsp:
> - shard-rkl: [SKIP][267] ([i915#1397]) -> [PASS][268]
> [267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-6/igt@i915_pm_rpm@modeset-lpsp.html
> [268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@i915_pm_rpm@modeset-lpsp.html
>
> * igt@i915_pm_rpm@modeset-non-lpsp:
> - shard-dg2: [SKIP][269] ([i915#1397]) -> [PASS][270]
> [269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-10/igt@i915_pm_rpm@modeset-non-lpsp.html
> [270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@i915_pm_rpm@modeset-non-lpsp.html
>
> * igt@i915_selftest@live@gt_heartbeat:
> - shard-glk: [DMESG-FAIL][271] ([i915#5334]) -> [PASS][272]
> [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-glk2/igt@i915_selftest@live@gt_heartbeat.html
> [272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk5/igt@i915_selftest@live@gt_heartbeat.html
>
> * igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs:
> - shard-dg1: [DMESG-WARN][273] ([i915#4423]) -> [PASS][274]
> [273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-17/igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs.html
> [274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs.html
>
> * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
> - shard-apl: [FAIL][275] ([i915#2346]) -> [PASS][276]
> [275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-apl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
> [276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
>
> * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt:
> - shard-dg2: [FAIL][277] ([i915#6880]) -> [PASS][278]
> [277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-11/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt.html
> [278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt.html
>
> * igt@kms_plane@pixel-format@pipe-a-planes:
> - shard-glk: [DMESG-FAIL][279] ([i915#118]) -> [PASS][280]
> [279]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-glk2/igt@kms_plane@pixel-format@pipe-a-planes.html
> [280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk2/igt@kms_plane@pixel-format@pipe-a-planes.html
>
> * {igt@kms_pm_dc@dc9-dpms}:
> - shard-tglu: [SKIP][281] ([i915#4281]) -> [PASS][282]
> [281]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-4/igt@kms_pm_dc@dc9-dpms.html
> [282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-9/igt@kms_pm_dc@dc9-dpms.html
>
> * {igt@kms_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a}:
> - shard-rkl: [SKIP][283] ([i915#1937]) -> [PASS][284]
> [283]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-2/igt@kms_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html
> [284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html
> - shard-dg1: [SKIP][285] ([i915#1937]) -> [PASS][286]
> [285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-16/igt@kms_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html
> [286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html
>
> * igt@kms_universal_plane@cursor-fb-leak-pipe-d:
> - shard-mtlp: [FAIL][287] ([i915#9196]) -> [PASS][288]
> [287]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-2/igt@kms_universal_plane@cursor-fb-leak-pipe-d.html
> [288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-8/igt@kms_universal_plane@cursor-fb-leak-pipe-d.html
>
> * igt@kms_vblank@pipe-b-ts-continuation-suspend:
> - shard-dg2: [FAIL][289] ([fdo#103375]) -> [PASS][290] +2 other tests pass
> [289]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-5/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
> [290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
>
>
> #### Warnings ####
>
> * igt@device_reset@unbind-reset-rebind:
> - shard-dg1: [ABORT][291] ([i915#4983] / [i915#7461]) -> [INCOMPLETE][292] ([i915#4983])
> [291]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-13/igt@device_reset@unbind-reset-rebind.html
> [292]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@device_reset@unbind-reset-rebind.html
>
> * igt@i915_pm_rc6_residency@rc6-idle@rcs0:
> - shard-tglu: [FAIL][293] ([i915#2681] / [i915#3591]) -> [WARN][294] ([i915#2681]) +1 other test warn
> [293]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-3/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
> [294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-9/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
>
> * igt@kms_async_flips@crc@pipe-b-edp-1:
> - shard-mtlp: [FAIL][295] ([i915#8247]) -> [DMESG-FAIL][296] ([i915#8561])
> [295]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-4/igt@kms_async_flips@crc@pipe-b-edp-1.html
> [296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-8/igt@kms_async_flips@crc@pipe-b-edp-1.html
>
> * igt@kms_async_flips@crc@pipe-d-edp-1:
> - shard-mtlp: [DMESG-FAIL][297] ([i915#8561]) -> [FAIL][298] ([i915#8247]) +1 other test fail
> [297]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-4/igt@kms_async_flips@crc@pipe-d-edp-1.html
> [298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-8/igt@kms_async_flips@crc@pipe-d-edp-1.html
>
> * igt@kms_content_protection@mei_interface:
> - shard-dg2: [SKIP][299] ([i915#7118]) -> [SKIP][300] ([i915#7118] / [i915#7162])
> [299]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-3/igt@kms_content_protection@mei_interface.html
> [300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@kms_content_protection@mei_interface.html
>
> * igt@kms_flip@flip-vs-suspend@a-edp1:
> - shard-mtlp: [ABORT][301] ([i915#9262]) -> [FAIL][302] ([fdo#103375])
> [301]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-4/igt@kms_flip@flip-vs-suspend@a-edp1.html
> [302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_flip@flip-vs-suspend@a-edp1.html
>
> * igt@kms_flip@flip-vs-suspend@b-edp1:
> - shard-mtlp: [DMESG-WARN][303] ([i915#9262]) -> [FAIL][304] ([fdo#103375]) +2 other tests fail
> [303]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-4/igt@kms_flip@flip-vs-suspend@b-edp1.html
> [304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_flip@flip-vs-suspend@b-edp1.html
>
> * igt@kms_force_connector_basic@force-load-detect:
> - shard-rkl: [SKIP][305] ([fdo#109285] / [i915#4098]) -> [SKIP][306] ([fdo#109285])
> [305]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-1/igt@kms_force_connector_basic@force-load-detect.html
> [306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@kms_force_connector_basic@force-load-detect.html
>
> * igt@kms_psr@sprite_plane_onoff:
> - shard-dg1: [SKIP][307] ([i915#1072]) -> [SKIP][308] ([i915#1072] / [i915#4078]) +2 other tests skip
> [307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-19/igt@kms_psr@sprite_plane_onoff.html
> [308]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@kms_psr@sprite_plane_onoff.html
>
> * igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem:
> - shard-dg2: [INCOMPLETE][309] ([i915#5493]) -> [CRASH][310] ([i915#9351])
> [309]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-10/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
> [310]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
>
>
> {name}: This element is suppressed. This means it is ignored when computing
> the status of the difference (SUCCESS, WARNING, or FAILURE).
>
> [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
> [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#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
> [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
> [fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
> [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
> [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
> [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
> [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
> [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
> [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
> [fdo#111767]: https://bugs.freedesktop.org/show_bug.cgi?id=111767
> [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
> [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
> [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
> [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
> [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
> [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
> [i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
> [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
> [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
> [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
> [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
> [i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
> [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
> [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#2724]: https://gitlab.freedesktop.org/drm/intel/issues/2724
> [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
> [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
> [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
> [i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023
> [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
> [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
> [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
> [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#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
> [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
> [i915#3582]: https://gitlab.freedesktop.org/drm/intel/issues/3582
> [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#3778]: https://gitlab.freedesktop.org/drm/intel/issues/3778
> [i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
> [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
> [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
> [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#4087]: https://gitlab.freedesktop.org/drm/intel/issues/4087
> [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
> [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
> [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
> [i915#4235]: https://gitlab.freedesktop.org/drm/intel/issues/4235
> [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
> [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
> [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
> [i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423
> [i915#4473]: https://gitlab.freedesktop.org/drm/intel/issues/4473
> [i915#4521]: https://gitlab.freedesktop.org/drm/intel/issues/4521
> [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
> [i915#4537]: https://gitlab.freedesktop.org/drm/intel/issues/4537
> [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
> [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
> [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
> [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
> [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
> [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
> [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
> [i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879
> [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
> [i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
> [i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
> [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
> [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
> [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
> [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
> [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
> [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
> [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
> [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
> [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
> [i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493
> [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
> [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
> [i915#5978]: https://gitlab.freedesktop.org/drm/intel/issues/5978
> [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
> [i915#6187]: https://gitlab.freedesktop.org/drm/intel/issues/6187
> [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
> [i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
> [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
> [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
> [i915#6755]: https://gitlab.freedesktop.org/drm/intel/issues/6755
> [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
> [i915#6806]: https://gitlab.freedesktop.org/drm/intel/issues/6806
> [i915#6880]: https://gitlab.freedesktop.org/drm/intel/issues/6880
> [i915#6892]: https://gitlab.freedesktop.org/drm/intel/issues/6892
> [i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
> [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
> [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
> [i915#7162]: https://gitlab.freedesktop.org/drm/intel/issues/7162
> [i915#7213]: https://gitlab.freedesktop.org/drm/intel/issues/7213
> [i915#7297]: https://gitlab.freedesktop.org/drm/intel/issues/7297
> [i915#7392]: https://gitlab.freedesktop.org/drm/intel/issues/7392
> [i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461
> [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
> [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
> [i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707
> [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
> [i915#7823]: https://gitlab.freedesktop.org/drm/intel/issues/7823
> [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
> [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
> [i915#8104]: https://gitlab.freedesktop.org/drm/intel/issues/8104
> [i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
> [i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228
> [i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247
> [i915#8381]: https://gitlab.freedesktop.org/drm/intel/issues/8381
> [i915#8411]: https://gitlab.freedesktop.org/drm/intel/issues/8411
> [i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414
> [i915#8428]: https://gitlab.freedesktop.org/drm/intel/issues/8428
> [i915#8440]: https://gitlab.freedesktop.org/drm/intel/issues/8440
> [i915#8445]: https://gitlab.freedesktop.org/drm/intel/issues/8445
> [i915#8456]: https://gitlab.freedesktop.org/drm/intel/issues/8456
> [i915#8502]: https://gitlab.freedesktop.org/drm/intel/issues/8502
> [i915#8555]: https://gitlab.freedesktop.org/drm/intel/issues/8555
> [i915#8561]: https://gitlab.freedesktop.org/drm/intel/issues/8561
> [i915#8617]: https://gitlab.freedesktop.org/drm/intel/issues/8617
> [i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708
> [i915#8709]: https://gitlab.freedesktop.org/drm/intel/issues/8709
> [i915#8806]: https://gitlab.freedesktop.org/drm/intel/issues/8806
> [i915#8810]: https://gitlab.freedesktop.org/drm/intel/issues/8810
> [i915#8812]: https://gitlab.freedesktop.org/drm/intel/issues/8812
> [i915#8814]: https://gitlab.freedesktop.org/drm/intel/issues/8814
> [i915#8827]: https://gitlab.freedesktop.org/drm/intel/issues/8827
> [i915#8841]: https://gitlab.freedesktop.org/drm/intel/issues/8841
> [i915#8850]: https://gitlab.freedesktop.org/drm/intel/issues/8850
> [i915#8865]: https://gitlab.freedesktop.org/drm/intel/issues/8865
> [i915#8925]: https://gitlab.freedesktop.org/drm/intel/issues/8925
> [i915#9053]: https://gitlab.freedesktop.org/drm/intel/issues/9053
> [i915#9159]: https://gitlab.freedesktop.org/drm/intel/issues/9159
> [i915#9196]: https://gitlab.freedesktop.org/drm/intel/issues/9196
> [i915#9200]: https://gitlab.freedesktop.org/drm/intel/issues/9200
> [i915#9226]: https://gitlab.freedesktop.org/drm/intel/issues/9226
> [i915#9227]: https://gitlab.freedesktop.org/drm/intel/issues/9227
> [i915#9259]: https://gitlab.freedesktop.org/drm/intel/issues/9259
> [i915#9261]: https://gitlab.freedesktop.org/drm/intel/issues/9261
> [i915#9262]: https://gitlab.freedesktop.org/drm/intel/issues/9262
> [i915#9265]: https://gitlab.freedesktop.org/drm/intel/issues/9265
> [i915#9292]: https://gitlab.freedesktop.org/drm/intel/issues/9292
> [i915#9323]: https://gitlab.freedesktop.org/drm/intel/issues/9323
> [i915#9351]: https://gitlab.freedesktop.org/drm/intel/issues/9351
>
>
> Build changes
> -------------
>
> * CI: CI-20190529 -> None
> * IGT: IGT_7493 -> IGTPW_9821
> * Piglit: piglit_4509 -> None
>
> CI-20190529: 20190529
> CI_DRM_13651: 61b71c3f061a44a6ab1dcf756918886aa03a5480 @ git://anongit.freedesktop.org/gfx-ci/linux
> IGTPW_9821: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/index.html
> IGT_7493: 2517e42d612e0c1ca096acf8b5f6177f7ef4bce7 @ https://gitlab.freedesktop.org/drm/igt-gpu-to
>
> == Logs ==
>
> For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/index.html
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [igt-dev] [Intel-gfx] [PATCH i-g-t v3 15/17] lib/kunit: Parse KTAP report from the main process thread
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 15/17] lib/kunit: Parse KTAP report from the main process thread Janusz Krzysztofik
@ 2023-09-20 18:05 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 29+ messages in thread
From: Mauro Carvalho Chehab @ 2023-09-20 18:05 UTC (permalink / raw)
To: Janusz Krzysztofik; +Cc: intel-gfx, igt-dev, Isabella Basso, intel-xe
On Mon, 18 Sep 2023 15:43:05 +0200
Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> wrote:
> There was an attempt to parse KTAP reports in the background while a kunit
> test module is loading. However, since dynamic sub-subtests can be
> executed only from the main thread, that attempt was not quite successful,
> as IGT results from all executed kunit test cases were generated only
> after loading of kunit test module completed.
>
> Now that the parser maintains its state and we can call it separately for
> each input line of a KTAP report, it is perfectly possible to call the
> parser from the main thread while the module is loading in the background,
> and convert results from kunit test cases immediately to results of IGT
> dynamic sub-subtests by running an igt_dynamic() section for each result
> as soon as returned by the parser.
>
> Drop igt_ktap_parser() thread and execute igt_dynamic() for each kunit
> result obtained from igt_ktap_parse() called from the main thread.
>
> Also, drop no longer needed functions from igt_ktap soruces.
>
> v2: Interrupt blocking read() on modprobe failure.
>
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
LGTM.
Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org>
> ---
> lib/igt_kmod.c | 208 ++++++++++++++----
> lib/igt_ktap.c | 568 -------------------------------------------------
> lib/igt_ktap.h | 22 --
> 3 files changed, 166 insertions(+), 632 deletions(-)
>
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index 8fbd274ccf..7fa5b4aa80 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -1,5 +1,5 @@
> /*
> - * Copyright © 2016 Intel Corporation
> + * Copyright © 2016-2023 Intel Corporation
> *
> * Permission is hereby granted, free of charge, to any person obtaining a
> * copy of this software and associated documentation files (the "Software"),
> @@ -26,7 +26,10 @@
> #include <errno.h>
> #include <fcntl.h>
> #include <pthread.h>
> +#include <stdlib.h>
> +#include <string.h>
> #include <sys/utsname.h>
> +#include <unistd.h>
>
> #include "igt_aux.h"
> #include "igt_core.h"
> @@ -748,20 +751,109 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
> }
>
> struct modprobe_data {
> + pthread_t parent;
> struct kmod_module *kmod;
> const char *opts;
> int err;
> + pthread_mutex_t lock;
> + pthread_t thread;
> };
>
> static void *modprobe_task(void *arg)
> {
> struct modprobe_data *data = arg;
> + int err;
> +
> + err = modprobe(data->kmod, data->opts);
>
> - data->err = modprobe(data->kmod, data->opts);
> + if (err) {
> + while (pthread_mutex_trylock(&data->lock) == EBUSY)
> + pthread_kill(data->parent, SIGCHLD);
> +
> + data->err = err;
> + pthread_mutex_unlock(&data->lock);
> + }
>
> return NULL;
> }
>
> +static void kunit_sigchld_handler(int signal)
> +{
> + return;
> +}
> +
> +static int kunit_kmsg_result_get(struct igt_list_head *results,
> + struct modprobe_data *modprobe,
> + int fd, struct igt_ktap_results *ktap)
> +{
> + struct sigaction sigchld = { .sa_handler = kunit_sigchld_handler, };
> + char record[BUF_LEN + 1], *buf;
> + unsigned long taints;
> + int ret;
> +
> + do {
> + if (igt_kernel_tainted(&taints))
> + return -ENOTRECOVERABLE;
> +
> + pthread_mutex_lock(&modprobe->lock);
> + if (!pthread_tryjoin_np(modprobe->thread, NULL) &&
> + modprobe->err) {
> + pthread_mutex_unlock(&modprobe->lock);
> + return modprobe->err;
> + }
> +
> + sigaction(SIGCHLD, &sigchld, NULL);
> + ret = read(fd, record, BUF_LEN);
> + sigaction(SIGCHLD, NULL, NULL);
> + pthread_mutex_unlock(&modprobe->lock);
> +
> + if (!ret)
> + return -ENODATA;
> + if (ret == -1)
> + return -errno;
> +
> + igt_assert_lt(0, ret);
> +
> + /* skip kmsg continuation lines */
> + if (igt_debug_on(*record == ' '))
> + continue;
> +
> + /* NULL-terminate the record */
> + record[ret] = '\0';
> +
> + /* detect start of log message, continue if not found */
> + buf = strchrnul(record, ';');
> + if (igt_debug_on(*buf == '\0'))
> + continue;
> + buf++;
> +
> + ret = igt_ktap_parse(buf, ktap);
> + if (ret != -EINPROGRESS)
> + break;
> + } while (igt_list_empty(results));
> +
> + return ret;
> +}
> +
> +static void kunit_result_free(struct igt_ktap_result *r,
> + char **suite_name, char **case_name)
> +{
> + igt_list_del(&r->link);
> +
> + if (r->suite_name != *suite_name) {
> + free(*suite_name);
> + *suite_name = r->suite_name;
> + }
> +
> + if (r->case_name != *case_name) {
> + free(*case_name);
> + *case_name = r->case_name;
> + }
> +
> + free(r->msg);
> + free(r);
> +}
> +
> /**
> * igt_kunit:
> * @module_name: the name of the module
> @@ -773,11 +865,12 @@ static void *modprobe_task(void *arg)
> */
> static void __igt_kunit(struct igt_ktest *tst, const char *opts)
> {
> - struct modprobe_data modprobe = { tst->kmod, opts, 0, };
> - struct kmod_module *kunit_kmod;
> - bool is_builtin;
> - struct ktap_test_results *results;
> - pthread_t modprobe_thread;
> + struct modprobe_data modprobe = { pthread_self(), tst->kmod, opts, 0,
> + PTHREAD_MUTEX_INITIALIZER, };
> + char *suite_name = NULL, *case_name = NULL;
> + struct igt_ktap_result *r, *rn;
> + struct igt_ktap_results *ktap;
> + IGT_LIST_HEAD(results);
> unsigned long taints;
> int flags, ret;
>
> @@ -787,62 +880,93 @@ static void __igt_kunit(struct igt_ktest *tst, const char *opts)
> igt_skip_on_f(fcntl(tst->kmsg, F_SETFL, flags) == -1,
> "Could not set /dev/kmsg to blocking mode\n");
>
> - igt_skip_on(lseek(tst->kmsg, 0, SEEK_END) < 0);
> -
> - igt_skip_on(kmod_module_new_from_name(kmod_ctx(), "kunit", &kunit_kmod));
> - is_builtin = kmod_module_get_initstate(kunit_kmod) == KMOD_MODULE_BUILTIN;
> - kmod_module_unref(kunit_kmod);
> + ktap = igt_ktap_alloc(&results);
> + igt_require(ktap);
>
> - results = ktap_parser_start(tst->kmsg, is_builtin);
> + igt_skip_on(lseek(tst->kmsg, 0, SEEK_END) < 0);
>
> - if (igt_debug_on(pthread_create(&modprobe_thread, NULL,
> + if (igt_debug_on(pthread_create(&modprobe.thread, NULL,
> modprobe_task, &modprobe))) {
> - ktap_parser_cancel();
> - igt_ignore_warn(ktap_parser_stop());
> + igt_ktap_free(ktap);
> igt_skip("Failed to create a modprobe thread\n");
> }
>
> - while (READ_ONCE(results->still_running) || !igt_list_empty(&results->list))
> - {
> - struct ktap_test_results_element *result;
> -
> - if (!pthread_tryjoin_np(modprobe_thread, NULL) && modprobe.err) {
> - ktap_parser_cancel();
> + do {
> + ret = kunit_kmsg_result_get(&results, &modprobe,
> + tst->kmsg, ktap);
> + if (igt_debug_on(ret && ret != -EINPROGRESS))
> break;
> - }
>
> - if (igt_kernel_tainted(&taints)) {
> - ktap_parser_cancel();
> - pthread_cancel(modprobe_thread);
> + if (igt_debug_on(igt_list_empty(&results)))
> break;
> - }
>
> - pthread_mutex_lock(&results->mutex);
> - if (igt_list_empty(&results->list)) {
> - pthread_mutex_unlock(&results->mutex);
> - continue;
> - }
> + r = igt_list_first_entry(&results, r, link);
> +
> + igt_dynamic_f("%s-%s", r->suite_name, r->case_name) {
> + if (r->code == IGT_EXIT_INVALID) {
> + /* parametrized test case, get actual result */
> + kunit_result_free(r, &suite_name, &case_name);
> + r = NULL;
> +
> + igt_assert(igt_list_empty(&results));
> +
> + ret = kunit_kmsg_result_get(&results, &modprobe,
> + tst->kmsg, ktap);
> + if (ret != -EINPROGRESS)
> + igt_fail_on(ret);
>
> - result = igt_list_first_entry(&results->list, result, link);
> + igt_fail_on(igt_list_empty(&results));
>
> - igt_list_del(&result->link);
> - pthread_mutex_unlock(&results->mutex);
> + r = igt_list_first_entry(&results, r, link);
>
> - igt_dynamic(result->test_name) {
> - igt_assert(READ_ONCE(result->passed));
> + igt_fail_on_f(strcmp(r->suite_name, suite_name),
> + "suite_name expected: %s, got: %s\n",
> + suite_name, r->suite_name);
> + igt_fail_on_f(strcmp(r->case_name, case_name),
> + "case_name expected: %s, got: %s\n",
> + case_name, r->case_name);
> + }
> +
> + igt_assert_neq(r->code, IGT_EXIT_INVALID);
> +
> + if (r->msg && *r->msg) {
> + igt_skip_on_f(r->code == IGT_EXIT_SKIP,
> + "%s", r->msg);
> + igt_fail_on_f(r->code == IGT_EXIT_FAILURE,
> + "%s", r->msg);
> + igt_abort_on_f(r->code == IGT_EXIT_ABORT,
> + "%s", r->msg);
> + } else {
> + igt_skip_on(r->code == IGT_EXIT_SKIP);
> + igt_fail_on(r->code == IGT_EXIT_FAILURE);
> + if (igt_debug_on(r->code != IGT_EXIT_SUCCESS))
> + igt_fail(r->code);
> + }
>
> - if (!pthread_tryjoin_np(modprobe_thread, NULL))
> + if (ret != -EINPROGRESS)
> + igt_assert_eq(ret, 0);
> +
> + if (!pthread_tryjoin_np(modprobe.thread, NULL))
> igt_assert_eq(modprobe.err, 0);
>
> igt_fail_on(igt_kernel_tainted(&taints));
> }
>
> - free(result);
> - }
> + kunit_result_free(r, &suite_name, &case_name);
> +
> + } while (ret == -EINPROGRESS);
>
> - pthread_join(modprobe_thread, NULL);
> + igt_list_for_each_entry_safe(r, rn, &results, link)
> + kunit_result_free(r, &suite_name, &case_name);
> +
> + free(case_name);
> + free(suite_name);
> +
> + if (ret)
> + pthread_cancel(modprobe.thread);
> + pthread_join(modprobe.thread, NULL);
>
> - ret = ktap_parser_stop();
> + igt_ktap_free(ktap);
>
> igt_skip_on(modprobe.err);
> igt_skip_on(igt_kernel_tainted(&taints));
> diff --git a/lib/igt_ktap.c b/lib/igt_ktap.c
> index 5eac102417..53a6c63288 100644
> --- a/lib/igt_ktap.c
> +++ b/lib/igt_ktap.c
> @@ -4,17 +4,11 @@
> * Copyright © 2023 Intel Corporation
> */
>
> -#include <ctype.h>
> -#include <limits.h>
> -#include <libkmod.h>
> -#include <pthread.h>
> #include <errno.h>
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
> -#include <unistd.h>
>
> -#include "igt_aux.h"
> #include "igt_core.h"
> #include "igt_ktap.h"
> #include "igt_list.h"
> @@ -312,565 +306,3 @@ void igt_ktap_free(struct igt_ktap_results *ktap)
> {
> free(ktap);
> }
> -
> -#define DELIMITER "-"
> -
> -struct ktap_parser_args {
> - int fd;
> - bool is_builtin;
> - int ret;
> -} ktap_args;
> -
> -static struct ktap_test_results results;
> -
> -static int log_to_end(enum igt_log_level level, int fd,
> - char *record, const char *format, ...) __attribute__((format(printf, 4, 5)));
> -
> -/**
> - * log_to_end:
> - * @level: #igt_log_level
> - * @record: record to store the read data
> - * @format: format string
> - * @...: optional arguments used in the format string
> - *
> - * This is an altered version of the generic structured logging helper function
> - * igt_log capable of reading to the end of a given line.
> - *
> - * Returns: 0 for success, or -2 if there's an error reading from the file
> - */
> -static int log_to_end(enum igt_log_level level, int fd,
> - char *record, const char *format, ...)
> -{
> - va_list args;
> - const char *lend;
> -
> - /* Cutoff after newline character, in order to not display garbage */
> - char *cutoff = strchr(record, '\n');
> - if (cutoff) {
> - if (cutoff - record < BUF_LEN)
> - cutoff[1] = '\0';
> - }
> -
> - va_start(args, format);
> - igt_vlog(IGT_LOG_DOMAIN, level, format, args);
> - va_end(args);
> -
> - lend = strchrnul(record, '\n');
> - while (*lend == '\0') {
> - igt_log(IGT_LOG_DOMAIN, level, "%s", record);
> -
> - if (read(fd, record, BUF_LEN) < 0) {
> - if (errno == EPIPE)
> - igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
> - else
> - igt_warn("an error occurred while reading kmsg: %m\n");
> -
> - return -2;
> - }
> -
> - lend = strchrnul(record, '\n');
> - }
> - return 0;
> -}
> -
> -/**
> - * lookup_value:
> - * @haystack: the string to search in
> - * @needle: the string to search for
> - *
> - * Returns: the value of the needle in the haystack, or -1 if not found.
> - */
> -static long lookup_value(const char *haystack, const char *needle)
> -{
> - const char *needle_rptr;
> - char *needle_end;
> - long num;
> -
> - needle_rptr = strcasestr(haystack, needle);
> -
> - if (needle_rptr == NULL)
> - return -1;
> -
> - /* Skip search string and whitespaces after it */
> - needle_rptr += strlen(needle);
> -
> - num = strtol(needle_rptr, &needle_end, 10);
> -
> - if (needle_rptr == needle_end)
> - return -1;
> -
> - if (num == LONG_MIN || num == LONG_MAX)
> - return 0;
> -
> - return num > 0 ? num : 0;
> -}
> -
> -/**
> - * tap_version_present:
> - * @record: buffer with tap data
> - * @print_info: whether tap version should be printed or not
> - *
> - * Returns:
> - * 0 if not found
> - * 1 if found
> - */
> -static int tap_version_present(char* record, bool print_info)
> -{
> - /*
> - * "(K)TAP version XX" should be the first line on all (sub)tests as per
> - * https://kernel.org/doc/html/latest/dev-tools/ktap.html#version-lines
> - *
> - * but actually isn't, as it currently depends on the KUnit module
> - * being built-in, so we can't rely on it every time
> - */
> - const char *version_rptr = strcasestr(record, "TAP version ");
> - char *cutoff;
> -
> - if (version_rptr == NULL)
> - return 0;
> -
> - /* Cutoff after newline character, in order to not display garbage */
> - cutoff = strchr(version_rptr, '\n');
> - if (cutoff)
> - cutoff[0] = '\0';
> -
> - if (print_info)
> - igt_info("%s\n", version_rptr);
> -
> - return 1;
> -}
> -
> -/**
> - * find_next_tap_subtest:
> - * @fd: file descriptor
> - * @record: buffer used to read fd
> - * @is_builtin: whether KUnit is built-in or not
> - *
> - * Returns:
> - * 0 if there's missing information
> - * -1 if not found
> - * -2 if there are problems while reading the file.
> - * any other value corresponds to the amount of cases of the next (sub)test
> - */
> -static int find_next_tap_subtest(int fd, char *record, char *test_name, bool is_builtin)
> -{
> - const char *test_lookup_str, *subtest_lookup_str, *name_rptr;
> - long test_count;
> - char *cutoff;
> -
> - test_name[0] = '\0';
> - test_name[BUF_LEN] = '\0';
> -
> - test_lookup_str = " subtest: ";
> - subtest_lookup_str = " test: ";
> -
> - if (!tap_version_present(record, true))
> - return -1;
> -
> - if (is_builtin) {
> - if (read(fd, record, BUF_LEN) < 0) {
> - if (errno == EPIPE)
> - igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
> - else
> - igt_warn("an error occurred while reading kmsg: %m\n");
> -
> - return -2;
> - }
> - }
> -
> - name_rptr = strcasestr(record, test_lookup_str);
> - if (name_rptr != NULL) {
> - name_rptr += strlen(test_lookup_str);
> - } else {
> - name_rptr = strcasestr(record, subtest_lookup_str);
> - if (name_rptr != NULL)
> - name_rptr += strlen(subtest_lookup_str);
> - }
> -
> - if (name_rptr == NULL) {
> - if (!is_builtin)
> - /* We've probably found nothing */
> - return -1;
> - igt_info("Missing test name\n");
> - } else {
> - strncpy(test_name, name_rptr, BUF_LEN);
> - /* Cutoff after newline character, in order to not display garbage */
> - cutoff = strchr(test_name, '\n');
> - if (cutoff)
> - cutoff[0] = '\0';
> -
> - if (read(fd, record, BUF_LEN) < 0) {
> - if (errno == EPIPE)
> - igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
> - else
> - igt_warn("unknown error reading kmsg (%m)\n");
> -
> - return -2;
> - }
> -
> - /* Now we can be sure we found tests */
> - if (!is_builtin)
> - igt_info("KUnit is not built-in, skipping version check...\n");
> - }
> -
> - /*
> - * Total test count will almost always appear as 0..N at the beginning
> - * of a run, so we use it to reliably identify a new run
> - */
> - test_count = lookup_value(record, "..");
> -
> - if (test_count <= 0) {
> - igt_info("Missing test count\n");
> - if (test_name[0] == '\0')
> - return 0;
> - if (log_to_end(IGT_LOG_INFO, fd, record,
> - "Running some tests in: %s\n",
> - test_name) < 0)
> - return -2;
> - return 0;
> - } else if (test_name[0] == '\0') {
> - igt_info("Running %ld tests...\n", test_count);
> - return 0;
> - }
> -
> - if (log_to_end(IGT_LOG_INFO, fd, record,
> - "Executing %ld tests in: %s\n",
> - test_count, test_name) < 0)
> - return -2;
> -
> - return test_count;
> -}
> -
> -/**
> - * parse_kmsg_for_tap:
> - * @fd: file descriptor
> - * @record: buffer used to read fd
> - * @test_name: buffer to store the test name
> - *
> - * Returns:
> - * 1 if no results were found
> - * 0 if a test succeded
> - * -1 if a test failed
> - * -2 if there are problems reading the file
> - */
> -static int parse_kmsg_for_tap(int fd, char *record, char *test_name)
> -{
> - const char *lstart, *ok_lookup_str, *nok_lookup_str,
> - *ok_rptr, *nok_rptr, *comment_start, *value_parse_start;
> - char *test_name_end;
> -
> - ok_lookup_str = "ok ";
> - nok_lookup_str = "not ok ";
> -
> - lstart = strchrnul(record, ';');
> -
> - if (*lstart == '\0') {
> - igt_warn("kmsg truncated: output malformed (%m)\n");
> - return -2;
> - }
> -
> - lstart++;
> - while (isspace(*lstart))
> - lstart++;
> -
> - nok_rptr = strstr(lstart, nok_lookup_str);
> - if (nok_rptr != NULL) {
> - nok_rptr += strlen(nok_lookup_str);
> - while (isdigit(*nok_rptr) || isspace(*nok_rptr) || *nok_rptr == '-')
> - nok_rptr++;
> - test_name_end = strncpy(test_name, nok_rptr, BUF_LEN);
> - while (!isspace(*test_name_end))
> - test_name_end++;
> - *test_name_end = '\0';
> - if (log_to_end(IGT_LOG_WARN, fd, record,
> - "%s", lstart) < 0)
> - return -2;
> - return -1;
> - }
> -
> - comment_start = strchrnul(lstart, '#');
> -
> - /* Check if we're still in a subtest */
> - if (*comment_start != '\0') {
> - comment_start++;
> - value_parse_start = comment_start;
> -
> - if (lookup_value(value_parse_start, "fail: ") > 0) {
> - if (log_to_end(IGT_LOG_WARN, fd, record,
> - "%s", lstart) < 0)
> - return -2;
> - return -1;
> - }
> - }
> -
> - ok_rptr = strstr(lstart, ok_lookup_str);
> - if (ok_rptr != NULL) {
> - ok_rptr += strlen(ok_lookup_str);
> - while (isdigit(*ok_rptr) || isspace(*ok_rptr) || *ok_rptr == '-')
> - ok_rptr++;
> - test_name_end = strncpy(test_name, ok_rptr, BUF_LEN);
> - while (!isspace(*test_name_end))
> - test_name_end++;
> - *test_name_end = '\0';
> - return 0;
> - }
> -
> - return 1;
> -}
> -
> -/**
> - * parse_tap_level:
> - * @fd: file descriptor
> - * @base_test_name: test_name from upper recursion level
> - * @test_count: test_count of this level
> - * @failed_tests: top level failed_tests pointer
> - * @found_tests: top level found_tests pointer
> - * @is_builtin: whether the KUnit module is built-in or not
> - *
> - * Returns:
> - * 0 if succeded
> - * -1 if error occurred
> - */
> -__maybe_unused
> -static int parse_tap_level(int fd, char *base_test_name, int test_count, bool *failed_tests,
> - bool *found_tests, bool is_builtin)
> -{
> - char record[BUF_LEN + 1];
> - struct ktap_test_results_element *r;
> - int internal_test_count;
> - char test_name[BUF_LEN + 1];
> - char base_test_name_for_next_level[BUF_LEN + 1];
> -
> - for (int i = 0; i < test_count; i++) {
> - if (read(fd, record, BUF_LEN) < 0) {
> - if (errno == EPIPE)
> - igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
> - else
> - igt_warn("error reading kmsg (%m)\n");
> -
> - return -1;
> - }
> -
> - /* Sublevel found */
> - if (tap_version_present(record, false))
> - {
> - internal_test_count = find_next_tap_subtest(fd, record, test_name,
> - is_builtin);
> - switch (internal_test_count) {
> - case -2:
> - /* No more data to read */
> - return -1;
> - case -1:
> - /* No test found */
> - return -1;
> - case 0:
> - /* Tests found, but they're missing info */
> - *found_tests = true;
> - return -1;
> - default:
> - *found_tests = true;
> -
> - memcpy(base_test_name_for_next_level, base_test_name, BUF_LEN);
> - if (strlen(base_test_name_for_next_level) < BUF_LEN - 1 &&
> - base_test_name_for_next_level[0])
> - strncat(base_test_name_for_next_level, DELIMITER,
> - BUF_LEN - strlen(base_test_name_for_next_level));
> - memcpy(base_test_name_for_next_level + strlen(base_test_name_for_next_level),
> - test_name, BUF_LEN - strlen(base_test_name_for_next_level));
> -
> - if (parse_tap_level(fd, base_test_name_for_next_level,
> - internal_test_count, failed_tests, found_tests,
> - is_builtin) == -1)
> - return -1;
> - break;
> - }
> - }
> -
> - switch (parse_kmsg_for_tap(fd, record, test_name)) {
> - case -2:
> - return -1;
> - case -1:
> - *failed_tests = true;
> -
> - r = malloc(sizeof(*r));
> -
> - memcpy(r->test_name, base_test_name, BUF_LEN);
> - if (strlen(r->test_name) < BUF_LEN - 1)
> - if (r->test_name[0])
> - strncat(r->test_name, DELIMITER,
> - BUF_LEN - strlen(r->test_name));
> - memcpy(r->test_name + strlen(r->test_name), test_name,
> - BUF_LEN - strlen(r->test_name));
> - r->test_name[BUF_LEN] = '\0';
> -
> - r->passed = false;
> -
> - pthread_mutex_lock(&results.mutex);
> - igt_list_add_tail(&r->link, &results.list);
> - pthread_mutex_unlock(&results.mutex);
> -
> - test_name[0] = '\0';
> - break;
> - case 0:
> - r = malloc(sizeof(*r));
> -
> - memcpy(r->test_name, base_test_name, BUF_LEN);
> - if (strlen(r->test_name) < BUF_LEN - 1)
> - if (r->test_name[0])
> - strncat(r->test_name, DELIMITER,
> - BUF_LEN - strlen(r->test_name));
> - memcpy(r->test_name + strlen(r->test_name), test_name,
> - BUF_LEN - strlen(r->test_name));
> - r->test_name[BUF_LEN] = '\0';
> -
> - r->passed = true;
> -
> - pthread_mutex_lock(&results.mutex);
> - igt_list_add_tail(&r->link, &results.list);
> - pthread_mutex_unlock(&results.mutex);
> -
> - test_name[0] = '\0';
> - break;
> - default:
> - break;
> - }
> - }
> - return 0;
> -}
> -
> -/**
> - * igt_ktap_parser:
> - *
> - * This function parses the output of a ktap script and passes it to main thread.
> - */
> -void *igt_ktap_parser(void *unused)
> -{
> - char record[BUF_LEN + 1], *buf, *suite_name = NULL, *case_name = NULL;
> - struct igt_ktap_results *ktap = NULL;
> - int fd = ktap_args.fd;
> - IGT_LIST_HEAD(list);
> - int err;
> -
> - ktap = igt_ktap_alloc(&list);
> - if (igt_debug_on(!ktap))
> - goto igt_ktap_parser_end;
> -
> - while (err = read(fd, record, BUF_LEN), err > 0) {
> - struct igt_ktap_result *r, *rn;
> -
> - /* skip kmsg continuation lines */
> - if (igt_debug_on(*record == ' '))
> - continue;
> -
> - /* NULL-terminate the record */
> - record[err] = '\0';
> -
> - /* detect start of log message, continue if not found */
> - buf = strchrnul(record, ';');
> - if (igt_debug_on(*buf == '\0'))
> - continue;
> - buf++;
> -
> - err = igt_ktap_parse(buf, ktap);
> -
> - /* parsing error */
> - if (err && err != -EINPROGRESS)
> - goto igt_ktap_parser_end;
> -
> - igt_list_for_each_entry_safe(r, rn, &list, link) {
> - struct ktap_test_results_element *result = NULL;
> - int code = r->code;
> -
> - if (code != IGT_EXIT_INVALID)
> - result = calloc(1, sizeof(*result));
> -
> - if (result) {
> - snprintf(result->test_name, sizeof(result->test_name),
> - "%s-%s", r->suite_name, r->case_name);
> -
> - if (code == IGT_EXIT_SUCCESS)
> - result->passed = true;
> - }
> -
> - igt_list_del(&r->link);
> - if (r->suite_name != suite_name) {
> - free(suite_name);
> - suite_name = r->suite_name;
> - }
> - if (r->case_name != case_name) {
> - free(case_name);
> - case_name = r->case_name;
> - }
> - free(r->msg);
> - free(r);
> -
> - /*
> - * no extra result record expected on start
> - * of parametrized test case -- skip it
> - */
> - if (code == IGT_EXIT_INVALID)
> - continue;
> -
> - if (!result) {
> - err = -ENOMEM;
> - goto igt_ktap_parser_end;
> - }
> -
> - pthread_mutex_lock(&results.mutex);
> - igt_list_add_tail(&result->link, &results.list);
> - pthread_mutex_unlock(&results.mutex);
> - }
> -
> - /* end of KTAP report */
> - if (!err)
> - goto igt_ktap_parser_end;
> - }
> -
> - if (err < 0) {
> - if (errno == EPIPE)
> - igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
> - else
> - igt_warn("error reading kmsg (%m)\n");
> - }
> -
> -igt_ktap_parser_end:
> - free(suite_name);
> - free(case_name);
> -
> - if (!err)
> - ktap_args.ret = IGT_EXIT_SUCCESS;
> -
> - results.still_running = false;
> -
> - if (ktap)
> - igt_ktap_free(ktap);
> -
> - return NULL;
> -}
> -
> -static pthread_t ktap_parser_thread;
> -
> -struct ktap_test_results *ktap_parser_start(int fd, bool is_builtin)
> -{
> - IGT_INIT_LIST_HEAD(&results.list);
> - pthread_mutex_init(&results.mutex, NULL);
> - results.still_running = true;
> -
> - ktap_args.fd = fd;
> - ktap_args.is_builtin = is_builtin;
> - ktap_args.ret = IGT_EXIT_FAILURE;
> - pthread_create(&ktap_parser_thread, NULL, igt_ktap_parser, NULL);
> -
> - return &results;
> -}
> -
> -void ktap_parser_cancel(void)
> -{
> - pthread_cancel(ktap_parser_thread);
> -}
> -
> -int ktap_parser_stop(void)
> -{
> - pthread_join(ktap_parser_thread, NULL);
> - return ktap_args.ret;
> -}
> diff --git a/lib/igt_ktap.h b/lib/igt_ktap.h
> index 6f8da3eab6..c422636bfc 100644
> --- a/lib/igt_ktap.h
> +++ b/lib/igt_ktap.h
> @@ -27,8 +27,6 @@
>
> #define BUF_LEN 4096
>
> -#include <pthread.h>
> -
> #include "igt_list.h"
>
> struct igt_ktap_result {
> @@ -45,24 +43,4 @@ struct igt_ktap_results *igt_ktap_alloc(struct igt_list_head *results);
> int igt_ktap_parse(const char *buf, struct igt_ktap_results *ktap);
> void igt_ktap_free(struct igt_ktap_results *ktap);
>
> -void *igt_ktap_parser(void *unused);
> -
> -typedef struct ktap_test_results_element {
> - char test_name[BUF_LEN + 1];
> - bool passed;
> - struct igt_list_head link;
> -} ktap_test_results_element;
> -
> -struct ktap_test_results {
> - struct igt_list_head list;
> - pthread_mutex_t mutex;
> - bool still_running;
> -};
> -
> -
> -
> -struct ktap_test_results *ktap_parser_start(int fd, bool is_builtin);
> -void ktap_parser_cancel(void);
> -int ktap_parser_stop(void);
> -
> #endif /* IGT_KTAP_H */
^ permalink raw reply [flat|nested] 29+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for Fix IGT Kunit implementation issues (rev3)
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
` (19 preceding siblings ...)
2023-09-19 23:21 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2023-09-21 5:20 ` Patchwork
20 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2023-09-21 5:20 UTC (permalink / raw)
To: Janusz Krzysztofik; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 100261 bytes --]
== Series Details ==
Series: Fix IGT Kunit implementation issues (rev3)
URL : https://patchwork.freedesktop.org/series/123434/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_13651_full -> IGTPW_9821_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/index.html
Participating hosts (9 -> 9)
------------------------------
No changes in participating hosts
New tests
---------
New tests have been introduced between CI_DRM_13651_full and IGTPW_9821_full:
### New IGT tests (172) ###
* igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_limit:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_optimistic:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_pathological:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_pessimistic:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_range:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@drm_buddy@drm_buddy@drm_test_buddy_alloc_smoke:
- Statuses : 7 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_align:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_align32:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_align64:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_bottomup:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_color:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_color_evict:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_color_evict_range:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_debug:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_evict:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_evict_range:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_frag:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_highest:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_init:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_insert:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_insert_range:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_lowest:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_replace:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_reserve:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@drm_mm@drm_mm@drm_test_mm_topdown:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@atomic_implicit_crtc@pipe-a-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@atomic_implicit_crtc@pipe-a-hdmi-a-2:
- Statuses : 3 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@atomic_implicit_crtc@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@atomic_implicit_crtc@pipe-b-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@atomic_implicit_crtc@pipe-b-hdmi-a-2:
- Statuses : 3 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@atomic_implicit_crtc@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@atomic_implicit_crtc@pipe-c-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@atomic_implicit_crtc@pipe-c-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@atomic_implicit_crtc@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@cursor_implicit_plane@pipe-a-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@cursor_implicit_plane@pipe-a-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@cursor_implicit_plane@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@cursor_implicit_plane@pipe-b-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@cursor_implicit_plane@pipe-b-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@cursor_implicit_plane@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@cursor_implicit_plane@pipe-c-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@cursor_implicit_plane@pipe-c-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@cursor_implicit_plane@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@empty_lease@pipe-a-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@empty_lease@pipe-a-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@empty_lease@pipe-b-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@empty_lease@pipe-b-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@empty_lease@pipe-c-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@empty_lease@pipe-c-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@empty_lease@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_again@pipe-a-hdmi-a-1:
- Statuses : 4 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_again@pipe-a-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_again@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_again@pipe-b-hdmi-a-1:
- Statuses : 4 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_again@pipe-b-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_again@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_again@pipe-c-hdmi-a-1:
- Statuses : 3 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_again@pipe-c-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_again@pipe-d-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_get@pipe-a-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_get@pipe-a-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_get@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_get@pipe-b-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_get@pipe-b-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_get@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_get@pipe-c-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_get@pipe-c-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_get@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_connector@pipe-a-hdmi-a-1:
- Statuses : 3 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_connector@pipe-a-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_connector@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_connector@pipe-b-hdmi-a-1:
- Statuses : 3 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_connector@pipe-b-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_connector@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_connector@pipe-c-hdmi-a-1:
- Statuses : 3 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_connector@pipe-c-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_connector@pipe-d-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_crtc@pipe-a-hdmi-a-1:
- Statuses : 3 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_crtc@pipe-a-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_crtc@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_crtc@pipe-b-hdmi-a-1:
- Statuses : 3 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_crtc@pipe-b-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_crtc@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_crtc@pipe-c-hdmi-a-1:
- Statuses : 3 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_crtc@pipe-c-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_crtc@pipe-d-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_plane@pipe-a-hdmi-a-1:
- Statuses : 3 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_plane@pipe-a-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_plane@pipe-b-hdmi-a-1:
- Statuses : 3 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_plane@pipe-b-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_plane@pipe-c-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_plane@pipe-c-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_invalid_plane@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_revoke@pipe-a-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_revoke@pipe-a-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_revoke@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_revoke@pipe-b-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_revoke@pipe-b-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_revoke@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_revoke@pipe-c-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_revoke@pipe-c-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_revoke@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_connector@pipe-a-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_connector@pipe-a-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_connector@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_connector@pipe-b-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_connector@pipe-b-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_connector@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_connector@pipe-c-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_connector@pipe-c-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_connector@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_crtc@pipe-a-hdmi-a-1:
- Statuses : 3 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_crtc@pipe-a-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_crtc@pipe-b-hdmi-a-1:
- Statuses : 3 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_crtc@pipe-b-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_crtc@pipe-c-hdmi-a-1:
- Statuses : 3 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_crtc@pipe-c-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lease_unleased_crtc@pipe-d-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lessee_list@pipe-a-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lessee_list@pipe-a-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lessee_list@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lessee_list@pipe-b-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lessee_list@pipe-b-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lessee_list@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lessee_list@pipe-c-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lessee_list@pipe-c-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@lessee_list@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@page_flip_implicit_plane@pipe-a-hdmi-a-1:
- Statuses : 4 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@page_flip_implicit_plane@pipe-a-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@page_flip_implicit_plane@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@page_flip_implicit_plane@pipe-b-hdmi-a-1:
- Statuses : 4 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@page_flip_implicit_plane@pipe-b-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@page_flip_implicit_plane@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@page_flip_implicit_plane@pipe-c-hdmi-a-1:
- Statuses : 3 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@page_flip_implicit_plane@pipe-c-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@page_flip_implicit_plane@pipe-d-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-a-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-a-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-b-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-b-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-c-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-c-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@simple_lease@pipe-a-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@simple_lease@pipe-a-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@simple_lease@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@simple_lease@pipe-b-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@simple_lease@pipe-b-hdmi-a-2:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@simple_lease@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@simple_lease@pipe-c-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@simple_lease@pipe-c-hdmi-a-2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_lease@simple_lease@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_height_invalid:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_height_one_plane:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_height_three_plane:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_height_tiled:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_height_two_plane:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_width_invalid:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_width_one_plane:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_width_three_plane:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_width_tiled:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_block_width_two_plane:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_invalid:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_one_plane_16bpp:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_one_plane_24bpp:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_one_plane_32bpp:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_one_plane_8bpp:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_three_plane_8bpp:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_tiled:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
* igt@kms_selftest@drm_format@drm_test_format_min_pitch_two_plane:
- Statuses : 8 pass(s)
- Exec time: [0.0] s
Known issues
------------
Here are the changes found in IGTPW_9821_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@api_intel_bb@blit-reloc-keep-cache:
- shard-dg2: NOTRUN -> [SKIP][1] ([i915#8411])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@api_intel_bb@blit-reloc-keep-cache.html
* igt@device_reset@unbind-cold-reset-rebind:
- shard-mtlp: NOTRUN -> [SKIP][2] ([i915#7701])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@device_reset@unbind-cold-reset-rebind.html
- shard-dg2: NOTRUN -> [SKIP][3] ([i915#7701])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@device_reset@unbind-cold-reset-rebind.html
* igt@drm_fdinfo@busy-check-all@ccs0:
- shard-mtlp: NOTRUN -> [SKIP][4] ([i915#8414]) +6 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@drm_fdinfo@busy-check-all@ccs0.html
* igt@drm_fdinfo@busy-hang@bcs0:
- shard-dg2: NOTRUN -> [SKIP][5] ([i915#8414]) +21 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@drm_fdinfo@busy-hang@bcs0.html
* igt@drm_fdinfo@virtual-busy-hang-all:
- shard-dg1: NOTRUN -> [SKIP][6] ([i915#8414])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-17/igt@drm_fdinfo@virtual-busy-hang-all.html
* igt@gem_basic@multigpu-create-close:
- shard-dg2: NOTRUN -> [SKIP][7] ([i915#7697])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@gem_basic@multigpu-create-close.html
* igt@gem_caching@reads:
- shard-mtlp: NOTRUN -> [SKIP][8] ([i915#4873]) +1 other test skip
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_caching@reads.html
* igt@gem_ccs@block-multicopy-compressed:
- shard-mtlp: NOTRUN -> [SKIP][9] ([i915#9323])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@gem_ccs@block-multicopy-compressed.html
* igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0:
- shard-dg2: [PASS][10] -> [INCOMPLETE][11] ([i915#7297])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-2/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html
* igt@gem_create@create-ext-cpu-access-big:
- shard-mtlp: NOTRUN -> [SKIP][12] ([i915#6335])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_create@create-ext-cpu-access-big.html
* igt@gem_ctx_param@set-priority-not-supported:
- shard-mtlp: NOTRUN -> [SKIP][13] ([fdo#109314])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_ctx_param@set-priority-not-supported.html
* igt@gem_ctx_persistence@engines-hostile@vcs0:
- shard-mtlp: NOTRUN -> [ABORT][14] ([i915#9262]) +12 other tests abort
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@gem_ctx_persistence@engines-hostile@vcs0.html
* igt@gem_ctx_persistence@hang:
- shard-mtlp: NOTRUN -> [SKIP][15] ([i915#8555])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@gem_ctx_persistence@hang.html
* igt@gem_ctx_persistence@heartbeat-stop:
- shard-dg2: NOTRUN -> [SKIP][16] ([i915#8555]) +1 other test skip
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@gem_ctx_persistence@heartbeat-stop.html
* igt@gem_ctx_persistence@legacy-engines-mixed:
- shard-snb: NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#1099]) +1 other test skip
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb7/igt@gem_ctx_persistence@legacy-engines-mixed.html
* igt@gem_ctx_sseu@mmap-args:
- shard-mtlp: NOTRUN -> [SKIP][18] ([i915#280])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@gem_ctx_sseu@mmap-args.html
* igt@gem_eio@hibernate:
- shard-dg2: NOTRUN -> [ABORT][19] ([i915#7975] / [i915#8213])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@gem_eio@hibernate.html
* igt@gem_eio@unwedge-stress:
- shard-dg2: [PASS][20] -> [FAIL][21] ([i915#5784]) +1 other test fail
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-5/igt@gem_eio@unwedge-stress.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@gem_eio@unwedge-stress.html
* igt@gem_exec_balancer@bonded-pair:
- shard-mtlp: NOTRUN -> [SKIP][22] ([i915#4771])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@gem_exec_balancer@bonded-pair.html
* igt@gem_exec_balancer@hang:
- shard-mtlp: [PASS][23] -> [ABORT][24] ([i915#8104] / [i915#9262])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-5/igt@gem_exec_balancer@hang.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_exec_balancer@hang.html
* igt@gem_exec_balancer@sliced:
- shard-mtlp: NOTRUN -> [SKIP][25] ([i915#4812]) +1 other test skip
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_exec_balancer@sliced.html
* igt@gem_exec_fair@basic-none-rrul:
- shard-dg2: NOTRUN -> [SKIP][26] ([i915#3539] / [i915#4852]) +5 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@gem_exec_fair@basic-none-rrul.html
* igt@gem_exec_fair@basic-sync:
- shard-mtlp: NOTRUN -> [SKIP][27] ([i915#4473] / [i915#4771]) +1 other test skip
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@gem_exec_fair@basic-sync.html
* igt@gem_exec_fence@submit67:
- shard-dg2: NOTRUN -> [SKIP][28] ([i915#4812]) +2 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@gem_exec_fence@submit67.html
- shard-dg1: NOTRUN -> [SKIP][29] ([i915#4812])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@gem_exec_fence@submit67.html
* igt@gem_exec_flush@basic-uc-set-default:
- shard-dg2: NOTRUN -> [SKIP][30] ([i915#3539]) +1 other test skip
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@gem_exec_flush@basic-uc-set-default.html
* igt@gem_exec_gttfill@multigpu-basic:
- shard-mtlp: NOTRUN -> [SKIP][31] ([i915#7697])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_exec_gttfill@multigpu-basic.html
* igt@gem_exec_reloc@basic-cpu-noreloc:
- shard-rkl: NOTRUN -> [SKIP][32] ([i915#3281])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@gem_exec_reloc@basic-cpu-noreloc.html
* igt@gem_exec_reloc@basic-cpu-wc-noreloc:
- shard-mtlp: NOTRUN -> [SKIP][33] ([i915#3281]) +15 other tests skip
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_exec_reloc@basic-cpu-wc-noreloc.html
* igt@gem_exec_reloc@basic-gtt-cpu-active:
- shard-dg2: NOTRUN -> [SKIP][34] ([i915#3281]) +5 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@gem_exec_reloc@basic-gtt-cpu-active.html
* igt@gem_exec_schedule@deep@rcs0:
- shard-mtlp: NOTRUN -> [SKIP][35] ([i915#4537])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_exec_schedule@deep@rcs0.html
* igt@gem_exec_schedule@preempt-queue-chain:
- shard-dg2: NOTRUN -> [SKIP][36] ([i915#4537] / [i915#4812])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@gem_exec_schedule@preempt-queue-chain.html
* igt@gem_exec_schedule@preempt-queue-contexts-chain:
- shard-mtlp: NOTRUN -> [SKIP][37] ([i915#4537] / [i915#4812])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@gem_exec_schedule@preempt-queue-contexts-chain.html
* igt@gem_exec_suspend@basic-s3@smem:
- shard-snb: NOTRUN -> [DMESG-WARN][38] ([i915#8841]) +3 other tests dmesg-warn
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb4/igt@gem_exec_suspend@basic-s3@smem.html
* igt@gem_exec_suspend@basic-s4-devices@lmem0:
- shard-dg2: [PASS][39] -> [ABORT][40] ([i915#7975] / [i915#8213])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-11/igt@gem_exec_suspend@basic-s4-devices@lmem0.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@gem_exec_suspend@basic-s4-devices@lmem0.html
* igt@gem_exec_whisper@basic-fds-priority-all:
- shard-tglu: [PASS][41] -> [INCOMPLETE][42] ([i915#6755] / [i915#7392])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-6/igt@gem_exec_whisper@basic-fds-priority-all.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-8/igt@gem_exec_whisper@basic-fds-priority-all.html
* igt@gem_fence_thrash@bo-write-verify-none:
- shard-mtlp: NOTRUN -> [SKIP][43] ([i915#4860]) +2 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_fence_thrash@bo-write-verify-none.html
* igt@gem_lmem_swapping@smem-oom:
- shard-mtlp: NOTRUN -> [SKIP][44] ([i915#4613]) +5 other tests skip
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_lmem_swapping@smem-oom.html
* igt@gem_lmem_swapping@smem-oom@lmem0:
- shard-dg2: NOTRUN -> [TIMEOUT][45] ([i915#5493])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@gem_lmem_swapping@smem-oom@lmem0.html
* igt@gem_mmap@bad-size:
- shard-mtlp: NOTRUN -> [SKIP][46] ([i915#4083]) +6 other tests skip
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@gem_mmap@bad-size.html
* igt@gem_mmap_gtt@basic-write-read:
- shard-mtlp: NOTRUN -> [SKIP][47] ([i915#4077]) +13 other tests skip
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_mmap_gtt@basic-write-read.html
* igt@gem_mmap_gtt@close-race:
- shard-dg1: NOTRUN -> [SKIP][48] ([i915#4077]) +2 other tests skip
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@gem_mmap_gtt@close-race.html
* igt@gem_mmap_gtt@cpuset-big-copy-odd:
- shard-dg2: NOTRUN -> [SKIP][49] ([i915#4077]) +14 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@gem_mmap_gtt@cpuset-big-copy-odd.html
* igt@gem_mmap_wc@copy:
- shard-dg2: NOTRUN -> [SKIP][50] ([i915#4083]) +4 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@gem_mmap_wc@copy.html
* igt@gem_pread@snoop:
- shard-dg1: NOTRUN -> [SKIP][51] ([i915#3282])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@gem_pread@snoop.html
* igt@gem_pxp@reject-modify-context-protection-off-1:
- shard-dg1: NOTRUN -> [SKIP][52] ([i915#4270])
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@gem_pxp@reject-modify-context-protection-off-1.html
* igt@gem_pxp@verify-pxp-execution-after-suspend-resume:
- shard-dg2: NOTRUN -> [SKIP][53] ([i915#4270]) +6 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@gem_pxp@verify-pxp-execution-after-suspend-resume.html
* igt@gem_pxp@verify-pxp-stale-buf-execution:
- shard-mtlp: NOTRUN -> [SKIP][54] ([i915#4270]) +2 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@gem_pxp@verify-pxp-stale-buf-execution.html
* igt@gem_readwrite@beyond-eob:
- shard-dg2: NOTRUN -> [SKIP][55] ([i915#3282]) +5 other tests skip
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@gem_readwrite@beyond-eob.html
* igt@gem_readwrite@new-obj:
- shard-mtlp: NOTRUN -> [SKIP][56] ([i915#3282]) +7 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@gem_readwrite@new-obj.html
* igt@gem_render_copy@y-tiled-ccs-to-yf-tiled:
- shard-mtlp: NOTRUN -> [SKIP][57] ([i915#8428]) +8 other tests skip
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@gem_render_copy@y-tiled-ccs-to-yf-tiled.html
* igt@gem_render_copy@y-tiled-to-vebox-linear:
- shard-dg2: NOTRUN -> [SKIP][58] ([i915#5190]) +11 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@gem_render_copy@y-tiled-to-vebox-linear.html
* igt@gem_set_tiling_vs_gtt:
- shard-dg1: NOTRUN -> [SKIP][59] ([i915#4079])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@gem_set_tiling_vs_gtt.html
* igt@gem_set_tiling_vs_pwrite:
- shard-mtlp: NOTRUN -> [SKIP][60] ([i915#4079]) +1 other test skip
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@gem_set_tiling_vs_pwrite.html
* igt@gem_softpin@evict-snoop-interruptible:
- shard-dg2: NOTRUN -> [SKIP][61] ([i915#4885])
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@gem_softpin@evict-snoop-interruptible.html
* igt@gem_softpin@noreloc-s3:
- shard-mtlp: [PASS][62] -> [ABORT][63] ([i915#9262]) +1 other test abort
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-8/igt@gem_softpin@noreloc-s3.html
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@gem_softpin@noreloc-s3.html
* igt@gem_tiled_pread_pwrite:
- shard-dg2: NOTRUN -> [SKIP][64] ([i915#4079]) +1 other test skip
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@gem_tiled_pread_pwrite.html
* igt@gem_unfence_active_buffers:
- shard-dg2: NOTRUN -> [SKIP][65] ([i915#4879])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@gem_unfence_active_buffers.html
* igt@gem_userptr_blits@access-control:
- shard-mtlp: NOTRUN -> [SKIP][66] ([i915#3297]) +3 other tests skip
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_userptr_blits@access-control.html
* igt@gem_userptr_blits@create-destroy-unsync:
- shard-dg2: NOTRUN -> [SKIP][67] ([i915#3297]) +5 other tests skip
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@gem_userptr_blits@create-destroy-unsync.html
* igt@gem_userptr_blits@map-fixed-invalidate-overlap:
- shard-dg2: NOTRUN -> [SKIP][68] ([i915#3297] / [i915#4880])
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@gem_userptr_blits@map-fixed-invalidate-overlap.html
* igt@gem_userptr_blits@unsync-overlap:
- shard-tglu: NOTRUN -> [SKIP][69] ([i915#3297])
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-9/igt@gem_userptr_blits@unsync-overlap.html
* igt@gem_userptr_blits@vma-merge:
- shard-dg2: NOTRUN -> [FAIL][70] ([i915#3318])
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@gem_userptr_blits@vma-merge.html
- shard-snb: NOTRUN -> [FAIL][71] ([i915#2724])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb2/igt@gem_userptr_blits@vma-merge.html
- shard-mtlp: NOTRUN -> [FAIL][72] ([i915#3318])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gem_userptr_blits@vma-merge.html
* igt@gen7_exec_parse@basic-allocation:
- shard-mtlp: NOTRUN -> [SKIP][73] ([fdo#109289]) +3 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@gen7_exec_parse@basic-allocation.html
- shard-rkl: NOTRUN -> [SKIP][74] ([fdo#109289])
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-1/igt@gen7_exec_parse@basic-allocation.html
* igt@gen7_exec_parse@basic-offset:
- shard-dg2: NOTRUN -> [SKIP][75] ([fdo#109289]) +6 other tests skip
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@gen7_exec_parse@basic-offset.html
* igt@gen9_exec_parse@allowed-all:
- shard-dg2: NOTRUN -> [SKIP][76] ([i915#2856]) +4 other tests skip
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@gen9_exec_parse@allowed-all.html
* igt@gen9_exec_parse@basic-rejected:
- shard-dg1: NOTRUN -> [SKIP][77] ([i915#2527])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-15/igt@gen9_exec_parse@basic-rejected.html
* igt@gen9_exec_parse@bb-large:
- shard-mtlp: NOTRUN -> [SKIP][78] ([i915#2856]) +3 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@gen9_exec_parse@bb-large.html
* igt@gen9_exec_parse@bb-start-param:
- shard-rkl: NOTRUN -> [SKIP][79] ([i915#2527])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@gen9_exec_parse@bb-start-param.html
* igt@i915_fb_tiling:
- shard-mtlp: NOTRUN -> [SKIP][80] ([i915#4881])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@i915_fb_tiling.html
* igt@i915_hangman@detector@vcs0:
- shard-mtlp: NOTRUN -> [FAIL][81] ([i915#8456]) +2 other tests fail
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@i915_hangman@detector@vcs0.html
* igt@i915_hwmon@hwmon-read:
- shard-mtlp: NOTRUN -> [SKIP][82] ([i915#7707])
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@i915_hwmon@hwmon-read.html
* igt@i915_module_load@reload-with-fault-injection:
- shard-dg2: NOTRUN -> [DMESG-WARN][83] ([i915#8617])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@i915_module_load@reload-with-fault-injection.html
- shard-snb: [PASS][84] -> [INCOMPLETE][85] ([i915#4528] / [i915#9200])
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-snb6/igt@i915_module_load@reload-with-fault-injection.html
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb5/igt@i915_module_load@reload-with-fault-injection.html
* igt@i915_pm_freq_api@freq-suspend@gt1:
- shard-mtlp: NOTRUN -> [DMESG-WARN][86] ([i915#9262])
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@i915_pm_freq_api@freq-suspend@gt1.html
* igt@i915_pm_rc6_residency@rc6-idle@bcs0:
- shard-dg1: [PASS][87] -> [FAIL][88] ([i915#3591])
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-17/igt@i915_pm_rc6_residency@rc6-idle@bcs0.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@i915_pm_rc6_residency@rc6-idle@bcs0.html
* igt@i915_pm_rpm@dpms-lpsp:
- shard-rkl: [PASS][89] -> [SKIP][90] ([i915#1397])
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-7/igt@i915_pm_rpm@dpms-lpsp.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@i915_pm_rpm@dpms-lpsp.html
* igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
- shard-mtlp: NOTRUN -> [SKIP][91] ([i915#1397]) +1 other test skip
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
* igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait:
- shard-dg1: [PASS][92] -> [SKIP][93] ([i915#1397])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-18/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
* igt@i915_pm_rps@basic-api:
- shard-dg2: NOTRUN -> [SKIP][94] ([i915#6621])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@i915_pm_rps@basic-api.html
* igt@i915_pm_rps@thresholds-idle-park@gt0:
- shard-mtlp: NOTRUN -> [SKIP][95] ([i915#8925]) +3 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@i915_pm_rps@thresholds-idle-park@gt0.html
- shard-dg2: NOTRUN -> [SKIP][96] ([i915#8925])
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@i915_pm_rps@thresholds-idle-park@gt0.html
* igt@i915_query@query-topology-unsupported:
- shard-mtlp: NOTRUN -> [SKIP][97] ([fdo#109302])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@i915_query@query-topology-unsupported.html
* igt@kms_addfb_basic@addfb25-x-tiled-legacy:
- shard-mtlp: NOTRUN -> [SKIP][98] ([i915#4212]) +2 other tests skip
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html
* igt@kms_addfb_basic@basic-x-tiled-legacy:
- shard-dg2: NOTRUN -> [SKIP][99] ([i915#4212]) +1 other test skip
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_addfb_basic@basic-x-tiled-legacy.html
* igt@kms_addfb_basic@basic-y-tiled-legacy:
- shard-dg2: NOTRUN -> [SKIP][100] ([i915#4215] / [i915#5190])
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_addfb_basic@basic-y-tiled-legacy.html
* igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
- shard-mtlp: NOTRUN -> [SKIP][101] ([i915#3826])
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-3-4-mc_ccs:
- shard-dg2: NOTRUN -> [SKIP][102] ([i915#8502] / [i915#8709]) +11 other tests skip
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-3-4-mc_ccs.html
* igt@kms_async_flips@crc@pipe-a-hdmi-a-3:
- shard-dg2: NOTRUN -> [FAIL][103] ([i915#8247]) +3 other tests fail
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@kms_async_flips@crc@pipe-a-hdmi-a-3.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
- shard-mtlp: NOTRUN -> [SKIP][104] ([i915#1769] / [i915#3555])
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
* igt@kms_big_fb@4-tiled-16bpp-rotate-90:
- shard-dg2: NOTRUN -> [SKIP][105] ([fdo#111614]) +4 other tests skip
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html
- shard-dg1: NOTRUN -> [SKIP][106] ([i915#4538] / [i915#5286])
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
- shard-rkl: NOTRUN -> [SKIP][107] ([i915#5286])
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html
* igt@kms_big_fb@linear-16bpp-rotate-270:
- shard-mtlp: NOTRUN -> [SKIP][108] ([fdo#111614]) +4 other tests skip
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_big_fb@linear-16bpp-rotate-270.html
* igt@kms_big_fb@x-tiled-8bpp-rotate-270:
- shard-rkl: NOTRUN -> [SKIP][109] ([fdo#111614] / [i915#3638])
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-1/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-addfb-size-overflow:
- shard-mtlp: NOTRUN -> [SKIP][110] ([i915#6187]) +2 other tests skip
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-180:
- shard-dg1: NOTRUN -> [SKIP][111] ([i915#4538])
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@kms_big_fb@yf-tiled-16bpp-rotate-180.html
* igt@kms_big_fb@yf-tiled-32bpp-rotate-0:
- shard-mtlp: NOTRUN -> [SKIP][112] ([fdo#111615]) +12 other tests skip
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html
* igt@kms_big_fb@yf-tiled-32bpp-rotate-180:
- shard-rkl: NOTRUN -> [SKIP][113] ([fdo#110723]) +1 other test skip
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@kms_big_fb@yf-tiled-32bpp-rotate-180.html
* igt@kms_big_fb@yf-tiled-addfb:
- shard-dg1: NOTRUN -> [SKIP][114] ([fdo#111615])
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_big_fb@yf-tiled-addfb.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-dg2: NOTRUN -> [SKIP][115] ([i915#4538] / [i915#5190]) +7 other tests skip
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_big_joiner@invalid-modeset:
- shard-rkl: NOTRUN -> [SKIP][116] ([i915#2705])
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_big_joiner@invalid-modeset.html
* igt@kms_ccs@pipe-a-bad-pixel-format-4_tiled_mtl_mc_ccs:
- shard-dg2: NOTRUN -> [SKIP][117] ([i915#5354]) +49 other tests skip
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@kms_ccs@pipe-a-bad-pixel-format-4_tiled_mtl_mc_ccs.html
* igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs:
- shard-mtlp: NOTRUN -> [SKIP][118] ([i915#3886] / [i915#6095]) +11 other tests skip
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
- shard-mtlp: NOTRUN -> [SKIP][119] ([i915#3886] / [i915#5354] / [i915#6095])
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_dg2_rc_ccs_cc:
- shard-rkl: NOTRUN -> [SKIP][120] ([i915#5354] / [i915#6095])
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-1/igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_dg2_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs:
- shard-glk: NOTRUN -> [SKIP][121] ([fdo#109271] / [i915#3886]) +1 other test skip
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk5/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
- shard-apl: NOTRUN -> [SKIP][122] ([fdo#109271] / [i915#3886])
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-apl2/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_mc_ccs:
- shard-dg1: NOTRUN -> [SKIP][123] ([i915#3689] / [i915#3886] / [i915#5354] / [i915#6095])
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
- shard-dg2: NOTRUN -> [SKIP][124] ([i915#3689] / [i915#3886] / [i915#5354]) +12 other tests skip
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-c-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs:
- shard-tglu: NOTRUN -> [SKIP][125] ([i915#5354] / [i915#6095])
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-2/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs.html
* igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_ccs:
- shard-glk: NOTRUN -> [SKIP][126] ([fdo#109271]) +29 other tests skip
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk4/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_ccs.html
* igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_rc_ccs:
- shard-dg2: NOTRUN -> [SKIP][127] ([i915#3689] / [i915#5354]) +18 other tests skip
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_rc_ccs.html
* igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_dg2_mc_ccs:
- shard-mtlp: NOTRUN -> [SKIP][128] ([i915#6095]) +31 other tests skip
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_dg2_mc_ccs.html
* igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_mtl_mc_ccs:
- shard-dg1: NOTRUN -> [SKIP][129] ([i915#5354] / [i915#6095]) +2 other tests skip
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_mtl_mc_ccs.html
* igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs:
- shard-rkl: NOTRUN -> [SKIP][130] ([i915#5354]) +3 other tests skip
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-4/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs.html
* igt@kms_ccs@pipe-d-random-ccs-data-yf_tiled_ccs:
- shard-dg1: NOTRUN -> [SKIP][131] ([i915#3689] / [i915#5354] / [i915#6095]) +2 other tests skip
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@kms_ccs@pipe-d-random-ccs-data-yf_tiled_ccs.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-dg2: NOTRUN -> [SKIP][132] ([i915#4087] / [i915#7213])
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_cdclk@plane-scaling@pipe-a-hdmi-a-2:
- shard-dg2: NOTRUN -> [SKIP][133] ([i915#4087]) +3 other tests skip
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_cdclk@plane-scaling@pipe-a-hdmi-a-2.html
* igt@kms_cdclk@plane-scaling@pipe-c-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][134] ([i915#4087]) +3 other tests skip
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_cdclk@plane-scaling@pipe-c-edp-1.html
* igt@kms_chamelium_color@ctm-blue-to-red:
- shard-mtlp: NOTRUN -> [SKIP][135] ([fdo#111827]) +1 other test skip
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_chamelium_color@ctm-blue-to-red.html
* igt@kms_chamelium_color@gamma:
- shard-dg2: NOTRUN -> [SKIP][136] ([fdo#111827]) +2 other tests skip
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@kms_chamelium_color@gamma.html
* igt@kms_chamelium_edid@dp-edid-resolution-list:
- shard-dg2: NOTRUN -> [SKIP][137] ([i915#7828]) +9 other tests skip
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_chamelium_edid@dp-edid-resolution-list.html
* igt@kms_chamelium_frames@hdmi-cmp-planar-formats:
- shard-dg1: NOTRUN -> [SKIP][138] ([i915#7828]) +1 other test skip
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-15/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html
* igt@kms_chamelium_hpd@dp-hpd-for-each-pipe:
- shard-mtlp: NOTRUN -> [SKIP][139] ([i915#7828]) +7 other tests skip
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@kms_chamelium_hpd@dp-hpd-for-each-pipe.html
* igt@kms_color@deep-color@pipe-b-edp-1-degamma:
- shard-mtlp: NOTRUN -> [FAIL][140] ([i915#6892]) +3 other tests fail
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_color@deep-color@pipe-b-edp-1-degamma.html
* igt@kms_content_protection@dp-mst-lic-type-0:
- shard-mtlp: NOTRUN -> [SKIP][141] ([i915#3299])
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_content_protection@dp-mst-lic-type-0.html
* igt@kms_content_protection@legacy:
- shard-dg1: NOTRUN -> [SKIP][142] ([i915#7116])
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_content_protection@legacy.html
* igt@kms_content_protection@srm:
- shard-dg2: NOTRUN -> [SKIP][143] ([i915#7118]) +3 other tests skip
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_content_protection@srm.html
* igt@kms_content_protection@uevent:
- shard-mtlp: NOTRUN -> [SKIP][144] ([i915#6944])
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_content_protection@uevent.html
* igt@kms_cursor_crc@cursor-onscreen-32x32:
- shard-mtlp: NOTRUN -> [SKIP][145] ([i915#3555] / [i915#8814]) +4 other tests skip
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_cursor_crc@cursor-onscreen-32x32.html
* igt@kms_cursor_crc@cursor-onscreen-512x512:
- shard-mtlp: NOTRUN -> [SKIP][146] ([i915#3359]) +1 other test skip
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_cursor_crc@cursor-onscreen-512x512.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x170:
- shard-dg2: NOTRUN -> [SKIP][147] ([i915#3359])
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html
* igt@kms_cursor_crc@cursor-sliding-32x10:
- shard-dg2: NOTRUN -> [SKIP][148] ([i915#3555]) +8 other tests skip
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@kms_cursor_crc@cursor-sliding-32x10.html
- shard-dg1: NOTRUN -> [SKIP][149] ([i915#3555]) +1 other test skip
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_cursor_crc@cursor-sliding-32x10.html
* igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1:
- shard-dg2: NOTRUN -> [INCOMPLETE][150] ([i915#9203])
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
- shard-dg2: NOTRUN -> [SKIP][151] ([fdo#109274] / [fdo#111767] / [i915#5354])
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
* igt@kms_cursor_legacy@cursora-vs-flipa-legacy:
- shard-snb: [PASS][152] -> [ABORT][153] ([i915#8865])
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-snb5/igt@kms_cursor_legacy@cursora-vs-flipa-legacy.html
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb7/igt@kms_cursor_legacy@cursora-vs-flipa-legacy.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions:
- shard-snb: NOTRUN -> [SKIP][154] ([fdo#109271] / [fdo#111767])
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb5/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-toggle:
- shard-mtlp: NOTRUN -> [SKIP][155] ([fdo#111767] / [i915#3546])
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_cursor_legacy@cursorb-vs-flipb-toggle.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size:
- shard-dg2: NOTRUN -> [SKIP][156] ([fdo#109274] / [i915#5354]) +7 other tests skip
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-glk: [PASS][157] -> [FAIL][158] ([i915#2346])
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_dirtyfb@dirtyfb-ioctl@fbc-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][159] ([i915#9227])
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@kms_dirtyfb@dirtyfb-ioctl@fbc-hdmi-a-1.html
- shard-rkl: NOTRUN -> [SKIP][160] ([i915#9227])
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_dirtyfb@dirtyfb-ioctl@fbc-hdmi-a-1.html
- shard-dg1: NOTRUN -> [SKIP][161] ([i915#9227])
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_dirtyfb@dirtyfb-ioctl@fbc-hdmi-a-1.html
* igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][162] ([i915#9226] / [i915#9261]) +1 other test skip
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-1.html
- shard-rkl: NOTRUN -> [SKIP][163] ([i915#9226] / [i915#9261]) +1 other test skip
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-1.html
- shard-dg1: NOTRUN -> [SKIP][164] ([i915#9226] / [i915#9261]) +1 other test skip
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-1.html
* igt@kms_display_modes@extended-mode-basic:
- shard-mtlp: NOTRUN -> [SKIP][165] ([i915#3555] / [i915#8827])
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_display_modes@extended-mode-basic.html
* igt@kms_draw_crc@draw-method-mmap-gtt:
- shard-mtlp: NOTRUN -> [SKIP][166] ([i915#8812])
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_draw_crc@draw-method-mmap-gtt.html
* igt@kms_draw_crc@draw-method-mmap-wc:
- shard-dg2: NOTRUN -> [SKIP][167] ([i915#8812]) +1 other test skip
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-10/igt@kms_draw_crc@draw-method-mmap-wc.html
* igt@kms_dsc@dsc-basic:
- shard-mtlp: NOTRUN -> [SKIP][168] ([i915#3555] / [i915#3840] / [i915#9159])
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_dsc@dsc-basic.html
* igt@kms_flip@2x-flip-vs-fences:
- shard-dg2: NOTRUN -> [SKIP][169] ([i915#8381]) +1 other test skip
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_flip@2x-flip-vs-fences.html
* igt@kms_flip@2x-flip-vs-modeset:
- shard-dg2: NOTRUN -> [SKIP][170] ([fdo#109274]) +4 other tests skip
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@kms_flip@2x-flip-vs-modeset.html
* igt@kms_flip@2x-flip-vs-panning:
- shard-rkl: NOTRUN -> [SKIP][171] ([fdo#111825]) +1 other test skip
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@kms_flip@2x-flip-vs-panning.html
* igt@kms_flip@2x-plain-flip:
- shard-mtlp: NOTRUN -> [SKIP][172] ([i915#3637]) +5 other tests skip
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-5/igt@kms_flip@2x-plain-flip.html
* igt@kms_flip@flip-vs-fences-interruptible:
- shard-mtlp: NOTRUN -> [SKIP][173] ([i915#8381])
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_flip@flip-vs-fences-interruptible.html
* igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a3:
- shard-dg2: [PASS][174] -> [FAIL][175] ([fdo#103375]) +3 other tests fail
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-3/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a3.html
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a3.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode:
- shard-tglu: NOTRUN -> [SKIP][176] ([i915#2587] / [i915#2672])
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-4/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-rkl: NOTRUN -> [SKIP][177] ([i915#2672]) +1 other test skip
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][178] ([i915#2672]) +4 other tests skip
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][179] ([i915#3555] / [i915#8810])
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][180] ([i915#2672]) +2 other tests skip
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][181] ([i915#2672] / [i915#3555]) +1 other test skip
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling@pipe-a-default-mode.html
* igt@kms_frontbuffer_tracking@fbc-2p-indfb-fliptrack-mmap-gtt:
- shard-mtlp: NOTRUN -> [SKIP][182] ([i915#8708]) +8 other tests skip
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@kms_frontbuffer_tracking@fbc-2p-indfb-fliptrack-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-gtt:
- shard-dg2: NOTRUN -> [SKIP][183] ([i915#8708]) +18 other tests skip
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render:
- shard-dg1: NOTRUN -> [SKIP][184] ([fdo#111825]) +2 other tests skip
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite:
- shard-dg2: NOTRUN -> [FAIL][185] ([i915#6880])
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render:
- shard-dg2: NOTRUN -> [SKIP][186] ([i915#3458]) +17 other tests skip
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt:
- shard-dg1: NOTRUN -> [SKIP][187] ([i915#8708]) +1 other test skip
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff:
- shard-mtlp: NOTRUN -> [SKIP][188] ([i915#1825]) +38 other tests skip
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-cpu:
- shard-tglu: NOTRUN -> [SKIP][189] ([fdo#110189]) +1 other test skip
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-4/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render:
- shard-dg1: NOTRUN -> [SKIP][190] ([i915#3458]) +1 other test skip
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-pwrite:
- shard-rkl: NOTRUN -> [SKIP][191] ([fdo#111825] / [i915#1825]) +2 other tests skip
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render:
- shard-tglu: NOTRUN -> [SKIP][192] ([fdo#109280]) +1 other test skip
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt:
- shard-rkl: NOTRUN -> [SKIP][193] ([i915#3023]) +3 other tests skip
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt.html
* igt@kms_hdr@invalid-metadata-sizes:
- shard-dg2: NOTRUN -> [SKIP][194] ([i915#3555] / [i915#8228]) +1 other test skip
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@kms_hdr@invalid-metadata-sizes.html
* igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-1:
- shard-apl: [PASS][195] -> [INCOMPLETE][196] ([i915#180])
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-apl3/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-1.html
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-apl3/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-1.html
* igt@kms_plane_lowres@tiling-none@pipe-b-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][197] ([i915#3582]) +7 other tests skip
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_plane_lowres@tiling-none@pipe-b-edp-1.html
* igt@kms_plane_lowres@tiling-y@pipe-a-hdmi-a-2:
- shard-rkl: [PASS][198] -> [INCOMPLETE][199] ([i915#8875])
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-1/igt@kms_plane_lowres@tiling-y@pipe-a-hdmi-a-2.html
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-4/igt@kms_plane_lowres@tiling-y@pipe-a-hdmi-a-2.html
* igt@kms_plane_multiple@tiling-y:
- shard-dg2: NOTRUN -> [SKIP][200] ([i915#8806])
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@kms_plane_multiple@tiling-y.html
* igt@kms_plane_scaling@2x-scaler-multi-pipe:
- shard-mtlp: NOTRUN -> [SKIP][201] ([i915#3546]) +1 other test skip
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
* igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-c-hdmi-a-2:
- shard-dg2: NOTRUN -> [SKIP][202] ([i915#5176]) +11 other tests skip
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-c-hdmi-a-2.html
* igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25@pipe-b-hdmi-a-1:
- shard-rkl: NOTRUN -> [SKIP][203] ([i915#5176]) +3 other tests skip
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25@pipe-b-hdmi-a-1.html
* igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-5@pipe-c-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][204] ([i915#5176]) +9 other tests skip
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-5@pipe-c-edp-1.html
* igt@kms_plane_scaling@plane-upscale-with-rotation-factor-0-25@pipe-a-hdmi-a-3:
- shard-dg1: NOTRUN -> [SKIP][205] ([i915#5176]) +19 other tests skip
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@kms_plane_scaling@plane-upscale-with-rotation-factor-0-25@pipe-a-hdmi-a-3.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-c-hdmi-a-1:
- shard-dg1: NOTRUN -> [SKIP][206] ([i915#5235]) +23 other tests skip
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-c-hdmi-a-1.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c-hdmi-a-2:
- shard-dg2: NOTRUN -> [SKIP][207] ([i915#5235]) +19 other tests skip
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c-hdmi-a-2.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1:
- shard-snb: NOTRUN -> [SKIP][208] ([fdo#109271]) +202 other tests skip
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb6/igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20@pipe-a-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][209] ([i915#5235]) +7 other tests skip
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20@pipe-a-edp-1.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][210] ([i915#5235]) +3 other tests skip
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b-hdmi-a-2.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-c-dp-1:
- shard-apl: NOTRUN -> [SKIP][211] ([fdo#109271]) +43 other tests skip
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-apl6/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-c-dp-1.html
* igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf:
- shard-glk: NOTRUN -> [SKIP][212] ([fdo#109271] / [i915#658])
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk5/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-dg2: NOTRUN -> [SKIP][213] ([i915#658]) +2 other tests skip
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr@psr2_sprite_blt:
- shard-dg2: NOTRUN -> [SKIP][214] ([i915#1072]) +4 other tests skip
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_psr@psr2_sprite_blt.html
* igt@kms_rotation_crc@primary-rotation-90:
- shard-mtlp: NOTRUN -> [SKIP][215] ([i915#4235]) +2 other tests skip
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_rotation_crc@primary-rotation-90.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
- shard-mtlp: NOTRUN -> [SKIP][216] ([i915#5289])
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
- shard-dg2: NOTRUN -> [SKIP][217] ([i915#4235] / [i915#5190])
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-3/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
- shard-rkl: NOTRUN -> [SKIP][218] ([fdo#111615] / [i915#5289])
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-4/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
* igt@kms_universal_plane@cursor-fb-leak-pipe-a:
- shard-tglu: [PASS][219] -> [FAIL][220] ([i915#9196])
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-4/igt@kms_universal_plane@cursor-fb-leak-pipe-a.html
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-10/igt@kms_universal_plane@cursor-fb-leak-pipe-a.html
* igt@kms_vblank@pipe-c-wait-forked-busy:
- shard-rkl: NOTRUN -> [SKIP][221] ([i915#4070] / [i915#6768]) +1 other test skip
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@kms_vblank@pipe-c-wait-forked-busy.html
* igt@kms_vblank@pipe-d-query-forked-busy:
- shard-rkl: NOTRUN -> [SKIP][222] ([i915#4070] / [i915#533] / [i915#6768]) +2 other tests skip
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@kms_vblank@pipe-d-query-forked-busy.html
* igt@perf@buffer-fill@0-rcs0:
- shard-mtlp: NOTRUN -> [FAIL][223] ([i915#7823] / [i915#9265])
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@perf@buffer-fill@0-rcs0.html
* igt@perf@gen12-group-concurrent-oa-buffer-read:
- shard-mtlp: NOTRUN -> [FAIL][224] ([i915#9259]) +2 other tests fail
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-7/igt@perf@gen12-group-concurrent-oa-buffer-read.html
* igt@perf@polling-small-buf:
- shard-mtlp: NOTRUN -> [FAIL][225] ([i915#1722])
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@perf@polling-small-buf.html
* igt@perf_pmu@busy-check-all@rcs0:
- shard-mtlp: NOTRUN -> [FAIL][226] ([i915#4521]) +2 other tests fail
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-6/igt@perf_pmu@busy-check-all@rcs0.html
* igt@perf_pmu@busy-idle@vcs0:
- shard-dg1: [PASS][227] -> [FAIL][228] ([i915#4349]) +2 other tests fail
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-13/igt@perf_pmu@busy-idle@vcs0.html
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@perf_pmu@busy-idle@vcs0.html
* igt@perf_pmu@busy@rcs0:
- shard-mtlp: NOTRUN -> [FAIL][229] ([i915#4349]) +5 other tests fail
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@perf_pmu@busy@rcs0.html
* igt@perf_pmu@cpu-hotplug:
- shard-mtlp: NOTRUN -> [SKIP][230] ([i915#8850])
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@perf_pmu@cpu-hotplug.html
* igt@perf_pmu@faulting-read@gtt:
- shard-mtlp: NOTRUN -> [SKIP][231] ([i915#8440])
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-8/igt@perf_pmu@faulting-read@gtt.html
* igt@perf_pmu@frequency@gt0:
- shard-dg2: NOTRUN -> [FAIL][232] ([i915#6806])
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@perf_pmu@frequency@gt0.html
* igt@prime_vgem@basic-blt:
- shard-mtlp: NOTRUN -> [FAIL][233] ([i915#8445]) +1 other test fail
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-2/igt@prime_vgem@basic-blt.html
* igt@prime_vgem@basic-gtt:
- shard-dg2: NOTRUN -> [SKIP][234] ([i915#3708] / [i915#4077])
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@prime_vgem@basic-gtt.html
* igt@prime_vgem@basic-read:
- shard-mtlp: NOTRUN -> [SKIP][235] ([i915#3708]) +1 other test skip
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@prime_vgem@basic-read.html
* igt@prime_vgem@basic-write:
- shard-dg2: NOTRUN -> [SKIP][236] ([i915#3291] / [i915#3708])
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-1/igt@prime_vgem@basic-write.html
* igt@prime_vgem@coherency-gtt:
- shard-mtlp: NOTRUN -> [SKIP][237] ([i915#3708] / [i915#4077])
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-4/igt@prime_vgem@coherency-gtt.html
* igt@prime_vgem@fence-flip-hang:
- shard-dg2: NOTRUN -> [SKIP][238] ([i915#3708]) +1 other test skip
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-7/igt@prime_vgem@fence-flip-hang.html
* igt@v3d/v3d_job_submission@multiple-singlesync-to-multisync:
- shard-dg1: NOTRUN -> [SKIP][239] ([i915#2575]) +2 other tests skip
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@v3d/v3d_job_submission@multiple-singlesync-to-multisync.html
* igt@v3d/v3d_perfmon@create-perfmon-0:
- shard-rkl: NOTRUN -> [SKIP][240] ([fdo#109315]) +2 other tests skip
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@v3d/v3d_perfmon@create-perfmon-0.html
* igt@v3d/v3d_submit_cl@bad-multisync-out-sync:
- shard-dg2: NOTRUN -> [SKIP][241] ([i915#2575]) +15 other tests skip
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-6/igt@v3d/v3d_submit_cl@bad-multisync-out-sync.html
* igt@v3d/v3d_wait_bo@used-bo:
- shard-mtlp: NOTRUN -> [SKIP][242] ([i915#2575]) +15 other tests skip
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@v3d/v3d_wait_bo@used-bo.html
* igt@vc4/vc4_mmap@mmap-bo:
- shard-dg2: NOTRUN -> [SKIP][243] ([i915#7711]) +9 other tests skip
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@vc4/vc4_mmap@mmap-bo.html
* igt@vc4/vc4_perfmon@destroy-valid-perfmon:
- shard-dg1: NOTRUN -> [SKIP][244] ([i915#7711])
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-15/igt@vc4/vc4_perfmon@destroy-valid-perfmon.html
* igt@vc4/vc4_purgeable_bo@access-purged-bo-mem:
- shard-mtlp: NOTRUN -> [SKIP][245] ([i915#7711]) +8 other tests skip
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-8/igt@vc4/vc4_purgeable_bo@access-purged-bo-mem.html
* igt@vc4/vc4_tiling@set-bad-modifier:
- shard-rkl: NOTRUN -> [SKIP][246] ([i915#7711])
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@vc4/vc4_tiling@set-bad-modifier.html
#### Possible fixes ####
* igt@core_hotunplug@unbind-rebind:
- shard-snb: [INCOMPLETE][247] ([i915#9372]) -> [PASS][248]
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-snb1/igt@core_hotunplug@unbind-rebind.html
[248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-snb6/igt@core_hotunplug@unbind-rebind.html
* igt@gem_ctx_exec@basic-nohangcheck:
- shard-rkl: [FAIL][249] ([i915#6268]) -> [PASS][250]
[249]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-6/igt@gem_ctx_exec@basic-nohangcheck.html
[250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-4/igt@gem_ctx_exec@basic-nohangcheck.html
- shard-tglu: [FAIL][251] ([i915#6268]) -> [PASS][252]
[251]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-10/igt@gem_ctx_exec@basic-nohangcheck.html
[252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-6/igt@gem_ctx_exec@basic-nohangcheck.html
* igt@gem_ctx_persistence@hostile:
- shard-mtlp: [ABORT][253] ([i915#9262]) -> [PASS][254] +1 other test pass
[253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-6/igt@gem_ctx_persistence@hostile.html
[254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-1/igt@gem_ctx_persistence@hostile.html
* igt@gem_eio@reset-stress:
- shard-dg1: [FAIL][255] ([i915#5784]) -> [PASS][256]
[255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-14/igt@gem_eio@reset-stress.html
[256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@gem_eio@reset-stress.html
* igt@gem_exec_endless@dispatch@vecs0:
- shard-dg1: [TIMEOUT][257] ([i915#3778]) -> [PASS][258]
[257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-16/igt@gem_exec_endless@dispatch@vecs0.html
[258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@gem_exec_endless@dispatch@vecs0.html
* igt@gem_exec_fair@basic-flow@rcs0:
- shard-tglu: [FAIL][259] ([i915#2842]) -> [PASS][260]
[259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-6/igt@gem_exec_fair@basic-flow@rcs0.html
[260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-5/igt@gem_exec_fair@basic-flow@rcs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-rkl: [FAIL][261] ([i915#2842]) -> [PASS][262] +2 other tests pass
[261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-1/igt@gem_exec_fair@basic-pace-share@rcs0.html
[262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-2/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_lmem_swapping@smem-oom@lmem0:
- shard-dg1: [TIMEOUT][263] ([i915#5493]) -> [PASS][264]
[263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-15/igt@gem_lmem_swapping@smem-oom@lmem0.html
[264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@gem_lmem_swapping@smem-oom@lmem0.html
* igt@gen9_exec_parse@allowed-single:
- shard-apl: [INCOMPLETE][265] ([i915#5566]) -> [PASS][266]
[265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-apl4/igt@gen9_exec_parse@allowed-single.html
[266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-apl3/igt@gen9_exec_parse@allowed-single.html
* igt@i915_pm_rpm@modeset-lpsp:
- shard-rkl: [SKIP][267] ([i915#1397]) -> [PASS][268]
[267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-6/igt@i915_pm_rpm@modeset-lpsp.html
[268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@i915_pm_rpm@modeset-lpsp.html
* igt@i915_pm_rpm@modeset-non-lpsp:
- shard-dg2: [SKIP][269] ([i915#1397]) -> [PASS][270]
[269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-10/igt@i915_pm_rpm@modeset-non-lpsp.html
[270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@i915_pm_rpm@modeset-non-lpsp.html
* igt@i915_selftest@live@gt_heartbeat:
- shard-glk: [DMESG-FAIL][271] ([i915#5334]) -> [PASS][272]
[271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-glk2/igt@i915_selftest@live@gt_heartbeat.html
[272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk5/igt@i915_selftest@live@gt_heartbeat.html
* igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs:
- shard-dg1: [DMESG-WARN][273] ([i915#4423]) -> [PASS][274]
[273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-17/igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs.html
[274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-13/igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-apl: [FAIL][275] ([i915#2346]) -> [PASS][276]
[275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-apl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt:
- shard-dg2: [FAIL][277] ([i915#6880]) -> [PASS][278]
[277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-11/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt.html
[278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt.html
* igt@kms_plane@pixel-format@pipe-a-planes:
- shard-glk: [DMESG-FAIL][279] ([i915#118]) -> [PASS][280]
[279]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-glk2/igt@kms_plane@pixel-format@pipe-a-planes.html
[280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-glk2/igt@kms_plane@pixel-format@pipe-a-planes.html
* {igt@kms_pm_dc@dc9-dpms}:
- shard-tglu: [SKIP][281] ([i915#4281]) -> [PASS][282]
[281]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-4/igt@kms_pm_dc@dc9-dpms.html
[282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-9/igt@kms_pm_dc@dc9-dpms.html
* {igt@kms_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a}:
- shard-rkl: [SKIP][283] ([i915#1937]) -> [PASS][284]
[283]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-2/igt@kms_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html
[284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-7/igt@kms_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html
- shard-dg1: [SKIP][285] ([i915#1937]) -> [PASS][286]
[285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-16/igt@kms_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html
[286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-19/igt@kms_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html
* igt@kms_universal_plane@cursor-fb-leak-pipe-d:
- shard-mtlp: [FAIL][287] ([i915#9196]) -> [PASS][288]
[287]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-2/igt@kms_universal_plane@cursor-fb-leak-pipe-d.html
[288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-8/igt@kms_universal_plane@cursor-fb-leak-pipe-d.html
* igt@kms_vblank@pipe-b-ts-continuation-suspend:
- shard-dg2: [FAIL][289] ([fdo#103375]) -> [PASS][290] +2 other tests pass
[289]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-5/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
[290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-5/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
#### Warnings ####
* igt@device_reset@unbind-reset-rebind:
- shard-dg1: [ABORT][291] ([i915#4983] / [i915#7461]) -> [INCOMPLETE][292] ([i915#4983])
[291]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-13/igt@device_reset@unbind-reset-rebind.html
[292]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-16/igt@device_reset@unbind-reset-rebind.html
* igt@i915_pm_rc6_residency@rc6-idle@rcs0:
- shard-tglu: [FAIL][293] ([i915#2681] / [i915#3591]) -> [WARN][294] ([i915#2681]) +1 other test warn
[293]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-tglu-3/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
[294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-tglu-9/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
* igt@kms_async_flips@crc@pipe-b-edp-1:
- shard-mtlp: [FAIL][295] ([i915#8247]) -> [DMESG-FAIL][296] ([i915#8561])
[295]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-4/igt@kms_async_flips@crc@pipe-b-edp-1.html
[296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-8/igt@kms_async_flips@crc@pipe-b-edp-1.html
* igt@kms_async_flips@crc@pipe-d-edp-1:
- shard-mtlp: [DMESG-FAIL][297] ([i915#8561]) -> [FAIL][298] ([i915#8247]) +1 other test fail
[297]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-4/igt@kms_async_flips@crc@pipe-d-edp-1.html
[298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-8/igt@kms_async_flips@crc@pipe-d-edp-1.html
* igt@kms_content_protection@mei_interface:
- shard-dg2: [SKIP][299] ([i915#7118]) -> [SKIP][300] ([i915#7118] / [i915#7162])
[299]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-3/igt@kms_content_protection@mei_interface.html
[300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@kms_content_protection@mei_interface.html
* igt@kms_flip@flip-vs-suspend@a-edp1:
- shard-mtlp: [ABORT][301] ([i915#9262]) -> [FAIL][302] ([fdo#103375])
[301]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-4/igt@kms_flip@flip-vs-suspend@a-edp1.html
[302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_flip@flip-vs-suspend@a-edp1.html
* igt@kms_flip@flip-vs-suspend@b-edp1:
- shard-mtlp: [DMESG-WARN][303] ([i915#9262]) -> [FAIL][304] ([fdo#103375]) +2 other tests fail
[303]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-mtlp-4/igt@kms_flip@flip-vs-suspend@b-edp1.html
[304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-mtlp-3/igt@kms_flip@flip-vs-suspend@b-edp1.html
* igt@kms_force_connector_basic@force-load-detect:
- shard-rkl: [SKIP][305] ([fdo#109285] / [i915#4098]) -> [SKIP][306] ([fdo#109285])
[305]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-rkl-1/igt@kms_force_connector_basic@force-load-detect.html
[306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-rkl-6/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_psr@sprite_plane_onoff:
- shard-dg1: [SKIP][307] ([i915#1072]) -> [SKIP][308] ([i915#1072] / [i915#4078]) +2 other tests skip
[307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg1-19/igt@kms_psr@sprite_plane_onoff.html
[308]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg1-18/igt@kms_psr@sprite_plane_onoff.html
* igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem:
- shard-dg2: [INCOMPLETE][309] ([i915#5493]) -> [CRASH][310] ([i915#9351])
[309]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13651/shard-dg2-10/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
[310]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/shard-dg2-11/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[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#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
[fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111767]: https://bugs.freedesktop.org/show_bug.cgi?id=111767
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
[i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[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#2724]: https://gitlab.freedesktop.org/drm/intel/issues/2724
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
[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#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3582]: https://gitlab.freedesktop.org/drm/intel/issues/3582
[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#3778]: https://gitlab.freedesktop.org/drm/intel/issues/3778
[i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
[i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[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#4087]: https://gitlab.freedesktop.org/drm/intel/issues/4087
[i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
[i915#4235]: https://gitlab.freedesktop.org/drm/intel/issues/4235
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
[i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
[i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423
[i915#4473]: https://gitlab.freedesktop.org/drm/intel/issues/4473
[i915#4521]: https://gitlab.freedesktop.org/drm/intel/issues/4521
[i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
[i915#4537]: https://gitlab.freedesktop.org/drm/intel/issues/4537
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
[i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879
[i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
[i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
[i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
[i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493
[i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
[i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#5978]: https://gitlab.freedesktop.org/drm/intel/issues/5978
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6187]: https://gitlab.freedesktop.org/drm/intel/issues/6187
[i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
[i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#6755]: https://gitlab.freedesktop.org/drm/intel/issues/6755
[i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
[i915#6806]: https://gitlab.freedesktop.org/drm/intel/issues/6806
[i915#6880]: https://gitlab.freedesktop.org/drm/intel/issues/6880
[i915#6892]: https://gitlab.freedesktop.org/drm/intel/issues/6892
[i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
[i915#7162]: https://gitlab.freedesktop.org/drm/intel/issues/7162
[i915#7213]: https://gitlab.freedesktop.org/drm/intel/issues/7213
[i915#7297]: https://gitlab.freedesktop.org/drm/intel/issues/7297
[i915#7392]: https://gitlab.freedesktop.org/drm/intel/issues/7392
[i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461
[i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
[i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
[i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7823]: https://gitlab.freedesktop.org/drm/intel/issues/7823
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
[i915#8104]: https://gitlab.freedesktop.org/drm/intel/issues/8104
[i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
[i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228
[i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247
[i915#8381]: https://gitlab.freedesktop.org/drm/intel/issues/8381
[i915#8411]: https://gitlab.freedesktop.org/drm/intel/issues/8411
[i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414
[i915#8428]: https://gitlab.freedesktop.org/drm/intel/issues/8428
[i915#8440]: https://gitlab.freedesktop.org/drm/intel/issues/8440
[i915#8445]: https://gitlab.freedesktop.org/drm/intel/issues/8445
[i915#8456]: https://gitlab.freedesktop.org/drm/intel/issues/8456
[i915#8502]: https://gitlab.freedesktop.org/drm/intel/issues/8502
[i915#8555]: https://gitlab.freedesktop.org/drm/intel/issues/8555
[i915#8561]: https://gitlab.freedesktop.org/drm/intel/issues/8561
[i915#8617]: https://gitlab.freedesktop.org/drm/intel/issues/8617
[i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708
[i915#8709]: https://gitlab.freedesktop.org/drm/intel/issues/8709
[i915#8806]: https://gitlab.freedesktop.org/drm/intel/issues/8806
[i915#8810]: https://gitlab.freedesktop.org/drm/intel/issues/8810
[i915#8812]: https://gitlab.freedesktop.org/drm/intel/issues/8812
[i915#8814]: https://gitlab.freedesktop.org/drm/intel/issues/8814
[i915#8827]: https://gitlab.freedesktop.org/drm/intel/issues/8827
[i915#8841]: https://gitlab.freedesktop.org/drm/intel/issues/8841
[i915#8850]: https://gitlab.freedesktop.org/drm/inte
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9821/index.html
[-- Attachment #2: Type: text/html, Size: 122621 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
end of thread, other threads:[~2023-09-21 5:20 UTC | newest]
Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-18 13:42 [igt-dev] [PATCH i-g-t v3 00/17] Fix IGT Kunit implementation issues Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 01/17] lib/kunit: Drop unused file stream Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 02/17] lib/kunit: Stop loading kunit module explicitly Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 03/17] lib/kunit: Fix struct kmod_module kunit_kmod not freed Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 04/17] lib/kunit: Optimize calls to igt_success/skip/fail() Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 05/17] lib/kunit: Fix illegal igt_fail() calls inside subtest body Janusz Krzysztofik
2023-09-19 6:25 ` [igt-dev] [Intel-gfx] " Mauro Carvalho Chehab
2023-09-19 6:26 ` Mauro Carvalho Chehab
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 06/17] lib/ktap: Make sure we fail on premature cancel Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 07/17] lib/ktap: Drop checks for EINTR on read() failures Janusz Krzysztofik
2023-09-19 6:30 ` [igt-dev] [Intel-gfx] " Mauro Carvalho Chehab
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 08/17] lib/kunit: Cancel KTP parser on module load failure Janusz Krzysztofik
2023-09-18 13:42 ` [igt-dev] [PATCH i-g-t v3 09/17] lib/ktap: Drop is_running flag Janusz Krzysztofik
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 10/17] lib/ktap: Read /dev/kmsg in blocking mode Janusz Krzysztofik
2023-09-19 6:23 ` [igt-dev] [Intel-gfx] " Mauro Carvalho Chehab
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 11/17] lib/kunit: Fail / skip on kernel taint Janusz Krzysztofik
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 12/17] lib/ktap: Use IGT linked lists for storing KTAP results Janusz Krzysztofik
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 13/17] lib/ktap: Reimplement KTAP parser Janusz Krzysztofik
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 14/17] lib/kunit: Load test modules in background Janusz Krzysztofik
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 15/17] lib/kunit: Parse KTAP report from the main process thread Janusz Krzysztofik
2023-09-20 18:05 ` [igt-dev] [Intel-gfx] " Mauro Carvalho Chehab
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 16/17] lib/kunit: Strip "_test" or "_kunit" suffix from subtest names Janusz Krzysztofik
2023-09-18 13:43 ` [igt-dev] [PATCH i-g-t v3 17/17] lib/kunit: Omit suite name prefix if the same as subtest name Janusz Krzysztofik
2023-09-19 6:36 ` [igt-dev] [Intel-gfx] " Mauro Carvalho Chehab
2023-09-18 20:24 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix IGT Kunit implementation issues (rev3) Patchwork
2023-09-18 20:58 ` [igt-dev] ✓ CI.xeBAT: " Patchwork
2023-09-19 23:21 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2023-09-20 9:44 ` Janusz Krzysztofik
2023-09-21 5:20 ` [igt-dev] ✓ Fi.CI.IGT: success " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox