* [PATCH i-g-t v2 0/6] RFC: Add attachments support
@ 2026-03-24 13:12 Zbigniew Kempczyński
2026-03-24 13:12 ` [PATCH i-g-t v2 1/6] runner: Rename dirfd to avoid clash with dirfd() Zbigniew Kempczyński
` (10 more replies)
0 siblings, 11 replies; 27+ messages in thread
From: Zbigniew Kempczyński @ 2026-03-24 13:12 UTC (permalink / raw)
To: igt-dev
Cc: Zbigniew Kempczyński, Kamil Konieczny, Ryszard Knop,
Gustavo Sousa, Krzysztof Karas
This series introduces support for hook/test written attachments.
It is somehow limited and stiff but allows to write anything test/hook
wants to attachments directory and if naming contract will be fulfiled
content in base64 form will be included in appropriate subtest/dynsubtest
results.json part.
Series targets our need to include guc logs for failed tests especially
in the point of time when it occurs.
v2: - added clearing of attachments dir in overwrite mode
- guc-log hook script is now installed to igt datadir/hooks dir
- added hook-exec-allowlist to selectively execute hook scripts
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Cc: Ryszard Knop <ryszard.knop@intel.com>
Cc: Gustavo Sousa <gustavo.sousa@intel.com>
Cc: Krzysztof Karas <krzysztof.karas@intel.com>
Zbigniew Kempczyński (6):
runner: Rename dirfd to avoid clash with dirfd()
runner: Create attachments directory to use by hooks
runner: Add attachments directory content in subtests results
scripts/hooks: Example guc log copy script to attachments dir
runner: Rename parsing function
runner: Add hook-exec-allowlist to execute hooks selectively
lib/igt_hook.c | 4 ++
runner/executor.c | 88 ++++++++++++++++++++++++----
runner/executor.h | 2 +
runner/resultgen.c | 97 +++++++++++++++++++++++++++++++
runner/settings.c | 31 +++++++---
runner/settings.h | 2 +
scripts/hooks/guc_copy_on_fail.sh | 24 ++++++++
scripts/meson.build | 2 +
8 files changed, 230 insertions(+), 20 deletions(-)
create mode 100755 scripts/hooks/guc_copy_on_fail.sh
--
2.43.0
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH i-g-t v2 1/6] runner: Rename dirfd to avoid clash with dirfd()
2026-03-24 13:12 [PATCH i-g-t v2 0/6] RFC: Add attachments support Zbigniew Kempczyński
@ 2026-03-24 13:12 ` Zbigniew Kempczyński
2026-03-24 13:12 ` [PATCH i-g-t v2 2/6] runner: Create attachments directory to use by hooks Zbigniew Kempczyński
` (9 subsequent siblings)
10 siblings, 0 replies; 27+ messages in thread
From: Zbigniew Kempczyński @ 2026-03-24 13:12 UTC (permalink / raw)
To: igt-dev
Cc: Zbigniew Kempczyński, Kamil Konieczny, Ryszard Knop,
Krzysztof Karas
Upcoming change within execute_next_entry() will call dirfd() so
rename local dirfd variable is necessary.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Cc: Ryszard Knop <ryszard.knop@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
---
runner/executor.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/runner/executor.c b/runner/executor.c
index 847abe481a..1485b59d1f 100644
--- a/runner/executor.c
+++ b/runner/executor.c
@@ -1772,7 +1772,7 @@ static int execute_next_entry(struct execute_state *state,
char **abortreason,
bool *abort_already_written)
{
- int dirfd;
+ int idirfd;
int outputs[_F_LAST];
int kmsgfd;
int outpipe[2] = { -1, -1 };
@@ -1786,19 +1786,19 @@ static int execute_next_entry(struct execute_state *state,
snprintf(name, sizeof(name), "%zd", idx);
mkdirat(resdirfd, name, 0777);
- if ((dirfd = openat(resdirfd, name, O_DIRECTORY | O_RDONLY | O_CLOEXEC)) < 0) {
+ if ((idirfd = openat(resdirfd, name, O_DIRECTORY | O_RDONLY | O_CLOEXEC)) < 0) {
errf("Error accessing individual test result directory\n");
return -1;
}
- if (!open_output_files(dirfd, outputs, true)) {
+ if (!open_output_files(idirfd, outputs, true)) {
errf("Error opening output files\n");
result = -1;
goto out_dirfd;
}
if (settings->sync) {
- fsync(dirfd);
+ fsync(idirfd);
fsync(resdirfd);
}
@@ -1900,8 +1900,8 @@ out_pipe:
close_outputs(outputs);
out_dirfd:
if (settings->sync)
- fsync(dirfd);
- close(dirfd);
+ fsync(idirfd);
+ close(idirfd);
if (settings->sync)
fsync(resdirfd);
--
2.43.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH i-g-t v2 2/6] runner: Create attachments directory to use by hooks
2026-03-24 13:12 [PATCH i-g-t v2 0/6] RFC: Add attachments support Zbigniew Kempczyński
2026-03-24 13:12 ` [PATCH i-g-t v2 1/6] runner: Rename dirfd to avoid clash with dirfd() Zbigniew Kempczyński
@ 2026-03-24 13:12 ` Zbigniew Kempczyński
2026-03-30 6:48 ` Krzysztof Karas
2026-03-30 14:20 ` Gustavo Sousa
2026-03-24 13:12 ` [PATCH i-g-t v2 3/6] runner: Add attachments directory content in subtests results Zbigniew Kempczyński
` (8 subsequent siblings)
10 siblings, 2 replies; 27+ messages in thread
From: Zbigniew Kempczyński @ 2026-03-24 13:12 UTC (permalink / raw)
To: igt-dev
Cc: Zbigniew Kempczyński, Kamil Konieczny, Ryszard Knop,
Krzysztof Karas
Results parsing is currently limited to few predefined files.
Create "attachments" directory and export full path of created directory
to be used within hooks. From now on environment variable
IGT_RUNNER_ATTACHMENTS_DIR become visible when igt_runner is used
to execute tests. This env contains directory where subtests/dynsubtests
may write auxiliary files which finally be included in results.json.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Cc: Ryszard Knop <ryszard.knop@intel.com>
Cc: Krzysztof Karas <krzysztof.karas@intel.com>
---
v2: simplify attachment dirname concatenation (Kamil)
remove files in attachments dir when overwrite is set (Kamil)
---
lib/igt_hook.c | 4 ++++
runner/executor.c | 44 +++++++++++++++++++++++++++++++++++++++++---
runner/executor.h | 2 ++
3 files changed, 47 insertions(+), 3 deletions(-)
diff --git a/lib/igt_hook.c b/lib/igt_hook.c
index f86ed56f72..57817bdc12 100644
--- a/lib/igt_hook.c
+++ b/lib/igt_hook.c
@@ -518,5 +518,9 @@ available to the command:\n\
\n\
Note that %s can be passed multiple times. Each descriptor is evaluated in turn\n\
when matching events and running hook commands.\n\
+\n\
+When executed by the igt_runner environment IGT_RUNNER_ATTACHMENTS_DIR\n\
+is passed additionally to the hook script. It contains directory where\n\
+script may write additional attachments like guc logs, etc.\n\
", option_name);
}
diff --git a/runner/executor.c b/runner/executor.c
index 1485b59d1f..bc421f7dbb 100644
--- a/runner/executor.c
+++ b/runner/executor.c
@@ -1779,17 +1779,22 @@ static int execute_next_entry(struct execute_state *state,
int errpipe[2] = { -1, -1 };
int socket[2] = { -1, -1 };
int outfd, errfd, socketfd;
- char name[32];
+ char name[32], attname[32];
+ char attdirname[PATH_MAX];
pid_t child;
int result;
size_t idx = state->next;
snprintf(name, sizeof(name), "%zd", idx);
+ snprintf(attname, sizeof(attname), "%zd/%s", idx, DIR_ATTACHMENTS);
mkdirat(resdirfd, name, 0777);
+ mkdirat(resdirfd, attname, 0777);
if ((idirfd = openat(resdirfd, name, O_DIRECTORY | O_RDONLY | O_CLOEXEC)) < 0) {
errf("Error accessing individual test result directory\n");
return -1;
}
+ snprintf(attdirname, sizeof(attdirname), "%s/%s",
+ settings->results_path, attname);
if (!open_output_files(idirfd, outputs, true)) {
errf("Error opening output files\n");
@@ -1870,6 +1875,7 @@ static int execute_next_entry(struct execute_state *state,
setenv("IGT_RUNNER_SOCKET_FD", envstring, 1);
}
setenv("IGT_SENTINEL_ON_STDERR", "1", 1);
+ setenv("IGT_RUNNER_ATTACHMENTS_DIR", attdirname, 1);
execute_test_process(outfd, errfd, socketfd, settings, entry);
/* unreachable */
@@ -1950,7 +1956,10 @@ static int remove_file(int dirfd, const char *name)
static bool clear_test_result_directory(int dirfd)
{
- int i;
+ DIR *dir;
+ struct dirent *entry;
+ int i, adirfd;
+ int ret = false;
for (i = 0; i < _F_LAST; i++) {
if (remove_file(dirfd, filenames[i])) {
@@ -1960,7 +1969,33 @@ static bool clear_test_result_directory(int dirfd)
}
}
- return true;
+ if ((adirfd = openat(dirfd, DIR_ATTACHMENTS, O_DIRECTORY | O_RDONLY | O_CLOEXEC)) < 0) {
+ errf("Cannot open attachments directory\n");
+ return false;
+ }
+
+ if ((dir = fdopendir(adirfd)) == NULL) {
+ errf("Cannot fdopen attachments directory\n");
+ goto out1;
+ }
+
+ while ((entry = readdir(dir)) != NULL) {
+ if (!strcmp(entry->d_name, ".") || !strcmp(entry->d_name, ".."))
+ continue;
+
+ if (unlinkat(adirfd, entry->d_name, 0)) {
+ errf("Error removing %s\n", entry->d_name);
+ goto out2;
+ }
+ }
+
+ ret = true;
+out2:
+ closedir(dir);
+out1:
+ close(adirfd);
+
+ return ret;
}
static bool clear_old_results(char *path)
@@ -2002,6 +2037,9 @@ static bool clear_old_results(char *path)
close(dirfd);
return false;
}
+ if (unlinkat(resdirfd, DIR_ATTACHMENTS, AT_REMOVEDIR))
+ errf("Warning: Cannot remove attachments directory\n");
+
close(resdirfd);
if (unlinkat(dirfd, name, AT_REMOVEDIR)) {
errf("Warning: Result directory %s contains extra files\n",
diff --git a/runner/executor.h b/runner/executor.h
index 3b1cabcf55..bc6ac80dc4 100644
--- a/runner/executor.h
+++ b/runner/executor.h
@@ -25,6 +25,8 @@ enum {
_F_LAST,
};
+#define DIR_ATTACHMENTS "attachments"
+
bool open_output_files(int dirfd, int *fds, bool write);
bool open_output_files_rdonly(int dirfd, int *fds);
void close_outputs(int *fds);
--
2.43.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH i-g-t v2 3/6] runner: Add attachments directory content in subtests results
2026-03-24 13:12 [PATCH i-g-t v2 0/6] RFC: Add attachments support Zbigniew Kempczyński
2026-03-24 13:12 ` [PATCH i-g-t v2 1/6] runner: Rename dirfd to avoid clash with dirfd() Zbigniew Kempczyński
2026-03-24 13:12 ` [PATCH i-g-t v2 2/6] runner: Create attachments directory to use by hooks Zbigniew Kempczyński
@ 2026-03-24 13:12 ` Zbigniew Kempczyński
2026-03-30 7:17 ` Krzysztof Karas
2026-03-30 15:36 ` Gustavo Sousa
2026-03-24 13:12 ` [PATCH i-g-t v2 4/6] scripts/hooks: Example guc log copy script to attachments dir Zbigniew Kempczyński
` (7 subsequent siblings)
10 siblings, 2 replies; 27+ messages in thread
From: Zbigniew Kempczyński @ 2026-03-24 13:12 UTC (permalink / raw)
To: igt-dev
Cc: Zbigniew Kempczyński, Kamil Konieczny, Ryszard Knop,
Krzysztof Karas
Files produced by hooks which lands in attachments directory should
be called in piglit style, what means they should be in form:
igt@test@subtest@@unique-filename-from-hook
igt@test@subtest@dynsubtest@@unique-filename-from-hook
depending is it normal subtest or dynamic subtest.
Hooks introduced IGT_HOOK_TEST_FULLNAME env variable, which contains
igt@test@subtest
igt@test@subtest@dynsubtest
and it should be used as prefix part (before '@@') of attachment
filename when hook script writes some content to it.
Such defined contract between hook script and resultgen allows to
distinguish subtest/dynsubtest attachments structure in results.json.
So string before '@@' is a subtest/dynsubtest name in results file,
and string after it is a unique key of a base64 file content added
to results.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Cc: Ryszard Knop <ryszard.knop@intel.com>
Cc: Krzysztof Karas <krzysztof.karas@intel.com>
---
runner/resultgen.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 97 insertions(+)
diff --git a/runner/resultgen.c b/runner/resultgen.c
index 29fc5cbb15..c4ebbd7b6e 100644
--- a/runner/resultgen.c
+++ b/runner/resultgen.c
@@ -1142,6 +1142,100 @@ static bool fill_from_dmesg(int fd,
return true;
}
+static char *get_base64(int dirfd, const char *filename)
+{
+ struct stat st;
+ int fd;
+ unsigned char *data;
+ char *base64 = NULL;
+
+ if (fstatat(dirfd, filename, &st, 0)) {
+ fprintf(stderr, "Can't stat %s\n", filename);
+ return NULL;
+ }
+
+ fd = openat(dirfd, filename, O_RDONLY);
+ if (fd < 0) {
+ fprintf(stderr, "Can't open %s\n", filename);
+ return NULL;
+ }
+
+ data = malloc(st.st_size);
+ if (!data) {
+ fprintf(stderr, "Cannot allocate %zu bytes for data buffer\n",
+ st.st_size);
+ goto err_alloc;
+ }
+
+ if (read(fd, data, st.st_size) != st.st_size) {
+ fprintf(stderr, "Cannot read %zu bytes from data buffer\n",
+ st.st_size);
+ goto err_read;
+ }
+
+ base64 = g_base64_encode(data, st.st_size);
+
+err_read:
+ free(data);
+err_alloc:
+ close(fd);
+
+ return base64;
+}
+
+static bool fill_from_attachments(int dirfd, struct json_t *tests)
+{
+ struct json_t *obj = NULL, *attobj = NULL;
+ char attname[32];
+ int atdir;
+ struct dirent *entry;
+ DIR *dir;
+
+ snprintf(attname, sizeof(attname), "%s", DIR_ATTACHMENTS);
+ if ((atdir = openat(dirfd, attname, O_DIRECTORY | O_RDONLY | O_CLOEXEC)) < 0) {
+ fprintf(stderr, "Error opening '%s' dir\n", DIR_ATTACHMENTS);
+ return false;
+ }
+
+ dir = fdopendir(atdir);
+ if (!dir) {
+ close(atdir);
+ return false;
+ }
+
+ while ((entry = readdir(dir))) {
+ char *base64_data, *piglit_name, *p;
+
+ if (strcmp(entry->d_name, ".") == 0 ||
+ strcmp(entry->d_name, "..") == 0)
+ continue;
+
+ piglit_name = strdup(entry->d_name);
+ p = strstr(piglit_name, "@@");
+ if (!p) {
+ free(piglit_name);
+ continue;
+ }
+ *p = '\0';
+ p += 2;
+
+ obj = get_or_create_json_object(tests, piglit_name);
+ attobj = get_or_create_json_object(obj, "attachments");
+
+ base64_data = get_base64(atdir, entry->d_name);
+ if (base64_data) {
+ json_object_set_new(attobj, p,
+ escaped_json_stringn(base64_data, strlen(base64_data)));
+ free(base64_data);
+ }
+ free(piglit_name);
+ }
+
+ closedir(dir);
+
+ return true;
+}
+
static const char *result_from_exitcode(int exitcode)
{
switch (exitcode) {
@@ -2230,6 +2324,9 @@ static bool parse_test_directory(int dirfd,
fprintf(stderr, "Error parsing output files (dmesg.txt)\n");
}
+ if (!fill_from_attachments(dirfd, results->tests))
+ fprintf(stderr, "Error parsing attachments directory\n");
+
override_results(entry->binary, &subtests, results->tests);
prune_subtests(settings, entry, &subtests, results->tests);
--
2.43.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH i-g-t v2 4/6] scripts/hooks: Example guc log copy script to attachments dir
2026-03-24 13:12 [PATCH i-g-t v2 0/6] RFC: Add attachments support Zbigniew Kempczyński
` (2 preceding siblings ...)
2026-03-24 13:12 ` [PATCH i-g-t v2 3/6] runner: Add attachments directory content in subtests results Zbigniew Kempczyński
@ 2026-03-24 13:12 ` Zbigniew Kempczyński
2026-03-30 7:24 ` Krzysztof Karas
2026-03-24 13:12 ` [PATCH i-g-t v2 5/6] runner: Rename parsing function Zbigniew Kempczyński
` (6 subsequent siblings)
10 siblings, 1 reply; 27+ messages in thread
From: Zbigniew Kempczyński @ 2026-03-24 13:12 UTC (permalink / raw)
To: igt-dev
Cc: Zbigniew Kempczyński, Kamil Konieczny, Ryszard Knop,
Krzysztof Karas
We need to explicitly extract guc logs for failed tests so add
hook script which does it after subtest/dynsubtest execution.
As copying to attachments take a lot of time do it only for
failing subtests.
Adding this hook script to CI will extend its execution time much
(all failing subtests will copy their guc logs to attachments dir)
so introducing some form of allow-listing will be necessary. For example
exiting immediately on tests where we know guc log might be not useful
is simplest solution.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Cc: Ryszard Knop <ryszard.knop@intel.com>
Cc: Krzysztof Karas <krzysztof.karas@intel.com>
---
v2: install hook to datadir/hooks
---
scripts/hooks/guc_copy_on_fail.sh | 24 ++++++++++++++++++++++++
scripts/meson.build | 2 ++
2 files changed, 26 insertions(+)
create mode 100755 scripts/hooks/guc_copy_on_fail.sh
diff --git a/scripts/hooks/guc_copy_on_fail.sh b/scripts/hooks/guc_copy_on_fail.sh
new file mode 100755
index 0000000000..2360952634
--- /dev/null
+++ b/scripts/hooks/guc_copy_on_fail.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+# Hook script for copying guc.log.
+# Suggested usage with:
+# --hook 'post-subtest:scripts/hooks/guc_copy_on_fail.sh' --hook 'post-dyn-subtest:scripts/hooks/guc_copy_on_fail.sh'
+
+if [ -z "$IGT_RUNNER_ATTACHMENTS_DIR" ]; then
+ echo "Missing IGT_RUNNER_ATTACHMENTS_DIR env"
+ exit 0
+fi
+
+cd "$IGT_RUNNER_ATTACHMENTS_DIR"
+
+# Copy only for failed subtests as this is time-consuming
+if [ "${IGT_HOOK_RESULT}" != "FAIL" ]; then
+ exit 0
+fi
+
+STNAME="${IGT_HOOK_TEST_FULLNAME}"
+
+for log in $(find /sys/kernel/debug/dri -iname 'guc_log'); do
+ attout=$(echo ${log:23} | sed -e 's/\//_/g')
+ cp "$log" "${STNAME}@@${attout}"
+done
diff --git a/scripts/meson.build b/scripts/meson.build
index 6e64065c5e..99c43b4606 100644
--- a/scripts/meson.build
+++ b/scripts/meson.build
@@ -15,3 +15,5 @@ endif
igt_doc_script = find_program('igt_doc.py', required : build_testplan)
gen_rst_index = find_program('gen_rst_index', required : build_sphinx)
generate_iga64_codes = find_program('generate_iga64_codes')
+
+install_data('hooks/guc_copy_on_fail.sh', install_dir : datadir / 'hooks')
--
2.43.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH i-g-t v2 5/6] runner: Rename parsing function
2026-03-24 13:12 [PATCH i-g-t v2 0/6] RFC: Add attachments support Zbigniew Kempczyński
` (3 preceding siblings ...)
2026-03-24 13:12 ` [PATCH i-g-t v2 4/6] scripts/hooks: Example guc log copy script to attachments dir Zbigniew Kempczyński
@ 2026-03-24 13:12 ` Zbigniew Kempczyński
2026-03-30 8:07 ` Krzysztof Karas
2026-03-24 13:12 ` [PATCH i-g-t v2 6/6] runner: Add hook-exec-allowlist to execute hooks selectively Zbigniew Kempczyński
` (5 subsequent siblings)
10 siblings, 1 reply; 27+ messages in thread
From: Zbigniew Kempczyński @ 2026-03-24 13:12 UTC (permalink / raw)
To: igt-dev
Cc: Zbigniew Kempczyński, Kamil Konieczny, Ryszard Knop,
Krzysztof Karas
Upcoming changes will use parsing function so rename it to some
generic name is necessary to avoid confusion.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Cc: Ryszard Knop <ryszard.knop@intel.com>
Cc: Krzysztof Karas <krzysztof.karas@intel.com>
---
runner/settings.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/runner/settings.c b/runner/settings.c
index 3ccf718701..7c29f2d3ab 100644
--- a/runner/settings.c
+++ b/runner/settings.c
@@ -364,16 +364,18 @@ static bool add_regex(struct regex_list *list, char *new)
return true;
}
-static bool parse_blacklist(struct regex_list *exclude_regexes,
- char *blacklist_filename)
+static bool parse_list(struct regex_list *regexes,
+ char *list_filename,
+ const char *list_type)
{
FILE *f;
char *line = NULL;
size_t line_len = 0;
bool status = false;
- if ((f = fopen(blacklist_filename, "r")) == NULL) {
- fprintf(stderr, "Cannot open blacklist file %s\n", blacklist_filename);
+ if ((f = fopen(list_filename, "r")) == NULL) {
+ fprintf(stderr, "Cannot open %s file %s\n",
+ list_filename, list_type);
return false;
}
while (1) {
@@ -398,7 +400,7 @@ static bool parse_blacklist(struct regex_list *exclude_regexes,
if (str_size > 0) {
char *test_regex = strndup(line, str_size);
- status = add_regex(exclude_regexes, test_regex);
+ status = add_regex(regexes, test_regex);
if (!status)
break;
}
@@ -845,8 +847,9 @@ bool parse_options(int argc, char **argv,
}
break;
case OPT_BLACKLIST:
- if (!parse_blacklist(&settings->exclude_regexes,
- absolute_path(optarg)))
+ if (!parse_list(&settings->exclude_regexes,
+ absolute_path(optarg),
+ "blacklist"))
goto error;
break;
case OPT_LIST_ALL:
--
2.43.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH i-g-t v2 6/6] runner: Add hook-exec-allowlist to execute hooks selectively
2026-03-24 13:12 [PATCH i-g-t v2 0/6] RFC: Add attachments support Zbigniew Kempczyński
` (4 preceding siblings ...)
2026-03-24 13:12 ` [PATCH i-g-t v2 5/6] runner: Rename parsing function Zbigniew Kempczyński
@ 2026-03-24 13:12 ` Zbigniew Kempczyński
2026-03-30 8:28 ` Krzysztof Karas
2026-03-30 17:19 ` Gustavo Sousa
2026-03-24 19:48 ` ✓ Xe.CI.BAT: success for RFC: Add attachments support (rev2) Patchwork
` (4 subsequent siblings)
10 siblings, 2 replies; 27+ messages in thread
From: Zbigniew Kempczyński @ 2026-03-24 13:12 UTC (permalink / raw)
To: igt-dev
Cc: Zbigniew Kempczyński, Kamil Konieczny, Ryszard Knop,
Krzysztof Karas
Hook scripts like GuC log copy takes few seconds to complete. This would
lead to large increase of CI execution time. Add -a/--hook-exec-allowlist
argument to igt_runner to pass file with regexps which matched will
allow executing hook scripts. Syntax of this file is same to blocklists.
Some limitation of this code is hooks will be executed with subtest
granularity - if multiple_mode is used regexp will compare only first
subtest so all subtest in group will call hooks. This is likely not
a big problem as CI executes each subtest individually (without
multiple_mode).
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Cc: Ryszard Knop <ryszard.knop@intel.com>
Cc: Krzysztof Karas <krzysztof.karas@intel.com>
---
runner/executor.c | 32 +++++++++++++++++++++++++++++---
runner/settings.c | 14 +++++++++++++-
runner/settings.h | 2 ++
3 files changed, 44 insertions(+), 4 deletions(-)
diff --git a/runner/executor.c b/runner/executor.c
index bc421f7dbb..ab34ed8258 100644
--- a/runner/executor.c
+++ b/runner/executor.c
@@ -1615,6 +1615,18 @@ static int monitor_output(pid_t child,
return killed;
}
+static bool matches_any(const char *str, struct regex_list *list)
+{
+ size_t i;
+
+ for (i = 0; i < list->size; i++) {
+ if (g_regex_match(list->regexes[i], str, 0, NULL))
+ return true;
+ }
+
+ return false;
+}
+
static void __attribute__((noreturn))
execute_test_process(int outfd, int errfd, int socketfd,
struct settings *settings,
@@ -1623,6 +1635,7 @@ execute_test_process(int outfd, int errfd, int socketfd,
struct igt_vec arg_vec;
char *arg;
size_t rootlen;
+ bool use_hooks = true;
dup2(outfd, STDOUT_FILENO);
dup2(errfd, STDERR_FILENO);
@@ -1646,11 +1659,24 @@ execute_test_process(int outfd, int errfd, int socketfd,
arg = strdup("--run-subtest");
igt_vec_push(&arg_vec, &arg);
- if ((dynbegin = strchr(entry->subtests[0], '@')) != NULL)
+ if ((dynbegin = strchr(entry->subtests[0], '@')) != NULL) {
argsize = dynbegin - entry->subtests[0];
- else
+ } else {
argsize = strlen(entry->subtests[0]);
+ if (settings->use_hook_allow_regexes) {
+ char *piglit_name;
+
+ asprintf(&piglit_name, "igt@%s@%s",
+ entry->binary, entry->subtests[0]);
+
+ if (!matches_any(piglit_name, &settings->hook_allow_regexes))
+ use_hooks = false;
+
+ free(piglit_name);
+ }
+ }
+
arg = malloc(argsize + 1);
memcpy(arg, entry->subtests[0], argsize);
arg[argsize] = '\0';
@@ -1677,7 +1703,7 @@ execute_test_process(int outfd, int errfd, int socketfd,
}
}
- for (size_t i = 0; i < igt_vec_length(&settings->hook_strs); i++) {
+ for (size_t i = 0; use_hooks && i < igt_vec_length(&settings->hook_strs); i++) {
arg = strdup("--hook");
igt_vec_push(&arg_vec, &arg);
arg = strdup(*((char **)igt_vec_elem(&settings->hook_strs, i)));
diff --git a/runner/settings.c b/runner/settings.c
index 7c29f2d3ab..eb3d05405c 100644
--- a/runner/settings.c
+++ b/runner/settings.c
@@ -50,6 +50,7 @@ enum {
OPT_TIMEOUT = 'c',
OPT_WATCHDOG = 'g',
OPT_BLACKLIST = 'b',
+ OPT_HOOK_EXEC_ALLOWLIST = 'a',
OPT_LIST_ALL = 'L',
};
@@ -320,6 +321,9 @@ static const char *usage_str =
" Forward HOOK_STR to the --hook option of each test.\n"
" --help-hook\n"
" Show detailed usage information for --hook.\n"
+ " -a, --hook-exec-allowlist FILENAME\n"
+ " Tests name regexes from FILENAME for which hooks scripts\n"
+ " may be executed\n"
"\n"
" [test_root] Directory that contains the IGT tests. The environment\n"
" variable IGT_TEST_ROOT will be used if set, overriding\n"
@@ -715,6 +719,7 @@ bool parse_options(int argc, char **argv,
{"dmesg-warn-level", required_argument, NULL, OPT_DMESG_WARN_LEVEL},
{"prune-mode", required_argument, NULL, OPT_PRUNE_MODE},
{"blacklist", required_argument, NULL, OPT_BLACKLIST},
+ {"hook-exec-allowlist", required_argument, NULL, OPT_HOOK_EXEC_ALLOWLIST},
{"list-all", no_argument, NULL, OPT_LIST_ALL},
{ 0, 0, 0, 0},
};
@@ -726,7 +731,7 @@ bool parse_options(int argc, char **argv,
settings->dmesg_warn_level = -1;
settings->prune_mode = -1;
- while ((c = getopt_long(argc, argv, "hn:dt:x:e:fk::sl:omb:L",
+ while ((c = getopt_long(argc, argv, "hn:dt:x:e:fk::sl:omb:a:L",
long_options, NULL)) != -1) {
switch (c) {
case OPT_VERSION:
@@ -852,6 +857,13 @@ bool parse_options(int argc, char **argv,
"blacklist"))
goto error;
break;
+ case OPT_HOOK_EXEC_ALLOWLIST:
+ if (!parse_list(&settings->hook_allow_regexes,
+ absolute_path(optarg),
+ "hook-exec-allowlist"))
+ goto error;
+ settings->use_hook_allow_regexes = true;
+ break;
case OPT_LIST_ALL:
settings->list_all = true;
break;
diff --git a/runner/settings.h b/runner/settings.h
index 6c58c3282c..b81f6adc6d 100644
--- a/runner/settings.h
+++ b/runner/settings.h
@@ -59,6 +59,8 @@ struct settings {
bool allow_non_root;
struct regex_list include_regexes;
struct regex_list exclude_regexes;
+ struct regex_list hook_allow_regexes;
+ bool use_hook_allow_regexes;
struct igt_list_head env_vars;
struct igt_vec hook_strs;
bool facts;
--
2.43.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* ✓ Xe.CI.BAT: success for RFC: Add attachments support (rev2)
2026-03-24 13:12 [PATCH i-g-t v2 0/6] RFC: Add attachments support Zbigniew Kempczyński
` (5 preceding siblings ...)
2026-03-24 13:12 ` [PATCH i-g-t v2 6/6] runner: Add hook-exec-allowlist to execute hooks selectively Zbigniew Kempczyński
@ 2026-03-24 19:48 ` Patchwork
2026-03-24 21:10 ` ✓ i915.CI.BAT: " Patchwork
` (3 subsequent siblings)
10 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2026-03-24 19:48 UTC (permalink / raw)
To: Zbigniew Kempczyński; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 3092 bytes --]
== Series Details ==
Series: RFC: Add attachments support (rev2)
URL : https://patchwork.freedesktop.org/series/163548/
State : success
== Summary ==
CI Bug Log - changes from XEIGT_8824_BAT -> XEIGTPW_14844_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (14 -> 14)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in XEIGTPW_14844_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1:
- bat-adlp-7: [PASS][1] -> [DMESG-WARN][2] ([Intel XE#7483])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8824/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14844/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html
* igt@xe_waitfence@engine:
- bat-dg2-oem2: [PASS][3] -> [FAIL][4] ([Intel XE#6519])
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8824/bat-dg2-oem2/igt@xe_waitfence@engine.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14844/bat-dg2-oem2/igt@xe_waitfence@engine.html
#### Possible fixes ####
* igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1:
- bat-adlp-7: [DMESG-WARN][5] ([Intel XE#7483]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8824/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14844/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1.html
* igt@xe_waitfence@reltime:
- bat-dg2-oem2: [FAIL][7] ([Intel XE#6520]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8824/bat-dg2-oem2/igt@xe_waitfence@reltime.html
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14844/bat-dg2-oem2/igt@xe_waitfence@reltime.html
#### Warnings ####
* igt@core_hotunplug@unbind-rebind:
- bat-bmg-2: [DMESG-WARN][9] ([Intel XE#7433]) -> [ABORT][10] ([Intel XE#7249] / [Intel XE#7578])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8824/bat-bmg-2/igt@core_hotunplug@unbind-rebind.html
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14844/bat-bmg-2/igt@core_hotunplug@unbind-rebind.html
[Intel XE#6519]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6519
[Intel XE#6520]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6520
[Intel XE#7249]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7249
[Intel XE#7433]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7433
[Intel XE#7483]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7483
[Intel XE#7578]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7578
Build changes
-------------
* IGT: IGT_8824 -> IGTPW_14844
IGTPW_14844: 14844
IGT_8824: 8824
xe-4774-0be244ee3139de3578e9acc56e1b917a4bd162cd: 0be244ee3139de3578e9acc56e1b917a4bd162cd
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14844/index.html
[-- Attachment #2: Type: text/html, Size: 3826 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* ✓ i915.CI.BAT: success for RFC: Add attachments support (rev2)
2026-03-24 13:12 [PATCH i-g-t v2 0/6] RFC: Add attachments support Zbigniew Kempczyński
` (6 preceding siblings ...)
2026-03-24 19:48 ` ✓ Xe.CI.BAT: success for RFC: Add attachments support (rev2) Patchwork
@ 2026-03-24 21:10 ` Patchwork
2026-03-25 7:25 ` ✗ i915.CI.Full: failure " Patchwork
` (2 subsequent siblings)
10 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2026-03-24 21:10 UTC (permalink / raw)
To: Zbigniew Kempczyński; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 1820 bytes --]
== Series Details ==
Series: RFC: Add attachments support (rev2)
URL : https://patchwork.freedesktop.org/series/163548/
State : success
== Summary ==
CI Bug Log - changes from IGT_8824 -> IGTPW_14844
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/index.html
Participating hosts (42 -> 40)
------------------------------
Missing (2): bat-dg2-13 fi-snb-2520m
Known issues
------------
Here are the changes found in IGTPW_14844 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live@workarounds:
- bat-dg2-14: [PASS][1] -> [DMESG-FAIL][2] ([i915#12061]) +1 other test dmesg-fail
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/bat-dg2-14/igt@i915_selftest@live@workarounds.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/bat-dg2-14/igt@i915_selftest@live@workarounds.html
#### Possible fixes ####
* igt@i915_selftest@live@workarounds:
- bat-dg2-9: [DMESG-FAIL][3] ([i915#12061]) -> [PASS][4] +1 other test pass
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/bat-dg2-9/igt@i915_selftest@live@workarounds.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/bat-dg2-9/igt@i915_selftest@live@workarounds.html
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_8824 -> IGTPW_14844
CI-20190529: 20190529
CI_DRM_18203: 0be244ee3139de3578e9acc56e1b917a4bd162cd @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_14844: 14844
IGT_8824: 8824
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/index.html
[-- Attachment #2: Type: text/html, Size: 2509 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* ✗ i915.CI.Full: failure for RFC: Add attachments support (rev2)
2026-03-24 13:12 [PATCH i-g-t v2 0/6] RFC: Add attachments support Zbigniew Kempczyński
` (7 preceding siblings ...)
2026-03-24 21:10 ` ✓ i915.CI.BAT: " Patchwork
@ 2026-03-25 7:25 ` Patchwork
2026-03-25 10:09 ` ✓ Xe.CI.FULL: success " Patchwork
2026-03-30 9:01 ` [PATCH i-g-t v2 0/6] RFC: Add attachments support Knop, Ryszard
10 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2026-03-25 7:25 UTC (permalink / raw)
To: Zbigniew Kempczyński; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 135267 bytes --]
== Series Details ==
Series: RFC: Add attachments support (rev2)
URL : https://patchwork.freedesktop.org/series/163548/
State : failure
== Summary ==
CI Bug Log - changes from IGT_8824_full -> IGTPW_14844_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_14844_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_14844_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/index.html
Participating hosts (10 -> 9)
------------------------------
Missing (1): shard-glk11
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_14844_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
- shard-snb: [PASS][1] -> [FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-snb1/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-snb1/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
Known issues
------------
Here are the changes found in IGTPW_14844_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@api_intel_bb@blit-reloc-keep-cache:
- shard-dg2: NOTRUN -> [SKIP][3] ([i915#8411])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-10/igt@api_intel_bb@blit-reloc-keep-cache.html
* igt@api_intel_bb@crc32:
- shard-rkl: NOTRUN -> [SKIP][4] ([i915#6230])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@api_intel_bb@crc32.html
* igt@gem_bad_reloc@negative-reloc-lut:
- shard-rkl: NOTRUN -> [SKIP][5] ([i915#3281]) +10 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@gem_bad_reloc@negative-reloc-lut.html
* igt@gem_basic@multigpu-create-close:
- shard-rkl: NOTRUN -> [SKIP][6] ([i915#14544] / [i915#7697])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@gem_basic@multigpu-create-close.html
- shard-dg1: NOTRUN -> [SKIP][7] ([i915#7697])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-18/igt@gem_basic@multigpu-create-close.html
- shard-tglu: NOTRUN -> [SKIP][8] ([i915#7697])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-6/igt@gem_basic@multigpu-create-close.html
- shard-mtlp: NOTRUN -> [SKIP][9] ([i915#7697])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-4/igt@gem_basic@multigpu-create-close.html
- shard-dg2: NOTRUN -> [SKIP][10] ([i915#7697])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@gem_basic@multigpu-create-close.html
* igt@gem_ccs@block-copy-compressed:
- shard-tglu-1: NOTRUN -> [SKIP][11] ([i915#3555] / [i915#9323])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@gem_ccs@block-copy-compressed.html
* igt@gem_ccs@ctrl-surf-copy-new-ctx:
- shard-tglu: NOTRUN -> [SKIP][12] ([i915#9323])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-6/igt@gem_ccs@ctrl-surf-copy-new-ctx.html
* igt@gem_ccs@large-ctrl-surf-copy:
- shard-rkl: NOTRUN -> [SKIP][13] ([i915#13008])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@gem_ccs@large-ctrl-surf-copy.html
- shard-tglu: NOTRUN -> [SKIP][14] ([i915#13008])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-8/igt@gem_ccs@large-ctrl-surf-copy.html
- shard-mtlp: NOTRUN -> [SKIP][15] ([i915#13008])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-8/igt@gem_ccs@large-ctrl-surf-copy.html
* igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-lmem0-lmem0:
- shard-dg2: NOTRUN -> [INCOMPLETE][16] ([i915#12392] / [i915#13356])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-5/igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-lmem0-lmem0.html
* igt@gem_create@create-ext-cpu-access-big:
- shard-rkl: NOTRUN -> [SKIP][17] ([i915#6335])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-4/igt@gem_create@create-ext-cpu-access-big.html
* igt@gem_create@create-ext-set-pat:
- shard-dg2: NOTRUN -> [SKIP][18] ([i915#8562])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@gem_create@create-ext-set-pat.html
- shard-tglu: NOTRUN -> [SKIP][19] ([i915#8562])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-9/igt@gem_create@create-ext-set-pat.html
* igt@gem_ctx_isolation@preservation-s3@rcs0:
- shard-glk: [PASS][20] -> [INCOMPLETE][21] ([i915#13356])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-glk4/igt@gem_ctx_isolation@preservation-s3@rcs0.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk5/igt@gem_ctx_isolation@preservation-s3@rcs0.html
* igt@gem_ctx_param@set-priority-not-supported:
- shard-tglu-1: NOTRUN -> [SKIP][22] +19 other tests skip
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@gem_ctx_param@set-priority-not-supported.html
* igt@gem_ctx_persistence@heartbeat-many:
- shard-dg1: NOTRUN -> [SKIP][23] ([i915#8555])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-17/igt@gem_ctx_persistence@heartbeat-many.html
- shard-mtlp: NOTRUN -> [SKIP][24] ([i915#8555])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-4/igt@gem_ctx_persistence@heartbeat-many.html
* igt@gem_ctx_persistence@heartbeat-stop:
- shard-dg2: NOTRUN -> [SKIP][25] ([i915#8555]) +2 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-5/igt@gem_ctx_persistence@heartbeat-stop.html
* igt@gem_ctx_persistence@legacy-engines-persistence:
- shard-snb: NOTRUN -> [SKIP][26] ([i915#1099])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-snb1/igt@gem_ctx_persistence@legacy-engines-persistence.html
* igt@gem_ctx_sseu@engines:
- shard-dg2: NOTRUN -> [SKIP][27] ([i915#280])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-1/igt@gem_ctx_sseu@engines.html
- shard-dg1: NOTRUN -> [SKIP][28] ([i915#280])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-17/igt@gem_ctx_sseu@engines.html
- shard-tglu: NOTRUN -> [SKIP][29] ([i915#280])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-3/igt@gem_ctx_sseu@engines.html
- shard-mtlp: NOTRUN -> [SKIP][30] ([i915#280])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-4/igt@gem_ctx_sseu@engines.html
* igt@gem_ctx_sseu@invalid-sseu:
- shard-rkl: NOTRUN -> [SKIP][31] ([i915#280]) +1 other test skip
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-3/igt@gem_ctx_sseu@invalid-sseu.html
* igt@gem_eio@in-flight-suspend:
- shard-rkl: NOTRUN -> [INCOMPLETE][32] ([i915#13390])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@gem_eio@in-flight-suspend.html
* igt@gem_eio@kms:
- shard-rkl: [PASS][33] -> [DMESG-WARN][34] ([i915#13363])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-3/igt@gem_eio@kms.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@gem_eio@kms.html
- shard-tglu: [PASS][35] -> [DMESG-WARN][36] ([i915#13363])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-tglu-9/igt@gem_eio@kms.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-10/igt@gem_eio@kms.html
* igt@gem_eio@unwedge-stress:
- shard-snb: NOTRUN -> [FAIL][37] ([i915#8898]) +1 other test fail
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-snb7/igt@gem_eio@unwedge-stress.html
* igt@gem_eio@unwedge-stress@blt:
- shard-mtlp: NOTRUN -> [SKIP][38] ([i915#15314])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-4/igt@gem_eio@unwedge-stress@blt.html
* igt@gem_exec_balancer@hog:
- shard-dg2: NOTRUN -> [SKIP][39] ([i915#4812])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@gem_exec_balancer@hog.html
- shard-dg1: NOTRUN -> [SKIP][40] ([i915#4812])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-14/igt@gem_exec_balancer@hog.html
- shard-mtlp: NOTRUN -> [SKIP][41] ([i915#4812])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-5/igt@gem_exec_balancer@hog.html
* igt@gem_exec_balancer@invalid-bonds:
- shard-dg2: NOTRUN -> [SKIP][42] ([i915#4036])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@gem_exec_balancer@invalid-bonds.html
* igt@gem_exec_balancer@parallel:
- shard-tglu: NOTRUN -> [SKIP][43] ([i915#4525]) +4 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-9/igt@gem_exec_balancer@parallel.html
* igt@gem_exec_balancer@parallel-contexts:
- shard-rkl: NOTRUN -> [SKIP][44] ([i915#4525]) +2 other tests skip
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@gem_exec_balancer@parallel-contexts.html
* igt@gem_exec_capture@capture@vecs0-lmem0:
- shard-dg2: NOTRUN -> [FAIL][45] ([i915#11965]) +4 other tests fail
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-7/igt@gem_exec_capture@capture@vecs0-lmem0.html
- shard-dg1: NOTRUN -> [FAIL][46] ([i915#11965]) +2 other tests fail
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-18/igt@gem_exec_capture@capture@vecs0-lmem0.html
* igt@gem_exec_flush@basic-uc-ro-default:
- shard-dg2: NOTRUN -> [SKIP][47] ([i915#3539] / [i915#4852]) +1 other test skip
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@gem_exec_flush@basic-uc-ro-default.html
- shard-dg1: NOTRUN -> [SKIP][48] ([i915#3539] / [i915#4852])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-19/igt@gem_exec_flush@basic-uc-ro-default.html
* igt@gem_exec_reloc@basic-cpu-read-active:
- shard-dg2: NOTRUN -> [SKIP][49] ([i915#3281]) +7 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-7/igt@gem_exec_reloc@basic-cpu-read-active.html
- shard-dg1: NOTRUN -> [SKIP][50] ([i915#3281]) +3 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-16/igt@gem_exec_reloc@basic-cpu-read-active.html
* igt@gem_exec_reloc@basic-gtt-noreloc:
- shard-mtlp: NOTRUN -> [SKIP][51] ([i915#3281]) +3 other tests skip
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-7/igt@gem_exec_reloc@basic-gtt-noreloc.html
* igt@gem_exec_schedule@semaphore-power:
- shard-rkl: NOTRUN -> [SKIP][52] ([i915#14544] / [i915#7276])
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@gem_exec_schedule@semaphore-power.html
* igt@gem_fenced_exec_thrash@no-spare-fences-interruptible:
- shard-dg2: NOTRUN -> [SKIP][53] ([i915#4860])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@gem_fenced_exec_thrash@no-spare-fences-interruptible.html
* igt@gem_huc_copy@huc-copy:
- shard-glk: NOTRUN -> [SKIP][54] ([i915#2190])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk1/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_evict@dontneed-evict-race:
- shard-rkl: NOTRUN -> [SKIP][55] ([i915#4613] / [i915#7582])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@gem_lmem_evict@dontneed-evict-race.html
* igt@gem_lmem_swapping@heavy-random:
- shard-rkl: NOTRUN -> [SKIP][56] ([i915#4613]) +2 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-2/igt@gem_lmem_swapping@heavy-random.html
* igt@gem_lmem_swapping@parallel-random-verify-ccs:
- shard-dg1: NOTRUN -> [SKIP][57] ([i915#12193])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-16/igt@gem_lmem_swapping@parallel-random-verify-ccs.html
- shard-tglu: NOTRUN -> [SKIP][58] ([i915#4613]) +3 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-7/igt@gem_lmem_swapping@parallel-random-verify-ccs.html
- shard-mtlp: NOTRUN -> [SKIP][59] ([i915#4613]) +1 other test skip
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-1/igt@gem_lmem_swapping@parallel-random-verify-ccs.html
* igt@gem_lmem_swapping@parallel-random-verify-ccs@lmem0:
- shard-dg1: NOTRUN -> [SKIP][60] ([i915#4565])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-16/igt@gem_lmem_swapping@parallel-random-verify-ccs@lmem0.html
* igt@gem_lmem_swapping@random-engines:
- shard-glk: NOTRUN -> [SKIP][61] ([i915#4613]) +3 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk8/igt@gem_lmem_swapping@random-engines.html
* igt@gem_lmem_swapping@verify:
- shard-tglu-1: NOTRUN -> [SKIP][62] ([i915#4613]) +1 other test skip
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@gem_lmem_swapping@verify.html
* igt@gem_media_vme:
- shard-rkl: NOTRUN -> [SKIP][63] ([i915#284])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@gem_media_vme.html
* igt@gem_mmap@short-mmap:
- shard-dg1: NOTRUN -> [SKIP][64] ([i915#4083]) +1 other test skip
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-19/igt@gem_mmap@short-mmap.html
- shard-mtlp: NOTRUN -> [SKIP][65] ([i915#4083]) +1 other test skip
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-2/igt@gem_mmap@short-mmap.html
* igt@gem_mmap_gtt@cpuset-medium-copy:
- shard-mtlp: NOTRUN -> [SKIP][66] ([i915#4077]) +3 other tests skip
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-6/igt@gem_mmap_gtt@cpuset-medium-copy.html
* igt@gem_mmap_gtt@medium-copy-xy:
- shard-dg2: NOTRUN -> [SKIP][67] ([i915#4077]) +7 other tests skip
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@gem_mmap_gtt@medium-copy-xy.html
* igt@gem_mmap_wc@write-wc-read-gtt:
- shard-dg2: NOTRUN -> [SKIP][68] ([i915#4083]) +4 other tests skip
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-7/igt@gem_mmap_wc@write-wc-read-gtt.html
* igt@gem_partial_pwrite_pread@reads:
- shard-mtlp: NOTRUN -> [SKIP][69] ([i915#3282]) +1 other test skip
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-7/igt@gem_partial_pwrite_pread@reads.html
* igt@gem_partial_pwrite_pread@reads-uncached:
- shard-dg2: NOTRUN -> [SKIP][70] ([i915#3282]) +4 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-3/igt@gem_partial_pwrite_pread@reads-uncached.html
- shard-rkl: NOTRUN -> [SKIP][71] ([i915#3282]) +6 other tests skip
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-2/igt@gem_partial_pwrite_pread@reads-uncached.html
- shard-dg1: NOTRUN -> [SKIP][72] ([i915#3282]) +1 other test skip
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-19/igt@gem_partial_pwrite_pread@reads-uncached.html
* igt@gem_pwrite@basic-exhaustion:
- shard-tglu-1: NOTRUN -> [WARN][73] ([i915#2658])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@gem_pwrite@basic-exhaustion.html
* igt@gem_pxp@create-regular-buffer:
- shard-dg2: NOTRUN -> [SKIP][74] ([i915#4270]) +1 other test skip
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-8/igt@gem_pxp@create-regular-buffer.html
* igt@gem_pxp@create-regular-context-2:
- shard-dg1: NOTRUN -> [SKIP][75] ([i915#4270]) +1 other test skip
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-17/igt@gem_pxp@create-regular-context-2.html
* igt@gem_pxp@hw-rejects-pxp-buffer:
- shard-tglu-1: NOTRUN -> [SKIP][76] ([i915#13398])
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@gem_pxp@hw-rejects-pxp-buffer.html
* igt@gem_render_copy@y-tiled-mc-ccs-to-y-tiled-ccs:
- shard-mtlp: NOTRUN -> [SKIP][77] ([i915#8428]) +1 other test skip
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-2/igt@gem_render_copy@y-tiled-mc-ccs-to-y-tiled-ccs.html
* igt@gem_render_copy@yf-tiled-ccs-to-x-tiled:
- shard-dg2: NOTRUN -> [SKIP][78] ([i915#5190] / [i915#8428]) +4 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-7/igt@gem_render_copy@yf-tiled-ccs-to-x-tiled.html
* igt@gem_set_tiling_vs_blt@tiled-to-untiled:
- shard-dg2: NOTRUN -> [SKIP][79] ([i915#4079])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-3/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html
- shard-rkl: NOTRUN -> [SKIP][80] ([i915#8411])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html
- shard-dg1: NOTRUN -> [SKIP][81] ([i915#4079])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-14/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html
- shard-mtlp: NOTRUN -> [SKIP][82] ([i915#4079])
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-6/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html
* igt@gem_userptr_blits@dmabuf-unsync:
- shard-tglu: NOTRUN -> [SKIP][83] ([i915#3297]) +1 other test skip
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-7/igt@gem_userptr_blits@dmabuf-unsync.html
* igt@gem_userptr_blits@forbidden-operations:
- shard-dg1: NOTRUN -> [SKIP][84] ([i915#3282] / [i915#3297])
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-16/igt@gem_userptr_blits@forbidden-operations.html
* igt@gem_userptr_blits@map-fixed-invalidate:
- shard-dg2: NOTRUN -> [SKIP][85] ([i915#3297] / [i915#4880])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-1/igt@gem_userptr_blits@map-fixed-invalidate.html
- shard-dg1: NOTRUN -> [SKIP][86] ([i915#3297] / [i915#4880])
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-17/igt@gem_userptr_blits@map-fixed-invalidate.html
- shard-mtlp: NOTRUN -> [SKIP][87] ([i915#3297])
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-4/igt@gem_userptr_blits@map-fixed-invalidate.html
* igt@gem_userptr_blits@relocations:
- shard-rkl: NOTRUN -> [SKIP][88] ([i915#3281] / [i915#3297])
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-4/igt@gem_userptr_blits@relocations.html
* igt@gem_userptr_blits@unsync-overlap:
- shard-dg2: NOTRUN -> [SKIP][89] ([i915#3297]) +1 other test skip
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-8/igt@gem_userptr_blits@unsync-overlap.html
* igt@gem_userptr_blits@unsync-unmap-after-close:
- shard-rkl: NOTRUN -> [SKIP][90] ([i915#3297])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@gem_userptr_blits@unsync-unmap-after-close.html
* igt@gem_workarounds@suspend-resume:
- shard-glk: NOTRUN -> [INCOMPLETE][91] ([i915#13356] / [i915#14586])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk9/igt@gem_workarounds@suspend-resume.html
- shard-rkl: NOTRUN -> [INCOMPLETE][92] ([i915#13356])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-3/igt@gem_workarounds@suspend-resume.html
* igt@gem_workarounds@suspend-resume-fd:
- shard-rkl: [PASS][93] -> [INCOMPLETE][94] ([i915#13356])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-4/igt@gem_workarounds@suspend-resume-fd.html
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-3/igt@gem_workarounds@suspend-resume-fd.html
* igt@gen7_exec_parse@basic-offset:
- shard-dg2: NOTRUN -> [SKIP][95] +4 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@gen7_exec_parse@basic-offset.html
* igt@gen9_exec_parse@basic-rejected:
- shard-tglu: NOTRUN -> [SKIP][96] ([i915#2527] / [i915#2856]) +3 other tests skip
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-3/igt@gen9_exec_parse@basic-rejected.html
- shard-mtlp: NOTRUN -> [SKIP][97] ([i915#2856]) +3 other tests skip
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-4/igt@gen9_exec_parse@basic-rejected.html
* igt@gen9_exec_parse@bb-secure:
- shard-tglu-1: NOTRUN -> [SKIP][98] ([i915#2527] / [i915#2856]) +1 other test skip
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@gen9_exec_parse@bb-secure.html
* igt@gen9_exec_parse@bb-start-cmd:
- shard-dg1: NOTRUN -> [SKIP][99] ([i915#2527]) +3 other tests skip
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-19/igt@gen9_exec_parse@bb-start-cmd.html
* igt@gen9_exec_parse@valid-registers:
- shard-dg2: NOTRUN -> [SKIP][100] ([i915#2856]) +3 other tests skip
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-1/igt@gen9_exec_parse@valid-registers.html
- shard-rkl: NOTRUN -> [SKIP][101] ([i915#2527]) +4 other tests skip
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@gen9_exec_parse@valid-registers.html
* igt@i915_drm_fdinfo@virtual-busy-hang-all:
- shard-dg2: NOTRUN -> [SKIP][102] ([i915#14118])
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-8/igt@i915_drm_fdinfo@virtual-busy-hang-all.html
* igt@i915_module_load@fault-injection@i915_driver_mmio_probe:
- shard-dg1: NOTRUN -> [INCOMPLETE][103] ([i915#15481])
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-18/igt@i915_module_load@fault-injection@i915_driver_mmio_probe.html
* igt@i915_module_load@fault-injection@intel_connector_register:
- shard-glk10: NOTRUN -> [ABORT][104] ([i915#15342]) +1 other test abort
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk10/igt@i915_module_load@fault-injection@intel_connector_register.html
* igt@i915_module_load@fault-injection@intel_gt_init-enodev:
- shard-glk10: NOTRUN -> [SKIP][105] +204 other tests skip
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk10/igt@i915_module_load@fault-injection@intel_gt_init-enodev.html
* igt@i915_module_load@reload-no-display:
- shard-dg1: [PASS][106] -> [DMESG-WARN][107] ([i915#13029] / [i915#14545])
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg1-18/igt@i915_module_load@reload-no-display.html
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-12/igt@i915_module_load@reload-no-display.html
* igt@i915_pm_freq_api@freq-reset-multiple:
- shard-tglu-1: NOTRUN -> [SKIP][108] ([i915#8399]) +1 other test skip
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@i915_pm_freq_api@freq-reset-multiple.html
* igt@i915_pm_freq_api@freq-suspend@gt0:
- shard-dg2: [PASS][109] -> [ABORT][110] ([i915#15131]) +2 other tests abort
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg2-4/igt@i915_pm_freq_api@freq-suspend@gt0.html
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-10/igt@i915_pm_freq_api@freq-suspend@gt0.html
* igt@i915_pm_freq_mult@media-freq@gt0:
- shard-tglu-1: NOTRUN -> [SKIP][111] ([i915#6590]) +1 other test skip
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@i915_pm_freq_mult@media-freq@gt0.html
- shard-dg1: NOTRUN -> [SKIP][112] ([i915#6590]) +1 other test skip
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-13/igt@i915_pm_freq_mult@media-freq@gt0.html
* igt@i915_pm_freq_mult@media-freq@gt1:
- shard-mtlp: NOTRUN -> [SKIP][113] ([i915#6590]) +2 other tests skip
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-7/igt@i915_pm_freq_mult@media-freq@gt1.html
* igt@i915_suspend@fence-restore-untiled:
- shard-rkl: [PASS][114] -> [INCOMPLETE][115] ([i915#4817])
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-7/igt@i915_suspend@fence-restore-untiled.html
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@i915_suspend@fence-restore-untiled.html
- shard-glk: NOTRUN -> [INCOMPLETE][116] ([i915#4817])
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk6/igt@i915_suspend@fence-restore-untiled.html
* igt@intel_hwmon@hwmon-read:
- shard-rkl: NOTRUN -> [SKIP][117] ([i915#7707])
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-3/igt@intel_hwmon@hwmon-read.html
* igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy:
- shard-dg2: NOTRUN -> [SKIP][118] ([i915#4212]) +1 other test skip
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
* igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
- shard-rkl: NOTRUN -> [SKIP][119] ([i915#12454] / [i915#12712])
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html
- shard-tglu: NOTRUN -> [SKIP][120] ([i915#12454] / [i915#12712])
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-9/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html
* igt@kms_atomic@plane-primary-overlay-mutable-zpos:
- shard-tglu: NOTRUN -> [SKIP][121] ([i915#9531])
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-10/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
- shard-tglu: NOTRUN -> [SKIP][122] ([i915#1769] / [i915#3555])
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-10/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
* igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-3:
- shard-dg2: [PASS][123] -> [FAIL][124] ([i915#5956]) +1 other test fail
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg2-7/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-3.html
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-7/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-3.html
* igt@kms_big_fb@4-tiled-16bpp-rotate-180:
- shard-rkl: NOTRUN -> [SKIP][125] ([i915#14544] / [i915#5286])
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_big_fb@4-tiled-16bpp-rotate-180.html
* igt@kms_big_fb@4-tiled-8bpp-rotate-180:
- shard-tglu-1: NOTRUN -> [SKIP][126] ([i915#5286]) +3 other tests skip
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_big_fb@4-tiled-8bpp-rotate-180.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
- shard-tglu: NOTRUN -> [SKIP][127] ([i915#5286]) +8 other tests skip
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-8/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-rkl: NOTRUN -> [SKIP][128] ([i915#5286]) +7 other tests skip
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
- shard-dg1: NOTRUN -> [SKIP][129] ([i915#4538] / [i915#5286]) +4 other tests skip
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-16/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_big_fb@linear-64bpp-rotate-90:
- shard-rkl: NOTRUN -> [SKIP][130] ([i915#3638]) +2 other tests skip
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@kms_big_fb@linear-64bpp-rotate-90.html
- shard-dg1: NOTRUN -> [SKIP][131] ([i915#3638])
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-17/igt@kms_big_fb@linear-64bpp-rotate-90.html
* igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0-hflip:
- shard-tglu-1: NOTRUN -> [SKIP][132] ([i915#3828])
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip:
- shard-tglu: NOTRUN -> [SKIP][133] ([i915#3828]) +3 other tests skip
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-10/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip:
- shard-dg2: NOTRUN -> [SKIP][134] ([i915#3828]) +1 other test skip
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-8/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html
- shard-rkl: NOTRUN -> [SKIP][135] ([i915#3828]) +1 other test skip
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-4/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html
- shard-dg1: NOTRUN -> [SKIP][136] ([i915#3828]) +1 other test skip
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-19/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html
- shard-mtlp: NOTRUN -> [SKIP][137] ([i915#3828]) +1 other test skip
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-8/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip:
- shard-mtlp: NOTRUN -> [SKIP][138] +9 other tests skip
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-6/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
- shard-dg2: NOTRUN -> [SKIP][139] ([i915#4538] / [i915#5190]) +9 other tests skip
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-8/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
* igt@kms_big_fb@yf-tiled-64bpp-rotate-90:
- shard-rkl: NOTRUN -> [SKIP][140] +18 other tests skip
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@kms_big_fb@yf-tiled-64bpp-rotate-90.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0:
- shard-dg1: NOTRUN -> [SKIP][141] ([i915#4538]) +3 other tests skip
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-16/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0.html
* igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][142] ([i915#6095]) +70 other tests skip
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html
* igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2:
- shard-glk: NOTRUN -> [SKIP][143] +413 other tests skip
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk6/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-ccs@pipe-b-hdmi-a-3:
- shard-dg1: NOTRUN -> [SKIP][144] ([i915#6095]) +192 other tests skip
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-13/igt@kms_ccs@ccs-on-another-bo-y-tiled-ccs@pipe-b-hdmi-a-3.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1:
- shard-tglu: NOTRUN -> [SKIP][145] ([i915#6095]) +79 other tests skip
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-2/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1.html
* igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs:
- shard-dg2: NOTRUN -> [SKIP][146] ([i915#12313]) +1 other test skip
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
- shard-rkl: NOTRUN -> [SKIP][147] ([i915#12313]) +2 other tests skip
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-3/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
- shard-dg1: NOTRUN -> [SKIP][148] ([i915#12313]) +1 other test skip
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-14/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
- shard-mtlp: NOTRUN -> [SKIP][149] ([i915#12313]) +1 other test skip
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-5/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][150] ([i915#14544] / [i915#6095]) +2 other tests skip
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2.html
* igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][151] ([i915#6095]) +48 other tests skip
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-3.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs:
- shard-tglu-1: NOTRUN -> [SKIP][152] ([i915#12313]) +1 other test skip
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs.html
* igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-rc-ccs-cc@pipe-b-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][153] ([i915#6095]) +29 other tests skip
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-5/igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-rc-ccs-cc@pipe-b-edp-1.html
* igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][154] ([i915#10307] / [i915#6095]) +104 other tests skip
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-1.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-rkl: NOTRUN -> [SKIP][155] ([i915#12805])
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-1/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs@pipe-c-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][156] ([i915#14098] / [i915#14544] / [i915#6095]) +2 other tests skip
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs@pipe-c-hdmi-a-2.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-ccs:
- shard-glk10: NOTRUN -> [INCOMPLETE][157] ([i915#15582]) +1 other test incomplete
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk10/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs:
- shard-tglu: NOTRUN -> [SKIP][158] ([i915#12313]) +1 other test skip
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-8/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-c-hdmi-a-1:
- shard-tglu-1: NOTRUN -> [SKIP][159] ([i915#6095]) +29 other tests skip
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-c-hdmi-a-1.html
* igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-c-hdmi-a-1:
- shard-rkl: NOTRUN -> [SKIP][160] ([i915#14098] / [i915#6095]) +47 other tests skip
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-2/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-c-hdmi-a-1.html
* igt@kms_ccs@random-ccs-data-y-tiled-ccs:
- shard-snb: NOTRUN -> [SKIP][161] +142 other tests skip
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-snb6/igt@kms_ccs@random-ccs-data-y-tiled-ccs.html
* igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][162] ([i915#10307] / [i915#10434] / [i915#6095])
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-hdmi-a-1.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-tglu-1: NOTRUN -> [SKIP][163] ([i915#3742])
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][164] ([i915#13781]) +4 other tests skip
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-3/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3.html
* igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][165] ([i915#13783]) +4 other tests skip
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3.html
* igt@kms_chamelium_audio@hdmi-audio-edid:
- shard-tglu: NOTRUN -> [SKIP][166] ([i915#11151] / [i915#7828]) +8 other tests skip
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-3/igt@kms_chamelium_audio@hdmi-audio-edid.html
* igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats:
- shard-dg2: NOTRUN -> [SKIP][167] ([i915#11151] / [i915#7828]) +5 other tests skip
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats.html
* igt@kms_chamelium_hpd@dp-hpd-storm:
- shard-tglu-1: NOTRUN -> [SKIP][168] ([i915#11151] / [i915#7828]) +4 other tests skip
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_chamelium_hpd@dp-hpd-storm.html
* igt@kms_chamelium_hpd@vga-hpd-fast:
- shard-rkl: NOTRUN -> [SKIP][169] ([i915#11151] / [i915#7828]) +5 other tests skip
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-3/igt@kms_chamelium_hpd@vga-hpd-fast.html
- shard-dg1: NOTRUN -> [SKIP][170] ([i915#11151] / [i915#7828]) +1 other test skip
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-14/igt@kms_chamelium_hpd@vga-hpd-fast.html
- shard-mtlp: NOTRUN -> [SKIP][171] ([i915#11151] / [i915#7828]) +1 other test skip
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-5/igt@kms_chamelium_hpd@vga-hpd-fast.html
* igt@kms_color@deep-color:
- shard-rkl: NOTRUN -> [SKIP][172] ([i915#12655] / [i915#3555])
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-2/igt@kms_color@deep-color.html
* igt@kms_content_protection@atomic-dpms:
- shard-dg2: NOTRUN -> [SKIP][173] ([i915#15865]) +1 other test skip
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_content_protection@atomic-dpms.html
- shard-dg1: NOTRUN -> [SKIP][174] ([i915#15865])
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-13/igt@kms_content_protection@atomic-dpms.html
- shard-tglu: NOTRUN -> [SKIP][175] ([i915#15865]) +3 other tests skip
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-9/igt@kms_content_protection@atomic-dpms.html
- shard-mtlp: NOTRUN -> [SKIP][176] ([i915#15865])
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-7/igt@kms_content_protection@atomic-dpms.html
* igt@kms_content_protection@content-type-change:
- shard-tglu-1: NOTRUN -> [SKIP][177] ([i915#15865])
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_content_protection@content-type-change.html
* igt@kms_content_protection@dp-mst-lic-type-0:
- shard-tglu: NOTRUN -> [SKIP][178] ([i915#15330] / [i915#3116] / [i915#3299])
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-5/igt@kms_content_protection@dp-mst-lic-type-0.html
* igt@kms_content_protection@dp-mst-lic-type-1:
- shard-tglu-1: NOTRUN -> [SKIP][179] ([i915#15330] / [i915#3116] / [i915#3299])
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_content_protection@dp-mst-lic-type-1.html
* igt@kms_content_protection@dp-mst-type-0:
- shard-rkl: NOTRUN -> [SKIP][180] ([i915#15330] / [i915#3116])
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@kms_content_protection@dp-mst-type-0.html
* igt@kms_content_protection@mei-interface:
- shard-rkl: NOTRUN -> [SKIP][181] ([i915#15865]) +3 other tests skip
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-4/igt@kms_content_protection@mei-interface.html
* igt@kms_cursor_crc@cursor-offscreen-512x512:
- shard-rkl: NOTRUN -> [SKIP][182] ([i915#13049]) +2 other tests skip
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@kms_cursor_crc@cursor-offscreen-512x512.html
* igt@kms_cursor_crc@cursor-onscreen-128x42:
- shard-rkl: [PASS][183] -> [FAIL][184] ([i915#13566])
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-4/igt@kms_cursor_crc@cursor-onscreen-128x42.html
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-2/igt@kms_cursor_crc@cursor-onscreen-128x42.html
* igt@kms_cursor_crc@cursor-onscreen-128x42@pipe-a-hdmi-a-1:
- shard-rkl: NOTRUN -> [FAIL][185] ([i915#13566]) +2 other tests fail
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-2/igt@kms_cursor_crc@cursor-onscreen-128x42@pipe-a-hdmi-a-1.html
* igt@kms_cursor_crc@cursor-onscreen-256x85:
- shard-tglu: [PASS][186] -> [FAIL][187] ([i915#13566]) +5 other tests fail
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-tglu-6/igt@kms_cursor_crc@cursor-onscreen-256x85.html
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-9/igt@kms_cursor_crc@cursor-onscreen-256x85.html
* igt@kms_cursor_crc@cursor-random-64x21:
- shard-tglu: NOTRUN -> [FAIL][188] ([i915#13566]) +1 other test fail
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-10/igt@kms_cursor_crc@cursor-random-64x21.html
* igt@kms_cursor_crc@cursor-rapid-movement-256x85:
- shard-mtlp: NOTRUN -> [SKIP][189] ([i915#8814]) +1 other test skip
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-6/igt@kms_cursor_crc@cursor-rapid-movement-256x85.html
* igt@kms_cursor_crc@cursor-rapid-movement-32x32:
- shard-rkl: NOTRUN -> [SKIP][190] ([i915#3555]) +3 other tests skip
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html
- shard-tglu: NOTRUN -> [SKIP][191] ([i915#3555]) +2 other tests skip
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-7/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x512:
- shard-dg2: NOTRUN -> [SKIP][192] ([i915#13049] / [i915#3359])
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-10/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
- shard-tglu-1: NOTRUN -> [SKIP][193] ([i915#13049])
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
* igt@kms_cursor_crc@cursor-sliding-512x512:
- shard-dg2: NOTRUN -> [SKIP][194] ([i915#13049]) +1 other test skip
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@kms_cursor_crc@cursor-sliding-512x512.html
- shard-dg1: NOTRUN -> [SKIP][195] ([i915#13049])
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-19/igt@kms_cursor_crc@cursor-sliding-512x512.html
- shard-tglu: NOTRUN -> [SKIP][196] ([i915#13049])
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-9/igt@kms_cursor_crc@cursor-sliding-512x512.html
- shard-mtlp: NOTRUN -> [SKIP][197] ([i915#13049])
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-8/igt@kms_cursor_crc@cursor-sliding-512x512.html
* igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
- shard-mtlp: NOTRUN -> [SKIP][198] ([i915#9809])
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-5/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- shard-tglu: NOTRUN -> [SKIP][199] ([i915#4103])
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-9/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size:
- shard-tglu-1: NOTRUN -> [SKIP][200] ([i915#4103]) +2 other tests skip
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html
* igt@kms_cursor_legacy@cursora-vs-flipb-toggle:
- shard-rkl: NOTRUN -> [SKIP][201] ([i915#14544]) +2 other tests skip
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_cursor_legacy@cursora-vs-flipb-toggle.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions:
- shard-dg2: NOTRUN -> [SKIP][202] ([i915#13046] / [i915#5354]) +2 other tests skip
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-glk: NOTRUN -> [FAIL][203] ([i915#15804])
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot:
- shard-tglu: NOTRUN -> [SKIP][204] ([i915#9067])
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-6/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
- shard-rkl: NOTRUN -> [SKIP][205] ([i915#4103])
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-3/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
* igt@kms_dirtyfb@psr-dirtyfb-ioctl:
- shard-tglu: NOTRUN -> [SKIP][206] ([i915#9723])
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-2/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html
* igt@kms_display_modes@extended-mode-basic:
- shard-rkl: NOTRUN -> [SKIP][207] ([i915#13691])
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@kms_display_modes@extended-mode-basic.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc:
- shard-rkl: NOTRUN -> [SKIP][208] ([i915#3555] / [i915#3804])
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-4/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
- shard-dg1: NOTRUN -> [SKIP][209] ([i915#3555])
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-17/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
- shard-tglu: NOTRUN -> [SKIP][210] ([i915#1769] / [i915#3555] / [i915#3804])
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-10/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1:
- shard-tglu: NOTRUN -> [SKIP][211] ([i915#3804])
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-10/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][212] ([i915#3804])
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-4/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-2.html
* igt@kms_dp_link_training@uhbr-mst:
- shard-rkl: NOTRUN -> [SKIP][213] ([i915#13748])
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@kms_dp_link_training@uhbr-mst.html
* igt@kms_dp_linktrain_fallback@dp-fallback:
- shard-rkl: NOTRUN -> [SKIP][214] ([i915#13707] / [i915#14544])
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_dp_linktrain_fallback@dp-fallback.html
* igt@kms_dp_linktrain_fallback@dsc-fallback:
- shard-dg1: NOTRUN -> [SKIP][215] ([i915#13707])
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-17/igt@kms_dp_linktrain_fallback@dsc-fallback.html
- shard-tglu: NOTRUN -> [SKIP][216] ([i915#13707]) +1 other test skip
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-7/igt@kms_dp_linktrain_fallback@dsc-fallback.html
- shard-mtlp: NOTRUN -> [SKIP][217] ([i915#13707])
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-1/igt@kms_dp_linktrain_fallback@dsc-fallback.html
* igt@kms_dsc@dsc-with-bpc:
- shard-rkl: NOTRUN -> [SKIP][218] ([i915#3555] / [i915#3840])
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@kms_dsc@dsc-with-bpc.html
* igt@kms_dsc@dsc-with-output-formats:
- shard-tglu: NOTRUN -> [SKIP][219] ([i915#3555] / [i915#3840])
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-6/igt@kms_dsc@dsc-with-output-formats.html
* igt@kms_dsc@dsc-with-output-formats-with-bpc:
- shard-dg2: NOTRUN -> [SKIP][220] ([i915#3840] / [i915#9053])
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-8/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
- shard-tglu: NOTRUN -> [SKIP][221] ([i915#3840] / [i915#9053])
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-8/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
* igt@kms_feature_discovery@display-2x:
- shard-rkl: NOTRUN -> [SKIP][222] ([i915#1839]) +1 other test skip
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@kms_feature_discovery@display-2x.html
* igt@kms_feature_discovery@display-3x:
- shard-dg1: NOTRUN -> [SKIP][223] ([i915#1839])
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-17/igt@kms_feature_discovery@display-3x.html
- shard-tglu: NOTRUN -> [SKIP][224] ([i915#1839])
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-7/igt@kms_feature_discovery@display-3x.html
- shard-mtlp: NOTRUN -> [SKIP][225] ([i915#1839])
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-1/igt@kms_feature_discovery@display-3x.html
* igt@kms_feature_discovery@display-4x:
- shard-tglu-1: NOTRUN -> [SKIP][226] ([i915#1839])
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_feature_discovery@display-4x.html
* igt@kms_feature_discovery@psr1:
- shard-tglu: NOTRUN -> [SKIP][227] ([i915#658])
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-2/igt@kms_feature_discovery@psr1.html
* igt@kms_feature_discovery@psr2:
- shard-rkl: NOTRUN -> [SKIP][228] ([i915#658])
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-2/igt@kms_feature_discovery@psr2.html
* igt@kms_fence_pin_leak:
- shard-dg2: NOTRUN -> [SKIP][229] ([i915#4881])
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-7/igt@kms_fence_pin_leak.html
* igt@kms_flip@2x-blocking-absolute-wf_vblank:
- shard-tglu: NOTRUN -> [SKIP][230] ([i915#3637] / [i915#9934]) +7 other tests skip
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-8/igt@kms_flip@2x-blocking-absolute-wf_vblank.html
* igt@kms_flip@2x-flip-vs-dpms:
- shard-tglu-1: NOTRUN -> [SKIP][231] ([i915#3637] / [i915#9934]) +2 other tests skip
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_flip@2x-flip-vs-dpms.html
* igt@kms_flip@2x-flip-vs-dpms-on-nop:
- shard-tglu: NOTRUN -> [SKIP][232] ([i915#9934])
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-8/igt@kms_flip@2x-flip-vs-dpms-on-nop.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
- shard-mtlp: NOTRUN -> [SKIP][233] ([i915#3637] / [i915#9934]) +2 other tests skip
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html
* igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1:
- shard-snb: [PASS][234] -> [TIMEOUT][235] ([i915#14033]) +1 other test timeout
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-snb1/igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1.html
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-snb4/igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1.html
* igt@kms_flip@2x-plain-flip:
- shard-rkl: NOTRUN -> [SKIP][236] ([i915#9934]) +8 other tests skip
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-3/igt@kms_flip@2x-plain-flip.html
- shard-dg1: NOTRUN -> [SKIP][237] ([i915#9934]) +2 other tests skip
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-14/igt@kms_flip@2x-plain-flip.html
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible:
- shard-dg2: NOTRUN -> [SKIP][238] ([i915#9934]) +5 other tests skip
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-3/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible.html
* igt@kms_flip@flip-vs-fences-interruptible:
- shard-dg2: NOTRUN -> [SKIP][239] ([i915#8381])
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@kms_flip@flip-vs-fences-interruptible.html
- shard-dg1: NOTRUN -> [SKIP][240] ([i915#8381])
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-19/igt@kms_flip@flip-vs-fences-interruptible.html
- shard-mtlp: NOTRUN -> [SKIP][241] ([i915#8381])
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-8/igt@kms_flip@flip-vs-fences-interruptible.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
- shard-dg2: NOTRUN -> [SKIP][242] ([i915#15643]) +1 other test skip
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-1/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
- shard-rkl: NOTRUN -> [SKIP][243] ([i915#15643]) +3 other tests skip
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
- shard-dg1: NOTRUN -> [SKIP][244] ([i915#15643]) +1 other test skip
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-17/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
- shard-mtlp: NOTRUN -> [SKIP][245] ([i915#15643]) +1 other test skip
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-4/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling:
- shard-dg2: NOTRUN -> [SKIP][246] ([i915#15643] / [i915#5190])
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling:
- shard-tglu: NOTRUN -> [SKIP][247] ([i915#15643]) +6 other tests skip
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-9/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling:
- shard-mtlp: NOTRUN -> [SKIP][248] ([i915#3555] / [i915#8810] / [i915#8813]) +1 other test skip
[248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-2/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-pwrite:
- shard-dg1: [PASS][249] -> [DMESG-WARN][250] ([i915#4423]) +1 other test dmesg-warn
[249]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg1-14/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-pwrite.html
[250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-17/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-dg2: NOTRUN -> [SKIP][251] ([i915#8708]) +13 other tests skip
[251]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-8/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt:
- shard-rkl: NOTRUN -> [SKIP][252] ([i915#1825]) +40 other tests skip
[252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc:
- shard-rkl: NOTRUN -> [SKIP][253] ([i915#14544] / [i915#1825]) +1 other test skip
[253]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-gtt:
- shard-dg1: NOTRUN -> [SKIP][254] ([i915#8708]) +5 other tests skip
[254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-16/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbc-tiling-4:
- shard-tglu-1: NOTRUN -> [SKIP][255] ([i915#5439])
[255]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_frontbuffer_tracking@fbc-tiling-4.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-wc:
- shard-rkl: NOTRUN -> [SKIP][256] ([i915#15102]) +1 other test skip
[256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-blt:
- shard-dg2: NOTRUN -> [SKIP][257] ([i915#15102]) +1 other test skip
[257]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-gtt:
- shard-dg2: NOTRUN -> [SKIP][258] ([i915#15104])
[258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-rte:
- shard-rkl: NOTRUN -> [SKIP][259] ([i915#15102] / [i915#3023]) +20 other tests skip
[259]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-move:
- shard-dg2: NOTRUN -> [SKIP][260] ([i915#5354]) +31 other tests skip
[260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-move.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt:
- shard-dg1: NOTRUN -> [SKIP][261] ([i915#15102] / [i915#3458]) +7 other tests skip
[261]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-suspend:
- shard-dg2: NOTRUN -> [SKIP][262] ([i915#10433] / [i915#15102] / [i915#3458])
[262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html
* igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-render:
- shard-tglu: NOTRUN -> [SKIP][263] ([i915#15102]) +23 other tests skip
[263]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-2/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-pwrite:
- shard-dg1: NOTRUN -> [SKIP][264] ([i915#15102]) +1 other test skip
[264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-12/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc:
- shard-rkl: NOTRUN -> [SKIP][265] ([i915#14544] / [i915#15102] / [i915#3023])
[265]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt:
- shard-mtlp: NOTRUN -> [SKIP][266] ([i915#8708]) +4 other tests skip
[266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-render:
- shard-mtlp: NOTRUN -> [SKIP][267] ([i915#1825]) +11 other tests skip
[267]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-2/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc:
- shard-tglu: NOTRUN -> [SKIP][268] +65 other tests skip
[268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-7/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary:
- shard-dg2: NOTRUN -> [SKIP][269] ([i915#15102] / [i915#3458]) +11 other tests skip
[269]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-3/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html
* igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc:
- shard-tglu-1: NOTRUN -> [SKIP][270] ([i915#15102]) +9 other tests skip
[270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc.html
* igt@kms_hdr@bpc-switch-suspend:
- shard-tglu-1: NOTRUN -> [SKIP][271] ([i915#3555] / [i915#8228])
[271]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_hdr@bpc-switch-suspend.html
* igt@kms_hdr@invalid-metadata-sizes:
- shard-tglu: NOTRUN -> [SKIP][272] ([i915#3555] / [i915#8228])
[272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-3/igt@kms_hdr@invalid-metadata-sizes.html
* igt@kms_hdr@static-swap:
- shard-rkl: NOTRUN -> [SKIP][273] ([i915#3555] / [i915#8228]) +1 other test skip
[273]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@kms_hdr@static-swap.html
* igt@kms_joiner@basic-force-ultra-joiner:
- shard-dg2: NOTRUN -> [SKIP][274] ([i915#15458])
[274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_joiner@basic-force-ultra-joiner.html
- shard-rkl: NOTRUN -> [SKIP][275] ([i915#15458]) +1 other test skip
[275]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-3/igt@kms_joiner@basic-force-ultra-joiner.html
- shard-dg1: NOTRUN -> [SKIP][276] ([i915#15458])
[276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-17/igt@kms_joiner@basic-force-ultra-joiner.html
- shard-tglu: NOTRUN -> [SKIP][277] ([i915#15458])
[277]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-2/igt@kms_joiner@basic-force-ultra-joiner.html
- shard-mtlp: NOTRUN -> [SKIP][278] ([i915#15458])
[278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-2/igt@kms_joiner@basic-force-ultra-joiner.html
* igt@kms_joiner@basic-max-non-joiner:
- shard-rkl: NOTRUN -> [SKIP][279] ([i915#13688])
[279]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@kms_joiner@basic-max-non-joiner.html
* igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
- shard-dg2: NOTRUN -> [SKIP][280] ([i915#15638] / [i915#15722])
[280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
* igt@kms_panel_fitting@legacy:
- shard-dg2: NOTRUN -> [SKIP][281] ([i915#6301])
[281]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_panel_fitting@legacy.html
* igt@kms_pipe_b_c_ivb@enable-pipe-c-while-b-has-3-lanes:
- shard-dg1: NOTRUN -> [SKIP][282] +17 other tests skip
[282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-19/igt@kms_pipe_b_c_ivb@enable-pipe-c-while-b-has-3-lanes.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- shard-glk: NOTRUN -> [INCOMPLETE][283] ([i915#12756] / [i915#13409] / [i915#13476])
[283]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk3/igt@kms_pipe_crc_basic@suspend-read-crc.html
* igt@kms_pipe_crc_basic@suspend-read-crc@pipe-b-hdmi-a-2:
- shard-glk: NOTRUN -> [INCOMPLETE][284] ([i915#13409] / [i915#13476])
[284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk3/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-b-hdmi-a-2.html
* igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier:
- shard-tglu-1: NOTRUN -> [SKIP][285] ([i915#15709]) +3 other tests skip
[285]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier.html
* igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier:
- shard-dg1: NOTRUN -> [SKIP][286] ([i915#15709])
[286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-17/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier.html
* igt@kms_plane@pixel-format-4-tiled-modifier@pipe-b-plane-5:
- shard-dg2: NOTRUN -> [SKIP][287] ([i915#15608]) +1 other test skip
[287]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@kms_plane@pixel-format-4-tiled-modifier@pipe-b-plane-5.html
* igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier-source-clamping:
- shard-dg2: NOTRUN -> [SKIP][288] ([i915#15709]) +1 other test skip
[288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier-source-clamping.html
* igt@kms_plane@pixel-format-y-tiled-ccs-modifier:
- shard-rkl: NOTRUN -> [SKIP][289] ([i915#14544] / [i915#15709])
[289]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_plane@pixel-format-y-tiled-ccs-modifier.html
* igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier-source-clamping:
- shard-mtlp: NOTRUN -> [SKIP][290] ([i915#15709])
[290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-5/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier-source-clamping.html
* igt@kms_plane@pixel-format-yf-tiled-modifier:
- shard-rkl: NOTRUN -> [SKIP][291] ([i915#15709]) +1 other test skip
[291]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@kms_plane@pixel-format-yf-tiled-modifier.html
- shard-tglu: NOTRUN -> [SKIP][292] ([i915#15709]) +2 other tests skip
[292]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-8/igt@kms_plane@pixel-format-yf-tiled-modifier.html
* igt@kms_plane_alpha_blend@alpha-basic:
- shard-glk10: NOTRUN -> [FAIL][293] ([i915#12178])
[293]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk10/igt@kms_plane_alpha_blend@alpha-basic.html
* igt@kms_plane_alpha_blend@alpha-basic@pipe-c-hdmi-a-1:
- shard-glk10: NOTRUN -> [FAIL][294] ([i915#7862]) +1 other test fail
[294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk10/igt@kms_plane_alpha_blend@alpha-basic@pipe-c-hdmi-a-1.html
* igt@kms_plane_lowres@tiling-x:
- shard-mtlp: NOTRUN -> [SKIP][295] ([i915#11614] / [i915#3582]) +1 other test skip
[295]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-7/igt@kms_plane_lowres@tiling-x.html
* igt@kms_plane_lowres@tiling-x@pipe-c-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][296] ([i915#10226] / [i915#11614] / [i915#3582]) +2 other tests skip
[296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-7/igt@kms_plane_lowres@tiling-x@pipe-c-edp-1.html
* igt@kms_plane_multiple@2x-tiling-4:
- shard-rkl: NOTRUN -> [SKIP][297] ([i915#13958]) +1 other test skip
[297]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-4/igt@kms_plane_multiple@2x-tiling-4.html
* igt@kms_plane_multiple@2x-tiling-y:
- shard-dg2: NOTRUN -> [SKIP][298] ([i915#13958]) +1 other test skip
[298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-5/igt@kms_plane_multiple@2x-tiling-y.html
* igt@kms_plane_multiple@2x-tiling-yf:
- shard-tglu: NOTRUN -> [SKIP][299] ([i915#13958])
[299]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-9/igt@kms_plane_multiple@2x-tiling-yf.html
* igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-a:
- shard-mtlp: NOTRUN -> [SKIP][300] ([i915#15329]) +8 other tests skip
[300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-8/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-a.html
* igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a:
- shard-tglu: NOTRUN -> [SKIP][301] ([i915#15329]) +4 other tests skip
[301]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-5/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a.html
* igt@kms_plane_scaling@planes-downscale-factor-0-75:
- shard-mtlp: NOTRUN -> [SKIP][302] ([i915#15329] / [i915#3555] / [i915#6953])
[302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-3/igt@kms_plane_scaling@planes-downscale-factor-0-75.html
* igt@kms_pm_backlight@bad-brightness:
- shard-tglu: NOTRUN -> [SKIP][303] ([i915#9812]) +1 other test skip
[303]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-3/igt@kms_pm_backlight@bad-brightness.html
* igt@kms_pm_dc@dc5-psr:
- shard-tglu: NOTRUN -> [SKIP][304] ([i915#9685])
[304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-5/igt@kms_pm_dc@dc5-psr.html
* igt@kms_pm_dc@dc6-psr:
- shard-dg2: NOTRUN -> [SKIP][305] ([i915#9685])
[305]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-7/igt@kms_pm_dc@dc6-psr.html
* igt@kms_pm_lpsp@kms-lpsp:
- shard-dg2: NOTRUN -> [SKIP][306] ([i915#9340])
[306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@kms_pm_lpsp@kms-lpsp.html
* igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
- shard-tglu: NOTRUN -> [SKIP][307] ([i915#15073])
[307]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-8/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
- shard-mtlp: NOTRUN -> [SKIP][308] ([i915#15073])
[308]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-2/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
* igt@kms_pm_rpm@modeset-lpsp-stress:
- shard-rkl: [PASS][309] -> [SKIP][310] ([i915#15073]) +1 other test skip
[309]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-2/igt@kms_pm_rpm@modeset-lpsp-stress.html
[310]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@kms_pm_rpm@modeset-lpsp-stress.html
* igt@kms_pm_rpm@modeset-non-lpsp:
- shard-rkl: NOTRUN -> [SKIP][311] ([i915#15073]) +1 other test skip
[311]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@kms_pm_rpm@modeset-non-lpsp.html
- shard-tglu-1: NOTRUN -> [SKIP][312] ([i915#15073]) +1 other test skip
[312]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_pm_rpm@modeset-non-lpsp.html
- shard-dg1: [PASS][313] -> [SKIP][314] ([i915#15073]) +1 other test skip
[313]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg1-18/igt@kms_pm_rpm@modeset-non-lpsp.html
[314]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-14/igt@kms_pm_rpm@modeset-non-lpsp.html
* igt@kms_pm_rpm@package-g7:
- shard-rkl: NOTRUN -> [SKIP][315] ([i915#15403])
[315]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@kms_pm_rpm@package-g7.html
* igt@kms_pm_rpm@pm-caching:
- shard-dg1: NOTRUN -> [SKIP][316] ([i915#4077]) +4 other tests skip
[316]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-14/igt@kms_pm_rpm@pm-caching.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf:
- shard-glk10: NOTRUN -> [SKIP][317] ([i915#11520]) +5 other tests skip
[317]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk10/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area:
- shard-dg2: NOTRUN -> [SKIP][318] ([i915#11520]) +4 other tests skip
[318]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area:
- shard-tglu-1: NOTRUN -> [SKIP][319] ([i915#11520]) +3 other tests skip
[319]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf:
- shard-rkl: NOTRUN -> [SKIP][320] ([i915#11520]) +4 other tests skip
[320]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-2/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html
* igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf:
- shard-tglu: NOTRUN -> [SKIP][321] ([i915#11520]) +6 other tests skip
[321]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-9/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf:
- shard-glk: NOTRUN -> [SKIP][322] ([i915#11520]) +6 other tests skip
[322]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk3/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb:
- shard-snb: NOTRUN -> [SKIP][323] ([i915#11520])
[323]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-snb5/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html
- shard-dg1: NOTRUN -> [SKIP][324] ([i915#11520])
[324]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-18/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html
* igt@kms_psr2_su@page_flip-p010:
- shard-tglu: NOTRUN -> [SKIP][325] ([i915#9683])
[325]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-10/igt@kms_psr2_su@page_flip-p010.html
* igt@kms_psr@fbc-pr-primary-blt:
- shard-mtlp: NOTRUN -> [SKIP][326] ([i915#9688]) +7 other tests skip
[326]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-1/igt@kms_psr@fbc-pr-primary-blt.html
* igt@kms_psr@fbc-psr2-sprite-render:
- shard-rkl: NOTRUN -> [SKIP][327] ([i915#1072] / [i915#9732]) +18 other tests skip
[327]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-4/igt@kms_psr@fbc-psr2-sprite-render.html
* igt@kms_psr@pr-cursor-plane-move:
- shard-rkl: NOTRUN -> [SKIP][328] ([i915#1072] / [i915#14544] / [i915#9732])
[328]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_psr@pr-cursor-plane-move.html
* igt@kms_psr@pr-sprite-plane-move:
- shard-tglu: NOTRUN -> [SKIP][329] ([i915#9732]) +26 other tests skip
[329]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-10/igt@kms_psr@pr-sprite-plane-move.html
* igt@kms_psr@psr-cursor-plane-onoff:
- shard-tglu-1: NOTRUN -> [SKIP][330] ([i915#9732]) +7 other tests skip
[330]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_psr@psr-cursor-plane-onoff.html
* igt@kms_psr@psr-cursor-render:
- shard-dg2: NOTRUN -> [SKIP][331] ([i915#1072] / [i915#9732]) +19 other tests skip
[331]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_psr@psr-cursor-render.html
- shard-dg1: NOTRUN -> [SKIP][332] ([i915#1072] / [i915#9732]) +10 other tests skip
[332]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-17/igt@kms_psr@psr-cursor-render.html
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- shard-tglu-1: NOTRUN -> [SKIP][333] ([i915#9685])
[333]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
* igt@kms_rotation_crc@primary-4-tiled-reflect-x-180:
- shard-rkl: NOTRUN -> [SKIP][334] ([i915#5289])
[334]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html
- shard-tglu: NOTRUN -> [SKIP][335] ([i915#5289])
[335]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-10/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html
* igt@kms_rotation_crc@primary-rotation-270:
- shard-dg2: NOTRUN -> [SKIP][336] ([i915#12755] / [i915#15867]) +2 other tests skip
[336]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@kms_rotation_crc@primary-rotation-270.html
* igt@kms_rotation_crc@primary-rotation-90:
- shard-mtlp: NOTRUN -> [SKIP][337] ([i915#12755] / [i915#15867]) +1 other test skip
[337]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-8/igt@kms_rotation_crc@primary-rotation-90.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
- shard-dg2: NOTRUN -> [SKIP][338] ([i915#5190])
[338]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html
* igt@kms_selftest@drm_framebuffer:
- shard-dg1: NOTRUN -> [ABORT][339] ([i915#13179]) +1 other test abort
[339]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-13/igt@kms_selftest@drm_framebuffer.html
- shard-glk: NOTRUN -> [ABORT][340] ([i915#13179]) +1 other test abort
[340]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk6/igt@kms_selftest@drm_framebuffer.html
* igt@kms_setmode@basic-clone-single-crtc:
- shard-dg2: NOTRUN -> [SKIP][341] ([i915#3555]) +3 other tests skip
[341]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_setmode@basic-clone-single-crtc.html
* igt@kms_setmode@basic@pipe-b-edp-1:
- shard-mtlp: [PASS][342] -> [FAIL][343] ([i915#15106]) +2 other tests fail
[342]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-mtlp-1/igt@kms_setmode@basic@pipe-b-edp-1.html
[343]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-7/igt@kms_setmode@basic@pipe-b-edp-1.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-glk: NOTRUN -> [FAIL][344] ([i915#10959])
[344]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk8/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-rkl: NOTRUN -> [SKIP][345] ([i915#8623]) +1 other test skip
[345]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-4/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@kms_vrr@flip-basic-fastset:
- shard-rkl: NOTRUN -> [SKIP][346] ([i915#9906]) +1 other test skip
[346]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@kms_vrr@flip-basic-fastset.html
* igt@kms_vrr@flip-suspend:
- shard-dg2: NOTRUN -> [SKIP][347] ([i915#15243] / [i915#3555])
[347]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@kms_vrr@flip-suspend.html
* igt@kms_vrr@flipline:
- shard-rkl: NOTRUN -> [SKIP][348] ([i915#14544] / [i915#15243] / [i915#3555])
[348]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_vrr@flipline.html
* igt@kms_vrr@max-min:
- shard-dg2: NOTRUN -> [SKIP][349] ([i915#9906])
[349]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-3/igt@kms_vrr@max-min.html
- shard-dg1: NOTRUN -> [SKIP][350] ([i915#9906])
[350]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-18/igt@kms_vrr@max-min.html
- shard-tglu: NOTRUN -> [SKIP][351] ([i915#9906])
[351]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-6/igt@kms_vrr@max-min.html
- shard-mtlp: NOTRUN -> [SKIP][352] ([i915#8808] / [i915#9906])
[352]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-3/igt@kms_vrr@max-min.html
* igt@kms_vrr@negative-basic:
- shard-mtlp: [PASS][353] -> [FAIL][354] ([i915#15420]) +1 other test fail
[353]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-mtlp-4/igt@kms_vrr@negative-basic.html
[354]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-4/igt@kms_vrr@negative-basic.html
* igt@kms_vrr@seamless-rr-switch-drrs:
- shard-tglu-1: NOTRUN -> [SKIP][355] ([i915#9906])
[355]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-1/igt@kms_vrr@seamless-rr-switch-drrs.html
* igt@perf@mi-rpc:
- shard-dg2: NOTRUN -> [SKIP][356] ([i915#2434])
[356]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-5/igt@perf@mi-rpc.html
- shard-rkl: NOTRUN -> [SKIP][357] ([i915#2434])
[357]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-2/igt@perf@mi-rpc.html
- shard-dg1: NOTRUN -> [SKIP][358] ([i915#2434])
[358]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-13/igt@perf@mi-rpc.html
- shard-mtlp: NOTRUN -> [SKIP][359] ([i915#2434])
[359]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-7/igt@perf@mi-rpc.html
* igt@perf_pmu@frequency:
- shard-dg2: NOTRUN -> [FAIL][360] ([i915#12549] / [i915#6806]) +1 other test fail
[360]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@perf_pmu@frequency.html
- shard-dg1: NOTRUN -> [FAIL][361] ([i915#12549] / [i915#6806]) +1 other test fail
[361]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-13/igt@perf_pmu@frequency.html
* igt@perf_pmu@rc6-all-gts:
- shard-rkl: NOTRUN -> [SKIP][362] ([i915#8516])
[362]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@perf_pmu@rc6-all-gts.html
* igt@perf_pmu@rc6-suspend:
- shard-glk: NOTRUN -> [INCOMPLETE][363] ([i915#13356] / [i915#14242])
[363]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk4/igt@perf_pmu@rc6-suspend.html
* igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem:
- shard-dg1: NOTRUN -> [SKIP][364] ([i915#14121]) +1 other test skip
[364]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-13/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
* igt@prime_vgem@basic-read:
- shard-mtlp: NOTRUN -> [SKIP][365] ([i915#3708]) +1 other test skip
[365]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-8/igt@prime_vgem@basic-read.html
- shard-rkl: NOTRUN -> [SKIP][366] ([i915#3291] / [i915#3708])
[366]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@prime_vgem@basic-read.html
* igt@prime_vgem@basic-write:
- shard-dg2: NOTRUN -> [SKIP][367] ([i915#3291] / [i915#3708]) +1 other test skip
[367]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-1/igt@prime_vgem@basic-write.html
* igt@prime_vgem@fence-flip-hang:
- shard-dg2: NOTRUN -> [SKIP][368] ([i915#3708])
[368]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-6/igt@prime_vgem@fence-flip-hang.html
* igt@prime_vgem@fence-read-hang:
- shard-dg1: NOTRUN -> [SKIP][369] ([i915#3708]) +1 other test skip
[369]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-17/igt@prime_vgem@fence-read-hang.html
* igt@sriov_basic@bind-unbind-vf@vf-4:
- shard-tglu: NOTRUN -> [FAIL][370] ([i915#12910]) +9 other tests fail
[370]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-4/igt@sriov_basic@bind-unbind-vf@vf-4.html
* igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all:
- shard-rkl: NOTRUN -> [SKIP][371] ([i915#9917])
[371]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html
#### Possible fixes ####
* igt@fbdev@pan:
- shard-snb: [FAIL][372] ([i915#15792]) -> [PASS][373]
[372]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-snb5/igt@fbdev@pan.html
[373]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-snb4/igt@fbdev@pan.html
* igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-smem-lmem0:
- shard-dg2: [INCOMPLETE][374] ([i915#12392] / [i915#13356]) -> [PASS][375]
[374]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg2-7/igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-smem-lmem0.html
[375]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-5/igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-smem-lmem0.html
* igt@gem_workarounds@suspend-resume-context:
- shard-rkl: [INCOMPLETE][376] ([i915#13356]) -> [PASS][377]
[376]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-3/igt@gem_workarounds@suspend-resume-context.html
[377]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@gem_workarounds@suspend-resume-context.html
* igt@i915_module_load@reload-no-display:
- shard-tglu: [DMESG-WARN][378] ([i915#13029] / [i915#14545]) -> [PASS][379]
[378]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-tglu-2/igt@i915_module_load@reload-no-display.html
[379]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-4/igt@i915_module_load@reload-no-display.html
* igt@i915_pm_rpm@system-suspend:
- shard-glk: [INCOMPLETE][380] ([i915#13356]) -> [PASS][381]
[380]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-glk6/igt@i915_pm_rpm@system-suspend.html
[381]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk9/igt@i915_pm_rpm@system-suspend.html
* igt@i915_power@sanity:
- shard-mtlp: [SKIP][382] ([i915#7984]) -> [PASS][383]
[382]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-mtlp-2/igt@i915_power@sanity.html
[383]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-6/igt@i915_power@sanity.html
* igt@i915_suspend@basic-s2idle-without-i915:
- shard-tglu: [ABORT][384] ([i915#15652]) -> [PASS][385]
[384]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-tglu-9/igt@i915_suspend@basic-s2idle-without-i915.html
[385]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-4/igt@i915_suspend@basic-s2idle-without-i915.html
* igt@i915_suspend@forcewake:
- shard-dg2: [ABORT][386] ([i915#15140]) -> [PASS][387]
[386]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg2-10/igt@i915_suspend@forcewake.html
[387]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@i915_suspend@forcewake.html
- shard-rkl: [INCOMPLETE][388] ([i915#4817]) -> [PASS][389] +1 other test pass
[388]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@i915_suspend@forcewake.html
[389]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-4/igt@i915_suspend@forcewake.html
* igt@kms_3d@basic:
- shard-mtlp: [SKIP][390] ([i915#15726]) -> [PASS][391]
[390]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-mtlp-1/igt@kms_3d@basic.html
[391]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-4/igt@kms_3d@basic.html
* igt@kms_cursor_crc@cursor-random-128x42@pipe-a-hdmi-a-1:
- shard-tglu: [FAIL][392] ([i915#13566]) -> [PASS][393] +3 other tests pass
[392]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-tglu-9/igt@kms_cursor_crc@cursor-random-128x42@pipe-a-hdmi-a-1.html
[393]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-tglu-5/igt@kms_cursor_crc@cursor-random-128x42@pipe-a-hdmi-a-1.html
* igt@kms_cursor_crc@cursor-sliding-256x85:
- shard-rkl: [FAIL][394] ([i915#13566]) -> [PASS][395]
[394]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-8/igt@kms_cursor_crc@cursor-sliding-256x85.html
[395]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_cursor_crc@cursor-sliding-256x85.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-dg2: [ABORT][396] ([i915#15132]) -> [PASS][397]
[396]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg2-10/igt@kms_fbcon_fbt@fbc-suspend.html
[397]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-indfb-draw-blt:
- shard-dg2: [FAIL][398] ([i915#15389]) -> [PASS][399]
[398]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg2-3/igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-indfb-draw-blt.html
[399]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-stridechange:
- shard-dg2: [FAIL][400] ([i915#15389] / [i915#6880]) -> [PASS][401]
[400]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg2-3/igt@kms_frontbuffer_tracking@fbc-stridechange.html
[401]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-stridechange.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- shard-rkl: [ABORT][402] ([i915#15132]) -> [PASS][403]
[402]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-1/igt@kms_pipe_crc_basic@suspend-read-crc.html
[403]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@kms_pipe_crc_basic@suspend-read-crc.html
* igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b:
- shard-rkl: [INCOMPLETE][404] ([i915#14412]) -> [PASS][405] +1 other test pass
[404]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-3/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b.html
[405]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b.html
* igt@kms_pm_rpm@dpms-lpsp:
- shard-dg2: [SKIP][406] ([i915#15073]) -> [PASS][407] +1 other test pass
[406]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg2-6/igt@kms_pm_rpm@dpms-lpsp.html
[407]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_pm_rpm@dpms-lpsp.html
* igt@kms_pm_rpm@i2c:
- shard-dg1: [DMESG-WARN][408] ([i915#4423]) -> [PASS][409] +1 other test pass
[408]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg1-19/igt@kms_pm_rpm@i2c.html
[409]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-13/igt@kms_pm_rpm@i2c.html
* igt@kms_pm_rpm@modeset-non-lpsp:
- shard-dg2: [SKIP][410] ([i915#12916]) -> [PASS][411]
[410]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg2-4/igt@kms_pm_rpm@modeset-non-lpsp.html
[411]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-3/igt@kms_pm_rpm@modeset-non-lpsp.html
* igt@kms_pm_rpm@modeset-non-lpsp-stress:
- shard-rkl: [SKIP][412] ([i915#15073]) -> [PASS][413]
[412]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-5/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
[413]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-3/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
* igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
- shard-dg1: [SKIP][414] ([i915#15073]) -> [PASS][415] +1 other test pass
[414]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg1-14/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
[415]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-18/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
* igt@kms_pm_rpm@system-suspend-idle:
- shard-dg2: [INCOMPLETE][416] ([i915#14419]) -> [PASS][417]
[416]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg2-5/igt@kms_pm_rpm@system-suspend-idle.html
[417]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-3/igt@kms_pm_rpm@system-suspend-idle.html
#### Warnings ####
* igt@drm_buddy@drm_buddy:
- shard-rkl: [SKIP][418] ([i915#14544] / [i915#15678]) -> [SKIP][419] ([i915#15678])
[418]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@drm_buddy@drm_buddy.html
[419]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-1/igt@drm_buddy@drm_buddy.html
* igt@gem_ccs@ctrl-surf-copy-new-ctx:
- shard-rkl: [SKIP][420] ([i915#14544] / [i915#9323]) -> [SKIP][421] ([i915#9323])
[420]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@gem_ccs@ctrl-surf-copy-new-ctx.html
[421]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-2/igt@gem_ccs@ctrl-surf-copy-new-ctx.html
* igt@gem_ctx_sseu@invalid-args:
- shard-rkl: [SKIP][422] ([i915#280]) -> [SKIP][423] ([i915#14544] / [i915#280])
[422]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-2/igt@gem_ctx_sseu@invalid-args.html
[423]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@gem_ctx_sseu@invalid-args.html
* igt@gem_exec_reloc@basic-range:
- shard-rkl: [SKIP][424] ([i915#3281]) -> [SKIP][425] ([i915#14544] / [i915#3281])
[424]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-3/igt@gem_exec_reloc@basic-range.html
[425]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@gem_exec_reloc@basic-range.html
* igt@gem_exec_reloc@basic-write-read:
- shard-rkl: [SKIP][426] ([i915#14544] / [i915#3281]) -> [SKIP][427] ([i915#3281]) +4 other tests skip
[426]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@gem_exec_reloc@basic-write-read.html
[427]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@gem_exec_reloc@basic-write-read.html
* igt@gem_lmem_swapping@verify-random:
- shard-rkl: [SKIP][428] ([i915#4613]) -> [SKIP][429] ([i915#14544] / [i915#4613])
[428]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-5/igt@gem_lmem_swapping@verify-random.html
[429]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@gem_lmem_swapping@verify-random.html
* igt@gem_mmap_offset@clear-via-pagefault:
- shard-mtlp: [DMESG-WARN][430] ([i915#15478]) -> [INCOMPLETE][431] ([i915#15478]) +1 other test incomplete
[430]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-mtlp-4/igt@gem_mmap_offset@clear-via-pagefault.html
[431]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-mtlp-7/igt@gem_mmap_offset@clear-via-pagefault.html
* igt@gem_partial_pwrite_pread@writes-after-reads-uncached:
- shard-rkl: [SKIP][432] ([i915#14544] / [i915#3282]) -> [SKIP][433] ([i915#3282]) +2 other tests skip
[432]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html
[433]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-1/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html
* igt@gem_set_tiling_vs_blt@tiled-to-tiled:
- shard-rkl: [SKIP][434] ([i915#14544] / [i915#8411]) -> [SKIP][435] ([i915#8411])
[434]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html
[435]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html
* igt@gem_userptr_blits@dmabuf-unsync:
- shard-rkl: [SKIP][436] ([i915#14544] / [i915#3297]) -> [SKIP][437] ([i915#3297]) +1 other test skip
[436]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@gem_userptr_blits@dmabuf-unsync.html
[437]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@gem_userptr_blits@dmabuf-unsync.html
* igt@gen9_exec_parse@bb-start-far:
- shard-rkl: [SKIP][438] ([i915#14544] / [i915#2527]) -> [SKIP][439] ([i915#2527])
[438]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@gen9_exec_parse@bb-start-far.html
[439]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@gen9_exec_parse@bb-start-far.html
* igt@i915_module_load@fault-injection:
- shard-dg1: [ABORT][440] ([i915#11815]) -> [ABORT][441] ([i915#11815] / [i915#15481]) +1 other test abort
[440]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg1-12/igt@i915_module_load@fault-injection.html
[441]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-18/igt@i915_module_load@fault-injection.html
* igt@i915_module_load@resize-bar:
- shard-rkl: [SKIP][442] ([i915#14544] / [i915#6412]) -> [SKIP][443] ([i915#6412])
[442]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@i915_module_load@resize-bar.html
[443]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@i915_module_load@resize-bar.html
* igt@intel_hwmon@hwmon-write:
- shard-rkl: [SKIP][444] ([i915#14544] / [i915#7707]) -> [SKIP][445] ([i915#7707])
[444]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@intel_hwmon@hwmon-write.html
[445]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@intel_hwmon@hwmon-write.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180:
- shard-rkl: [SKIP][446] ([i915#14544] / [i915#5286]) -> [SKIP][447] ([i915#5286]) +2 other tests skip
[446]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html
[447]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-4/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html
* igt@kms_big_fb@x-tiled-32bpp-rotate-90:
- shard-rkl: [SKIP][448] ([i915#3638]) -> [SKIP][449] ([i915#14544] / [i915#3638])
[448]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-2/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html
[449]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html
* igt@kms_big_fb@x-tiled-64bpp-rotate-270:
- shard-rkl: [SKIP][450] ([i915#14544] / [i915#3638]) -> [SKIP][451] ([i915#3638]) +1 other test skip
[450]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_big_fb@x-tiled-64bpp-rotate-270.html
[451]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-3/igt@kms_big_fb@x-tiled-64bpp-rotate-270.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-rkl: [SKIP][452] -> [SKIP][453] ([i915#14544]) +2 other tests skip
[452]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-5/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
[453]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs:
- shard-rkl: [SKIP][454] ([i915#12313] / [i915#14544]) -> [SKIP][455] ([i915#12313])
[454]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html
[455]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc:
- shard-rkl: [SKIP][456] ([i915#14098] / [i915#6095]) -> [SKIP][457] ([i915#14098] / [i915#14544] / [i915#6095]) +2 other tests skip
[456]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-2/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc.html
[457]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2:
- shard-rkl: [SKIP][458] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][459] ([i915#14098] / [i915#6095]) +10 other tests skip
[458]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2.html
[459]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-4/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2.html
* igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs@pipe-b-hdmi-a-2:
- shard-rkl: [SKIP][460] ([i915#14544] / [i915#6095]) -> [SKIP][461] ([i915#6095]) +7 other tests skip
[460]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs@pipe-b-hdmi-a-2.html
[461]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs@pipe-b-hdmi-a-2.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-2:
- shard-rkl: [SKIP][462] ([i915#6095]) -> [SKIP][463] ([i915#14544] / [i915#6095])
[462]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-4/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-2.html
[463]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-2.html
* igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1:
- shard-glk: [INCOMPLETE][464] ([i915#15582]) -> [INCOMPLETE][465] ([i915#14694] / [i915#15582]) +1 other test incomplete
[464]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-glk8/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1.html
[465]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-glk1/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1.html
* igt@kms_chamelium_frames@hdmi-crc-fast:
- shard-rkl: [SKIP][466] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][467] ([i915#11151] / [i915#7828]) +5 other tests skip
[466]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_chamelium_frames@hdmi-crc-fast.html
[467]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@kms_chamelium_frames@hdmi-crc-fast.html
* igt@kms_chamelium_hpd@vga-hpd-for-each-pipe:
- shard-rkl: [SKIP][468] ([i915#11151] / [i915#7828]) -> [SKIP][469] ([i915#11151] / [i915#14544] / [i915#7828]) +1 other test skip
[468]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-5/igt@kms_chamelium_hpd@vga-hpd-for-each-pipe.html
[469]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_chamelium_hpd@vga-hpd-for-each-pipe.html
* igt@kms_content_protection@suspend-resume:
- shard-dg2: [FAIL][470] ([i915#7173]) -> [SKIP][471] ([i915#15865])
[470]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg2-10/igt@kms_content_protection@suspend-resume.html
[471]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-3/igt@kms_content_protection@suspend-resume.html
- shard-rkl: [SKIP][472] ([i915#14544] / [i915#15865]) -> [SKIP][473] ([i915#15865])
[472]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_content_protection@suspend-resume.html
[473]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-2/igt@kms_content_protection@suspend-resume.html
* igt@kms_cursor_crc@cursor-offscreen-32x32:
- shard-rkl: [SKIP][474] ([i915#3555]) -> [SKIP][475] ([i915#14544] / [i915#3555])
[474]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-2/igt@kms_cursor_crc@cursor-offscreen-32x32.html
[475]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_cursor_crc@cursor-offscreen-32x32.html
* igt@kms_cursor_crc@cursor-random-32x32:
- shard-rkl: [SKIP][476] ([i915#14544] / [i915#3555]) -> [SKIP][477] ([i915#3555])
[476]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_cursor_crc@cursor-random-32x32.html
[477]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-3/igt@kms_cursor_crc@cursor-random-32x32.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic:
- shard-rkl: [SKIP][478] ([i915#14544]) -> [SKIP][479] +9 other tests skip
[478]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic.html
[479]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-2/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic.html
* igt@kms_dirtyfb@psr-dirtyfb-ioctl:
- shard-rkl: [SKIP][480] ([i915#14544] / [i915#9723]) -> [SKIP][481] ([i915#9723])
[480]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html
[481]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-3/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html
* igt@kms_dsc@dsc-with-bpc-formats:
- shard-rkl: [SKIP][482] ([i915#14544] / [i915#3555] / [i915#3840]) -> [SKIP][483] ([i915#3555] / [i915#3840])
[482]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_dsc@dsc-with-bpc-formats.html
[483]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-4/igt@kms_dsc@dsc-with-bpc-formats.html
* igt@kms_flip@2x-flip-vs-modeset:
- shard-rkl: [SKIP][484] ([i915#9934]) -> [SKIP][485] ([i915#14544] / [i915#9934]) +1 other test skip
[484]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-8/igt@kms_flip@2x-flip-vs-modeset.html
[485]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_flip@2x-flip-vs-modeset.html
* igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
- shard-dg1: [SKIP][486] ([i915#9934]) -> [SKIP][487] ([i915#4423] / [i915#9934])
[486]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg1-19/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
[487]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-12/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling:
- shard-rkl: [SKIP][488] ([i915#14544] / [i915#15643]) -> [SKIP][489] ([i915#15643])
[488]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling.html
[489]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-onoff:
- shard-dg1: [SKIP][490] ([i915#15102] / [i915#3458] / [i915#4423]) -> [SKIP][491] ([i915#15102] / [i915#3458])
[490]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-onoff.html
[491]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt:
- shard-rkl: [SKIP][492] ([i915#15102] / [i915#3023]) -> [SKIP][493] ([i915#14544] / [i915#15102] / [i915#3023]) +2 other tests skip
[492]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt.html
[493]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-move:
- shard-dg2: [SKIP][494] ([i915#15102] / [i915#3458]) -> [SKIP][495] ([i915#10433] / [i915#15102] / [i915#3458]) +1 other test skip
[494]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg2-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-move.html
[495]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-move.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-gtt:
- shard-rkl: [SKIP][496] ([i915#1825]) -> [SKIP][497] ([i915#14544] / [i915#1825]) +2 other tests skip
[496]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-gtt.html
[497]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt:
- shard-rkl: [SKIP][498] ([i915#14544] / [i915#1825]) -> [SKIP][499] ([i915#1825]) +15 other tests skip
[498]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html
[499]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite:
- shard-dg1: [SKIP][500] ([i915#15102] / [i915#3458]) -> [SKIP][501] ([i915#15102] / [i915#3458] / [i915#4423])
[500]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite.html
[501]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-13/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite.html
* igt@kms_frontbuffer_tracking@pipe-fbc-rte:
- shard-rkl: [SKIP][502] ([i915#14544] / [i915#9766]) -> [SKIP][503] ([i915#9766])
[502]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html
[503]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-7/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt:
- shard-dg2: [SKIP][504] ([i915#10433] / [i915#15102] / [i915#3458]) -> [SKIP][505] ([i915#15102] / [i915#3458]) +1 other test skip
[504]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt.html
[505]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg2-7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-gtt:
- shard-rkl: [SKIP][506] ([i915#14544] / [i915#15102] / [i915#3023]) -> [SKIP][507] ([i915#15102] / [i915#3023]) +3 other tests skip
[506]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-gtt.html
[507]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-4/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-gtt.html
* igt@kms_hdr@invalid-hdr:
- shard-rkl: [SKIP][508] ([i915#3555] / [i915#8228]) -> [SKIP][509] ([i915#14544] / [i915#3555] / [i915#8228])
[508]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-7/igt@kms_hdr@invalid-hdr.html
[509]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_hdr@invalid-hdr.html
* igt@kms_joiner@basic-big-joiner:
- shard-rkl: [SKIP][510] ([i915#15460]) -> [SKIP][511] ([i915#14544] / [i915#15460])
[510]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-8/igt@kms_joiner@basic-big-joiner.html
[511]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_joiner@basic-big-joiner.html
* igt@kms_pipe_stress@stress-xrgb8888-yftiled:
- shard-rkl: [SKIP][512] ([i915#14712]) -> [SKIP][513] ([i915#14544] / [i915#14712])
[512]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-7/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html
[513]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html
* igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier:
- shard-rkl: [SKIP][514] ([i915#14544] / [i915#15709]) -> [SKIP][515] ([i915#15709]) +1 other test skip
[514]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier.html
[515]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-2/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier.html
* igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a:
- shard-rkl: [SKIP][516] ([i915#15329]) -> [SKIP][517] ([i915#14544] / [i915#15329]) +3 other tests skip
[516]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-5/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a.html
[517]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a.html
* igt@kms_pm_lpsp@kms-lpsp:
- shard-dg1: [SKIP][518] ([i915#3828]) -> [SKIP][519] ([i915#9340])
[518]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg1-14/igt@kms_pm_lpsp@kms-lpsp.html
[519]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-18/igt@kms_pm_lpsp@kms-lpsp.html
* igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf:
- shard-rkl: [SKIP][520] ([i915#11520]) -> [SKIP][521] ([i915#11520] / [i915#14544])
[520]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-3/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf.html
[521]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area:
- shard-rkl: [SKIP][522] ([i915#11520] / [i915#14544]) -> [SKIP][523] ([i915#11520]) +1 other test skip
[522]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area.html
[523]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area.html
* igt@kms_psr2_su@page_flip-p010:
- shard-rkl: [SKIP][524] ([i915#14544] / [i915#9683]) -> [SKIP][525] ([i915#9683])
[524]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_psr2_su@page_flip-p010.html
[525]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@kms_psr2_su@page_flip-p010.html
* igt@kms_psr@fbc-pr-sprite-mmap-gtt:
- shard-rkl: [SKIP][526] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][527] ([i915#1072] / [i915#9732]) +7 other tests skip
[526]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_psr@fbc-pr-sprite-mmap-gtt.html
[527]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-5/igt@kms_psr@fbc-pr-sprite-mmap-gtt.html
* igt@kms_psr@psr2-cursor-mmap-cpu:
- shard-rkl: [SKIP][528] ([i915#1072] / [i915#9732]) -> [SKIP][529] ([i915#1072] / [i915#14544] / [i915#9732]) +2 other tests skip
[528]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-8/igt@kms_psr@psr2-cursor-mmap-cpu.html
[529]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-6/igt@kms_psr@psr2-cursor-mmap-cpu.html
* igt@kms_psr@psr2-sprite-plane-onoff:
- shard-dg1: [SKIP][530] ([i915#1072] / [i915#4423] / [i915#9732]) -> [SKIP][531] ([i915#1072] / [i915#9732])
[530]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-dg1-18/igt@kms_psr@psr2-sprite-plane-onoff.html
[531]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-dg1-13/igt@kms_psr@psr2-sprite-plane-onoff.html
* igt@kms_vrr@seamless-rr-switch-drrs:
- shard-rkl: [SKIP][532] ([i915#14544] / [i915#9906]) -> [SKIP][533] ([i915#9906])
[532]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@kms_vrr@seamless-rr-switch-drrs.html
[533]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-8/igt@kms_vrr@seamless-rr-switch-drrs.html
* igt@perf_pmu@rc6-suspend:
- shard-rkl: [INCOMPLETE][534] ([i915#13520]) -> [ABORT][535] ([i915#15131])
[534]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8824/shard-rkl-6/igt@perf_pmu@rc6-suspend.html
[535]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/shard-rkl-1/igt@perf_pmu@rc6-suspend.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#10226]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10226
[i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
[i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
[i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#10959]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10959
[i915#1099]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1099
[i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
[i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
[i915#11614]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11614
[i915#11815]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11815
[i915#11965]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11965
[i915#12178]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12178
[i915#12193]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12193
[i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
[i915#12392]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12392
[i915#12454]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12454
[i915#12549]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12549
[i915#12655]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12655
[i915#12712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12712
[i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755
[i915#12756]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12756
[i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805
[i915#12910]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12910
[i915#12916]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12916
[i915#13008]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13008
[i915#13029]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13029
[i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046
[i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
[i915#13179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13179
[i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
[i915#13363]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13363
[i915#13390]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13390
[i915#13398]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13398
[i915#13409]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13409
[i915#13476]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13476
[i915#13520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13520
[i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
[i915#13688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13688
[i915#13691]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13691
[i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707
[i915#13748]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13748
[i915#13781]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13781
[i915#13783]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13783
[i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
[i915#14033]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14033
[i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098
[i915#14118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14118
[i915#14121]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14121
[i915#14242]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14242
[i915#14412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14412
[i915#14419]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14419
[i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544
[i915#14545]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14545
[i915#14586]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14586
[i915#14694]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14694
[i915#14712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14712
[i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073
[i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102
[i915#15104]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15104
[i915#15106]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15106
[i915#15131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15131
[i915#15132]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15132
[i915#15140]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15140
[i915#15243]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15243
[i915#15314]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15314
[i915#15329]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15329
[i915#15330]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15330
[i915#15342]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15342
[i915#15389]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15389
[i915#15403]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15403
[i915#15420]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15420
[i915#15458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15458
[i915#15460]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15460
[i915#15478]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15478
[i915#15481]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15481
[i915#15582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15582
[i915#15608]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15608
[i915#15638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15638
[i915#15643]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15643
[i915#15652]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15652
[i915#15678]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15678
[i915#15709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15709
[i915#15722]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15722
[i915#15726]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15726
[i915#15792]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15792
[i915#15804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15804
[i915#15865]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15865
[i915#15867]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15867
[i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
[i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
[i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
[i915#2434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2434
[i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
[i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658
[i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
[i915#284]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/284
[i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
[i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
[i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116
[i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
[i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
[i915#3359]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3359
[i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
[i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3582
[i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
[i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804
[i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#4036]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4036
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
[i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
[i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
[i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
[i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
[i915#4565]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4565
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
[i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
[i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
[i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
[i915#4880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4880
[i915#4881]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4881
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
[i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439
[i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956
[i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
[i915#6230]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6230
[i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
[i915#6335]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6335
[i915#6412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6412
[i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
[i915#6590]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6590
[i915#6806]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6806
[i915#6880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6880
[i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
[i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
[i915#7276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7276
[i915#7582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7582
[i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
[i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707
[i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
[i915#7862]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7862
[i915#7984]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7984
[i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
[i915#8381]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8381
[i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
[i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
[i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
[i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516
[i915#8555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8555
[i915#8562]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8562
[i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623
[i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
[i915#8808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8808
[i915#8810]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8810
[i915#8813]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8813
[i915#8814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8814
[i915#8898]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8898
[i915#9053]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9053
[i915#9067]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9067
[i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
[i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340
[i915#9531]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9531
[i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
[i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
[i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
[i915#9723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9723
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9766]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9766
[i915#9809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9809
[i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
[i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
[i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917
[i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_8824 -> IGTPW_14844
CI-20190529: 20190529
CI_DRM_18203: 0be244ee3139de3578e9acc56e1b917a4bd162cd @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_14844: 14844
IGT_8824: 8824
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14844/index.html
[-- Attachment #2: Type: text/html, Size: 179491 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* ✓ Xe.CI.FULL: success for RFC: Add attachments support (rev2)
2026-03-24 13:12 [PATCH i-g-t v2 0/6] RFC: Add attachments support Zbigniew Kempczyński
` (8 preceding siblings ...)
2026-03-25 7:25 ` ✗ i915.CI.Full: failure " Patchwork
@ 2026-03-25 10:09 ` Patchwork
2026-03-30 9:01 ` [PATCH i-g-t v2 0/6] RFC: Add attachments support Knop, Ryszard
10 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2026-03-25 10:09 UTC (permalink / raw)
To: Zbigniew Kempczyński; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 2945 bytes --]
== Series Details ==
Series: RFC: Add attachments support (rev2)
URL : https://patchwork.freedesktop.org/series/163548/
State : success
== Summary ==
CI Bug Log - changes from XEIGT_8824_FULL -> XEIGTPW_14844_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (2 -> 2)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in XEIGTPW_14844_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_pm_dc@dc5-psr:
- shard-lnl: [PASS][1] -> [FAIL][2] ([Intel XE#7340])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8824/shard-lnl-1/igt@kms_pm_dc@dc5-psr.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14844/shard-lnl-1/igt@kms_pm_dc@dc5-psr.html
#### Possible fixes ####
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-lnl: [FAIL][3] ([Intel XE#301]) -> [PASS][4] +3 other tests pass
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8824/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14844/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_pm_dc@dc6-psr:
- shard-lnl: [FAIL][5] ([Intel XE#7340]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8824/shard-lnl-6/igt@kms_pm_dc@dc6-psr.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14844/shard-lnl-7/igt@kms_pm_dc@dc6-psr.html
* igt@kms_sharpness_filter@invalid-plane-with-filter@pipe-a-edp-1-invalid-plane-with-filter:
- shard-lnl: [DMESG-WARN][7] -> [PASS][8] +1 other test pass
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8824/shard-lnl-7/igt@kms_sharpness_filter@invalid-plane-with-filter@pipe-a-edp-1-invalid-plane-with-filter.html
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14844/shard-lnl-8/igt@kms_sharpness_filter@invalid-plane-with-filter@pipe-a-edp-1-invalid-plane-with-filter.html
* igt@kms_vrr@cmrr@pipe-a-edp-1:
- shard-lnl: [FAIL][9] ([Intel XE#4459]) -> [PASS][10] +1 other test pass
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8824/shard-lnl-1/igt@kms_vrr@cmrr@pipe-a-edp-1.html
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14844/shard-lnl-1/igt@kms_vrr@cmrr@pipe-a-edp-1.html
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#4459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4459
[Intel XE#7340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7340
Build changes
-------------
* IGT: IGT_8824 -> IGTPW_14844
IGTPW_14844: 14844
IGT_8824: 8824
xe-4774-0be244ee3139de3578e9acc56e1b917a4bd162cd: 0be244ee3139de3578e9acc56e1b917a4bd162cd
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14844/index.html
[-- Attachment #2: Type: text/html, Size: 3695 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 2/6] runner: Create attachments directory to use by hooks
2026-03-24 13:12 ` [PATCH i-g-t v2 2/6] runner: Create attachments directory to use by hooks Zbigniew Kempczyński
@ 2026-03-30 6:48 ` Krzysztof Karas
2026-04-03 5:18 ` Zbigniew Kempczyński
2026-03-30 14:20 ` Gustavo Sousa
1 sibling, 1 reply; 27+ messages in thread
From: Krzysztof Karas @ 2026-03-30 6:48 UTC (permalink / raw)
To: Zbigniew Kempczyński; +Cc: igt-dev, Kamil Konieczny, Ryszard Knop
Hi Zbigniew,
On 2026-03-24 at 14:12:38 +0100, Zbigniew Kempczyński wrote:
> Results parsing is currently limited to few predefined files.
>
> Create "attachments" directory and export full path of created directory
> to be used within hooks. From now on environment variable
> IGT_RUNNER_ATTACHMENTS_DIR become visible when igt_runner is used
> to execute tests. This env contains directory where subtests/dynsubtests
> may write auxiliary files which finally be included in results.json.
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Cc: Ryszard Knop <ryszard.knop@intel.com>
> Cc: Krzysztof Karas <krzysztof.karas@intel.com>
> ---
> v2: simplify attachment dirname concatenation (Kamil)
> remove files in attachments dir when overwrite is set (Kamil)
> ---
[...]
> @@ -1779,17 +1779,22 @@ static int execute_next_entry(struct execute_state *state,
> int errpipe[2] = { -1, -1 };
> int socket[2] = { -1, -1 };
> int outfd, errfd, socketfd;
> - char name[32];
> + char name[32], attname[32];
> + char attdirname[PATH_MAX];
> pid_t child;
> int result;
> size_t idx = state->next;
>
> snprintf(name, sizeof(name), "%zd", idx);
> + snprintf(attname, sizeof(attname), "%zd/%s", idx, DIR_ATTACHMENTS);
> mkdirat(resdirfd, name, 0777);
> + mkdirat(resdirfd, attname, 0777);
> if ((idirfd = openat(resdirfd, name, O_DIRECTORY | O_RDONLY | O_CLOEXEC)) < 0) {
> errf("Error accessing individual test result directory\n");
> return -1;
> }
> + snprintf(attdirname, sizeof(attdirname), "%s/%s",
> + settings->results_path, attname);
>
> if (!open_output_files(idirfd, outputs, true)) {
> errf("Error opening output files\n");
> @@ -1870,6 +1875,7 @@ static int execute_next_entry(struct execute_state *state,
> setenv("IGT_RUNNER_SOCKET_FD", envstring, 1);
> }
> setenv("IGT_SENTINEL_ON_STDERR", "1", 1);
> + setenv("IGT_RUNNER_ATTACHMENTS_DIR", attdirname, 1);
>
> execute_test_process(outfd, errfd, socketfd, settings, entry);
> /* unreachable */
> @@ -1950,7 +1956,10 @@ static int remove_file(int dirfd, const char *name)
>
> static bool clear_test_result_directory(int dirfd)
> {
> - int i;
> + DIR *dir;
> + struct dirent *entry;
> + int i, adirfd;
Since you use "att" in the function above, you could use
attdirfd name here as well. It will be easier to identify what
this variable represents when reading the code.
Rest of the code looks good to me:
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
--
Best Regards,
Krzysztof
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 3/6] runner: Add attachments directory content in subtests results
2026-03-24 13:12 ` [PATCH i-g-t v2 3/6] runner: Add attachments directory content in subtests results Zbigniew Kempczyński
@ 2026-03-30 7:17 ` Krzysztof Karas
2026-03-30 15:36 ` Gustavo Sousa
1 sibling, 0 replies; 27+ messages in thread
From: Krzysztof Karas @ 2026-03-30 7:17 UTC (permalink / raw)
To: Zbigniew Kempczyński; +Cc: igt-dev, Kamil Konieczny, Ryszard Knop
Hi Zbigniew,
On 2026-03-24 at 14:12:39 +0100, Zbigniew Kempczyński wrote:
> Files produced by hooks which lands in attachments directory should
> be called in piglit style, what means they should be in form:
>
> igt@test@subtest@@unique-filename-from-hook
> igt@test@subtest@dynsubtest@@unique-filename-from-hook
>
> depending is it normal subtest or dynamic subtest.
>
> Hooks introduced IGT_HOOK_TEST_FULLNAME env variable, which contains
>
> igt@test@subtest
> igt@test@subtest@dynsubtest
>
> and it should be used as prefix part (before '@@') of attachment
> filename when hook script writes some content to it.
>
> Such defined contract between hook script and resultgen allows to
> distinguish subtest/dynsubtest attachments structure in results.json.
> So string before '@@' is a subtest/dynsubtest name in results file,
> and string after it is a unique key of a base64 file content added
> to results.
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Cc: Ryszard Knop <ryszard.knop@intel.com>
> Cc: Krzysztof Karas <krzysztof.karas@intel.com>
> ---
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
--
Best Regards,
Krzysztof
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 4/6] scripts/hooks: Example guc log copy script to attachments dir
2026-03-24 13:12 ` [PATCH i-g-t v2 4/6] scripts/hooks: Example guc log copy script to attachments dir Zbigniew Kempczyński
@ 2026-03-30 7:24 ` Krzysztof Karas
0 siblings, 0 replies; 27+ messages in thread
From: Krzysztof Karas @ 2026-03-30 7:24 UTC (permalink / raw)
To: Zbigniew Kempczyński; +Cc: igt-dev, Kamil Konieczny, Ryszard Knop
Hi Zbigniew,
> We need to explicitly extract guc logs for failed tests so add
> hook script which does it after subtest/dynsubtest execution.
> As copying to attachments take a lot of time do it only for
> failing subtests.
>
> Adding this hook script to CI will extend its execution time much
> (all failing subtests will copy their guc logs to attachments dir)
> so introducing some form of allow-listing will be necessary. For example
> exiting immediately on tests where we know guc log might be not useful
> is simplest solution.
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Cc: Ryszard Knop <ryszard.knop@intel.com>
> Cc: Krzysztof Karas <krzysztof.karas@intel.com>
> ---
> v2: install hook to datadir/hooks
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
--
Best Regards,
Krzysztof
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 5/6] runner: Rename parsing function
2026-03-24 13:12 ` [PATCH i-g-t v2 5/6] runner: Rename parsing function Zbigniew Kempczyński
@ 2026-03-30 8:07 ` Krzysztof Karas
2026-04-03 5:40 ` Zbigniew Kempczyński
0 siblings, 1 reply; 27+ messages in thread
From: Krzysztof Karas @ 2026-03-30 8:07 UTC (permalink / raw)
To: Zbigniew Kempczyński; +Cc: igt-dev, Kamil Konieczny, Ryszard Knop
Hi Zbigniew,
> Upcoming changes will use parsing function so rename it to some
> generic name is necessary to avoid confusion.
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Cc: Ryszard Knop <ryszard.knop@intel.com>
> Cc: Krzysztof Karas <krzysztof.karas@intel.com>
> ---
> runner/settings.c | 17 ++++++++++-------
> 1 file changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/runner/settings.c b/runner/settings.c
> index 3ccf718701..7c29f2d3ab 100644
> --- a/runner/settings.c
> +++ b/runner/settings.c
> @@ -364,16 +364,18 @@ static bool add_regex(struct regex_list *list, char *new)
> return true;
> }
>
> -static bool parse_blacklist(struct regex_list *exclude_regexes,
> - char *blacklist_filename)
> +static bool parse_list(struct regex_list *regexes,
> + char *list_filename,
> + const char *list_type)
> {
> FILE *f;
> char *line = NULL;
> size_t line_len = 0;
> bool status = false;
>
> - if ((f = fopen(blacklist_filename, "r")) == NULL) {
> - fprintf(stderr, "Cannot open blacklist file %s\n", blacklist_filename);
> + if ((f = fopen(list_filename, "r")) == NULL) {
> + fprintf(stderr, "Cannot open %s file %s\n",
> + list_filename, list_type);
list_filename and list_type should be swapped.
> return false;
> }
> while (1) {
> @@ -398,7 +400,7 @@ static bool parse_blacklist(struct regex_list *exclude_regexes,
> if (str_size > 0) {
> char *test_regex = strndup(line, str_size);
>
> - status = add_regex(exclude_regexes, test_regex);
> + status = add_regex(regexes, test_regex);
> if (!status)
> break;
> }
> @@ -845,8 +847,9 @@ bool parse_options(int argc, char **argv,
> }
> break;
> case OPT_BLACKLIST:
> - if (!parse_blacklist(&settings->exclude_regexes,
> - absolute_path(optarg)))
> + if (!parse_list(&settings->exclude_regexes,
> + absolute_path(optarg),
> + "blacklist"))
> goto error;
> break;
> case OPT_LIST_ALL:
> --
> 2.43.0
>
--
Best Regards,
Krzysztof
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 6/6] runner: Add hook-exec-allowlist to execute hooks selectively
2026-03-24 13:12 ` [PATCH i-g-t v2 6/6] runner: Add hook-exec-allowlist to execute hooks selectively Zbigniew Kempczyński
@ 2026-03-30 8:28 ` Krzysztof Karas
2026-03-30 17:19 ` Gustavo Sousa
1 sibling, 0 replies; 27+ messages in thread
From: Krzysztof Karas @ 2026-03-30 8:28 UTC (permalink / raw)
To: Zbigniew Kempczyński; +Cc: igt-dev, Kamil Konieczny, Ryszard Knop
Hi Zbigniew,
> Hook scripts like GuC log copy takes few seconds to complete. This would
> lead to large increase of CI execution time. Add -a/--hook-exec-allowlist
> argument to igt_runner to pass file with regexps which matched will
> allow executing hook scripts. Syntax of this file is same to blocklists.
>
> Some limitation of this code is hooks will be executed with subtest
> granularity - if multiple_mode is used regexp will compare only first
> subtest so all subtest in group will call hooks. This is likely not
> a big problem as CI executes each subtest individually (without
> multiple_mode).
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Cc: Ryszard Knop <ryszard.knop@intel.com>
> Cc: Krzysztof Karas <krzysztof.karas@intel.com>
> ---
[...]
> diff --git a/runner/settings.h b/runner/settings.h
> index 6c58c3282c..b81f6adc6d 100644
> --- a/runner/settings.h
> +++ b/runner/settings.h
> @@ -59,6 +59,8 @@ struct settings {
> bool allow_non_root;
> struct regex_list include_regexes;
> struct regex_list exclude_regexes;
> + struct regex_list hook_allow_regexes;
This name was confusing to me: keyword "allow" seems like this
would be a boolean flag, but I think it represents regexes from
hook allowlist. You could rename it to
"hook_allowlist_regexes" or even "hook_regexes" would be
sufficient and less confusing.
> + bool use_hook_allow_regexes;
> struct igt_list_head env_vars;
> struct igt_vec hook_strs;
> bool facts;
> --
> 2.43.0
>
--
Best Regards,
Krzysztof
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 0/6] RFC: Add attachments support
2026-03-24 13:12 [PATCH i-g-t v2 0/6] RFC: Add attachments support Zbigniew Kempczyński
` (9 preceding siblings ...)
2026-03-25 10:09 ` ✓ Xe.CI.FULL: success " Patchwork
@ 2026-03-30 9:01 ` Knop, Ryszard
2026-03-30 13:17 ` Kamil Konieczny
10 siblings, 1 reply; 27+ messages in thread
From: Knop, Ryszard @ 2026-03-30 9:01 UTC (permalink / raw)
To: Kempczynski, Zbigniew, igt-dev@lists.freedesktop.org
Cc: Karas, Krzysztof, Heikkila, Juha-pekka, Sousa, Gustavo,
kamil.konieczny@linux.intel.com
Hey Zbigniew,
In general, I'm not convinced putting all attachments into the
results.json file is a good idea. This introduces a significant amount
of overhead for CI reporting processes that don't care about those
attachments (vis, CBL, JP Heikkila's SISO), makes those files extremely
large and difficult for manual inspection.
Can you consider specifying attachments as filenames that should be
present in a directory relative to the results.json instead?
Thanks, Ryszard
On Tue, 2026-03-24 at 14:12 +0100, Zbigniew Kempczyński wrote:
> This series introduces support for hook/test written attachments.
> It is somehow limited and stiff but allows to write anything test/hook
> wants to attachments directory and if naming contract will be fulfiled
> content in base64 form will be included in appropriate subtest/dynsubtest
> results.json part.
>
> Series targets our need to include guc logs for failed tests especially
> in the point of time when it occurs.
>
> v2: - added clearing of attachments dir in overwrite mode
> - guc-log hook script is now installed to igt datadir/hooks dir
> - added hook-exec-allowlist to selectively execute hook scripts
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Cc: Ryszard Knop <ryszard.knop@intel.com>
> Cc: Gustavo Sousa <gustavo.sousa@intel.com>
> Cc: Krzysztof Karas <krzysztof.karas@intel.com>
>
> Zbigniew Kempczyński (6):
> runner: Rename dirfd to avoid clash with dirfd()
> runner: Create attachments directory to use by hooks
> runner: Add attachments directory content in subtests results
> scripts/hooks: Example guc log copy script to attachments dir
> runner: Rename parsing function
> runner: Add hook-exec-allowlist to execute hooks selectively
>
> lib/igt_hook.c | 4 ++
> runner/executor.c | 88 ++++++++++++++++++++++++----
> runner/executor.h | 2 +
> runner/resultgen.c | 97 +++++++++++++++++++++++++++++++
> runner/settings.c | 31 +++++++---
> runner/settings.h | 2 +
> scripts/hooks/guc_copy_on_fail.sh | 24 ++++++++
> scripts/meson.build | 2 +
> 8 files changed, 230 insertions(+), 20 deletions(-)
> create mode 100755 scripts/hooks/guc_copy_on_fail.sh
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 0/6] RFC: Add attachments support
2026-03-30 9:01 ` [PATCH i-g-t v2 0/6] RFC: Add attachments support Knop, Ryszard
@ 2026-03-30 13:17 ` Kamil Konieczny
2026-03-30 13:52 ` Knop, Ryszard
0 siblings, 1 reply; 27+ messages in thread
From: Kamil Konieczny @ 2026-03-30 13:17 UTC (permalink / raw)
To: Knop, Ryszard
Cc: Kempczynski, Zbigniew, igt-dev@lists.freedesktop.org,
Karas, Krzysztof, Heikkila, Juha-pekka, Sousa, Gustavo
Hi Knop,,
On 2026-03-30 at 09:01:39 +0000, Knop, Ryszard wrote:
> Hey Zbigniew,
>
> In general, I'm not convinced putting all attachments into the
> results.json file is a good idea. This introduces a significant amount
> of overhead for CI reporting processes that don't care about those
> attachments (vis, CBL, JP Heikkila's SISO), makes those files extremely
> large and difficult for manual inspection.
>
> Can you consider specifying attachments as filenames that should be
> present in a directory relative to the results.json instead?
>
> Thanks, Ryszard
Could it be an option --attachments[=log|json] with default log?
So by default files would only be saved in results/N/attachment
(where N is a number of test in testlist) and also reported in test
output (hence the 'log', there could be also 'none' for no report).
Regards,
Kamil
>
> On Tue, 2026-03-24 at 14:12 +0100, Zbigniew Kempczyński wrote:
> > This series introduces support for hook/test written attachments.
> > It is somehow limited and stiff but allows to write anything test/hook
> > wants to attachments directory and if naming contract will be fulfiled
> > content in base64 form will be included in appropriate subtest/dynsubtest
> > results.json part.
> >
> > Series targets our need to include guc logs for failed tests especially
> > in the point of time when it occurs.
> >
> > v2: - added clearing of attachments dir in overwrite mode
> > - guc-log hook script is now installed to igt datadir/hooks dir
> > - added hook-exec-allowlist to selectively execute hook scripts
> >
> > Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> > Cc: Ryszard Knop <ryszard.knop@intel.com>
> > Cc: Gustavo Sousa <gustavo.sousa@intel.com>
> > Cc: Krzysztof Karas <krzysztof.karas@intel.com>
> >
> > Zbigniew Kempczyński (6):
> > runner: Rename dirfd to avoid clash with dirfd()
> > runner: Create attachments directory to use by hooks
> > runner: Add attachments directory content in subtests results
> > scripts/hooks: Example guc log copy script to attachments dir
> > runner: Rename parsing function
> > runner: Add hook-exec-allowlist to execute hooks selectively
> >
> > lib/igt_hook.c | 4 ++
> > runner/executor.c | 88 ++++++++++++++++++++++++----
> > runner/executor.h | 2 +
> > runner/resultgen.c | 97 +++++++++++++++++++++++++++++++
> > runner/settings.c | 31 +++++++---
> > runner/settings.h | 2 +
> > scripts/hooks/guc_copy_on_fail.sh | 24 ++++++++
> > scripts/meson.build | 2 +
> > 8 files changed, 230 insertions(+), 20 deletions(-)
> > create mode 100755 scripts/hooks/guc_copy_on_fail.sh
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 0/6] RFC: Add attachments support
2026-03-30 13:17 ` Kamil Konieczny
@ 2026-03-30 13:52 ` Knop, Ryszard
0 siblings, 0 replies; 27+ messages in thread
From: Knop, Ryszard @ 2026-03-30 13:52 UTC (permalink / raw)
To: Kempczynski, Zbigniew, igt-dev@lists.freedesktop.org,
Heikkila, Juha-pekka, Karas, Krzysztof, Sousa, Gustavo,
kamil.konieczny@linux.intel.com
On Mon, 2026-03-30 at 15:17 +0200, Kamil Konieczny wrote:
> Hi Knop,,
> On 2026-03-30 at 09:01:39 +0000, Knop, Ryszard wrote:
> > Hey Zbigniew,
> >
> > In general, I'm not convinced putting all attachments into the
> > results.json file is a good idea. This introduces a significant amount
> > of overhead for CI reporting processes that don't care about those
> > attachments (vis, CBL, JP Heikkila's SISO), makes those files extremely
> > large and difficult for manual inspection.
> >
> > Can you consider specifying attachments as filenames that should be
> > present in a directory relative to the results.json instead?
> >
> > Thanks, Ryszard
>
> Could it be an option --attachments[=log|json] with default log?
IMO there's really no point in embedding these in the JSON. Just keep
them as separate files all the time and keep the whole thing simple. I
get it, 2+GB JSONs are now possible, but this feature is going to cause
those 2+GB files to become the standard once we start attaching stuff.
Ryszard
> So by default files would only be saved in results/N/attachment
> (where N is a number of test in testlist) and also reported in test
> output (hence the 'log', there could be also 'none' for no report).
>
> Regards,
> Kamil
>
> >
> > On Tue, 2026-03-24 at 14:12 +0100, Zbigniew Kempczyński wrote:
> > > This series introduces support for hook/test written attachments.
> > > It is somehow limited and stiff but allows to write anything test/hook
> > > wants to attachments directory and if naming contract will be fulfiled
> > > content in base64 form will be included in appropriate subtest/dynsubtest
> > > results.json part.
> > >
> > > Series targets our need to include guc logs for failed tests especially
> > > in the point of time when it occurs.
> > >
> > > v2: - added clearing of attachments dir in overwrite mode
> > > - guc-log hook script is now installed to igt datadir/hooks dir
> > > - added hook-exec-allowlist to selectively execute hook scripts
> > >
> > > Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> > > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> > > Cc: Ryszard Knop <ryszard.knop@intel.com>
> > > Cc: Gustavo Sousa <gustavo.sousa@intel.com>
> > > Cc: Krzysztof Karas <krzysztof.karas@intel.com>
> > >
> > > Zbigniew Kempczyński (6):
> > > runner: Rename dirfd to avoid clash with dirfd()
> > > runner: Create attachments directory to use by hooks
> > > runner: Add attachments directory content in subtests results
> > > scripts/hooks: Example guc log copy script to attachments dir
> > > runner: Rename parsing function
> > > runner: Add hook-exec-allowlist to execute hooks selectively
> > >
> > > lib/igt_hook.c | 4 ++
> > > runner/executor.c | 88 ++++++++++++++++++++++++----
> > > runner/executor.h | 2 +
> > > runner/resultgen.c | 97 +++++++++++++++++++++++++++++++
> > > runner/settings.c | 31 +++++++---
> > > runner/settings.h | 2 +
> > > scripts/hooks/guc_copy_on_fail.sh | 24 ++++++++
> > > scripts/meson.build | 2 +
> > > 8 files changed, 230 insertions(+), 20 deletions(-)
> > > create mode 100755 scripts/hooks/guc_copy_on_fail.sh
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 2/6] runner: Create attachments directory to use by hooks
2026-03-24 13:12 ` [PATCH i-g-t v2 2/6] runner: Create attachments directory to use by hooks Zbigniew Kempczyński
2026-03-30 6:48 ` Krzysztof Karas
@ 2026-03-30 14:20 ` Gustavo Sousa
2026-03-31 16:05 ` Zbigniew Kempczyński
1 sibling, 1 reply; 27+ messages in thread
From: Gustavo Sousa @ 2026-03-30 14:20 UTC (permalink / raw)
To: Zbigniew Kempczyński, igt-dev
Cc: Zbigniew Kempczyński, Kamil Konieczny, Ryszard Knop,
Krzysztof Karas
Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> writes:
> Results parsing is currently limited to few predefined files.
>
> Create "attachments" directory and export full path of created directory
> to be used within hooks. From now on environment variable
> IGT_RUNNER_ATTACHMENTS_DIR become visible when igt_runner is used
> to execute tests. This env contains directory where subtests/dynsubtests
> may write auxiliary files which finally be included in results.json.
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Cc: Ryszard Knop <ryszard.knop@intel.com>
> Cc: Krzysztof Karas <krzysztof.karas@intel.com>
> ---
> v2: simplify attachment dirname concatenation (Kamil)
> remove files in attachments dir when overwrite is set (Kamil)
> ---
> lib/igt_hook.c | 4 ++++
> runner/executor.c | 44 +++++++++++++++++++++++++++++++++++++++++---
> runner/executor.h | 2 ++
> 3 files changed, 47 insertions(+), 3 deletions(-)
>
> diff --git a/lib/igt_hook.c b/lib/igt_hook.c
> index f86ed56f72..57817bdc12 100644
> --- a/lib/igt_hook.c
> +++ b/lib/igt_hook.c
> @@ -518,5 +518,9 @@ available to the command:\n\
> \n\
> Note that %s can be passed multiple times. Each descriptor is evaluated in turn\n\
> when matching events and running hook commands.\n\
> +\n\
> +When executed by the igt_runner environment IGT_RUNNER_ATTACHMENTS_DIR\n\
Nitpick: s/igt_runner environment/igt_runner, environment/
> +is passed additionally to the hook script. It contains directory where\n\
> +script may write additional attachments like guc logs, etc.\n\
Looking at how this is implemented, the attachments directory is not a
hook-specific thing, so I believe documentation for it would be better
placed in igt_runner's help/docs.
> ", option_name);
> }
> diff --git a/runner/executor.c b/runner/executor.c
> index 1485b59d1f..bc421f7dbb 100644
> --- a/runner/executor.c
> +++ b/runner/executor.c
> @@ -1779,17 +1779,22 @@ static int execute_next_entry(struct execute_state *state,
> int errpipe[2] = { -1, -1 };
> int socket[2] = { -1, -1 };
> int outfd, errfd, socketfd;
> - char name[32];
> + char name[32], attname[32];
> + char attdirname[PATH_MAX];
> pid_t child;
> int result;
> size_t idx = state->next;
>
> snprintf(name, sizeof(name), "%zd", idx);
> + snprintf(attname, sizeof(attname), "%zd/%s", idx, DIR_ATTACHMENTS);
> mkdirat(resdirfd, name, 0777);
> + mkdirat(resdirfd, attname, 0777);
> if ((idirfd = openat(resdirfd, name, O_DIRECTORY | O_RDONLY | O_CLOEXEC)) < 0) {
> errf("Error accessing individual test result directory\n");
> return -1;
> }
> + snprintf(attdirname, sizeof(attdirname), "%s/%s",
> + settings->results_path, attname);
>
> if (!open_output_files(idirfd, outputs, true)) {
> errf("Error opening output files\n");
> @@ -1870,6 +1875,7 @@ static int execute_next_entry(struct execute_state *state,
> setenv("IGT_RUNNER_SOCKET_FD", envstring, 1);
> }
> setenv("IGT_SENTINEL_ON_STDERR", "1", 1);
> + setenv("IGT_RUNNER_ATTACHMENTS_DIR", attdirname, 1);
>
> execute_test_process(outfd, errfd, socketfd, settings, entry);
> /* unreachable */
> @@ -1950,7 +1956,10 @@ static int remove_file(int dirfd, const char *name)
>
> static bool clear_test_result_directory(int dirfd)
> {
> - int i;
> + DIR *dir;
> + struct dirent *entry;
> + int i, adirfd;
> + int ret = false;
>
> for (i = 0; i < _F_LAST; i++) {
> if (remove_file(dirfd, filenames[i])) {
> @@ -1960,7 +1969,33 @@ static bool clear_test_result_directory(int dirfd)
> }
> }
>
> - return true;
> + if ((adirfd = openat(dirfd, DIR_ATTACHMENTS, O_DIRECTORY | O_RDONLY | O_CLOEXEC)) < 0) {
> + errf("Cannot open attachments directory\n");
> + return false;
> + }
> +
> + if ((dir = fdopendir(adirfd)) == NULL) {
> + errf("Cannot fdopen attachments directory\n");
> + goto out1;
> + }
> +
> + while ((entry = readdir(dir)) != NULL) {
> + if (!strcmp(entry->d_name, ".") || !strcmp(entry->d_name, ".."))
> + continue;
> +
> + if (unlinkat(adirfd, entry->d_name, 0)) {
> + errf("Error removing %s\n", entry->d_name);
> + goto out2;
> + }
> + }
Since we can't predict that the attachments directory will remain flat,
I think it would be safer to do a recursive cleanup here. I guess we
could use nftw() in a post-order fashion here?
--
Gustavo Sousa
> +
> + ret = true;
> +out2:
> + closedir(dir);
> +out1:
> + close(adirfd);
> +
> + return ret;
> }
>
> static bool clear_old_results(char *path)
> @@ -2002,6 +2037,9 @@ static bool clear_old_results(char *path)
> close(dirfd);
> return false;
> }
> + if (unlinkat(resdirfd, DIR_ATTACHMENTS, AT_REMOVEDIR))
> + errf("Warning: Cannot remove attachments directory\n");
> +
> close(resdirfd);
> if (unlinkat(dirfd, name, AT_REMOVEDIR)) {
> errf("Warning: Result directory %s contains extra files\n",
> diff --git a/runner/executor.h b/runner/executor.h
> index 3b1cabcf55..bc6ac80dc4 100644
> --- a/runner/executor.h
> +++ b/runner/executor.h
> @@ -25,6 +25,8 @@ enum {
> _F_LAST,
> };
>
> +#define DIR_ATTACHMENTS "attachments"
> +
> bool open_output_files(int dirfd, int *fds, bool write);
> bool open_output_files_rdonly(int dirfd, int *fds);
> void close_outputs(int *fds);
> --
> 2.43.0
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 3/6] runner: Add attachments directory content in subtests results
2026-03-24 13:12 ` [PATCH i-g-t v2 3/6] runner: Add attachments directory content in subtests results Zbigniew Kempczyński
2026-03-30 7:17 ` Krzysztof Karas
@ 2026-03-30 15:36 ` Gustavo Sousa
1 sibling, 0 replies; 27+ messages in thread
From: Gustavo Sousa @ 2026-03-30 15:36 UTC (permalink / raw)
To: Zbigniew Kempczyński, igt-dev
Cc: Zbigniew Kempczyński, Kamil Konieczny, Ryszard Knop,
Krzysztof Karas
Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> writes:
> Files produced by hooks which lands in attachments directory should
> be called in piglit style, what means they should be in form:
>
> igt@test@subtest@@unique-filename-from-hook
> igt@test@subtest@dynsubtest@@unique-filename-from-hook
>
> depending is it normal subtest or dynamic subtest.
>
> Hooks introduced IGT_HOOK_TEST_FULLNAME env variable, which contains
>
> igt@test@subtest
> igt@test@subtest@dynsubtest
>
> and it should be used as prefix part (before '@@') of attachment
> filename when hook script writes some content to it.
>
> Such defined contract between hook script and resultgen allows to
> distinguish subtest/dynsubtest attachments structure in results.json.
> So string before '@@' is a subtest/dynsubtest name in results file,
> and string after it is a unique key of a base64 file content added
> to results.
I'm not sure we want to go this path based on the current feedback.
However, *if* we end up embedding this stuff into results.json, I think I
would prefer that the test object itself would contain an "attachments"
key containing the same tree structure of the attachments directory.
--
Gustavo Sousa
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Cc: Ryszard Knop <ryszard.knop@intel.com>
> Cc: Krzysztof Karas <krzysztof.karas@intel.com>
> ---
> runner/resultgen.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 97 insertions(+)
>
> diff --git a/runner/resultgen.c b/runner/resultgen.c
> index 29fc5cbb15..c4ebbd7b6e 100644
> --- a/runner/resultgen.c
> +++ b/runner/resultgen.c
> @@ -1142,6 +1142,100 @@ static bool fill_from_dmesg(int fd,
> return true;
> }
>
> +static char *get_base64(int dirfd, const char *filename)
> +{
> + struct stat st;
> + int fd;
> + unsigned char *data;
> + char *base64 = NULL;
> +
> + if (fstatat(dirfd, filename, &st, 0)) {
> + fprintf(stderr, "Can't stat %s\n", filename);
> + return NULL;
> + }
> +
> + fd = openat(dirfd, filename, O_RDONLY);
> + if (fd < 0) {
> + fprintf(stderr, "Can't open %s\n", filename);
> + return NULL;
> + }
> +
> + data = malloc(st.st_size);
> + if (!data) {
> + fprintf(stderr, "Cannot allocate %zu bytes for data buffer\n",
> + st.st_size);
> + goto err_alloc;
> + }
> +
> + if (read(fd, data, st.st_size) != st.st_size) {
> + fprintf(stderr, "Cannot read %zu bytes from data buffer\n",
> + st.st_size);
> + goto err_read;
> + }
> +
> + base64 = g_base64_encode(data, st.st_size);
> +
> +err_read:
> + free(data);
> +err_alloc:
> + close(fd);
> +
> + return base64;
> +}
> +
> +static bool fill_from_attachments(int dirfd, struct json_t *tests)
> +{
> + struct json_t *obj = NULL, *attobj = NULL;
> + char attname[32];
> + int atdir;
> + struct dirent *entry;
> + DIR *dir;
> +
> + snprintf(attname, sizeof(attname), "%s", DIR_ATTACHMENTS);
> + if ((atdir = openat(dirfd, attname, O_DIRECTORY | O_RDONLY | O_CLOEXEC)) < 0) {
> + fprintf(stderr, "Error opening '%s' dir\n", DIR_ATTACHMENTS);
> + return false;
> + }
> +
> + dir = fdopendir(atdir);
> + if (!dir) {
> + close(atdir);
> + return false;
> + }
> +
> + while ((entry = readdir(dir))) {
> + char *base64_data, *piglit_name, *p;
> +
> + if (strcmp(entry->d_name, ".") == 0 ||
> + strcmp(entry->d_name, "..") == 0)
> + continue;
> +
> + piglit_name = strdup(entry->d_name);
> + p = strstr(piglit_name, "@@");
> + if (!p) {
> + free(piglit_name);
> + continue;
> + }
> + *p = '\0';
> + p += 2;
> +
> + obj = get_or_create_json_object(tests, piglit_name);
> + attobj = get_or_create_json_object(obj, "attachments");
> +
> + base64_data = get_base64(atdir, entry->d_name);
> + if (base64_data) {
> + json_object_set_new(attobj, p,
> + escaped_json_stringn(base64_data, strlen(base64_data)));
> + free(base64_data);
> + }
> + free(piglit_name);
> + }
> +
> + closedir(dir);
> +
> + return true;
> +}
> +
> static const char *result_from_exitcode(int exitcode)
> {
> switch (exitcode) {
> @@ -2230,6 +2324,9 @@ static bool parse_test_directory(int dirfd,
> fprintf(stderr, "Error parsing output files (dmesg.txt)\n");
> }
>
> + if (!fill_from_attachments(dirfd, results->tests))
> + fprintf(stderr, "Error parsing attachments directory\n");
> +
> override_results(entry->binary, &subtests, results->tests);
> prune_subtests(settings, entry, &subtests, results->tests);
>
> --
> 2.43.0
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 6/6] runner: Add hook-exec-allowlist to execute hooks selectively
2026-03-24 13:12 ` [PATCH i-g-t v2 6/6] runner: Add hook-exec-allowlist to execute hooks selectively Zbigniew Kempczyński
2026-03-30 8:28 ` Krzysztof Karas
@ 2026-03-30 17:19 ` Gustavo Sousa
2026-04-03 5:55 ` Zbigniew Kempczyński
1 sibling, 1 reply; 27+ messages in thread
From: Gustavo Sousa @ 2026-03-30 17:19 UTC (permalink / raw)
To: Zbigniew Kempczyński, igt-dev
Cc: Zbigniew Kempczyński, Kamil Konieczny, Ryszard Knop,
Krzysztof Karas
Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> writes:
> Hook scripts like GuC log copy takes few seconds to complete. This would
> lead to large increase of CI execution time. Add -a/--hook-exec-allowlist
> argument to igt_runner to pass file with regexps which matched will
> allow executing hook scripts. Syntax of this file is same to blocklists.
I feel like this is more related to the GuC log hook than a general
allowlist that the user would like to apply to all types of hooks
enabled.
An alternative approach would be to have guc_copy_on_fail.sh
implementing this type of filtering, with a path that is passed via CLI
arguments or an environment variable. I would prefer that instead of
adding --hook-exec-allowlist, as I'm not much confident it would be very
useful for other cases.
Since the hook is written in bash, the filtering could be applied with
something along the lines of grep -f path/to/allowlist... (It could be
implemented with bash builtins as well, but I'm not sure it is worth the
hassle).
--
Gustavo Sousa
>
> Some limitation of this code is hooks will be executed with subtest
> granularity - if multiple_mode is used regexp will compare only first
> subtest so all subtest in group will call hooks. This is likely not
> a big problem as CI executes each subtest individually (without
> multiple_mode).
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Cc: Ryszard Knop <ryszard.knop@intel.com>
> Cc: Krzysztof Karas <krzysztof.karas@intel.com>
> ---
> runner/executor.c | 32 +++++++++++++++++++++++++++++---
> runner/settings.c | 14 +++++++++++++-
> runner/settings.h | 2 ++
> 3 files changed, 44 insertions(+), 4 deletions(-)
>
> diff --git a/runner/executor.c b/runner/executor.c
> index bc421f7dbb..ab34ed8258 100644
> --- a/runner/executor.c
> +++ b/runner/executor.c
> @@ -1615,6 +1615,18 @@ static int monitor_output(pid_t child,
> return killed;
> }
>
> +static bool matches_any(const char *str, struct regex_list *list)
> +{
> + size_t i;
> +
> + for (i = 0; i < list->size; i++) {
> + if (g_regex_match(list->regexes[i], str, 0, NULL))
> + return true;
> + }
> +
> + return false;
> +}
> +
> static void __attribute__((noreturn))
> execute_test_process(int outfd, int errfd, int socketfd,
> struct settings *settings,
> @@ -1623,6 +1635,7 @@ execute_test_process(int outfd, int errfd, int socketfd,
> struct igt_vec arg_vec;
> char *arg;
> size_t rootlen;
> + bool use_hooks = true;
>
> dup2(outfd, STDOUT_FILENO);
> dup2(errfd, STDERR_FILENO);
> @@ -1646,11 +1659,24 @@ execute_test_process(int outfd, int errfd, int socketfd,
> arg = strdup("--run-subtest");
> igt_vec_push(&arg_vec, &arg);
>
> - if ((dynbegin = strchr(entry->subtests[0], '@')) != NULL)
> + if ((dynbegin = strchr(entry->subtests[0], '@')) != NULL) {
> argsize = dynbegin - entry->subtests[0];
> - else
> + } else {
> argsize = strlen(entry->subtests[0]);
>
> + if (settings->use_hook_allow_regexes) {
> + char *piglit_name;
> +
> + asprintf(&piglit_name, "igt@%s@%s",
> + entry->binary, entry->subtests[0]);
> +
> + if (!matches_any(piglit_name, &settings->hook_allow_regexes))
> + use_hooks = false;
> +
> + free(piglit_name);
> + }
> + }
> +
> arg = malloc(argsize + 1);
> memcpy(arg, entry->subtests[0], argsize);
> arg[argsize] = '\0';
> @@ -1677,7 +1703,7 @@ execute_test_process(int outfd, int errfd, int socketfd,
> }
> }
>
> - for (size_t i = 0; i < igt_vec_length(&settings->hook_strs); i++) {
> + for (size_t i = 0; use_hooks && i < igt_vec_length(&settings->hook_strs); i++) {
> arg = strdup("--hook");
> igt_vec_push(&arg_vec, &arg);
> arg = strdup(*((char **)igt_vec_elem(&settings->hook_strs, i)));
> diff --git a/runner/settings.c b/runner/settings.c
> index 7c29f2d3ab..eb3d05405c 100644
> --- a/runner/settings.c
> +++ b/runner/settings.c
> @@ -50,6 +50,7 @@ enum {
> OPT_TIMEOUT = 'c',
> OPT_WATCHDOG = 'g',
> OPT_BLACKLIST = 'b',
> + OPT_HOOK_EXEC_ALLOWLIST = 'a',
> OPT_LIST_ALL = 'L',
> };
>
> @@ -320,6 +321,9 @@ static const char *usage_str =
> " Forward HOOK_STR to the --hook option of each test.\n"
> " --help-hook\n"
> " Show detailed usage information for --hook.\n"
> + " -a, --hook-exec-allowlist FILENAME\n"
> + " Tests name regexes from FILENAME for which hooks scripts\n"
> + " may be executed\n"
> "\n"
> " [test_root] Directory that contains the IGT tests. The environment\n"
> " variable IGT_TEST_ROOT will be used if set, overriding\n"
> @@ -715,6 +719,7 @@ bool parse_options(int argc, char **argv,
> {"dmesg-warn-level", required_argument, NULL, OPT_DMESG_WARN_LEVEL},
> {"prune-mode", required_argument, NULL, OPT_PRUNE_MODE},
> {"blacklist", required_argument, NULL, OPT_BLACKLIST},
> + {"hook-exec-allowlist", required_argument, NULL, OPT_HOOK_EXEC_ALLOWLIST},
> {"list-all", no_argument, NULL, OPT_LIST_ALL},
> { 0, 0, 0, 0},
> };
> @@ -726,7 +731,7 @@ bool parse_options(int argc, char **argv,
> settings->dmesg_warn_level = -1;
> settings->prune_mode = -1;
>
> - while ((c = getopt_long(argc, argv, "hn:dt:x:e:fk::sl:omb:L",
> + while ((c = getopt_long(argc, argv, "hn:dt:x:e:fk::sl:omb:a:L",
> long_options, NULL)) != -1) {
> switch (c) {
> case OPT_VERSION:
> @@ -852,6 +857,13 @@ bool parse_options(int argc, char **argv,
> "blacklist"))
> goto error;
> break;
> + case OPT_HOOK_EXEC_ALLOWLIST:
> + if (!parse_list(&settings->hook_allow_regexes,
> + absolute_path(optarg),
> + "hook-exec-allowlist"))
> + goto error;
> + settings->use_hook_allow_regexes = true;
> + break;
> case OPT_LIST_ALL:
> settings->list_all = true;
> break;
> diff --git a/runner/settings.h b/runner/settings.h
> index 6c58c3282c..b81f6adc6d 100644
> --- a/runner/settings.h
> +++ b/runner/settings.h
> @@ -59,6 +59,8 @@ struct settings {
> bool allow_non_root;
> struct regex_list include_regexes;
> struct regex_list exclude_regexes;
> + struct regex_list hook_allow_regexes;
> + bool use_hook_allow_regexes;
> struct igt_list_head env_vars;
> struct igt_vec hook_strs;
> bool facts;
> --
> 2.43.0
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 2/6] runner: Create attachments directory to use by hooks
2026-03-30 14:20 ` Gustavo Sousa
@ 2026-03-31 16:05 ` Zbigniew Kempczyński
2026-03-31 16:47 ` Gustavo Sousa
0 siblings, 1 reply; 27+ messages in thread
From: Zbigniew Kempczyński @ 2026-03-31 16:05 UTC (permalink / raw)
To: Gustavo Sousa; +Cc: igt-dev, Kamil Konieczny, Ryszard Knop, Krzysztof Karas
On Mon, Mar 30, 2026 at 11:20:46AM -0300, Gustavo Sousa wrote:
> Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> writes:
>
> > Results parsing is currently limited to few predefined files.
> >
> > Create "attachments" directory and export full path of created directory
> > to be used within hooks. From now on environment variable
> > IGT_RUNNER_ATTACHMENTS_DIR become visible when igt_runner is used
> > to execute tests. This env contains directory where subtests/dynsubtests
> > may write auxiliary files which finally be included in results.json.
> >
> > Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> > Cc: Ryszard Knop <ryszard.knop@intel.com>
> > Cc: Krzysztof Karas <krzysztof.karas@intel.com>
> > ---
> > v2: simplify attachment dirname concatenation (Kamil)
> > remove files in attachments dir when overwrite is set (Kamil)
> > ---
> > lib/igt_hook.c | 4 ++++
> > runner/executor.c | 44 +++++++++++++++++++++++++++++++++++++++++---
> > runner/executor.h | 2 ++
> > 3 files changed, 47 insertions(+), 3 deletions(-)
> >
> > diff --git a/lib/igt_hook.c b/lib/igt_hook.c
> > index f86ed56f72..57817bdc12 100644
> > --- a/lib/igt_hook.c
> > +++ b/lib/igt_hook.c
> > @@ -518,5 +518,9 @@ available to the command:\n\
> > \n\
> > Note that %s can be passed multiple times. Each descriptor is evaluated in turn\n\
> > when matching events and running hook commands.\n\
> > +\n\
> > +When executed by the igt_runner environment IGT_RUNNER_ATTACHMENTS_DIR\n\
>
> Nitpick: s/igt_runner environment/igt_runner, environment/
Ack.
>
> > +is passed additionally to the hook script. It contains directory where\n\
> > +script may write additional attachments like guc logs, etc.\n\
>
> Looking at how this is implemented, the attachments directory is not a
> hook-specific thing, so I believe documentation for it would be better
> placed in igt_runner's help/docs.
That's true, I placed it here because --help-hook is first place where
I would look for environment vars I can use. What do you think to place
information about this variable in both places?
>
> > ", option_name);
> > }
> > diff --git a/runner/executor.c b/runner/executor.c
> > index 1485b59d1f..bc421f7dbb 100644
> > --- a/runner/executor.c
> > +++ b/runner/executor.c
> > @@ -1779,17 +1779,22 @@ static int execute_next_entry(struct execute_state *state,
> > int errpipe[2] = { -1, -1 };
> > int socket[2] = { -1, -1 };
> > int outfd, errfd, socketfd;
> > - char name[32];
> > + char name[32], attname[32];
> > + char attdirname[PATH_MAX];
> > pid_t child;
> > int result;
> > size_t idx = state->next;
> >
> > snprintf(name, sizeof(name), "%zd", idx);
> > + snprintf(attname, sizeof(attname), "%zd/%s", idx, DIR_ATTACHMENTS);
> > mkdirat(resdirfd, name, 0777);
> > + mkdirat(resdirfd, attname, 0777);
> > if ((idirfd = openat(resdirfd, name, O_DIRECTORY | O_RDONLY | O_CLOEXEC)) < 0) {
> > errf("Error accessing individual test result directory\n");
> > return -1;
> > }
> > + snprintf(attdirname, sizeof(attdirname), "%s/%s",
> > + settings->results_path, attname);
> >
> > if (!open_output_files(idirfd, outputs, true)) {
> > errf("Error opening output files\n");
> > @@ -1870,6 +1875,7 @@ static int execute_next_entry(struct execute_state *state,
> > setenv("IGT_RUNNER_SOCKET_FD", envstring, 1);
> > }
> > setenv("IGT_SENTINEL_ON_STDERR", "1", 1);
> > + setenv("IGT_RUNNER_ATTACHMENTS_DIR", attdirname, 1);
> >
> > execute_test_process(outfd, errfd, socketfd, settings, entry);
> > /* unreachable */
> > @@ -1950,7 +1956,10 @@ static int remove_file(int dirfd, const char *name)
> >
> > static bool clear_test_result_directory(int dirfd)
> > {
> > - int i;
> > + DIR *dir;
> > + struct dirent *entry;
> > + int i, adirfd;
> > + int ret = false;
> >
> > for (i = 0; i < _F_LAST; i++) {
> > if (remove_file(dirfd, filenames[i])) {
> > @@ -1960,7 +1969,33 @@ static bool clear_test_result_directory(int dirfd)
> > }
> > }
> >
> > - return true;
> > + if ((adirfd = openat(dirfd, DIR_ATTACHMENTS, O_DIRECTORY | O_RDONLY | O_CLOEXEC)) < 0) {
> > + errf("Cannot open attachments directory\n");
> > + return false;
> > + }
> > +
> > + if ((dir = fdopendir(adirfd)) == NULL) {
> > + errf("Cannot fdopen attachments directory\n");
> > + goto out1;
> > + }
> > +
> > + while ((entry = readdir(dir)) != NULL) {
> > + if (!strcmp(entry->d_name, ".") || !strcmp(entry->d_name, ".."))
> > + continue;
> > +
> > + if (unlinkat(adirfd, entry->d_name, 0)) {
> > + errf("Error removing %s\n", entry->d_name);
> > + goto out2;
> > + }
> > + }
>
> Since we can't predict that the attachments directory will remain flat,
> I think it would be safer to do a recursive cleanup here. I guess we
> could use nftw() in a post-order fashion here?
I wondered about recursive removal, what prevented me from doing this
was if there'll bug here I can remove too much. At the moment I guess
guc logs will be only user so I would try to stay in flatten structure.
--
Zbigniew
>
> --
> Gustavo Sousa
>
> > +
> > + ret = true;
> > +out2:
> > + closedir(dir);
> > +out1:
> > + close(adirfd);
> > +
> > + return ret;
> > }
> >
> > static bool clear_old_results(char *path)
> > @@ -2002,6 +2037,9 @@ static bool clear_old_results(char *path)
> > close(dirfd);
> > return false;
> > }
> > + if (unlinkat(resdirfd, DIR_ATTACHMENTS, AT_REMOVEDIR))
> > + errf("Warning: Cannot remove attachments directory\n");
> > +
> > close(resdirfd);
> > if (unlinkat(dirfd, name, AT_REMOVEDIR)) {
> > errf("Warning: Result directory %s contains extra files\n",
> > diff --git a/runner/executor.h b/runner/executor.h
> > index 3b1cabcf55..bc6ac80dc4 100644
> > --- a/runner/executor.h
> > +++ b/runner/executor.h
> > @@ -25,6 +25,8 @@ enum {
> > _F_LAST,
> > };
> >
> > +#define DIR_ATTACHMENTS "attachments"
> > +
> > bool open_output_files(int dirfd, int *fds, bool write);
> > bool open_output_files_rdonly(int dirfd, int *fds);
> > void close_outputs(int *fds);
> > --
> > 2.43.0
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 2/6] runner: Create attachments directory to use by hooks
2026-03-31 16:05 ` Zbigniew Kempczyński
@ 2026-03-31 16:47 ` Gustavo Sousa
0 siblings, 0 replies; 27+ messages in thread
From: Gustavo Sousa @ 2026-03-31 16:47 UTC (permalink / raw)
To: Zbigniew Kempczyński
Cc: igt-dev, Kamil Konieczny, Ryszard Knop, Krzysztof Karas
Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> writes:
> On Mon, Mar 30, 2026 at 11:20:46AM -0300, Gustavo Sousa wrote:
>> Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> writes:
>>
>> > Results parsing is currently limited to few predefined files.
>> >
>> > Create "attachments" directory and export full path of created directory
>> > to be used within hooks. From now on environment variable
>> > IGT_RUNNER_ATTACHMENTS_DIR become visible when igt_runner is used
>> > to execute tests. This env contains directory where subtests/dynsubtests
>> > may write auxiliary files which finally be included in results.json.
>> >
>> > Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
>> > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
>> > Cc: Ryszard Knop <ryszard.knop@intel.com>
>> > Cc: Krzysztof Karas <krzysztof.karas@intel.com>
>> > ---
>> > v2: simplify attachment dirname concatenation (Kamil)
>> > remove files in attachments dir when overwrite is set (Kamil)
>> > ---
>> > lib/igt_hook.c | 4 ++++
>> > runner/executor.c | 44 +++++++++++++++++++++++++++++++++++++++++---
>> > runner/executor.h | 2 ++
>> > 3 files changed, 47 insertions(+), 3 deletions(-)
>> >
>> > diff --git a/lib/igt_hook.c b/lib/igt_hook.c
>> > index f86ed56f72..57817bdc12 100644
>> > --- a/lib/igt_hook.c
>> > +++ b/lib/igt_hook.c
>> > @@ -518,5 +518,9 @@ available to the command:\n\
>> > \n\
>> > Note that %s can be passed multiple times. Each descriptor is evaluated in turn\n\
>> > when matching events and running hook commands.\n\
>> > +\n\
>> > +When executed by the igt_runner environment IGT_RUNNER_ATTACHMENTS_DIR\n\
>>
>> Nitpick: s/igt_runner environment/igt_runner, environment/
>
> Ack.
>
>>
>> > +is passed additionally to the hook script. It contains directory where\n\
>> > +script may write additional attachments like guc logs, etc.\n\
>>
>> Looking at how this is implemented, the attachments directory is not a
>> hook-specific thing, so I believe documentation for it would be better
>> placed in igt_runner's help/docs.
>
> That's true, I placed it here because --help-hook is first place where
> I would look for environment vars I can use. What do you think to place
> information about this variable in both places?
Well, we could have a section listing environment variables associated
with igt_runner in its help output and refer to that section here.
>
>>
>> > ", option_name);
>> > }
>> > diff --git a/runner/executor.c b/runner/executor.c
>> > index 1485b59d1f..bc421f7dbb 100644
>> > --- a/runner/executor.c
>> > +++ b/runner/executor.c
>> > @@ -1779,17 +1779,22 @@ static int execute_next_entry(struct execute_state *state,
>> > int errpipe[2] = { -1, -1 };
>> > int socket[2] = { -1, -1 };
>> > int outfd, errfd, socketfd;
>> > - char name[32];
>> > + char name[32], attname[32];
>> > + char attdirname[PATH_MAX];
>> > pid_t child;
>> > int result;
>> > size_t idx = state->next;
>> >
>> > snprintf(name, sizeof(name), "%zd", idx);
>> > + snprintf(attname, sizeof(attname), "%zd/%s", idx, DIR_ATTACHMENTS);
>> > mkdirat(resdirfd, name, 0777);
>> > + mkdirat(resdirfd, attname, 0777);
>> > if ((idirfd = openat(resdirfd, name, O_DIRECTORY | O_RDONLY | O_CLOEXEC)) < 0) {
>> > errf("Error accessing individual test result directory\n");
>> > return -1;
>> > }
>> > + snprintf(attdirname, sizeof(attdirname), "%s/%s",
>> > + settings->results_path, attname);
>> >
>> > if (!open_output_files(idirfd, outputs, true)) {
>> > errf("Error opening output files\n");
>> > @@ -1870,6 +1875,7 @@ static int execute_next_entry(struct execute_state *state,
>> > setenv("IGT_RUNNER_SOCKET_FD", envstring, 1);
>> > }
>> > setenv("IGT_SENTINEL_ON_STDERR", "1", 1);
>> > + setenv("IGT_RUNNER_ATTACHMENTS_DIR", attdirname, 1);
>> >
>> > execute_test_process(outfd, errfd, socketfd, settings, entry);
>> > /* unreachable */
>> > @@ -1950,7 +1956,10 @@ static int remove_file(int dirfd, const char *name)
>> >
>> > static bool clear_test_result_directory(int dirfd)
>> > {
>> > - int i;
>> > + DIR *dir;
>> > + struct dirent *entry;
>> > + int i, adirfd;
>> > + int ret = false;
>> >
>> > for (i = 0; i < _F_LAST; i++) {
>> > if (remove_file(dirfd, filenames[i])) {
>> > @@ -1960,7 +1969,33 @@ static bool clear_test_result_directory(int dirfd)
>> > }
>> > }
>> >
>> > - return true;
>> > + if ((adirfd = openat(dirfd, DIR_ATTACHMENTS, O_DIRECTORY | O_RDONLY | O_CLOEXEC)) < 0) {
>> > + errf("Cannot open attachments directory\n");
>> > + return false;
>> > + }
>> > +
>> > + if ((dir = fdopendir(adirfd)) == NULL) {
>> > + errf("Cannot fdopen attachments directory\n");
>> > + goto out1;
>> > + }
>> > +
>> > + while ((entry = readdir(dir)) != NULL) {
>> > + if (!strcmp(entry->d_name, ".") || !strcmp(entry->d_name, ".."))
>> > + continue;
>> > +
>> > + if (unlinkat(adirfd, entry->d_name, 0)) {
>> > + errf("Error removing %s\n", entry->d_name);
>> > + goto out2;
>> > + }
>> > + }
>>
>> Since we can't predict that the attachments directory will remain flat,
>> I think it would be safer to do a recursive cleanup here. I guess we
>> could use nftw() in a post-order fashion here?
>
> I wondered about recursive removal, what prevented me from doing this
> was if there'll bug here I can remove too much. At the moment I guess
> guc logs will be only user so I would try to stay in flatten structure.
I don't think we should assume that's going to be the only user. The
end user can basically run "anything" as a hook and could as well create
subdirectories.
The alternative is to consider the attachments dir something not to be
messed by the user and consider only "official" hook scripts (i.e. those
in IGT's source tree) as "authorized" to handle it. But I believe
that's not the original intent, right?
--
Gustavo Sousa
>
> --
> Zbigniew
>
>>
>> --
>> Gustavo Sousa
>>
>> > +
>> > + ret = true;
>> > +out2:
>> > + closedir(dir);
>> > +out1:
>> > + close(adirfd);
>> > +
>> > + return ret;
>> > }
>> >
>> > static bool clear_old_results(char *path)
>> > @@ -2002,6 +2037,9 @@ static bool clear_old_results(char *path)
>> > close(dirfd);
>> > return false;
>> > }
>> > + if (unlinkat(resdirfd, DIR_ATTACHMENTS, AT_REMOVEDIR))
>> > + errf("Warning: Cannot remove attachments directory\n");
>> > +
>> > close(resdirfd);
>> > if (unlinkat(dirfd, name, AT_REMOVEDIR)) {
>> > errf("Warning: Result directory %s contains extra files\n",
>> > diff --git a/runner/executor.h b/runner/executor.h
>> > index 3b1cabcf55..bc6ac80dc4 100644
>> > --- a/runner/executor.h
>> > +++ b/runner/executor.h
>> > @@ -25,6 +25,8 @@ enum {
>> > _F_LAST,
>> > };
>> >
>> > +#define DIR_ATTACHMENTS "attachments"
>> > +
>> > bool open_output_files(int dirfd, int *fds, bool write);
>> > bool open_output_files_rdonly(int dirfd, int *fds);
>> > void close_outputs(int *fds);
>> > --
>> > 2.43.0
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 2/6] runner: Create attachments directory to use by hooks
2026-03-30 6:48 ` Krzysztof Karas
@ 2026-04-03 5:18 ` Zbigniew Kempczyński
0 siblings, 0 replies; 27+ messages in thread
From: Zbigniew Kempczyński @ 2026-04-03 5:18 UTC (permalink / raw)
To: Krzysztof Karas; +Cc: igt-dev, Kamil Konieczny, Ryszard Knop
On Mon, Mar 30, 2026 at 06:48:51AM +0000, Krzysztof Karas wrote:
> Hi Zbigniew,
>
> On 2026-03-24 at 14:12:38 +0100, Zbigniew Kempczyński wrote:
> > Results parsing is currently limited to few predefined files.
> >
> > Create "attachments" directory and export full path of created directory
> > to be used within hooks. From now on environment variable
> > IGT_RUNNER_ATTACHMENTS_DIR become visible when igt_runner is used
> > to execute tests. This env contains directory where subtests/dynsubtests
> > may write auxiliary files which finally be included in results.json.
> >
> > Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> > Cc: Ryszard Knop <ryszard.knop@intel.com>
> > Cc: Krzysztof Karas <krzysztof.karas@intel.com>
> > ---
> > v2: simplify attachment dirname concatenation (Kamil)
> > remove files in attachments dir when overwrite is set (Kamil)
> > ---
>
> [...]
>
> > @@ -1779,17 +1779,22 @@ static int execute_next_entry(struct execute_state *state,
> > int errpipe[2] = { -1, -1 };
> > int socket[2] = { -1, -1 };
> > int outfd, errfd, socketfd;
> > - char name[32];
> > + char name[32], attname[32];
> > + char attdirname[PATH_MAX];
> > pid_t child;
> > int result;
> > size_t idx = state->next;
> >
> > snprintf(name, sizeof(name), "%zd", idx);
> > + snprintf(attname, sizeof(attname), "%zd/%s", idx, DIR_ATTACHMENTS);
> > mkdirat(resdirfd, name, 0777);
> > + mkdirat(resdirfd, attname, 0777);
> > if ((idirfd = openat(resdirfd, name, O_DIRECTORY | O_RDONLY | O_CLOEXEC)) < 0) {
> > errf("Error accessing individual test result directory\n");
> > return -1;
> > }
> > + snprintf(attdirname, sizeof(attdirname), "%s/%s",
> > + settings->results_path, attname);
> >
> > if (!open_output_files(idirfd, outputs, true)) {
> > errf("Error opening output files\n");
> > @@ -1870,6 +1875,7 @@ static int execute_next_entry(struct execute_state *state,
> > setenv("IGT_RUNNER_SOCKET_FD", envstring, 1);
> > }
> > setenv("IGT_SENTINEL_ON_STDERR", "1", 1);
> > + setenv("IGT_RUNNER_ATTACHMENTS_DIR", attdirname, 1);
> >
> > execute_test_process(outfd, errfd, socketfd, settings, entry);
> > /* unreachable */
> > @@ -1950,7 +1956,10 @@ static int remove_file(int dirfd, const char *name)
> >
> > static bool clear_test_result_directory(int dirfd)
> > {
> > - int i;
> > + DIR *dir;
> > + struct dirent *entry;
> > + int i, adirfd;
> Since you use "att" in the function above, you could use
> attdirfd name here as well. It will be easier to identify what
> this variable represents when reading the code.
Makes sense with 'att' prefix. At the moment I won't attach your
r-b to patch, as I need to dosome rework in it according to Gustavo
comments.
--
Zbigniew
>
> Rest of the code looks good to me:
> Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
>
> --
> Best Regards,
> Krzysztof
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 5/6] runner: Rename parsing function
2026-03-30 8:07 ` Krzysztof Karas
@ 2026-04-03 5:40 ` Zbigniew Kempczyński
0 siblings, 0 replies; 27+ messages in thread
From: Zbigniew Kempczyński @ 2026-04-03 5:40 UTC (permalink / raw)
To: Krzysztof Karas; +Cc: igt-dev, Kamil Konieczny, Ryszard Knop
On Mon, Mar 30, 2026 at 08:07:39AM +0000, Krzysztof Karas wrote:
> Hi Zbigniew,
>
> > Upcoming changes will use parsing function so rename it to some
> > generic name is necessary to avoid confusion.
> >
> > Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> > Cc: Ryszard Knop <ryszard.knop@intel.com>
> > Cc: Krzysztof Karas <krzysztof.karas@intel.com>
> > ---
> > runner/settings.c | 17 ++++++++++-------
> > 1 file changed, 10 insertions(+), 7 deletions(-)
> >
> > diff --git a/runner/settings.c b/runner/settings.c
> > index 3ccf718701..7c29f2d3ab 100644
> > --- a/runner/settings.c
> > +++ b/runner/settings.c
> > @@ -364,16 +364,18 @@ static bool add_regex(struct regex_list *list, char *new)
> > return true;
> > }
> >
> > -static bool parse_blacklist(struct regex_list *exclude_regexes,
> > - char *blacklist_filename)
> > +static bool parse_list(struct regex_list *regexes,
> > + char *list_filename,
> > + const char *list_type)
> > {
> > FILE *f;
> > char *line = NULL;
> > size_t line_len = 0;
> > bool status = false;
> >
> > - if ((f = fopen(blacklist_filename, "r")) == NULL) {
> > - fprintf(stderr, "Cannot open blacklist file %s\n", blacklist_filename);
> > + if ((f = fopen(list_filename, "r")) == NULL) {
> > + fprintf(stderr, "Cannot open %s file %s\n",
> > + list_filename, list_type);
> list_filename and list_type should be swapped.
Right, thanks for catching this flaw.
--
Zbigniew
>
> > return false;
> > }
> > while (1) {
> > @@ -398,7 +400,7 @@ static bool parse_blacklist(struct regex_list *exclude_regexes,
> > if (str_size > 0) {
> > char *test_regex = strndup(line, str_size);
> >
> > - status = add_regex(exclude_regexes, test_regex);
> > + status = add_regex(regexes, test_regex);
> > if (!status)
> > break;
> > }
> > @@ -845,8 +847,9 @@ bool parse_options(int argc, char **argv,
> > }
> > break;
> > case OPT_BLACKLIST:
> > - if (!parse_blacklist(&settings->exclude_regexes,
> > - absolute_path(optarg)))
> > + if (!parse_list(&settings->exclude_regexes,
> > + absolute_path(optarg),
> > + "blacklist"))
> > goto error;
> > break;
> > case OPT_LIST_ALL:
> > --
> > 2.43.0
> >
>
> --
> Best Regards,
> Krzysztof
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH i-g-t v2 6/6] runner: Add hook-exec-allowlist to execute hooks selectively
2026-03-30 17:19 ` Gustavo Sousa
@ 2026-04-03 5:55 ` Zbigniew Kempczyński
0 siblings, 0 replies; 27+ messages in thread
From: Zbigniew Kempczyński @ 2026-04-03 5:55 UTC (permalink / raw)
To: Gustavo Sousa; +Cc: igt-dev, Kamil Konieczny, Ryszard Knop, Krzysztof Karas
On Mon, Mar 30, 2026 at 02:19:34PM -0300, Gustavo Sousa wrote:
> Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> writes:
>
> > Hook scripts like GuC log copy takes few seconds to complete. This would
> > lead to large increase of CI execution time. Add -a/--hook-exec-allowlist
> > argument to igt_runner to pass file with regexps which matched will
> > allow executing hook scripts. Syntax of this file is same to blocklists.
>
> I feel like this is more related to the GuC log hook than a general
> allowlist that the user would like to apply to all types of hooks
> enabled.
>
> An alternative approach would be to have guc_copy_on_fail.sh
> implementing this type of filtering, with a path that is passed via CLI
> arguments or an environment variable. I would prefer that instead of
> adding --hook-exec-allowlist, as I'm not much confident it would be very
> useful for other cases.
>
> Since the hook is written in bash, the filtering could be applied with
> something along the lines of grep -f path/to/allowlist... (It could be
> implemented with bash builtins as well, but I'm not sure it is worth the
> hassle).
Filtering withing guc_copy_on_fail.sh was first thing what comes to my
mind. I got discussion with Kamil about this and he pointed out it blurs
responsibility when to execute to script. From the other hand decision
in the script is individual - allowlist is global so if we would like to
execute copy guc logs for 5 tests and another script for all igts it
wouldn't be possible.
I'm going to drop allowlist approach and try to implement conditional
execution for allowed subtests in guc_copy_on_fail.sh.
Thank you for the review.
--
Zbigniew
>
> --
> Gustavo Sousa
>
> >
> > Some limitation of this code is hooks will be executed with subtest
> > granularity - if multiple_mode is used regexp will compare only first
> > subtest so all subtest in group will call hooks. This is likely not
> > a big problem as CI executes each subtest individually (without
> > multiple_mode).
> >
> > Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> > Cc: Ryszard Knop <ryszard.knop@intel.com>
> > Cc: Krzysztof Karas <krzysztof.karas@intel.com>
> > ---
> > runner/executor.c | 32 +++++++++++++++++++++++++++++---
> > runner/settings.c | 14 +++++++++++++-
> > runner/settings.h | 2 ++
> > 3 files changed, 44 insertions(+), 4 deletions(-)
> >
> > diff --git a/runner/executor.c b/runner/executor.c
> > index bc421f7dbb..ab34ed8258 100644
> > --- a/runner/executor.c
> > +++ b/runner/executor.c
> > @@ -1615,6 +1615,18 @@ static int monitor_output(pid_t child,
> > return killed;
> > }
> >
> > +static bool matches_any(const char *str, struct regex_list *list)
> > +{
> > + size_t i;
> > +
> > + for (i = 0; i < list->size; i++) {
> > + if (g_regex_match(list->regexes[i], str, 0, NULL))
> > + return true;
> > + }
> > +
> > + return false;
> > +}
> > +
> > static void __attribute__((noreturn))
> > execute_test_process(int outfd, int errfd, int socketfd,
> > struct settings *settings,
> > @@ -1623,6 +1635,7 @@ execute_test_process(int outfd, int errfd, int socketfd,
> > struct igt_vec arg_vec;
> > char *arg;
> > size_t rootlen;
> > + bool use_hooks = true;
> >
> > dup2(outfd, STDOUT_FILENO);
> > dup2(errfd, STDERR_FILENO);
> > @@ -1646,11 +1659,24 @@ execute_test_process(int outfd, int errfd, int socketfd,
> > arg = strdup("--run-subtest");
> > igt_vec_push(&arg_vec, &arg);
> >
> > - if ((dynbegin = strchr(entry->subtests[0], '@')) != NULL)
> > + if ((dynbegin = strchr(entry->subtests[0], '@')) != NULL) {
> > argsize = dynbegin - entry->subtests[0];
> > - else
> > + } else {
> > argsize = strlen(entry->subtests[0]);
> >
> > + if (settings->use_hook_allow_regexes) {
> > + char *piglit_name;
> > +
> > + asprintf(&piglit_name, "igt@%s@%s",
> > + entry->binary, entry->subtests[0]);
> > +
> > + if (!matches_any(piglit_name, &settings->hook_allow_regexes))
> > + use_hooks = false;
> > +
> > + free(piglit_name);
> > + }
> > + }
> > +
> > arg = malloc(argsize + 1);
> > memcpy(arg, entry->subtests[0], argsize);
> > arg[argsize] = '\0';
> > @@ -1677,7 +1703,7 @@ execute_test_process(int outfd, int errfd, int socketfd,
> > }
> > }
> >
> > - for (size_t i = 0; i < igt_vec_length(&settings->hook_strs); i++) {
> > + for (size_t i = 0; use_hooks && i < igt_vec_length(&settings->hook_strs); i++) {
> > arg = strdup("--hook");
> > igt_vec_push(&arg_vec, &arg);
> > arg = strdup(*((char **)igt_vec_elem(&settings->hook_strs, i)));
> > diff --git a/runner/settings.c b/runner/settings.c
> > index 7c29f2d3ab..eb3d05405c 100644
> > --- a/runner/settings.c
> > +++ b/runner/settings.c
> > @@ -50,6 +50,7 @@ enum {
> > OPT_TIMEOUT = 'c',
> > OPT_WATCHDOG = 'g',
> > OPT_BLACKLIST = 'b',
> > + OPT_HOOK_EXEC_ALLOWLIST = 'a',
> > OPT_LIST_ALL = 'L',
> > };
> >
> > @@ -320,6 +321,9 @@ static const char *usage_str =
> > " Forward HOOK_STR to the --hook option of each test.\n"
> > " --help-hook\n"
> > " Show detailed usage information for --hook.\n"
> > + " -a, --hook-exec-allowlist FILENAME\n"
> > + " Tests name regexes from FILENAME for which hooks scripts\n"
> > + " may be executed\n"
> > "\n"
> > " [test_root] Directory that contains the IGT tests. The environment\n"
> > " variable IGT_TEST_ROOT will be used if set, overriding\n"
> > @@ -715,6 +719,7 @@ bool parse_options(int argc, char **argv,
> > {"dmesg-warn-level", required_argument, NULL, OPT_DMESG_WARN_LEVEL},
> > {"prune-mode", required_argument, NULL, OPT_PRUNE_MODE},
> > {"blacklist", required_argument, NULL, OPT_BLACKLIST},
> > + {"hook-exec-allowlist", required_argument, NULL, OPT_HOOK_EXEC_ALLOWLIST},
> > {"list-all", no_argument, NULL, OPT_LIST_ALL},
> > { 0, 0, 0, 0},
> > };
> > @@ -726,7 +731,7 @@ bool parse_options(int argc, char **argv,
> > settings->dmesg_warn_level = -1;
> > settings->prune_mode = -1;
> >
> > - while ((c = getopt_long(argc, argv, "hn:dt:x:e:fk::sl:omb:L",
> > + while ((c = getopt_long(argc, argv, "hn:dt:x:e:fk::sl:omb:a:L",
> > long_options, NULL)) != -1) {
> > switch (c) {
> > case OPT_VERSION:
> > @@ -852,6 +857,13 @@ bool parse_options(int argc, char **argv,
> > "blacklist"))
> > goto error;
> > break;
> > + case OPT_HOOK_EXEC_ALLOWLIST:
> > + if (!parse_list(&settings->hook_allow_regexes,
> > + absolute_path(optarg),
> > + "hook-exec-allowlist"))
> > + goto error;
> > + settings->use_hook_allow_regexes = true;
> > + break;
> > case OPT_LIST_ALL:
> > settings->list_all = true;
> > break;
> > diff --git a/runner/settings.h b/runner/settings.h
> > index 6c58c3282c..b81f6adc6d 100644
> > --- a/runner/settings.h
> > +++ b/runner/settings.h
> > @@ -59,6 +59,8 @@ struct settings {
> > bool allow_non_root;
> > struct regex_list include_regexes;
> > struct regex_list exclude_regexes;
> > + struct regex_list hook_allow_regexes;
> > + bool use_hook_allow_regexes;
> > struct igt_list_head env_vars;
> > struct igt_vec hook_strs;
> > bool facts;
> > --
> > 2.43.0
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2026-04-03 5:55 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-24 13:12 [PATCH i-g-t v2 0/6] RFC: Add attachments support Zbigniew Kempczyński
2026-03-24 13:12 ` [PATCH i-g-t v2 1/6] runner: Rename dirfd to avoid clash with dirfd() Zbigniew Kempczyński
2026-03-24 13:12 ` [PATCH i-g-t v2 2/6] runner: Create attachments directory to use by hooks Zbigniew Kempczyński
2026-03-30 6:48 ` Krzysztof Karas
2026-04-03 5:18 ` Zbigniew Kempczyński
2026-03-30 14:20 ` Gustavo Sousa
2026-03-31 16:05 ` Zbigniew Kempczyński
2026-03-31 16:47 ` Gustavo Sousa
2026-03-24 13:12 ` [PATCH i-g-t v2 3/6] runner: Add attachments directory content in subtests results Zbigniew Kempczyński
2026-03-30 7:17 ` Krzysztof Karas
2026-03-30 15:36 ` Gustavo Sousa
2026-03-24 13:12 ` [PATCH i-g-t v2 4/6] scripts/hooks: Example guc log copy script to attachments dir Zbigniew Kempczyński
2026-03-30 7:24 ` Krzysztof Karas
2026-03-24 13:12 ` [PATCH i-g-t v2 5/6] runner: Rename parsing function Zbigniew Kempczyński
2026-03-30 8:07 ` Krzysztof Karas
2026-04-03 5:40 ` Zbigniew Kempczyński
2026-03-24 13:12 ` [PATCH i-g-t v2 6/6] runner: Add hook-exec-allowlist to execute hooks selectively Zbigniew Kempczyński
2026-03-30 8:28 ` Krzysztof Karas
2026-03-30 17:19 ` Gustavo Sousa
2026-04-03 5:55 ` Zbigniew Kempczyński
2026-03-24 19:48 ` ✓ Xe.CI.BAT: success for RFC: Add attachments support (rev2) Patchwork
2026-03-24 21:10 ` ✓ i915.CI.BAT: " Patchwork
2026-03-25 7:25 ` ✗ i915.CI.Full: failure " Patchwork
2026-03-25 10:09 ` ✓ Xe.CI.FULL: success " Patchwork
2026-03-30 9:01 ` [PATCH i-g-t v2 0/6] RFC: Add attachments support Knop, Ryszard
2026-03-30 13:17 ` Kamil Konieczny
2026-03-30 13:52 ` Knop, Ryszard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox