Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t v4 0/2] Integrate kmemleak scans in igt_runner
@ 2025-01-28 15:15 Peter Senna Tschudin
  2025-01-28 15:15 ` [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak Peter Senna Tschudin
                   ` (7 more replies)
  0 siblings, 8 replies; 31+ messages in thread
From: Peter Senna Tschudin @ 2025-01-28 15:15 UTC (permalink / raw)
  To: igt-dev
  Cc: Peter Senna Tschudin, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, jonathan.cavitt

This patch series introduces a library to interact with the Linux
kernel's kmemleak feature and integrates it into igt_runner. If
kmemleaks are detected, they will be saved in the igt_runner results
directory in a file named kmemleak.txt.

During testing, the size of the kmemleak.txt file varied significantly.
Larger files, up to 2 MB, were observed when running i915-BAT on a
Tiger Lake DUT. Conversely, smaller files, typically under 100 KB, were
generated when running Xe BAT on the same DUT.

Large files often contain numerous false positives, with the e1000
driver being a frequent source of noise. The time required for the
Linux kernel to complete a kmemleak scan ranges from 5 to 60 seconds.
This variability can cause igt_runner to slow down by a factor of 4
when using the -keach option.

Transient leaks are a common phenomenon but are mostly undetected by
the current version of this library. A typical transient leak occurs
when pointers are reused, such as in linked lists. For example, if 10
calls to kmalloc are made, storing the address in the same variable
and freeing only the final allocation, the previous 9 allocations
become transient leaks. These leaks will go undetected unless the
kernel thread performs continuous scanning.

To enable continuous scanning:
 # echo scan=1 > /sys/kernel/debug/kmemleak

This configures the kmemleak kernel thread to scan the memory
continuously with 1 second pauses. While this may increase the
likelihood of detecting transient leaks, it can significantly impact
system performance. In most cases, the igt_runner slowdown remains in
the 4x range, but the kernel thread will consume 100% of a CPU core,
as observed with tools like top.

When using scan=1, transient leaks that exist during an active scan
will be detected. However, detection remains non-deterministic due
to timing. It is recommended to reset the scan interval to the
default value of 600 seconds after completing your tests.

v4:
 - Cleaned-up CC list
 - Fixed typo in patch numbering
 - Fixed Reviewed-by tag
 - Reintroduced ',' after "results-path". It was removed by accident
 - Changed unit testing for calling igt_kmemleak() with and without
   sync.

v3:
 - Removed '>' from the end of one of the email addresses in the cc list
 - Removed email addresses that no longer exist

v2:
 - Pass igt_kmemleak_sync as a function variable to igt_kmemleak instead of
   keeping it stored as a global variable
 - igt_kmemleak_found_leaks(): Remove call to fseek() after close()
 - igt_kmemleak_write(): Increase retry counter when writing 0 bytes
 - igt_kmemleak_write(): change type to bool
 - Unit Testing: Move the call to igt_kmemleak_init() to a fixture.
 - igt_kmemleak_append_to(): Add brackets to the if statement for improved
   readability

CC: ryszard.knop@intel.com
CC: lucas.demarchi@intel.com
CC: katarzyna.piecielska@intel.com
CC: jonathan.cavitt@intel.com

Peter Senna Tschudin (2):
  lib/igt_kmemleak: library to interact with kmemleak
  runner/executor: Integrate igt_kmemleak scans

 lib/igt_kmemleak.c       | 274 +++++++++++++++++++++++++++++++++++++++
 lib/igt_kmemleak.h       |  16 +++
 lib/meson.build          |   1 +
 lib/tests/igt_kmemleak.c | 267 ++++++++++++++++++++++++++++++++++++++
 lib/tests/meson.build    |   1 +
 runner/executor.c        |  25 +++-
 runner/runner_tests.c    |  16 ++-
 runner/settings.c        |  31 ++++-
 runner/settings.h        |   2 +
 9 files changed, 629 insertions(+), 4 deletions(-)
 create mode 100644 lib/igt_kmemleak.c
 create mode 100644 lib/igt_kmemleak.h
 create mode 100644 lib/tests/igt_kmemleak.c

-- 
2.34.1


^ permalink raw reply	[flat|nested] 31+ messages in thread

* [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-01-28 15:15 [PATCH i-g-t v4 0/2] Integrate kmemleak scans in igt_runner Peter Senna Tschudin
@ 2025-01-28 15:15 ` Peter Senna Tschudin
  2025-01-31 12:34   ` Kamil Konieczny
  2025-01-31 12:38   ` Kamil Konieczny
  2025-01-28 15:15 ` [PATCH i-g-t v4 2/2] runner/executor: Integrate igt_kmemleak scans Peter Senna Tschudin
                   ` (6 subsequent siblings)
  7 siblings, 2 replies; 31+ messages in thread
From: Peter Senna Tschudin @ 2025-01-28 15:15 UTC (permalink / raw)
  To: igt-dev
  Cc: Peter Senna Tschudin, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt

Adds a simple library for interacting with kmemleak and add
unit testing for the library. There are two modes intended to
integrate with igt_runner:
- once: collect kmemleaks after all test completed
- each: collect kmemleaks after eachb test completes

To use the library include "igt_kmemleak.h", call
igt_kmemleak_init(NULL) to check if kmemleak is enabled and finally
call igt_kmemleak() to collect kmemleaks. igt_kmemleak() expect the
following arguments:
  - const char *last_test: Name of the last lest or NULL
  - int resdirfd: file descriptor of the results directory
  - bool kmemleak_each: Are we scanning once or scanning after
    each test?
  - bool sync: sync after each write?

CC: ryszard.knop@intel.com
CC: lucas.demarchi@intel.com
CC: katarzyna.piecielska@intel.com
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Peter Senna Tschudin <peter.senna@linux.intel.com>
---
 lib/igt_kmemleak.c       | 274 +++++++++++++++++++++++++++++++++++++++
 lib/igt_kmemleak.h       |  16 +++
 lib/meson.build          |   1 +
 lib/tests/igt_kmemleak.c | 267 ++++++++++++++++++++++++++++++++++++++
 lib/tests/meson.build    |   1 +
 5 files changed, 559 insertions(+)
 create mode 100644 lib/igt_kmemleak.c
 create mode 100644 lib/igt_kmemleak.h
 create mode 100644 lib/tests/igt_kmemleak.c

diff --git a/lib/igt_kmemleak.c b/lib/igt_kmemleak.c
new file mode 100644
index 000000000..b875d95a2
--- /dev/null
+++ b/lib/igt_kmemleak.c
@@ -0,0 +1,274 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2024 Intel Corporation
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+
+#include "igt_core.h"
+#include "igt_kmemleak.h"
+
+/* We can change the path for unit testing, see igt_kmemleak_init() */
+static char igt_kmemleak_file[256] = "/sys/kernel/debug/kmemleak";
+
+#define MAX_WRITE_RETRIES 5
+/**
+ * igt_kmemleak_write - Writes the buffer to the file descriptor retrying when
+ * possible.
+ * @fd: The file descriptor to write to.
+ * @buf: Pointer to the data to write.
+ * @count: Total number of bytes to write.
+ *
+ * Returns the total number of bytes written on success, or -1 on failure.
+ */
+static bool igt_kmemleak_write(int fd, const void *buf, size_t count)
+{
+	const char *ptr = buf;
+	size_t remaining = count;
+	ssize_t written;
+	int retries = 0;
+
+	while (remaining > 0) {
+		written = write(fd, ptr, remaining);
+		if (written > 0) {
+			ptr += written;
+			remaining -= written;
+		} else if (written == -1) {
+			if (errno == EINTR || errno == EAGAIN) {
+				/* Retry for recoverable errors */
+				if (++retries > MAX_WRITE_RETRIES) {
+					igt_warn("igt_write: Exceeded retry limit\n");
+					return false;
+				}
+				continue;
+			} else {
+				/* Log unrecoverable error */
+				igt_warn("igt_write: unrecoverable write error");
+				return false;
+			}
+		} else if (written == 0) {
+			if (++retries > MAX_WRITE_RETRIES) {
+				igt_warn("igt_write: Exceeded retry limit\n");
+				return false;
+			}
+		}
+	}
+	return true;
+}
+
+/**
+ * igt_kmemeak_cmd:
+ * @cmd: command to send to kmemleak
+ *
+ * Send a command to kmemleak.
+ *
+ * Returns: true if sending the command was successful, false otherwise.
+ */
+static bool igt_kmemleak_cmd(const char *cmd)
+{
+	int fp;
+	bool res;
+
+	fp = open(igt_kmemleak_file, O_RDWR);
+	if (!fp)
+		return false;
+
+	res = igt_kmemleak_write(fp, cmd, strlen(cmd));
+	close(fp);
+
+	return res;
+}
+
+/**
+ * igt_kmemeak_clear:
+ *
+ * Trigger an immediate clear on kmemleak.
+ *
+ * Returns: true if sending the command to clear was successful, false
+ * otherwise.
+ */
+static bool igt_kmemleak_clear(void)
+{
+	return igt_kmemleak_cmd("clear");
+}
+
+/**
+ * igt_kmemeak_found_leaks:
+ *
+ * Check if kmemleak found any leaks by trying to read one byte from the
+ * kmemleak file.
+ *
+ * Returns: true if kmemleak found any leaks, false otherwise.
+ */
+static bool igt_kmemleak_found_leaks(void)
+{
+	FILE *fp;
+	char buf[1];
+	size_t rlen;
+
+	fp = fopen(igt_kmemleak_file, "r");
+	if (!fp)
+		return false;
+
+	rlen = fread(buf, 1, 1, fp);
+
+	if (rlen == 1)
+		lseek(fileno(fp), 0, SEEK_SET);
+
+	fclose(fp);
+
+	return rlen == 1;
+}
+
+/**
+ * igt_kmemeak_scan:
+ *
+ * Trigger an immediate scan on kmemleak.
+ *
+ * Returns: true if leaks are found. False on failure and when no leaks are
+ * found.
+ */
+static bool igt_kmemleak_scan(void)
+{
+	if (!igt_kmemleak_cmd("scan"))
+		return false;
+
+	/* kmemleak documentation states that "the memory scanning is only
+	 * performed when the /sys/kernel/debug/kmemleak file is read." Read
+	 * a byte to trigger the scan now.
+	 */
+	return igt_kmemleak_found_leaks();
+}
+
+/**
+ * igt_kmemleak_append_to:
+ * @last_test: last test name to append to the file
+ * @resdirfd: file descriptor of the results directory
+ * @kmemleak_each: Are we scanning once or scanning after each test?
+ * @sync: sync the kmemleak file often
+ *
+ * Append the kmemleak file to the result file adding a header indicating if
+ * the leaks are for all tests or for a single one.
+ *
+ * Returns: true if appending to the file was successful, false otherwise.
+ */
+static bool igt_kmemleak_append_to(const char *last_test, int resdirfd,
+				   bool kmemleak_each, bool sync)
+{
+	const char *before = "kmemleaks found before running any test\n\n";
+	const char *once = "kmemleaks found after running all tests\n";
+	int kmemleakfd, resfilefd;
+	char buf[4096];
+	size_t rlen;
+
+	kmemleakfd = open(igt_kmemleak_file, O_RDONLY);
+	if (kmemleakfd < 0)
+		return false;
+
+	/* Seek back to first byte */
+	lseek(kmemleakfd, 0, SEEK_SET);
+
+	/* Open text file to append */
+	resfilefd = openat(resdirfd, KMEMLEAKRESFILENAME,
+			   O_RDWR | O_CREAT | O_APPEND, 0666);
+	if (!resfilefd) {
+		close(kmemleakfd);
+		return false;
+	}
+
+	/* This is the header added before the content of the kmemleak file */
+	if (kmemleak_each) {
+		if (!last_test) {
+			igt_kmemleak_write(resfilefd, before, strlen(before));
+		} else {
+			/* Write \n\n last_test \n to buf */
+			snprintf(buf, sizeof(buf),
+				 "\n\nkmemleaks found after running %s:\n",
+				 last_test);
+
+			igt_kmemleak_write(resfilefd, buf, strlen(buf));
+			memset(buf, 0, sizeof(buf));
+		}
+	} else {
+		igt_kmemleak_write(resfilefd, once, strlen(once));
+	}
+
+	if (sync)
+		fsync(resfilefd);
+
+	while ((rlen = read(kmemleakfd, buf, sizeof(buf))) > 0) {
+		if (!igt_kmemleak_write(resfilefd, buf, rlen)) {
+			close(resfilefd);
+			close(kmemleakfd);
+			return false;
+		}
+		if (sync)
+			fsync(resfilefd);
+	}
+
+	close(resfilefd);
+	close(kmemleakfd);
+
+	return true;
+}
+
+/**
+ * igt_kmemeak_init:
+ * @unit_test_kmemleak_file: path to kmemleak file for unit testing
+ *
+ * Check if kmemleak is enabled in the kernel, if debugfs is mounted and
+ * if kmemleak file is present and readable.
+ *
+ * Returns: true if kmemleak is enabled, false otherwise.
+ */
+bool igt_kmemleak_init(const char *unit_test_kmemleak_file)
+{
+	FILE *fp;
+
+	if (unit_test_kmemleak_file)
+		snprintf(igt_kmemleak_file,
+			 sizeof(igt_kmemleak_file),
+			 "%s",
+			 unit_test_kmemleak_file);
+
+	fp = fopen(igt_kmemleak_file, "r");
+	if (!fp)
+		return false;
+
+	fclose(fp);
+
+	return true;
+}
+
+/**
+ * igt_kmemleak:
+ * @last_test: last test name to append to the file
+ * @resdirfd: file descriptor of the results directory
+ * @kmemleak_each: Are we scanning once or scanning after each test?
+ * @sync: sync the kmemleak file often
+ *
+ * This is the main function that should be called when integrating igt_kmemleak
+ * into igt_runner or elsewhere. There are two flows:
+ *  - run once: runs only once after all tests are completed
+ *  - run for each test: runs after every test
+ *
+ * Returns: true on success, false otherwise.
+ */
+bool igt_kmemleak(const char *last_test, int resdirfd, bool kmemleak_each,
+		  bool sync)
+{
+	/* Scan to collect results */
+	if (igt_kmemleak_scan())
+		if (!igt_kmemleak_append_to(last_test, resdirfd,
+					    kmemleak_each, sync))
+			return false;
+
+	if (kmemleak_each)
+		igt_kmemleak_clear();
+
+	return true;
+}
diff --git a/lib/igt_kmemleak.h b/lib/igt_kmemleak.h
new file mode 100644
index 000000000..cf7440384
--- /dev/null
+++ b/lib/igt_kmemleak.h
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: MIT
+ * Copyright © 2024 Intel Corporation
+ */
+
+#ifndef IGT_KMEMLEAK_H
+#define IGT_KMEMLEAK_H
+
+#include <stdbool.h>
+
+bool igt_kmemleak_init(const char *unit_test_kmemleak_file);
+bool igt_kmemleak(const char *last_test, int resdirfd, bool kmemleak_each,
+		  bool sync);
+
+#define KMEMLEAKRESFILENAME "kmemleak.txt"
+
+#endif /* IGT_KMEMLEAK_H */
diff --git a/lib/meson.build b/lib/meson.build
index 9fffdd3c6..7959dcacb 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -97,6 +97,7 @@ lib_sources = [
 	'igt_dummyload.c',
 	'igt_store.c',
 	'uwildmat/uwildmat.c',
+	'igt_kmemleak.c',
 	'igt_kmod.c',
 	'igt_ktap.c',
 	'igt_panfrost.c',
diff --git a/lib/tests/igt_kmemleak.c b/lib/tests/igt_kmemleak.c
new file mode 100644
index 000000000..a69ed2d1f
--- /dev/null
+++ b/lib/tests/igt_kmemleak.c
@@ -0,0 +1,267 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2024 Intel Corporation
+ */
+
+#include <ctype.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <zlib.h>
+
+#include "igt.h"
+#include "igt_kmemleak.h"
+
+const char *kmemleak_file_example =
+"unreferenced object 0xffff888102a2e638 (size 80):\n"
+" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
+" hex dump (first 32 bytes):\n"
+"   00 00 00 00 00 00 00 00 0d 01 a2 00 00 00 00 00  ................\n"
+"   f0 7c 03 00 00 c9 ff ff 00 00 00 00 00 00 00 00  .|..............\n"
+" backtrace (crc 2df71a7e):\n"
+"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
+"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
+"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
+"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
+"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
+"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
+"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
+"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
+"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
+"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
+"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
+"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
+"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
+"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
+"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2ed18 (size 80):\n"
+" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
+" hex dump (first 32 bytes):\n"
+"   38 e6 a2 02 81 88 ff ff 0d 11 2d 00 00 00 00 00  8.........-.....\n"
+"   f2 7c 03 00 00 c9 ff ff 58 ea a2 02 81 88 ff ff  .|......X.......\n"
+" backtrace (crc ec2a8bdc):\n"
+"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
+"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
+"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
+"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
+"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
+"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
+"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
+"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
+"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
+"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
+"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
+"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
+"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
+"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
+"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2ea58 (size 80):\n"
+" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
+" hex dump (first 32 bytes):\n"
+"   38 e6 a2 02 81 88 ff ff 0d 01 a0 00 00 00 00 00  8...............\n"
+"   f6 7c 03 00 00 c9 ff ff 00 00 00 00 00 00 00 00  .|..............\n"
+" backtrace (crc f911c0d1):\n"
+"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
+"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
+"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
+"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
+"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
+"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
+"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
+"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
+"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
+"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
+"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
+"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
+"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
+"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
+"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e428 (size 80):\n"
+" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
+" hex dump (first 32 bytes):\n"
+"   58 ea a2 02 81 88 ff ff 0d 01 35 00 00 00 00 00  X.........5.....\n"
+"   fc 7c 03 00 00 c9 ff ff 00 00 00 00 00 00 00 00  .|..............\n"
+" backtrace (crc cb8aaffd):\n"
+"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
+"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
+"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
+"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
+"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
+"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
+"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
+"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
+"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
+"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
+"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
+"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
+"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
+"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
+"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e008 (size 80):\n"
+" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
+" hex dump (first 32 bytes):\n"
+"   28 e4 a2 02 81 88 ff ff 0d 01 2d 00 00 00 00 00  (.........-.....\n"
+"   fc 7c 03 00 00 c9 ff ff c8 e2 a2 02 81 88 ff ff  .|..............\n"
+" backtrace (crc 7f883e78):\n"
+"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
+"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
+"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
+"   [<ffffffff81c2b9e5>] acpi_ps_get_next_namepath+0x1f5/0x390\n"
+"   [<ffffffff81c2cc15>] acpi_ps_parse_loop+0x4a5/0xa60\n"
+"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
+"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
+"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
+"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
+"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
+"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
+"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
+"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
+"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
+"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e2c8 (size 80):\n"
+" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
+" hex dump (first 32 bytes):\n"
+"   28 e4 a2 02 81 88 ff ff 0d 01 73 00 00 00 00 00  (.........s.....\n"
+"   00 7d 03 00 00 c9 ff ff 00 00 00 00 00 00 00 00  .}..............\n"
+" backtrace (crc 338c016):\n"
+"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
+"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
+"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
+"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
+"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
+"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
+"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
+"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
+"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
+"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
+"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
+"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
+"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
+"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
+"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e378 (size 80):\n"
+" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
+" hex dump (first 32 bytes):\n"
+"   c8 e2 a2 02 81 88 ff ff 0d 01 0d 00 00 00 00 00  ................\n"
+"   01 7d 03 00 00 c9 ff ff 98 e7 a2 02 81 88 ff ff  .}..............\n"
+" backtrace (crc 665fb8a7):\n"
+"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
+"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
+"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
+"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
+"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
+"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
+"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
+"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
+"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
+"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
+"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
+"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
+"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
+"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
+"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e798 (size 80):\n"
+" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
+" hex dump (first 32 bytes):\n"
+"   7c8 e2 a2 02 81 88 ff ff 0d 01 98 00 00 00 00 00  ................\n"
+"   1b 7d 03 00 00 c9 ff ff 00 00 00 00 00 00 00 00  .}..............\n"
+" backtrace (crc b7a23a1c):\n"
+"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
+"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
+"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
+"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
+"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
+"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
+"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
+"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
+"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
+"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
+"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
+"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
+"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
+"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
+"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e0b8 (size 80):\n"
+" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
+" hex dump (first 32 bytes):\n"
+"   98 e7 a2 02 81 88 ff ff 0d 01 2d 00 00 00 00 00  ..........-.....\n"
+"   1c 7d 03 00 00 c9 ff ff 00 00 00 00 00 00 00 00  .}..............\n"
+" backtrace (crc 14d67a9c):\n"
+"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
+"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
+"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
+"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
+"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
+"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
+"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
+"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
+"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
+"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
+"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
+"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
+"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
+"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
+"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170\n";
+
+static const char *igt_kmemleak_unit_testing_resdir = "/tmp";
+
+igt_main
+{
+	char unit_testing_kmemleak_filepath[256] = "/tmp/igt_kmemleak_test_XXXXXX";
+	int written_bytes;
+	int resdirfd;
+	int fd;
+
+	igt_fixture {
+		/* resdirfd is used by igt_kmemleak() to store results */
+		igt_assert(resdirfd = open(igt_kmemleak_unit_testing_resdir,
+					   O_DIRECTORY | O_RDONLY));
+
+		/* Try to delete results file in case of leftovers,
+		 * ignoring errors as the file may not exist
+		 */
+		unlinkat(resdirfd, KMEMLEAKRESFILENAME, 0);
+
+		/* Creating a fake kmemleak file for unit testing */
+		fd = mkstemp(unit_testing_kmemleak_filepath);
+		igt_assert(fd >= 0);
+
+		written_bytes = write(fd, kmemleak_file_example,
+				strlen(kmemleak_file_example));
+		igt_assert_eq(written_bytes, strlen(kmemleak_file_example));
+
+		close(fd);
+
+		/* Initializing igt_kmemleak with a fake kmemleak file
+		 * for unit testing
+		 */
+		igt_assert(igt_kmemleak_init(unit_testing_kmemleak_filepath));
+	}
+
+	igt_subtest_group {
+		igt_subtest("test_igt_kmemleak_once")
+			igt_assert(igt_kmemleak(NULL, resdirfd, false, true));
+
+		igt_subtest("test_igt_kmemleak_each") {
+			igt_assert(igt_kmemleak("test_name_1", resdirfd,
+						true, false));
+			igt_assert(igt_kmemleak("test_name_2", resdirfd,
+						true, true));
+			igt_assert(igt_kmemleak("test_name_3", resdirfd,
+						true, false));
+		}
+		igt_fixture {
+			close(resdirfd);
+		}
+	}
+	igt_fixture
+		unlinkat(resdirfd, KMEMLEAKRESFILENAME, 0);
+}
diff --git a/lib/tests/meson.build b/lib/tests/meson.build
index 1ce19f63c..5c42408d5 100644
--- a/lib/tests/meson.build
+++ b/lib/tests/meson.build
@@ -16,6 +16,7 @@ lib_tests = [
         'igt_ktap_parser',
 	'igt_list_only',
 	'igt_invalid_subtest_name',
+	'igt_kmemleak',
 	'igt_nesting',
 	'igt_no_exit',
 	'igt_runnercomms_packets',
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH i-g-t v4 2/2] runner/executor: Integrate igt_kmemleak scans
  2025-01-28 15:15 [PATCH i-g-t v4 0/2] Integrate kmemleak scans in igt_runner Peter Senna Tschudin
  2025-01-28 15:15 ` [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak Peter Senna Tschudin
@ 2025-01-28 15:15 ` Peter Senna Tschudin
  2025-01-31 12:50   ` Kamil Konieczny
  2025-01-28 20:48 ` ✓ i915.CI.BAT: success for Integrate kmemleak scans in igt_runner (rev2) Patchwork
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 31+ messages in thread
From: Peter Senna Tschudin @ 2025-01-28 15:15 UTC (permalink / raw)
  To: igt-dev
  Cc: Peter Senna Tschudin, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt

Modifies igt_runner to include calls to igt_kmemleak(). Kmemleak
scanning is disabled by default, so add command line options to
igt_runner to enable kmemleak scanning:  -k, -k<option>, --kmemleak,
--kmemleak=<option>. The options are:
 - once: run one kmemleak scan after all tests from the test-list
         complete.
 - each: run one kmemleak scan after each test completes.

If kmemleaks are found they will be saved to the igt_runner results
directory in a file named kmemleak.txt.

Updates serialize_settings() and read_settings_from_file() to save
and restore igt_runner settings to and from disk. This is used when
calling igt_runner with '--dry-run' and then by calling igt_resume
instead of igt_runner.

Updates unit testing for igt_runner to test that:
 - Kmemleak scans are disabled by default
 - Kmemleak scans  be enabled by command line arguments
 - The choice about kmemleaks being enabled or not is saved to disk
   and restored from disk

CC: ryszard.knop@intel.com
CC: lucas.demarchi@intel.com
CC: katarzyna.piecielska@intel.com
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Peter Senna Tschudin <peter.senna@linux.intel.com>
---
 runner/executor.c     | 25 +++++++++++++++++++++++--
 runner/runner_tests.c | 16 +++++++++++++++-
 runner/settings.c     | 31 ++++++++++++++++++++++++++++++-
 runner/settings.h     |  2 ++
 4 files changed, 70 insertions(+), 4 deletions(-)

diff --git a/runner/executor.c b/runner/executor.c
index 999e7f719..992366312 100644
--- a/runner/executor.c
+++ b/runner/executor.c
@@ -31,6 +31,7 @@
 #include "igt_aux.h"
 #include "igt_core.h"
 #include "igt_facts.h"
+#include "igt_kmemleak.h"
 #include "igt_taints.h"
 #include "igt_vec.h"
 #include "executor.h"
@@ -2370,6 +2371,13 @@ bool execute(struct execute_state *state,
 	if (settings->facts)
 		igt_facts_lists_init();
 
+	if (settings->kmemleak)
+		if (!igt_kmemleak_init(NULL)) {
+			errf("Failed to initialize kmemleak. Is kernel support enabled?\n");
+			errf("Disabling kmemleak on igt_runner and continuing...\n");
+			settings->kmemleak = settings->kmemleak_each = false;
+		}
+
 	if (state->next >= job_list->size) {
 		outf("All tests already executed.\n");
 		return true;
@@ -2497,10 +2505,18 @@ bool execute(struct execute_state *state,
 		bool already_written = false;
 
 		/* Collect facts before running each test */
-		if (settings->facts) {
+		if (settings->facts)
 			igt_facts(last_test);
+
+		if (settings->kmemleak_each)
+			if (!igt_kmemleak(last_test, resdirfd,
+					  settings->kmemleak_each,
+					  settings->sync))
+				errf("Failed to collect kmemleak logs after %s\n",
+				     last_test);
+
+		if (settings->facts || settings->kmemleak_each)
 			last_test = entry_display_name(&job_list->entries[state->next]);
-		}
 
 		if (should_die_because_signal(sigfd)) {
 			status = false;
@@ -2595,6 +2611,11 @@ bool execute(struct execute_state *state,
 	if (settings->facts)
 		igt_facts(last_test);
 
+	if (settings->kmemleak)
+		if (!igt_kmemleak(last_test, resdirfd,
+				  settings->kmemleak_each, settings->sync))
+			errf("Failed to collect kmemleak logs after the last test\n");
+
 	if ((timefd = openat(resdirfd, "endtime.txt", O_CREAT | O_WRONLY | O_EXCL, 0666)) >= 0) {
 		dprintf(timefd, "%f\n", timeofday_double());
 		close(timefd);
diff --git a/runner/runner_tests.c b/runner/runner_tests.c
index 8441763f2..769fa2929 100644
--- a/runner/runner_tests.c
+++ b/runner/runner_tests.c
@@ -191,6 +191,7 @@ static void assert_settings_equal(struct settings *one, struct settings *two)
 	igt_assert_eq(one->dry_run, two->dry_run);
 	igt_assert_eq(one->allow_non_root, two->allow_non_root);
 	igt_assert_eq(one->facts, two->facts);
+	igt_assert_eq(one->kmemleak, two->kmemleak);
 	igt_assert_eq(one->sync, two->sync);
 	igt_assert_eq(one->log_level, two->log_level);
 	igt_assert_eq(one->overwrite, two->overwrite);
@@ -304,6 +305,7 @@ igt_main
 		igt_assert(igt_list_empty(&settings->env_vars));
 		igt_assert(!igt_vec_length(&settings->hook_strs));
 		igt_assert(!settings->facts);
+		igt_assert(!settings->kmemleak);
 		igt_assert(!settings->sync);
 		igt_assert_eq(settings->log_level, LOG_LEVEL_NORMAL);
 		igt_assert(!settings->overwrite);
@@ -426,6 +428,7 @@ igt_main
 		igt_assert_eq(settings->include_regexes.size, 0);
 		igt_assert_eq(settings->exclude_regexes.size, 0);
 		igt_assert(!settings->facts);
+		igt_assert(!settings->kmemleak);
 		igt_assert(!settings->sync);
 		igt_assert_eq(settings->log_level, LOG_LEVEL_NORMAL);
 		igt_assert(!settings->overwrite);
@@ -464,6 +467,7 @@ igt_main
 				       "-b", blacklist_name,
 				       "--blacklist", blacklist2_name,
 				       "-f",
+				       "-k",
 				       "-s",
 				       "-l", "verbose",
 				       "--overwrite",
@@ -523,6 +527,7 @@ igt_main
 		igt_assert_eqstr(*((char **)igt_vec_elem(&settings->hook_strs, 1)), "echo world");
 
 		igt_assert(settings->facts);
+		igt_assert(settings->kmemleak);
 		igt_assert(settings->sync);
 		igt_assert_eq(settings->log_level, LOG_LEVEL_VERBOSE);
 		igt_assert(settings->overwrite);
@@ -718,6 +723,7 @@ igt_main
 	igt_subtest("parse-clears-old-data") {
 		const char *argv[] = { "runner",
 				       "-n", "foo",
+				       "--overwrite",
 				       "--dry-run",
 				       "--allow-non-root",
 				       "test-root-dir",
@@ -727,21 +733,29 @@ igt_main
 		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
 
 		igt_assert_eqstr(settings->name, "foo");
+		igt_assert(settings->overwrite);
 		igt_assert(settings->dry_run);
 		igt_assert(!settings->test_list);
 		igt_assert(!settings->facts);
+		igt_assert(!settings->kmemleak);
 		igt_assert(!settings->sync);
 
 		argv[1] = "--test-list";
+		argv[2] = "foo"; /* Unchanged */
 		argv[3] = "--facts";
-		argv[4] = "--sync";
+		argv[4] = "--kmemleak";
+		argv[5] = "--sync";
+		argv[6] = "test-root-dir"; /* Unchanged */
+		argv[7] = "results-path"; /* Unchanged */
 
 		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
 
 		igt_assert_eqstr(settings->name, "results-path");
 		igt_assert(!settings->dry_run);
+		igt_assert(!settings->overwrite);
 		igt_assert(strstr(settings->test_list, "foo") != NULL);
 		igt_assert(settings->facts);
+		igt_assert(settings->kmemleak);
 		igt_assert(settings->sync);
 	}
 
diff --git a/runner/settings.c b/runner/settings.c
index 92fd42ea6..560bc2b5e 100644
--- a/runner/settings.c
+++ b/runner/settings.c
@@ -41,6 +41,7 @@ enum {
 	OPT_EXCLUDE = 'x',
 	OPT_ENVIRONMENT = 'e',
 	OPT_FACTS = 'f',
+	OPT_KMEMLEAK = 'k',
 	OPT_SYNC = 's',
 	OPT_LOG_LEVEL = 'l',
 	OPT_OVERWRITE = 'o',
@@ -232,6 +233,16 @@ static const char *usage_str =
 	"                                   not respond to ping.\n"
 	"                         all     - abort for all of the above.\n"
 	"  -f, --facts           Enable facts tracking\n"
+	"  -k, -k<option>, --kmemleak, --kmemleak=<option>\n"
+	"                        Enable kmemleak tracking. Each kmemleak scan\n"
+	"                        can take from 5 to 60 seconds, slowing down\n"
+	"                        the run considerably. The default is to scan\n"
+	"                        only once after the last test. It is also\n"
+	"                        possible to scan after each test. Possible\n"
+	"                        options:\n"
+	"                         once - The default is to run one kmemleak\n"
+	"                                scan after the last test\n"
+	"                         each - Run one kmemleak scan after each test\n"
 	"  -s, --sync            Sync results to disk after every test\n"
 	"  -l {quiet,verbose,dummy}, --log-level {quiet,verbose,dummy}\n"
 	"                        Set the logger verbosity level\n"
@@ -668,6 +679,7 @@ bool parse_options(int argc, char **argv,
 		{"abort-on-monitored-error", optional_argument, NULL, OPT_ABORT_ON_ERROR},
 		{"disk-usage-limit", required_argument, NULL, OPT_DISK_USAGE_LIMIT},
 		{"facts", no_argument, NULL, OPT_FACTS},
+		{"kmemleak", optional_argument, NULL, OPT_KMEMLEAK},
 		{"sync", no_argument, NULL, OPT_SYNC},
 		{"log-level", required_argument, NULL, OPT_LOG_LEVEL},
 		{"test-list", required_argument, NULL, OPT_TEST_LIST},
@@ -698,7 +710,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:fsl:omb:L",
+	while ((c = getopt_long(argc, argv, "hn:dt:x:e:fsl:omb:Lk::",
 				long_options, NULL)) != -1) {
 		switch (c) {
 		case OPT_VERSION:
@@ -742,6 +754,19 @@ bool parse_options(int argc, char **argv,
 		case OPT_FACTS:
 			settings->facts = true;
 			break;
+		case OPT_KMEMLEAK:
+			settings->kmemleak = true;
+			if (optarg) {
+				if (strcmp(optarg, "once") == 0)
+					settings->kmemleak_each = false;
+				else if (strcmp(optarg, "each") == 0)
+					settings->kmemleak_each = true;
+				else {
+					usage(stderr, "Invalid kmemleak option");
+					goto error;
+				}
+			}
+			break;
 		case OPT_SYNC:
 			settings->sync = true;
 			break;
@@ -1105,6 +1130,8 @@ bool serialize_settings(struct settings *settings)
 	SERIALIZE_LINE(f, settings, dry_run, "%d");
 	SERIALIZE_LINE(f, settings, allow_non_root, "%d");
 	SERIALIZE_LINE(f, settings, facts, "%d");
+	SERIALIZE_LINE(f, settings, kmemleak, "%d");
+	SERIALIZE_LINE(f, settings, kmemleak_each, "%d");
 	SERIALIZE_LINE(f, settings, sync, "%d");
 	SERIALIZE_LINE(f, settings, log_level, "%d");
 	SERIALIZE_LINE(f, settings, overwrite, "%d");
@@ -1176,6 +1203,8 @@ bool read_settings_from_file(struct settings *settings, FILE *f)
 		PARSE_LINE(settings, name, val, dry_run, numval);
 		PARSE_LINE(settings, name, val, allow_non_root, numval);
 		PARSE_LINE(settings, name, val, facts, numval);
+		PARSE_LINE(settings, name, val, kmemleak, numval);
+		PARSE_LINE(settings, name, val, kmemleak_each, numval);
 		PARSE_LINE(settings, name, val, sync, numval);
 		PARSE_LINE(settings, name, val, log_level, numval);
 		PARSE_LINE(settings, name, val, overwrite, numval);
diff --git a/runner/settings.h b/runner/settings.h
index f69f09778..ab00b3e32 100644
--- a/runner/settings.h
+++ b/runner/settings.h
@@ -58,6 +58,8 @@ struct settings {
 	struct igt_list_head env_vars;
 	struct igt_vec hook_strs;
 	bool facts;
+	bool kmemleak;
+	bool kmemleak_each;
 	bool sync;
 	int log_level;
 	bool overwrite;
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* ✓ i915.CI.BAT: success for Integrate kmemleak scans in igt_runner (rev2)
  2025-01-28 15:15 [PATCH i-g-t v4 0/2] Integrate kmemleak scans in igt_runner Peter Senna Tschudin
  2025-01-28 15:15 ` [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak Peter Senna Tschudin
  2025-01-28 15:15 ` [PATCH i-g-t v4 2/2] runner/executor: Integrate igt_kmemleak scans Peter Senna Tschudin
@ 2025-01-28 20:48 ` Patchwork
  2025-01-28 20:49 ` Patchwork
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2025-01-28 20:48 UTC (permalink / raw)
  To: Peter Senna Tschudin; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 5519 bytes --]

== Series Details ==

Series: Integrate kmemleak scans in igt_runner (rev2)
URL   : https://patchwork.freedesktop.org/series/143996/
State : success

== Summary ==

CI Bug Log - changes from IGT_8212 -> IGTPW_12508
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/index.html

Participating hosts (42 -> 42)
------------------------------

  Additional (1): fi-glk-j4005 
  Missing    (1): fi-snb-2520m 

Known issues
------------

  Here are the changes found in IGTPW_12508 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_huc_copy@huc-copy:
    - fi-glk-j4005:       NOTRUN -> [SKIP][1] ([i915#2190])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/fi-glk-j4005/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - fi-glk-j4005:       NOTRUN -> [SKIP][2] ([i915#4613]) +3 other tests skip
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/fi-glk-j4005/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@i915_module_load@load:
    - fi-pnv-d510:        NOTRUN -> [ABORT][3] ([i915#13203])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/fi-pnv-d510/igt@i915_module_load@load.html

  * igt@i915_module_load@reload:
    - fi-kbl-7567u:       [PASS][4] -> [DMESG-WARN][5] ([i915#11621] / [i915#180] / [i915#1982]) +1 other test dmesg-warn
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8212/fi-kbl-7567u/igt@i915_module_load@reload.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/fi-kbl-7567u/igt@i915_module_load@reload.html

  * igt@i915_pm_rpm@module-reload:
    - bat-rpls-4:         [PASS][6] -> [DMESG-WARN][7] ([i915#13400])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8212/bat-rpls-4/igt@i915_pm_rpm@module-reload.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/bat-rpls-4/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live:
    - bat-mtlp-8:         [PASS][8] -> [DMESG-FAIL][9] ([i915#12061]) +1 other test dmesg-fail
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8212/bat-mtlp-8/igt@i915_selftest@live.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/bat-mtlp-8/igt@i915_selftest@live.html

  * igt@i915_selftest@live@sanitycheck:
    - fi-kbl-7567u:       [PASS][10] -> [DMESG-WARN][11] ([i915#11621]) +81 other tests dmesg-warn
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8212/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html

  * igt@kms_pm_rpm@basic-pci-d3-state:
    - fi-kbl-7567u:       [PASS][12] -> [DMESG-WARN][13] ([i915#11621] / [i915#180]) +51 other tests dmesg-warn
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8212/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html

  * igt@kms_psr@psr-primary-page-flip:
    - fi-glk-j4005:       NOTRUN -> [SKIP][14] +10 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/fi-glk-j4005/igt@kms_psr@psr-primary-page-flip.html

  
#### Possible fixes ####

  * igt@i915_module_load@load:
    - {bat-mtlp-9}:       [DMESG-WARN][15] ([i915#13577]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8212/bat-mtlp-9/igt@i915_module_load@load.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/bat-mtlp-9/igt@i915_module_load@load.html

  * igt@i915_selftest@live@workarounds:
    - bat-arls-5:         [DMESG-FAIL][17] ([i915#12061]) -> [PASS][18] +1 other test pass
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8212/bat-arls-5/igt@i915_selftest@live@workarounds.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/bat-arls-5/igt@i915_selftest@live@workarounds.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#11621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11621
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#13203]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13203
  [i915#13400]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13400
  [i915#13577]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13577
  [i915#180]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/180
  [i915#1982]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1982
  [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_8212 -> IGTPW_12508
  * Linux: CI_DRM_16031 -> CI_DRM_16035

  CI-20190529: 20190529
  CI_DRM_16031: 73c0fe019ff4bf312f6ae1114f0ca63bd13ea4b7 @ git://anongit.freedesktop.org/gfx-ci/linux
  CI_DRM_16035: 20759526c04a7f776f477bee66300dae33b51872 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_12508: 475edab3a8190cd8165976da3ca1379b46105d37 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  IGT_8212: 76102a17560c6e6fc6528db29286b0266ccc48ef @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/index.html

[-- Attachment #2: Type: text/html, Size: 6715 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* ✓ i915.CI.BAT: success for Integrate kmemleak scans in igt_runner (rev2)
  2025-01-28 15:15 [PATCH i-g-t v4 0/2] Integrate kmemleak scans in igt_runner Peter Senna Tschudin
                   ` (2 preceding siblings ...)
  2025-01-28 20:48 ` ✓ i915.CI.BAT: success for Integrate kmemleak scans in igt_runner (rev2) Patchwork
@ 2025-01-28 20:49 ` Patchwork
  2025-01-28 20:52 ` ✓ Xe.CI.BAT: " Patchwork
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2025-01-28 20:49 UTC (permalink / raw)
  To: Peter Senna Tschudin; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 5519 bytes --]

== Series Details ==

Series: Integrate kmemleak scans in igt_runner (rev2)
URL   : https://patchwork.freedesktop.org/series/143996/
State : success

== Summary ==

CI Bug Log - changes from IGT_8212 -> IGTPW_12508
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/index.html

Participating hosts (42 -> 42)
------------------------------

  Additional (1): fi-glk-j4005 
  Missing    (1): fi-snb-2520m 

Known issues
------------

  Here are the changes found in IGTPW_12508 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_huc_copy@huc-copy:
    - fi-glk-j4005:       NOTRUN -> [SKIP][1] ([i915#2190])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/fi-glk-j4005/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - fi-glk-j4005:       NOTRUN -> [SKIP][2] ([i915#4613]) +3 other tests skip
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/fi-glk-j4005/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@i915_module_load@load:
    - fi-pnv-d510:        NOTRUN -> [ABORT][3] ([i915#13203])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/fi-pnv-d510/igt@i915_module_load@load.html

  * igt@i915_module_load@reload:
    - fi-kbl-7567u:       [PASS][4] -> [DMESG-WARN][5] ([i915#11621] / [i915#180] / [i915#1982]) +1 other test dmesg-warn
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8212/fi-kbl-7567u/igt@i915_module_load@reload.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/fi-kbl-7567u/igt@i915_module_load@reload.html

  * igt@i915_pm_rpm@module-reload:
    - bat-rpls-4:         [PASS][6] -> [DMESG-WARN][7] ([i915#13400])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8212/bat-rpls-4/igt@i915_pm_rpm@module-reload.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/bat-rpls-4/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live:
    - bat-mtlp-8:         [PASS][8] -> [DMESG-FAIL][9] ([i915#12061]) +1 other test dmesg-fail
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8212/bat-mtlp-8/igt@i915_selftest@live.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/bat-mtlp-8/igt@i915_selftest@live.html

  * igt@i915_selftest@live@sanitycheck:
    - fi-kbl-7567u:       [PASS][10] -> [DMESG-WARN][11] ([i915#11621]) +81 other tests dmesg-warn
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8212/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html

  * igt@kms_pm_rpm@basic-pci-d3-state:
    - fi-kbl-7567u:       [PASS][12] -> [DMESG-WARN][13] ([i915#11621] / [i915#180]) +51 other tests dmesg-warn
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8212/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html

  * igt@kms_psr@psr-primary-page-flip:
    - fi-glk-j4005:       NOTRUN -> [SKIP][14] +10 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/fi-glk-j4005/igt@kms_psr@psr-primary-page-flip.html

  
#### Possible fixes ####

  * igt@i915_module_load@load:
    - {bat-mtlp-9}:       [DMESG-WARN][15] ([i915#13577]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8212/bat-mtlp-9/igt@i915_module_load@load.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/bat-mtlp-9/igt@i915_module_load@load.html

  * igt@i915_selftest@live@workarounds:
    - bat-arls-5:         [DMESG-FAIL][17] ([i915#12061]) -> [PASS][18] +1 other test pass
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8212/bat-arls-5/igt@i915_selftest@live@workarounds.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/bat-arls-5/igt@i915_selftest@live@workarounds.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#11621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11621
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#13203]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13203
  [i915#13400]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13400
  [i915#13577]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13577
  [i915#180]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/180
  [i915#1982]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1982
  [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_8212 -> IGTPW_12508
  * Linux: CI_DRM_16031 -> CI_DRM_16035

  CI-20190529: 20190529
  CI_DRM_16031: 73c0fe019ff4bf312f6ae1114f0ca63bd13ea4b7 @ git://anongit.freedesktop.org/gfx-ci/linux
  CI_DRM_16035: 20759526c04a7f776f477bee66300dae33b51872 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_12508: 475edab3a8190cd8165976da3ca1379b46105d37 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  IGT_8212: 76102a17560c6e6fc6528db29286b0266ccc48ef @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/index.html

[-- Attachment #2: Type: text/html, Size: 6715 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* ✓ Xe.CI.BAT: success for Integrate kmemleak scans in igt_runner (rev2)
  2025-01-28 15:15 [PATCH i-g-t v4 0/2] Integrate kmemleak scans in igt_runner Peter Senna Tschudin
                   ` (3 preceding siblings ...)
  2025-01-28 20:49 ` Patchwork
@ 2025-01-28 20:52 ` Patchwork
  2025-01-29 10:40 ` ✗ Xe.CI.Full: failure " Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2025-01-28 20:52 UTC (permalink / raw)
  To: Peter Senna Tschudin; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 6066 bytes --]

== Series Details ==

Series: Integrate kmemleak scans in igt_runner (rev2)
URL   : https://patchwork.freedesktop.org/series/143996/
State : success

== Summary ==

CI Bug Log - changes from XEIGT_8212_BAT -> XEIGTPW_12508_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (7 -> 7)
------------------------------

  Additional (1): bat-bmg-1 
  Missing    (1): bat-bmg-2 

Known issues
------------

  Here are the changes found in XEIGTPW_12508_BAT that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - bat-bmg-1:          NOTRUN -> [SKIP][1] ([Intel XE#2233])
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/bat-bmg-1/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_dsc@dsc-basic:
    - bat-bmg-1:          NOTRUN -> [SKIP][2] ([Intel XE#2244])
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/bat-bmg-1/igt@kms_dsc@dsc-basic.html

  * igt@kms_psr@psr-sprite-plane-onoff:
    - bat-bmg-1:          NOTRUN -> [SKIP][3] ([Intel XE#2234] / [Intel XE#2850]) +2 other tests skip
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/bat-bmg-1/igt@kms_psr@psr-sprite-plane-onoff.html

  * igt@sriov_basic@enable-vfs-autoprobe-off:
    - bat-bmg-1:          NOTRUN -> [SKIP][4] ([Intel XE#1091] / [Intel XE#2849]) +1 other test skip
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/bat-bmg-1/igt@sriov_basic@enable-vfs-autoprobe-off.html

  * igt@xe_live_ktest@xe_bo@xe_bo_evict_kunit:
    - bat-adlp-vf:        NOTRUN -> [SKIP][5] ([Intel XE#2229] / [Intel XE#455]) +1 other test skip
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/bat-adlp-vf/igt@xe_live_ktest@xe_bo@xe_bo_evict_kunit.html

  * igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit:
    - bat-bmg-1:          NOTRUN -> [SKIP][6] ([Intel XE#2229])
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/bat-bmg-1/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html

  * igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit:
    - bat-adlp-vf:        NOTRUN -> [SKIP][7] ([Intel XE#2229])
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/bat-adlp-vf/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html

  * igt@xe_pat@pat-index-xehpc:
    - bat-bmg-1:          NOTRUN -> [SKIP][8] ([Intel XE#1420])
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/bat-bmg-1/igt@xe_pat@pat-index-xehpc.html

  * igt@xe_pat@pat-index-xelp:
    - bat-bmg-1:          NOTRUN -> [SKIP][9] ([Intel XE#2245])
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/bat-bmg-1/igt@xe_pat@pat-index-xelp.html

  * igt@xe_pat@pat-index-xelpg:
    - bat-bmg-1:          NOTRUN -> [SKIP][10] ([Intel XE#2236])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/bat-bmg-1/igt@xe_pat@pat-index-xelpg.html

  * igt@xe_sriov_flr@flr-vf1-clear:
    - bat-bmg-1:          NOTRUN -> [SKIP][11] ([Intel XE#3342])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/bat-bmg-1/igt@xe_sriov_flr@flr-vf1-clear.html

  
#### Possible fixes ####

  * igt@xe_live_ktest@xe_migrate:
    - bat-adlp-vf:        [SKIP][12] ([Intel XE#1192]) -> [PASS][13] +1 other test pass
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/bat-adlp-vf/igt@xe_live_ktest@xe_migrate.html
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/bat-adlp-vf/igt@xe_live_ktest@xe_migrate.html

  * igt@xe_pat@pat-index-xelp@render:
    - bat-adlp-vf:        [DMESG-WARN][14] ([Intel XE#3970] / [Intel XE#4078]) -> [PASS][15] +1 other test pass
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/bat-adlp-vf/igt@xe_pat@pat-index-xelp@render.html
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/bat-adlp-vf/igt@xe_pat@pat-index-xelp@render.html

  
#### Warnings ####

  * igt@xe_live_ktest@xe_bo:
    - bat-adlp-vf:        [SKIP][16] ([Intel XE#1192]) -> [SKIP][17] ([Intel XE#2229] / [Intel XE#455])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/bat-adlp-vf/igt@xe_live_ktest@xe_bo.html
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/bat-adlp-vf/igt@xe_live_ktest@xe_bo.html

  
  [Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
  [Intel XE#1192]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1192
  [Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420
  [Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
  [Intel XE#2233]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2233
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2236]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2236
  [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
  [Intel XE#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245
  [Intel XE#2849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2849
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#3342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3342
  [Intel XE#3970]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3970
  [Intel XE#4078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4078
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455


Build changes
-------------

  * IGT: IGT_8212 -> IGTPW_12508
  * Linux: xe-2562-73c0fe019ff4bf312f6ae1114f0ca63bd13ea4b7 -> xe-2566-20759526c04a7f776f477bee66300dae33b51872

  IGTPW_12508: 475edab3a8190cd8165976da3ca1379b46105d37 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  IGT_8212: 76102a17560c6e6fc6528db29286b0266ccc48ef @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-2562-73c0fe019ff4bf312f6ae1114f0ca63bd13ea4b7: 73c0fe019ff4bf312f6ae1114f0ca63bd13ea4b7
  xe-2566-20759526c04a7f776f477bee66300dae33b51872: 20759526c04a7f776f477bee66300dae33b51872

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/index.html

[-- Attachment #2: Type: text/html, Size: 7296 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* ✗ Xe.CI.Full: failure for Integrate kmemleak scans in igt_runner (rev2)
  2025-01-28 15:15 [PATCH i-g-t v4 0/2] Integrate kmemleak scans in igt_runner Peter Senna Tschudin
                   ` (4 preceding siblings ...)
  2025-01-28 20:52 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-01-29 10:40 ` Patchwork
  2025-01-29 13:18   ` Peter Senna Tschudin
  2025-01-29 11:25 ` ✗ i915.CI.Full: " Patchwork
  2025-01-30  5:26 ` ✓ i915.CI.Full: success " Patchwork
  7 siblings, 1 reply; 31+ messages in thread
From: Patchwork @ 2025-01-29 10:40 UTC (permalink / raw)
  To: Peter Senna Tschudin; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 86862 bytes --]

== Series Details ==

Series: Integrate kmemleak scans in igt_runner (rev2)
URL   : https://patchwork.freedesktop.org/series/143996/
State : failure

== Summary ==

CI Bug Log - changes from XEIGT_8212_full -> XEIGTPW_12508_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with XEIGTPW_12508_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in XEIGTPW_12508_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.

  

Participating hosts (4 -> 4)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in XEIGTPW_12508_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs:
    - shard-dg2-set2:     [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-433/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-436/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html

  * igt@xe_pm_residency@gt-c6-freeze:
    - shard-dg2-set2:     [PASS][3] -> [ABORT][4] +1 other test abort
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-435/igt@xe_pm_residency@gt-c6-freeze.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-432/igt@xe_pm_residency@gt-c6-freeze.html

  
Known issues
------------

  Here are the changes found in XEIGTPW_12508_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@core_getversion@basic:
    - shard-bmg:          [PASS][5] -> [FAIL][6] ([Intel XE#3440])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@core_getversion@basic.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@core_getversion@basic.html

  * igt@fbdev@info:
    - shard-bmg:          [PASS][7] -> [SKIP][8] ([Intel XE#2134]) +2 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@fbdev@info.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@fbdev@info.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - shard-lnl:          NOTRUN -> [SKIP][9] ([Intel XE#1466])
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-3/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_async_flips@invalid-async-flip:
    - shard-dg2-set2:     NOTRUN -> [SKIP][10] ([Intel XE#873])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-433/igt@kms_async_flips@invalid-async-flip.html

  * igt@kms_atomic_interruptible@legacy-setmode@pipe-a-hdmi-a-3:
    - shard-bmg:          NOTRUN -> [DMESG-WARN][11] ([Intel XE#4172]) +2 other tests dmesg-warn
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-6/igt@kms_atomic_interruptible@legacy-setmode@pipe-a-hdmi-a-3.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
    - shard-bmg:          [PASS][12] -> [SKIP][13] ([Intel XE#2136]) +30 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@linear-16bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][14] ([Intel XE#2327])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-1/igt@kms_big_fb@linear-16bpp-rotate-90.html

  * igt@kms_big_fb@linear-32bpp-rotate-270:
    - shard-lnl:          NOTRUN -> [SKIP][15] ([Intel XE#1407]) +1 other test skip
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-4/igt@kms_big_fb@linear-32bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-270:
    - shard-dg2-set2:     NOTRUN -> [SKIP][16] ([Intel XE#316]) +6 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-436/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180:
    - shard-lnl:          NOTRUN -> [SKIP][17] ([Intel XE#1124]) +5 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-6/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180.html

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-180:
    - shard-dg2-set2:     NOTRUN -> [SKIP][18] ([Intel XE#1124]) +11 other tests skip
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-466/igt@kms_big_fb@yf-tiled-32bpp-rotate-180.html

  * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow:
    - shard-dg2-set2:     NOTRUN -> [SKIP][19] ([Intel XE#607])
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-463/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html

  * igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p:
    - shard-lnl:          NOTRUN -> [SKIP][20] ([Intel XE#2191])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-2/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html

  * igt@kms_bw@connected-linear-tiling-4-displays-1920x1080p:
    - shard-dg2-set2:     NOTRUN -> [SKIP][21] ([Intel XE#2191]) +1 other test skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-466/igt@kms_bw@connected-linear-tiling-4-displays-1920x1080p.html

  * igt@kms_bw@linear-tiling-1-displays-3840x2160p:
    - shard-dg2-set2:     NOTRUN -> [SKIP][22] ([Intel XE#367]) +1 other test skip
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-433/igt@kms_bw@linear-tiling-1-displays-3840x2160p.html

  * igt@kms_ccs@bad-pixel-format-yf-tiled-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][23] ([Intel XE#2887])
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-8/igt@kms_ccs@bad-pixel-format-yf-tiled-ccs.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs@pipe-a-edp-1:
    - shard-lnl:          NOTRUN -> [SKIP][24] ([Intel XE#2669]) +3 other tests skip
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-4/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs@pipe-a-edp-1.html

  * igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs:
    - shard-lnl:          NOTRUN -> [SKIP][25] ([Intel XE#2887]) +7 other tests skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-4/igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs:
    - shard-dg2-set2:     NOTRUN -> [SKIP][26] ([Intel XE#2907])
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-463/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-basic-y-tiled-gen12-rc-ccs-cc@pipe-a-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][27] ([Intel XE#787]) +174 other tests skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-436/igt@kms_ccs@crc-primary-basic-y-tiled-gen12-rc-ccs-cc@pipe-a-dp-4.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-d-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][28] ([Intel XE#455] / [Intel XE#787]) +39 other tests skip
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-434/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-d-dp-4.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
    - shard-dg2-set2:     NOTRUN -> [SKIP][29] ([Intel XE#3442])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-463/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-a-edp-1:
    - shard-lnl:          NOTRUN -> [SKIP][30] ([Intel XE#3433]) +3 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-5/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-a-edp-1.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc:
    - shard-lnl:          NOTRUN -> [SKIP][31] ([Intel XE#3432])
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-2/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6:
    - shard-dg2-set2:     NOTRUN -> [INCOMPLETE][32] ([Intel XE#4010]) +1 other test incomplete
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6.html

  * igt@kms_chamelium_color@ctm-max:
    - shard-dg2-set2:     NOTRUN -> [SKIP][33] ([Intel XE#306])
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-463/igt@kms_chamelium_color@ctm-max.html

  * igt@kms_chamelium_edid@hdmi-edid-change-during-hibernate:
    - shard-bmg:          NOTRUN -> [SKIP][34] ([Intel XE#2252]) +1 other test skip
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-6/igt@kms_chamelium_edid@hdmi-edid-change-during-hibernate.html

  * igt@kms_chamelium_hpd@hdmi-hpd:
    - shard-dg2-set2:     NOTRUN -> [SKIP][35] ([Intel XE#373]) +9 other tests skip
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-433/igt@kms_chamelium_hpd@hdmi-hpd.html

  * igt@kms_chamelium_hpd@hdmi-hpd-with-enabled-mode:
    - shard-lnl:          NOTRUN -> [SKIP][36] ([Intel XE#373]) +2 other tests skip
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-5/igt@kms_chamelium_hpd@hdmi-hpd-with-enabled-mode.html

  * igt@kms_content_protection@dp-mst-lic-type-0:
    - shard-dg2-set2:     NOTRUN -> [SKIP][37] ([Intel XE#307])
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-463/igt@kms_content_protection@dp-mst-lic-type-0.html

  * igt@kms_content_protection@legacy@pipe-a-dp-4:
    - shard-dg2-set2:     NOTRUN -> [FAIL][38] ([Intel XE#1178]) +1 other test fail
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-434/igt@kms_content_protection@legacy@pipe-a-dp-4.html

  * igt@kms_content_protection@type1:
    - shard-lnl:          NOTRUN -> [SKIP][39] ([Intel XE#3278])
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-7/igt@kms_content_protection@type1.html

  * igt@kms_content_protection@uevent:
    - shard-dg2-set2:     NOTRUN -> [FAIL][40] ([Intel XE#1188]) +1 other test fail
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-466/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_crc@cursor-random-256x85:
    - shard-lnl:          NOTRUN -> [SKIP][41] ([Intel XE#1424])
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-3/igt@kms_cursor_crc@cursor-random-256x85.html

  * igt@kms_cursor_crc@cursor-size-change:
    - shard-bmg:          NOTRUN -> [SKIP][42] ([Intel XE#2423]) +1 other test skip
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_cursor_crc@cursor-size-change.html

  * igt@kms_cursor_crc@cursor-sliding-512x170:
    - shard-lnl:          NOTRUN -> [SKIP][43] ([Intel XE#2321])
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-3/igt@kms_cursor_crc@cursor-sliding-512x170.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
    - shard-lnl:          NOTRUN -> [SKIP][44] ([Intel XE#309])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-8/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - shard-dg2-set2:     NOTRUN -> [SKIP][45] ([Intel XE#323])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-463/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-varying-size:
    - shard-bmg:          [PASS][46] -> [SKIP][47] ([Intel XE#2291]) +2 other tests skip
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-6/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
    - shard-bmg:          [PASS][48] -> [DMESG-WARN][49] ([Intel XE#877])
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-4/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html

  * igt@kms_feature_discovery@display-2x:
    - shard-bmg:          [PASS][50] -> [SKIP][51] ([Intel XE#2373])
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-4/igt@kms_feature_discovery@display-2x.html
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-6/igt@kms_feature_discovery@display-2x.html

  * igt@kms_flip@2x-absolute-wf_vblank-interruptible:
    - shard-lnl:          NOTRUN -> [SKIP][52] ([Intel XE#1421]) +3 other tests skip
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-1/igt@kms_flip@2x-absolute-wf_vblank-interruptible.html

  * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible:
    - shard-bmg:          [PASS][53] -> [SKIP][54] ([Intel XE#2316]) +2 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-6/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html

  * igt@kms_flip@2x-flip-vs-expired-vblank@ac-dp2-hdmi-a3:
    - shard-bmg:          [PASS][55] -> [FAIL][56] ([Intel XE#3321]) +2 other tests fail
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_flip@2x-flip-vs-expired-vblank@ac-dp2-hdmi-a3.html
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-8/igt@kms_flip@2x-flip-vs-expired-vblank@ac-dp2-hdmi-a3.html

  * igt@kms_flip@2x-flip-vs-suspend@cd-hdmi-a2-dp2:
    - shard-dg2-set2:     NOTRUN -> [ABORT][57] ([Intel XE#1033] / [Intel XE#2625])
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-432/igt@kms_flip@2x-flip-vs-suspend@cd-hdmi-a2-dp2.html

  * igt@kms_flip@2x-plain-flip-fb-recreate:
    - shard-bmg:          [PASS][58] -> [INCOMPLETE][59] ([Intel XE#2049]) +1 other test incomplete
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_flip@2x-plain-flip-fb-recreate.html
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-1/igt@kms_flip@2x-plain-flip-fb-recreate.html

  * igt@kms_flip@2x-wf_vblank-ts-check-interruptible@ab-hdmi-a6-dp4:
    - shard-dg2-set2:     NOTRUN -> [FAIL][60] ([Intel XE#886]) +1 other test fail
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-434/igt@kms_flip@2x-wf_vblank-ts-check-interruptible@ab-hdmi-a6-dp4.html

  * igt@kms_flip@busy-flip:
    - shard-dg2-set2:     NOTRUN -> [DMESG-WARN][61] ([Intel XE#1033]) +17 other tests dmesg-warn
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-436/igt@kms_flip@busy-flip.html

  * igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible@d-dp4:
    - shard-dg2-set2:     [PASS][62] -> [DMESG-WARN][63] ([Intel XE#1033]) +45 other tests dmesg-warn
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-435/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible@d-dp4.html
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-466/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible@d-dp4.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp4:
    - shard-dg2-set2:     [PASS][64] -> [FAIL][65] ([Intel XE#301]) +7 other tests fail
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-463/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp4.html
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-466/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp4.html

  * igt@kms_flip@flip-vs-expired-vblank@a-dp4:
    - shard-dg2-set2:     [PASS][66] -> [FAIL][67] ([Intel XE#301] / [Intel XE#3321])
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-436/igt@kms_flip@flip-vs-expired-vblank@a-dp4.html
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-433/igt@kms_flip@flip-vs-expired-vblank@a-dp4.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling:
    - shard-lnl:          NOTRUN -> [SKIP][68] ([Intel XE#1397] / [Intel XE#1745])
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-4/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling@pipe-a-default-mode:
    - shard-lnl:          NOTRUN -> [SKIP][69] ([Intel XE#1397])
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-4/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling@pipe-a-default-mode.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-shrfb-msflip-blt:
    - shard-bmg:          NOTRUN -> [SKIP][70] ([Intel XE#2312]) +2 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-indfb-msflip-blt:
    - shard-lnl:          NOTRUN -> [SKIP][71] ([Intel XE#651]) +5 other tests skip
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-4/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-indfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-1p-rte:
    - shard-dg2-set2:     NOTRUN -> [SKIP][72] ([Intel XE#651]) +33 other tests skip
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcdrrs-1p-rte.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-modesetfrombusy:
    - shard-bmg:          NOTRUN -> [SKIP][73] ([Intel XE#2311]) +3 other tests skip
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-modesetfrombusy.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y:
    - shard-lnl:          NOTRUN -> [SKIP][74] ([Intel XE#1469])
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][75] ([Intel XE#653]) +42 other tests skip
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-466/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc:
    - shard-lnl:          NOTRUN -> [SKIP][76] ([Intel XE#656]) +25 other tests skip
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][77] ([Intel XE#2313]) +4 other tests skip
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_hdr@invalid-hdr:
    - shard-bmg:          [PASS][78] -> [SKIP][79] ([Intel XE#1503])
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_hdr@invalid-hdr.html
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-6/igt@kms_hdr@invalid-hdr.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - shard-bmg:          NOTRUN -> [SKIP][80] ([Intel XE#2934])
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-1/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-ultra-joiner:
    - shard-lnl:          NOTRUN -> [SKIP][81] ([Intel XE#2927])
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-6/igt@kms_joiner@invalid-modeset-ultra-joiner.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-lnl:          NOTRUN -> [SKIP][82] ([Intel XE#4090])
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-1/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_lease@setcrtc-implicit-plane:
    - shard-bmg:          [PASS][83] -> [SKIP][84] ([Intel XE#2423]) +133 other tests skip
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@kms_lease@setcrtc-implicit-plane.html
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_lease@setcrtc-implicit-plane.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-lnl:          NOTRUN -> [SKIP][85] ([Intel XE#356])
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-8/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@kms_plane_lowres@tiling-yf:
    - shard-lnl:          NOTRUN -> [SKIP][86] ([Intel XE#599])
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-4/igt@kms_plane_lowres@tiling-yf.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-d:
    - shard-dg2-set2:     NOTRUN -> [SKIP][87] ([Intel XE#2763] / [Intel XE#455]) +3 other tests skip
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-436/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-d.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c:
    - shard-lnl:          NOTRUN -> [SKIP][88] ([Intel XE#2763]) +3 other tests skip
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-7/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-a:
    - shard-dg2-set2:     NOTRUN -> [SKIP][89] ([Intel XE#2763]) +5 other tests skip
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-436/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-a.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b:
    - shard-bmg:          NOTRUN -> [SKIP][90] ([Intel XE#2763]) +4 other tests skip
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-8/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b.html

  * igt@kms_pm_backlight@fade:
    - shard-dg2-set2:     NOTRUN -> [SKIP][91] ([Intel XE#870]) +1 other test skip
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-434/igt@kms_pm_backlight@fade.html

  * igt@kms_pm_dc@dc5-psr:
    - shard-lnl:          [PASS][92] -> [FAIL][93] ([Intel XE#718])
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-lnl-1/igt@kms_pm_dc@dc5-psr.html
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-6/igt@kms_pm_dc@dc5-psr.html

  * igt@kms_pm_rpm@dpms-non-lpsp:
    - shard-lnl:          NOTRUN -> [SKIP][94] ([Intel XE#1439] / [Intel XE#3141])
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-7/igt@kms_pm_rpm@dpms-non-lpsp.html

  * igt@kms_pm_rpm@i2c:
    - shard-bmg:          [PASS][95] -> [SKIP][96] ([Intel XE#2446]) +4 other tests skip
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_pm_rpm@i2c.html
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_pm_rpm@i2c.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-fully-sf:
    - shard-lnl:          NOTRUN -> [SKIP][97] ([Intel XE#2893]) +1 other test skip
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-8/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf:
    - shard-dg2-set2:     NOTRUN -> [SKIP][98] ([Intel XE#1489]) +5 other tests skip
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-434/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area:
    - shard-bmg:          NOTRUN -> [SKIP][99] ([Intel XE#2136]) +4 other tests skip
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-lnl:          NOTRUN -> [SKIP][100] ([Intel XE#1128])
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-6/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@fbc-pr-cursor-blt:
    - shard-bmg:          NOTRUN -> [SKIP][101] ([Intel XE#2234] / [Intel XE#2850]) +2 other tests skip
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-4/igt@kms_psr@fbc-pr-cursor-blt.html

  * igt@kms_psr@fbc-psr2-sprite-plane-move:
    - shard-dg2-set2:     NOTRUN -> [SKIP][102] ([Intel XE#2850] / [Intel XE#929]) +18 other tests skip
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-434/igt@kms_psr@fbc-psr2-sprite-plane-move.html

  * igt@kms_psr@pr-sprite-render:
    - shard-lnl:          NOTRUN -> [SKIP][103] ([Intel XE#1406])
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-8/igt@kms_psr@pr-sprite-render.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-dg2-set2:     NOTRUN -> [SKIP][104] ([Intel XE#1127]) +1 other test skip
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-434/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@sprite-rotation-90-pos-100-0:
    - shard-dg2-set2:     NOTRUN -> [SKIP][105] ([Intel XE#3414])
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-434/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-dg2-set2:     NOTRUN -> [SKIP][106] ([Intel XE#362])
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-463/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_universal_plane@cursor-fb-leak@pipe-a-edp-1:
    - shard-lnl:          NOTRUN -> [FAIL][107] ([Intel XE#899]) +2 other tests fail
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-7/igt@kms_universal_plane@cursor-fb-leak@pipe-a-edp-1.html

  * igt@kms_vblank@wait-busy-hang:
    - shard-bmg:          [PASS][108] -> [DMESG-WARN][109] ([Intel XE#4172]) +38 other tests dmesg-warn
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-4/igt@kms_vblank@wait-busy-hang.html
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-7/igt@kms_vblank@wait-busy-hang.html

  * igt@kms_vrr@flip-suspend@pipe-a-edp-1:
    - shard-lnl:          NOTRUN -> [FAIL][110] ([Intel XE#1522]) +3 other tests fail
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-1/igt@kms_vrr@flip-suspend@pipe-a-edp-1.html

  * igt@kms_vrr@flipline:
    - shard-dg2-set2:     NOTRUN -> [SKIP][111] ([Intel XE#455]) +12 other tests skip
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-463/igt@kms_vrr@flipline.html

  * igt@kms_vrr@lobf:
    - shard-lnl:          NOTRUN -> [SKIP][112] ([Intel XE#1499])
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-5/igt@kms_vrr@lobf.html

  * igt@xe_compute@ccs-mode-compute-kernel:
    - shard-lnl:          NOTRUN -> [SKIP][113] ([Intel XE#1447])
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-6/igt@xe_compute@ccs-mode-compute-kernel.html

  * igt@xe_copy_basic@mem-set-linear-0xfffe:
    - shard-dg2-set2:     NOTRUN -> [SKIP][114] ([Intel XE#1126])
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-433/igt@xe_copy_basic@mem-set-linear-0xfffe.html

  * igt@xe_create@create-big-vram:
    - shard-lnl:          NOTRUN -> [SKIP][115] ([Intel XE#1062])
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-4/igt@xe_create@create-big-vram.html

  * igt@xe_eudebug@basic-read-event:
    - shard-bmg:          NOTRUN -> [SKIP][116] ([Intel XE#2905]) +1 other test skip
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-4/igt@xe_eudebug@basic-read-event.html

  * igt@xe_eudebug_online@interrupt-other-debuggable:
    - shard-lnl:          NOTRUN -> [SKIP][117] ([Intel XE#2905]) +6 other tests skip
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-5/igt@xe_eudebug_online@interrupt-other-debuggable.html

  * igt@xe_eudebug_online@resume-dss:
    - shard-dg2-set2:     NOTRUN -> [SKIP][118] ([Intel XE#2905]) +12 other tests skip
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-433/igt@xe_eudebug_online@resume-dss.html

  * igt@xe_evict@evict-large-cm:
    - shard-lnl:          NOTRUN -> [SKIP][119] ([Intel XE#688]) +1 other test skip
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-3/igt@xe_evict@evict-large-cm.html

  * igt@xe_exec_basic@many-bindexecqueue-rebind:
    - shard-bmg:          [PASS][120] -> [SKIP][121] ([Intel XE#1130]) +298 other tests skip
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@xe_exec_basic@many-bindexecqueue-rebind.html
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@xe_exec_basic@many-bindexecqueue-rebind.html

  * igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race:
    - shard-dg2-set2:     [PASS][122] -> [SKIP][123] ([Intel XE#1392]) +4 other tests skip
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-433/igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race.html
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-432/igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race.html

  * igt@xe_exec_basic@multigpu-once-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][124] ([Intel XE#2322])
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-8/igt@xe_exec_basic@multigpu-once-rebind.html

  * igt@xe_exec_basic@multigpu-once-userptr-invalidate:
    - shard-lnl:          NOTRUN -> [SKIP][125] ([Intel XE#1392]) +2 other tests skip
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-6/igt@xe_exec_basic@multigpu-once-userptr-invalidate.html

  * igt@xe_exec_compute_mode@many-execqueues-userptr-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][126] ([Intel XE#1130]) +4 other tests skip
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@xe_exec_compute_mode@many-execqueues-userptr-rebind.html

  * igt@xe_exec_fault_mode@once-bindexecqueue-rebind-prefetch:
    - shard-dg2-set2:     NOTRUN -> [SKIP][127] ([Intel XE#288]) +16 other tests skip
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-436/igt@xe_exec_fault_mode@once-bindexecqueue-rebind-prefetch.html

  * igt@xe_exec_mix_modes@exec-spinner-interrupted-lr:
    - shard-dg2-set2:     NOTRUN -> [SKIP][128] ([Intel XE#2360])
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-433/igt@xe_exec_mix_modes@exec-spinner-interrupted-lr.html

  * igt@xe_live_ktest@xe_bo:
    - shard-lnl:          NOTRUN -> [SKIP][129] ([Intel XE#1192]) +1 other test skip
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-1/igt@xe_live_ktest@xe_bo.html

  * igt@xe_live_ktest@xe_dma_buf:
    - shard-bmg:          [PASS][130] -> [SKIP][131] ([Intel XE#1192])
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-4/igt@xe_live_ktest@xe_dma_buf.html
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-2/igt@xe_live_ktest@xe_dma_buf.html

  * igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit:
    - shard-bmg:          [PASS][132] -> [SKIP][133] ([Intel XE#2229])
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html

  * igt@xe_live_ktest@xe_mocs@xe_live_mocs_kernel_kunit:
    - shard-dg2-set2:     NOTRUN -> [FAIL][134] ([Intel XE#1999]) +2 other tests fail
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-434/igt@xe_live_ktest@xe_mocs@xe_live_mocs_kernel_kunit.html

  * igt@xe_mmap@small-bar:
    - shard-dg2-set2:     NOTRUN -> [SKIP][135] ([Intel XE#512])
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-433/igt@xe_mmap@small-bar.html

  * igt@xe_module_load@reload:
    - shard-bmg:          [PASS][136] -> [FAIL][137] ([Intel XE#3546])
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@xe_module_load@reload.html
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@xe_module_load@reload.html

  * igt@xe_oa@oa-tlb-invalidate:
    - shard-bmg:          NOTRUN -> [SKIP][138] ([Intel XE#2248])
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-1/igt@xe_oa@oa-tlb-invalidate.html

  * igt@xe_oa@oa-unit-exclusive-stream-sample-oa:
    - shard-dg2-set2:     NOTRUN -> [SKIP][139] ([Intel XE#2541] / [Intel XE#3573]) +7 other tests skip
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-434/igt@xe_oa@oa-unit-exclusive-stream-sample-oa.html

  * igt@xe_oa@unprivileged-single-ctx-counters:
    - shard-lnl:          NOTRUN -> [SKIP][140] ([Intel XE#2248])
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-1/igt@xe_oa@unprivileged-single-ctx-counters.html

  * igt@xe_pat@pat-index-xehpc:
    - shard-dg2-set2:     NOTRUN -> [SKIP][141] ([Intel XE#2838] / [Intel XE#979])
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-466/igt@xe_pat@pat-index-xehpc.html

  * igt@xe_pm@d3cold-mmap-vram:
    - shard-dg2-set2:     NOTRUN -> [SKIP][142] ([Intel XE#2284] / [Intel XE#366])
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-433/igt@xe_pm@d3cold-mmap-vram.html

  * igt@xe_pm@s2idle-d3hot-basic-exec:
    - shard-bmg:          [PASS][143] -> [DMESG-WARN][144] ([Intel XE#1616] / [Intel XE#4172])
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-7/igt@xe_pm@s2idle-d3hot-basic-exec.html
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-2/igt@xe_pm@s2idle-d3hot-basic-exec.html

  * igt@xe_pm@s2idle-exec-after:
    - shard-dg2-set2:     [PASS][145] -> [ABORT][146] ([Intel XE#1358])
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-435/igt@xe_pm@s2idle-exec-after.html
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-432/igt@xe_pm@s2idle-exec-after.html

  * igt@xe_pm@s3-d3cold-basic-exec:
    - shard-lnl:          NOTRUN -> [SKIP][147] ([Intel XE#2284] / [Intel XE#366])
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-5/igt@xe_pm@s3-d3cold-basic-exec.html

  * igt@xe_pm@s3-multiple-execs:
    - shard-dg2-set2:     [PASS][148] -> [ABORT][149] ([Intel XE#1358] / [Intel XE#1794])
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-433/igt@xe_pm@s3-multiple-execs.html
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-432/igt@xe_pm@s3-multiple-execs.html

  * igt@xe_pm@s3-vm-bind-prefetch:
    - shard-bmg:          [PASS][150] -> [DMESG-WARN][151] ([Intel XE#4172] / [Intel XE#569]) +2 other tests dmesg-warn
   [150]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@xe_pm@s3-vm-bind-prefetch.html
   [151]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-7/igt@xe_pm@s3-vm-bind-prefetch.html

  * igt@xe_pm@s3-vm-bind-userptr:
    - shard-dg2-set2:     [PASS][152] -> [DMESG-WARN][153] ([Intel XE#1033] / [Intel XE#569]) +3 other tests dmesg-warn
   [152]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-434/igt@xe_pm@s3-vm-bind-userptr.html
   [153]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-463/igt@xe_pm@s3-vm-bind-userptr.html

  * igt@xe_pm@s4-vm-bind-prefetch:
    - shard-lnl:          [PASS][154] -> [ABORT][155] ([Intel XE#1358] / [Intel XE#1607] / [Intel XE#1794])
   [154]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-lnl-4/igt@xe_pm@s4-vm-bind-prefetch.html
   [155]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-2/igt@xe_pm@s4-vm-bind-prefetch.html

  * igt@xe_query@multigpu-query-invalid-uc-fw-version-mbz:
    - shard-lnl:          NOTRUN -> [SKIP][156] ([Intel XE#944]) +1 other test skip
   [156]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-3/igt@xe_query@multigpu-query-invalid-uc-fw-version-mbz.html

  * igt@xe_query@multigpu-query-oa-units:
    - shard-dg2-set2:     NOTRUN -> [SKIP][157] ([Intel XE#944]) +2 other tests skip
   [157]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-463/igt@xe_query@multigpu-query-oa-units.html

  * igt@xe_sriov_flr@flr-vf1-clear:
    - shard-dg2-set2:     NOTRUN -> [SKIP][158] ([Intel XE#3342])
   [158]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-432/igt@xe_sriov_flr@flr-vf1-clear.html

  
#### Possible fixes ####

  * igt@core_hotunplug@hotrebind-lateclose:
    - shard-dg2-set2:     [ABORT][159] -> [PASS][160]
   [159]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-463/igt@core_hotunplug@hotrebind-lateclose.html
   [160]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-463/igt@core_hotunplug@hotrebind-lateclose.html

  * igt@kms_atomic_transition@modeset-transition-nonblocking-fencing:
    - shard-dg2-set2:     [DMESG-WARN][161] ([Intel XE#1033]) -> [PASS][162] +86 other tests pass
   [161]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-434/igt@kms_atomic_transition@modeset-transition-nonblocking-fencing.html
   [162]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-463/igt@kms_atomic_transition@modeset-transition-nonblocking-fencing.html

  * igt@kms_atomic_transition@modeset-transition-nonblocking@2x-outputs:
    - shard-bmg:          [INCOMPLETE][163] ([Intel XE#2613]) -> [PASS][164] +1 other test pass
   [163]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@kms_atomic_transition@modeset-transition-nonblocking@2x-outputs.html
   [164]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-8/igt@kms_atomic_transition@modeset-transition-nonblocking@2x-outputs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
    - shard-bmg:          [DMESG-WARN][165] ([Intel XE#4172]) -> [PASS][166] +52 other tests pass
   [165]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-4/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
   [166]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-1/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ad-dp2-hdmi-a3:
    - shard-bmg:          [FAIL][167] ([Intel XE#3321]) -> [PASS][168]
   [167]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ad-dp2-hdmi-a3.html
   [168]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-4/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ad-dp2-hdmi-a3.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@cd-hdmi-a6-dp4:
    - shard-dg2-set2:     [FAIL][169] ([Intel XE#301]) -> [PASS][170] +8 other tests pass
   [169]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-433/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@cd-hdmi-a6-dp4.html
   [170]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-434/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@cd-hdmi-a6-dp4.html

  * igt@kms_flip@2x-flip-vs-suspend:
    - shard-bmg:          [DMESG-WARN][171] ([Intel XE#2955]) -> [PASS][172]
   [171]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_flip@2x-flip-vs-suspend.html
   [172]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-7/igt@kms_flip@2x-flip-vs-suspend.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@a-dp2:
    - shard-bmg:          [FAIL][173] ([Intel XE#2882]) -> [PASS][174] +1 other test pass
   [173]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@kms_flip@flip-vs-blocking-wf-vblank@a-dp2.html
   [174]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-8/igt@kms_flip@flip-vs-blocking-wf-vblank@a-dp2.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@c-edp1:
    - shard-lnl:          [FAIL][175] ([Intel XE#886]) -> [PASS][176] +3 other tests pass
   [175]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-lnl-3/igt@kms_flip@flip-vs-blocking-wf-vblank@c-edp1.html
   [176]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-lnl-4/igt@kms_flip@flip-vs-blocking-wf-vblank@c-edp1.html

  * igt@kms_flip@flip-vs-expired-vblank@b-dp4:
    - shard-dg2-set2:     [FAIL][177] ([Intel XE#301] / [Intel XE#3321]) -> [PASS][178] +1 other test pass
   [177]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-436/igt@kms_flip@flip-vs-expired-vblank@b-dp4.html
   [178]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-433/igt@kms_flip@flip-vs-expired-vblank@b-dp4.html

  * igt@kms_flip_tiling@flip-change-tiling:
    - shard-dg2-set2:     [INCOMPLETE][179] ([Intel XE#2049]) -> [PASS][180]
   [179]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-466/igt@kms_flip_tiling@flip-change-tiling.html
   [180]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-434/igt@kms_flip_tiling@flip-change-tiling.html

  * igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-6-size-64:
    - shard-dg2-set2:     [FAIL][181] ([Intel XE#616]) -> [PASS][182] +1 other test pass
   [181]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-433/igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-6-size-64.html
   [182]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-436/igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-6-size-64.html

  * igt@xe_evict@evict-large-multi-vm:
    - shard-dg2-set2:     [DMESG-WARN][183] ([Intel XE#1033] / [Intel XE#1473]) -> [PASS][184]
   [183]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-466/igt@xe_evict@evict-large-multi-vm.html
   [184]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-433/igt@xe_evict@evict-large-multi-vm.html

  * igt@xe_exec_basic@multigpu-no-exec-rebind:
    - shard-dg2-set2:     [SKIP][185] ([Intel XE#1392]) -> [PASS][186] +2 other tests pass
   [185]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-432/igt@xe_exec_basic@multigpu-no-exec-rebind.html
   [186]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-463/igt@xe_exec_basic@multigpu-no-exec-rebind.html

  * igt@xe_pm@s2idle-basic:
    - shard-dg2-set2:     [ABORT][187] ([Intel XE#1358] / [Intel XE#1794]) -> [PASS][188]
   [187]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-432/igt@xe_pm@s2idle-basic.html
   [188]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-434/igt@xe_pm@s2idle-basic.html

  * igt@xe_pm@s2idle-vm-bind-unbind-all:
    - shard-bmg:          [DMESG-WARN][189] ([Intel XE#1616] / [Intel XE#4172]) -> [PASS][190]
   [189]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@xe_pm@s2idle-vm-bind-unbind-all.html
   [190]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-4/igt@xe_pm@s2idle-vm-bind-unbind-all.html

  * igt@xe_pm@s3-mocs:
    - shard-bmg:          [DMESG-WARN][191] ([Intel XE#4172] / [Intel XE#569]) -> [PASS][192]
   [191]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@xe_pm@s3-mocs.html
   [192]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-4/igt@xe_pm@s3-mocs.html
    - shard-dg2-set2:     [ABORT][193] ([Intel XE#1033] / [Intel XE#1358] / [Intel XE#1794]) -> [PASS][194]
   [193]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-432/igt@xe_pm@s3-mocs.html
   [194]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-466/igt@xe_pm@s3-mocs.html

  * igt@xe_pm@s4-basic:
    - shard-dg2-set2:     [ABORT][195] ([Intel XE#1358]) -> [PASS][196] +2 other tests pass
   [195]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-432/igt@xe_pm@s4-basic.html
   [196]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-434/igt@xe_pm@s4-basic.html

  
#### Warnings ####

  * igt@kms_big_fb@4-tiled-64bpp-rotate-90:
    - shard-bmg:          [SKIP][197] ([Intel XE#2327]) -> [SKIP][198] ([Intel XE#2136]) +2 other tests skip
   [197]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-4/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html
   [198]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-16bpp-rotate-0:
    - shard-bmg:          [SKIP][199] ([Intel XE#1124]) -> [SKIP][200] ([Intel XE#2136]) +14 other tests skip
   [199]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_big_fb@y-tiled-16bpp-rotate-0.html
   [200]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_big_fb@y-tiled-16bpp-rotate-0.html

  * igt@kms_big_fb@y-tiled-addfb-size-overflow:
    - shard-bmg:          [SKIP][201] ([Intel XE#610]) -> [SKIP][202] ([Intel XE#2136]) +1 other test skip
   [201]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
   [202]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_big_fb@y-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@yf-tiled-addfb:
    - shard-bmg:          [SKIP][203] ([Intel XE#2328]) -> [SKIP][204] ([Intel XE#2136])
   [203]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@kms_big_fb@yf-tiled-addfb.html
   [204]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_big_fb@yf-tiled-addfb.html

  * igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p:
    - shard-bmg:          [SKIP][205] ([Intel XE#2314] / [Intel XE#2894]) -> [SKIP][206] ([Intel XE#2423]) +2 other tests skip
   [205]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p.html
   [206]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-3-displays-1920x1080p:
    - shard-bmg:          [SKIP][207] ([Intel XE#367]) -> [SKIP][208] ([Intel XE#2423]) +3 other tests skip
   [207]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-4/igt@kms_bw@linear-tiling-3-displays-1920x1080p.html
   [208]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_bw@linear-tiling-3-displays-1920x1080p.html

  * igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs:
    - shard-bmg:          [SKIP][209] ([Intel XE#2887]) -> [SKIP][210] ([Intel XE#2136]) +25 other tests skip
   [209]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs.html
   [210]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc:
    - shard-bmg:          [SKIP][211] ([Intel XE#3432]) -> [SKIP][212] ([Intel XE#2136]) +2 other tests skip
   [211]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc.html
   [212]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs:
    - shard-bmg:          [SKIP][213] ([Intel XE#2652] / [Intel XE#787]) -> [SKIP][214] ([Intel XE#2136]) +2 other tests skip
   [213]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-7/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html
   [214]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html

  * igt@kms_cdclk@mode-transition-all-outputs:
    - shard-bmg:          [SKIP][215] ([Intel XE#2724]) -> [SKIP][216] ([Intel XE#2136])
   [215]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-7/igt@kms_cdclk@mode-transition-all-outputs.html
   [216]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_cdclk@mode-transition-all-outputs.html

  * igt@kms_chamelium_color@ctm-red-to-blue:
    - shard-bmg:          [SKIP][217] ([Intel XE#2325]) -> [SKIP][218] ([Intel XE#2423]) +3 other tests skip
   [217]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-7/igt@kms_chamelium_color@ctm-red-to-blue.html
   [218]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_chamelium_color@ctm-red-to-blue.html

  * igt@kms_chamelium_edid@dp-edid-resolution-list:
    - shard-bmg:          [SKIP][219] ([Intel XE#2252]) -> [SKIP][220] ([Intel XE#2423]) +16 other tests skip
   [219]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-4/igt@kms_chamelium_edid@dp-edid-resolution-list.html
   [220]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_chamelium_edid@dp-edid-resolution-list.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-bmg:          [SKIP][221] ([Intel XE#2390]) -> [SKIP][222] ([Intel XE#2423])
   [221]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_content_protection@dp-mst-type-1.html
   [222]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_content_protection@legacy:
    - shard-bmg:          [FAIL][223] ([Intel XE#1178]) -> [SKIP][224] ([Intel XE#2423])
   [223]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_content_protection@legacy.html
   [224]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@lic-type-0:
    - shard-dg2-set2:     [FAIL][225] ([Intel XE#1178]) -> [DMESG-FAIL][226] ([Intel XE#1033])
   [225]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-436/igt@kms_content_protection@lic-type-0.html
   [226]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-463/igt@kms_content_protection@lic-type-0.html
    - shard-bmg:          [FAIL][227] ([Intel XE#1178]) -> [SKIP][228] ([Intel XE#2341])
   [227]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@kms_content_protection@lic-type-0.html
   [228]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-6/igt@kms_content_protection@lic-type-0.html

  * igt@kms_content_protection@lic-type-0@pipe-a-dp-4:
    - shard-dg2-set2:     [FAIL][229] ([Intel XE#3304]) -> [DMESG-FAIL][230] ([Intel XE#1033])
   [229]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-436/igt@kms_content_protection@lic-type-0@pipe-a-dp-4.html
   [230]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-463/igt@kms_content_protection@lic-type-0@pipe-a-dp-4.html

  * igt@kms_content_protection@mei-interface:
    - shard-bmg:          [SKIP][231] ([Intel XE#2341]) -> [SKIP][232] ([Intel XE#2423])
   [231]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_content_protection@mei-interface.html
   [232]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@uevent:
    - shard-bmg:          [FAIL][233] ([Intel XE#1188]) -> [SKIP][234] ([Intel XE#2423])
   [233]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-4/igt@kms_content_protection@uevent.html
   [234]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_crc@cursor-random-512x512:
    - shard-bmg:          [SKIP][235] ([Intel XE#2321]) -> [SKIP][236] ([Intel XE#2423]) +1 other test skip
   [235]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-7/igt@kms_cursor_crc@cursor-random-512x512.html
   [236]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_cursor_crc@cursor-random-512x512.html

  * igt@kms_cursor_crc@cursor-sliding-256x85:
    - shard-bmg:          [SKIP][237] ([Intel XE#2320]) -> [SKIP][238] ([Intel XE#2423]) +9 other tests skip
   [237]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@kms_cursor_crc@cursor-sliding-256x85.html
   [238]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_cursor_crc@cursor-sliding-256x85.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-toggle:
    - shard-bmg:          [DMESG-WARN][239] ([Intel XE#877]) -> [SKIP][240] ([Intel XE#2291])
   [239]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_cursor_legacy@cursorb-vs-flipa-toggle.html
   [240]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipa-toggle.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size:
    - shard-bmg:          [DMESG-WARN][241] ([Intel XE#4172] / [Intel XE#877]) -> [DMESG-WARN][242] ([Intel XE#877])
   [241]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html
   [242]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-1/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
    - shard-bmg:          [SKIP][243] ([Intel XE#2286]) -> [SKIP][244] ([Intel XE#2423])
   [243]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
   [244]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html

  * igt@kms_dirtyfb@psr-dirtyfb-ioctl:
    - shard-bmg:          [SKIP][245] ([Intel XE#1508]) -> [SKIP][246] ([Intel XE#2136])
   [245]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html
   [246]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html

  * igt@kms_dsc@dsc-fractional-bpp-with-bpc:
    - shard-bmg:          [SKIP][247] ([Intel XE#2244]) -> [SKIP][248] ([Intel XE#2136]) +3 other tests skip
   [247]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html
   [248]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-bmg:          [SKIP][249] ([Intel XE#776]) -> [SKIP][250] ([Intel XE#2136])
   [249]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_fbcon_fbt@psr-suspend.html
   [250]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_flip@2x-blocking-absolute-wf_vblank:
    - shard-bmg:          [DMESG-WARN][251] ([Intel XE#4172]) -> [SKIP][252] ([Intel XE#2316])
   [251]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_flip@2x-blocking-absolute-wf_vblank.html
   [252]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-6/igt@kms_flip@2x-blocking-absolute-wf_vblank.html

  * igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling:
    - shard-bmg:          [DMESG-WARN][253] ([Intel XE#4172]) -> [SKIP][254] ([Intel XE#2136]) +1 other test skip
   [253]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling.html
   [254]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling:
    - shard-bmg:          [SKIP][255] ([Intel XE#2293] / [Intel XE#2380]) -> [SKIP][256] ([Intel XE#2136]) +7 other tests skip
   [255]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling.html
   [256]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen:
    - shard-bmg:          [SKIP][257] ([Intel XE#4141]) -> [SKIP][258] ([Intel XE#2136]) +24 other tests skip
   [257]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen.html
   [258]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
    - shard-bmg:          [SKIP][259] ([Intel XE#4141]) -> [SKIP][260] ([Intel XE#2312]) +4 other tests skip
   [259]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
   [260]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-blt:
    - shard-bmg:          [SKIP][261] ([Intel XE#2311]) -> [SKIP][262] ([Intel XE#2312]) +11 other tests skip
   [261]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-blt.html
   [262]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][263] ([Intel XE#2311]) -> [SKIP][264] ([Intel XE#2136]) +50 other tests skip
   [263]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
   [264]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt:
    - shard-bmg:          [SKIP][265] ([Intel XE#2313]) -> [SKIP][266] ([Intel XE#2136]) +50 other tests skip
   [265]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt.html
   [266]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@plane-fbc-rte:
    - shard-bmg:          [SKIP][267] ([Intel XE#2350]) -> [SKIP][268] ([Intel XE#2136])
   [267]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-4/igt@kms_frontbuffer_tracking@plane-fbc-rte.html
   [268]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_frontbuffer_tracking@plane-fbc-rte.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-msflip-blt:
    - shard-bmg:          [SKIP][269] ([Intel XE#2313]) -> [SKIP][270] ([Intel XE#2312]) +11 other tests skip
   [269]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-msflip-blt.html
   [270]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-msflip-blt.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-bmg:          [SKIP][271] ([Intel XE#3374] / [Intel XE#3544]) -> [SKIP][272] ([Intel XE#3544])
   [271]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_hdr@brightness-with-hdr.html
   [272]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-1/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_joiner@invalid-modeset-big-joiner:
    - shard-bmg:          [SKIP][273] ([Intel XE#346]) -> [SKIP][274] ([Intel XE#2136])
   [273]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-4/igt@kms_joiner@invalid-modeset-big-joiner.html
   [274]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_joiner@invalid-modeset-big-joiner.html

  * igt@kms_panel_fitting@legacy:
    - shard-bmg:          [SKIP][275] ([Intel XE#2486]) -> [SKIP][276] ([Intel XE#2423])
   [275]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-7/igt@kms_panel_fitting@legacy.html
   [276]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_panel_fitting@legacy.html

  * igt@kms_plane@plane-panning-bottom-right-suspend:
    - shard-dg2-set2:     [DMESG-WARN][277] ([Intel XE#1033]) -> [ABORT][278] ([Intel XE#1033] / [Intel XE#2625]) +2 other tests abort
   [277]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-434/igt@kms_plane@plane-panning-bottom-right-suspend.html
   [278]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-432/igt@kms_plane@plane-panning-bottom-right-suspend.html

  * igt@kms_plane_lowres@tiling-yf:
    - shard-bmg:          [SKIP][279] ([Intel XE#2393]) -> [SKIP][280] ([Intel XE#2423])
   [279]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-7/igt@kms_plane_lowres@tiling-yf.html
   [280]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_plane_lowres@tiling-yf.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20:
    - shard-bmg:          [SKIP][281] ([Intel XE#2763]) -> [SKIP][282] ([Intel XE#2423]) +1 other test skip
   [281]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20.html
   [282]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20.html

  * igt@kms_pm_backlight@fade:
    - shard-bmg:          [SKIP][283] ([Intel XE#870]) -> [SKIP][284] ([Intel XE#2136]) +1 other test skip
   [283]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_pm_backlight@fade.html
   [284]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_pm_backlight@fade.html

  * igt@kms_pm_dc@dc3co-vpb-simulation:
    - shard-bmg:          [SKIP][285] ([Intel XE#2391]) -> [SKIP][286] ([Intel XE#2136])
   [285]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_pm_dc@dc3co-vpb-simulation.html
   [286]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_pm_dc@dc3co-vpb-simulation.html

  * igt@kms_pm_dc@deep-pkgc:
    - shard-bmg:          [SKIP][287] ([Intel XE#2505]) -> [SKIP][288] ([Intel XE#2136])
   [287]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-4/igt@kms_pm_dc@deep-pkgc.html
   [288]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_pm_dc@deep-pkgc.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-bmg:          [SKIP][289] ([Intel XE#2499]) -> [SKIP][290] ([Intel XE#2136])
   [289]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_pm_lpsp@kms-lpsp.html
   [290]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_rpm@basic-pci-d3-state:
    - shard-bmg:          [DMESG-WARN][291] ([Intel XE#4172]) -> [SKIP][292] ([Intel XE#2446])
   [291]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-4/igt@kms_pm_rpm@basic-pci-d3-state.html
   [292]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_pm_rpm@basic-pci-d3-state.html

  * igt@kms_pm_rpm@dpms-mode-unset-lpsp:
    - shard-bmg:          [SKIP][293] ([Intel XE#1439] / [Intel XE#836]) -> [SKIP][294] ([Intel XE#2446])
   [293]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
   [294]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html

  * igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf:
    - shard-bmg:          [SKIP][295] ([Intel XE#1489]) -> [SKIP][296] ([Intel XE#2136]) +12 other tests skip
   [295]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf.html
   [296]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-bmg:          [SKIP][297] ([Intel XE#2387]) -> [SKIP][298] ([Intel XE#2136]) +1 other test skip
   [297]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_psr2_su@page_flip-p010.html
   [298]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr@pr-sprite-plane-onoff:
    - shard-bmg:          [SKIP][299] ([Intel XE#2234] / [Intel XE#2850]) -> [SKIP][300] ([Intel XE#2136]) +23 other tests skip
   [299]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_psr@pr-sprite-plane-onoff.html
   [300]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_psr@pr-sprite-plane-onoff.html

  * igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
    - shard-bmg:          [SKIP][301] ([Intel XE#2414]) -> [SKIP][302] ([Intel XE#2136])
   [301]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-7/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
   [302]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
    - shard-bmg:          [SKIP][303] ([Intel XE#2330]) -> [SKIP][304] ([Intel XE#2423])
   [303]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html
   [304]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
    - shard-bmg:          [SKIP][305] ([Intel XE#3414] / [Intel XE#3904]) -> [SKIP][306] ([Intel XE#2423]) +2 other tests skip
   [305]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
   [306]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html

  * igt@kms_scaling_modes@scaling-mode-center:
    - shard-bmg:          [SKIP][307] ([Intel XE#2413]) -> [SKIP][308] ([Intel XE#2423]) +1 other test skip
   [307]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-7/igt@kms_scaling_modes@scaling-mode-center.html
   [308]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_scaling_modes@scaling-mode-center.html

  * igt@kms_setmode@invalid-clone-exclusive-crtc:
    - shard-bmg:          [SKIP][309] ([Intel XE#1435]) -> [SKIP][310] ([Intel XE#2423])
   [309]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_setmode@invalid-clone-exclusive-crtc.html
   [310]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_setmode@invalid-clone-exclusive-crtc.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-bmg:          [SKIP][311] ([Intel XE#2426]) -> [FAIL][312] ([Intel XE#1729])
   [311]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern.html
   [312]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_vblank@ts-continuation-suspend:
    - shard-bmg:          [DMESG-WARN][313] ([Intel XE#4172]) -> [SKIP][314] ([Intel XE#2423]) +6 other tests skip
   [313]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@kms_vblank@ts-continuation-suspend.html
   [314]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_vblank@ts-continuation-suspend.html

  * igt@kms_vrr@flip-suspend:
    - shard-bmg:          [SKIP][315] ([Intel XE#1499]) -> [SKIP][316] ([Intel XE#2423]) +2 other tests skip
   [315]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-7/igt@kms_vrr@flip-suspend.html
   [316]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_vrr@flip-suspend.html

  * igt@kms_vrr@lobf:
    - shard-bmg:          [SKIP][317] ([Intel XE#2168]) -> [SKIP][318] ([Intel XE#2423]) +1 other test skip
   [317]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-7/igt@kms_vrr@lobf.html
   [318]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_vrr@lobf.html

  * igt@kms_writeback@writeback-check-output:
    - shard-bmg:          [SKIP][319] ([Intel XE#756]) -> [SKIP][320] ([Intel XE#2423])
   [319]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@kms_writeback@writeback-check-output.html
   [320]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@kms_writeback@writeback-check-output.html

  * igt@xe_drm_fdinfo@virtual-utilization-single-idle:
    - shard-bmg:          [DMESG-WARN][321] ([Intel XE#4172]) -> [SKIP][322] ([Intel XE#1130]) +3 other tests skip
   [321]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@xe_drm_fdinfo@virtual-utilization-single-idle.html
   [322]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@xe_drm_fdinfo@virtual-utilization-single-idle.html

  * igt@xe_eudebug@basic-vm-bind-ufence-delay-ack:
    - shard-bmg:          [SKIP][323] ([Intel XE#3889]) -> [SKIP][324] ([Intel XE#1130])
   [323]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@xe_eudebug@basic-vm-bind-ufence-delay-ack.html
   [324]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@xe_eudebug@basic-vm-bind-ufence-delay-ack.html

  * igt@xe_eudebug@read-metadata:
    - shard-bmg:          [SKIP][325] ([Intel XE#2905]) -> [SKIP][326] ([Intel XE#1130]) +20 other tests skip
   [325]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-1/igt@xe_eudebug@read-metadata.html
   [326]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@xe_eudebug@read-metadata.html

  * igt@xe_exec_basic@multigpu-no-exec-bindexecqueue:
    - shard-bmg:          [SKIP][327] ([Intel XE#2322]) -> [SKIP][328] ([Intel XE#1130]) +12 other tests skip
   [327]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-7/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue.html
   [328]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue.html

  * igt@xe_media_fill@media-fill:
    - shard-bmg:          [SKIP][329] ([Intel XE#2459] / [Intel XE#2596]) -> [SKIP][330] ([Intel XE#1130])
   [329]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@xe_media_fill@media-fill.html
   [330]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@xe_media_fill@media-fill.html

  * igt@xe_oa@unprivileged-single-ctx-counters:
    - shard-bmg:          [SKIP][331] ([Intel XE#2248]) -> [SKIP][332] ([Intel XE#1130])
   [331]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-7/igt@xe_oa@unprivileged-single-ctx-counters.html
   [332]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@xe_oa@unprivileged-single-ctx-counters.html

  * igt@xe_pat@pat-index-xehpc:
    - shard-bmg:          [SKIP][333] ([Intel XE#1420]) -> [SKIP][334] ([Intel XE#1130])
   [333]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-4/igt@xe_pat@pat-index-xehpc.html
   [334]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@xe_pat@pat-index-xehpc.html

  * igt@xe_pat@pat-index-xelpg:
    - shard-bmg:          [SKIP][335] ([Intel XE#2236]) -> [SKIP][336] ([Intel XE#1130])
   [335]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-2/igt@xe_pat@pat-index-xelpg.html
   [336]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@xe_pat@pat-index-xelpg.html

  * igt@xe_peer2peer@write:
    - shard-dg2-set2:     [FAIL][337] ([Intel XE#1173]) -> [SKIP][338] ([Intel XE#1061])
   [337]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-434/igt@xe_peer2peer@write.html
   [338]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-432/igt@xe_peer2peer@write.html

  * igt@xe_pm@d3cold-mmap-vram:
    - shard-bmg:          [SKIP][339] ([Intel XE#2284]) -> [SKIP][340] ([Intel XE#1130]) +1 other test skip
   [339]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@xe_pm@d3cold-mmap-vram.html
   [340]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@xe_pm@d3cold-mmap-vram.html

  * igt@xe_query@multigpu-query-cs-cycles:
    - shard-bmg:          [SKIP][341] ([Intel XE#944]) -> [SKIP][342] ([Intel XE#1130]) +3 other tests skip
   [341]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-4/igt@xe_query@multigpu-query-cs-cycles.html
   [342]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@xe_query@multigpu-query-cs-cycles.html

  * igt@xe_sriov_auto_provisioning@fair-allocation:
    - shard-bmg:          [SKIP][343] ([Intel XE#4130]) -> [SKIP][344] ([Intel XE#1130])
   [343]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-bmg-8/igt@xe_sriov_auto_provisioning@fair-allocation.html
   [344]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-bmg-3/igt@xe_sriov_auto_provisioning@fair-allocation.html

  
  [Intel XE#1033]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1033
  [Intel XE#1061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1061
  [Intel XE#1062]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1062
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126
  [Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
  [Intel XE#1128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1128
  [Intel XE#1130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1130
  [Intel XE#1173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1173
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1188]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1188
  [Intel XE#1192]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1192
  [Intel XE#1358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1358
  [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
  [Intel XE#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
  [Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420
  [Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
  [Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
  [Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
  [Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
  [Intel XE#1447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1447
  [Intel XE#1466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1466
  [Intel XE#1469]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1469
  [Intel XE#1473]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1473
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
  [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
  [Intel XE#1508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1508
  [Intel XE#1522]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1522
  [Intel XE#1607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1607
  [Intel XE#1616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1616
  [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
  [Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
  [Intel XE#1794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1794
  [Intel XE#1999]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1999
  [Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
  [Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
  [Intel XE#2136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2136
  [Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168
  [Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
  [Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2236]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2236
  [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
  [Intel XE#2248]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2248
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
  [Intel XE#2286]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2286
  [Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
  [Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
  [Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2328]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2328
  [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
  [Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
  [Intel XE#2350]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2350
  [Intel XE#2360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2360
  [Intel XE#2373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2373
  [Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
  [Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
  [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
  [Intel XE#2391]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2391
  [Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
  [Intel XE#2413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2413
  [Intel XE#2414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2414
  [Intel XE#2423]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2423
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2446]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2446
  [Intel XE#2459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2459
  [Intel XE#2486]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2486
  [Intel XE#2499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2499
  [Intel XE#2505]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2505
  [Intel XE#2541]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2541
  [Intel XE#2596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2596
  [Intel XE#2613]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2613
  [Intel XE#2625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2625
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2669]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2669
  [Intel XE#2724]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2724
  [Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
  [Intel XE#2838]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2838
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#2882]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2882
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
  [Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
  [Intel XE#2905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2905
  [Intel XE#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
  [Intel XE#2927]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2927
  [Intel XE#2934]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2934
  [Intel XE#2955]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2955
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
  [Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
  [Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
  [Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
  [Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
  [Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
  [Intel XE#3278]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3278
  [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
  [Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321
  [Intel XE#3342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3342
  [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
  [Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#3433]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3433
  [Intel XE#3440]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3440
  [Intel XE#3442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3442
  [Intel XE#346]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/346
  [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
  [Intel XE#3546]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3546
  [Intel XE#356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/356
  [Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
  [Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
  [Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
  [Intel XE#3889]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3889
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4010]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4010
  [Intel XE#4090]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4090
  [Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4172]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4172
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
  [Intel XE#512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/512
  [Intel XE#569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/569
  [Intel XE#599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/599
  [Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
  [Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
  [Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
  [Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
  [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
  [Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718
  [Intel XE#756]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/756
  [Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
  [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
  [Intel XE#873]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/873
  [Intel XE#877]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/877
  [Intel XE#886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/886
  [Intel XE#899]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/899
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
  [Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979


Build changes
-------------

  * IGT: IGT_8212 -> IGTPW_12508
  * Linux: xe-2562-73c0fe019ff4bf312f6ae1114f0ca63bd13ea4b7 -> xe-2566-20759526c04a7f776f477bee66300dae33b51872

  IGTPW_12508: 475edab3a8190cd8165976da3ca1379b46105d37 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  IGT_8212: 76102a17560c6e6fc6528db29286b0266ccc48ef @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-2562-73c0fe019ff4bf312f6ae1114f0ca63bd13ea4b7: 73c0fe019ff4bf312f6ae1114f0ca63bd13ea4b7
  xe-2566-20759526c04a7f776f477bee66300dae33b51872: 20759526c04a7f776f477bee66300dae33b51872

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/index.html

[-- Attachment #2: Type: text/html, Size: 103714 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* ✗ i915.CI.Full: failure for Integrate kmemleak scans in igt_runner (rev2)
  2025-01-28 15:15 [PATCH i-g-t v4 0/2] Integrate kmemleak scans in igt_runner Peter Senna Tschudin
                   ` (5 preceding siblings ...)
  2025-01-29 10:40 ` ✗ Xe.CI.Full: failure " Patchwork
@ 2025-01-29 11:25 ` Patchwork
  2025-01-29 13:19   ` Peter Senna Tschudin
  2025-01-30  5:26 ` ✓ i915.CI.Full: success " Patchwork
  7 siblings, 1 reply; 31+ messages in thread
From: Patchwork @ 2025-01-29 11:25 UTC (permalink / raw)
  To: Peter Senna Tschudin; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 100265 bytes --]

== Series Details ==

Series: Integrate kmemleak scans in igt_runner (rev2)
URL   : https://patchwork.freedesktop.org/series/143996/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_16035_full -> IGTPW_12508_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_12508_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_12508_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_12508/index.html

Participating hosts (11 -> 11)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_12508_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_eio@in-flight-contexts-immediate:
    - shard-mtlp:         [PASS][1] -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-1/igt@gem_eio@in-flight-contexts-immediate.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@gem_eio@in-flight-contexts-immediate.html

  * igt@gem_softpin@allocator-evict@ccs0:
    - shard-dg2:          [PASS][3] -> [INCOMPLETE][4] +1 other test incomplete
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-1/igt@gem_softpin@allocator-evict@ccs0.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-8/igt@gem_softpin@allocator-evict@ccs0.html

  * igt@i915_pm_rps@reset:
    - shard-dg2:          [PASS][5] -> [FAIL][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-6/igt@i915_pm_rps@reset.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@i915_pm_rps@reset.html
    - shard-dg1:          [PASS][7] -> [FAIL][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg1-18/igt@i915_pm_rps@reset.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@i915_pm_rps@reset.html

  * igt@kms_prime@basic-modeset-hybrid:
    - shard-tglu:         NOTRUN -> [ABORT][9]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-7/igt@kms_prime@basic-modeset-hybrid.html

  
#### Warnings ####

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf:
    - shard-mtlp:         [SKIP][10] ([i915#12316]) -> [ABORT][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-5/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-4/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pipe-a-edp-1:
    - shard-mtlp:         [SKIP][12] ([i915#9808]) -> [ABORT][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-5/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pipe-a-edp-1.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-4/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pipe-a-edp-1.html

  
Known issues
------------

  Here are the changes found in IGTPW_12508_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@api_intel_bb@crc32:
    - shard-tglu-1:       NOTRUN -> [SKIP][14] ([i915#6230])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@api_intel_bb@crc32.html
    - shard-dg1:          NOTRUN -> [SKIP][15] ([i915#6230])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@api_intel_bb@crc32.html

  * igt@api_intel_bb@object-reloc-keep-cache:
    - shard-rkl:          NOTRUN -> [SKIP][16] ([i915#8411]) +1 other test skip
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@api_intel_bb@object-reloc-keep-cache.html

  * igt@debugfs_test@read_all_entries_display_on:
    - shard-mtlp:         NOTRUN -> [ABORT][17] ([i915#13343])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@debugfs_test@read_all_entries_display_on.html

  * igt@device_reset@cold-reset-bound:
    - shard-tglu-1:       NOTRUN -> [SKIP][18] ([i915#11078])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@device_reset@cold-reset-bound.html
    - shard-rkl:          NOTRUN -> [SKIP][19] ([i915#11078])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-6/igt@device_reset@cold-reset-bound.html

  * igt@device_reset@unbind-cold-reset-rebind:
    - shard-tglu:         NOTRUN -> [SKIP][20] ([i915#11078])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-10/igt@device_reset@unbind-cold-reset-rebind.html

  * igt@device_reset@unbind-reset-rebind:
    - shard-dg1:          NOTRUN -> [ABORT][21] ([i915#11814] / [i915#11815] / [i915#9413])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@device_reset@unbind-reset-rebind.html

  * igt@drm_fdinfo@busy-hang@rcs0:
    - shard-mtlp:         NOTRUN -> [SKIP][22] ([i915#8414]) +9 other tests skip
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@drm_fdinfo@busy-hang@rcs0.html

  * igt@drm_fdinfo@busy-idle-check-all@vcs1:
    - shard-dg1:          NOTRUN -> [SKIP][23] ([i915#8414]) +11 other tests skip
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@drm_fdinfo@busy-idle-check-all@vcs1.html

  * igt@drm_fdinfo@busy@rcs0:
    - shard-dg2:          NOTRUN -> [SKIP][24] ([i915#8414]) +9 other tests skip
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@drm_fdinfo@busy@rcs0.html

  * igt@gem_basic@multigpu-create-close:
    - shard-rkl:          NOTRUN -> [SKIP][25] ([i915#7697]) +1 other test skip
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@gem_basic@multigpu-create-close.html
    - shard-tglu:         NOTRUN -> [SKIP][26] ([i915#7697]) +1 other test skip
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-8/igt@gem_basic@multigpu-create-close.html
    - shard-mtlp:         NOTRUN -> [SKIP][27] ([i915#7697])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@gem_basic@multigpu-create-close.html
    - shard-dg2:          NOTRUN -> [SKIP][28] ([i915#7697])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@gem_basic@multigpu-create-close.html

  * igt@gem_busy@semaphore:
    - shard-dg2:          NOTRUN -> [SKIP][29] ([i915#3936])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@gem_busy@semaphore.html

  * igt@gem_caching@read-writes:
    - shard-mtlp:         NOTRUN -> [SKIP][30] ([i915#4873])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@gem_caching@read-writes.html

  * igt@gem_ccs@block-copy-compressed:
    - shard-rkl:          NOTRUN -> [SKIP][31] ([i915#3555] / [i915#9323])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@gem_ccs@block-copy-compressed.html

  * igt@gem_ccs@block-multicopy-inplace:
    - shard-dg1:          NOTRUN -> [SKIP][32] ([i915#3555] / [i915#9323])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@gem_ccs@block-multicopy-inplace.html
    - shard-tglu:         NOTRUN -> [SKIP][33] ([i915#3555] / [i915#9323])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@gem_ccs@block-multicopy-inplace.html

  * igt@gem_ccs@ctrl-surf-copy:
    - shard-mtlp:         NOTRUN -> [SKIP][34] ([i915#3555] / [i915#9323])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@gem_ccs@ctrl-surf-copy.html

  * igt@gem_ccs@suspend-resume:
    - shard-tglu:         NOTRUN -> [SKIP][35] ([i915#9323])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/igt@gem_ccs@suspend-resume.html

  * igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-lmem0-lmem0:
    - shard-dg2:          NOTRUN -> [INCOMPLETE][36] ([i915#12392] / [i915#7297])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-3/igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-lmem0-lmem0.html

  * igt@gem_create@create-ext-set-pat:
    - shard-dg2:          NOTRUN -> [SKIP][37] ([i915#8562])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-5/igt@gem_create@create-ext-set-pat.html
    - shard-dg1:          NOTRUN -> [SKIP][38] ([i915#8562])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@gem_create@create-ext-set-pat.html

  * igt@gem_ctx_isolation@preservation-s3@rcs0:
    - shard-glk:          NOTRUN -> [INCOMPLETE][39] ([i915#12353]) +1 other test incomplete
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk7/igt@gem_ctx_isolation@preservation-s3@rcs0.html

  * igt@gem_ctx_persistence@engines-queued:
    - shard-snb:          NOTRUN -> [SKIP][40] ([i915#1099]) +2 other tests skip
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-snb7/igt@gem_ctx_persistence@engines-queued.html

  * igt@gem_ctx_persistence@heartbeat-stop:
    - shard-mtlp:         NOTRUN -> [SKIP][41] ([i915#8555]) +1 other test skip
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-2/igt@gem_ctx_persistence@heartbeat-stop.html

  * igt@gem_ctx_persistence@saturated-hostile-nopreempt@vcs0:
    - shard-mtlp:         NOTRUN -> [SKIP][42] ([i915#5882]) +6 other tests skip
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@gem_ctx_persistence@saturated-hostile-nopreempt@vcs0.html

  * igt@gem_ctx_sseu@engines:
    - shard-tglu:         NOTRUN -> [SKIP][43] ([i915#280])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@gem_ctx_sseu@engines.html

  * igt@gem_ctx_sseu@invalid-sseu:
    - shard-dg2:          NOTRUN -> [SKIP][44] ([i915#280])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_ctx_sseu@invalid-sseu.html
    - shard-rkl:          NOTRUN -> [SKIP][45] ([i915#280]) +1 other test skip
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@gem_ctx_sseu@invalid-sseu.html

  * igt@gem_eio@hibernate:
    - shard-rkl:          NOTRUN -> [ABORT][46] ([i915#7975] / [i915#8213])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@gem_eio@hibernate.html

  * igt@gem_eio@in-flight-1us:
    - shard-mtlp:         [PASS][47] -> [ABORT][48] ([i915#13193])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-3/igt@gem_eio@in-flight-1us.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@gem_eio@in-flight-1us.html

  * igt@gem_eio@in-flight-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][49] ([i915#13390])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk2/igt@gem_eio@in-flight-suspend.html

  * igt@gem_eio@unwedge-stress:
    - shard-dg1:          NOTRUN -> [FAIL][50] ([i915#12714] / [i915#5784])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_balancer@bonded-false-hang:
    - shard-dg2:          NOTRUN -> [SKIP][51] ([i915#4812])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-5/igt@gem_exec_balancer@bonded-false-hang.html

  * igt@gem_exec_balancer@bonded-sync:
    - shard-dg1:          NOTRUN -> [SKIP][52] ([i915#4771])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@gem_exec_balancer@bonded-sync.html

  * igt@gem_exec_balancer@parallel:
    - shard-rkl:          NOTRUN -> [SKIP][53] ([i915#4525]) +1 other test skip
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@gem_exec_balancer@parallel.html

  * igt@gem_exec_balancer@parallel-balancer:
    - shard-tglu:         NOTRUN -> [SKIP][54] ([i915#4525]) +1 other test skip
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-7/igt@gem_exec_balancer@parallel-balancer.html

  * igt@gem_exec_capture@capture-invisible:
    - shard-dg2:          NOTRUN -> [SKIP][55] ([i915#6334]) +2 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_exec_capture@capture-invisible.html
    - shard-dg1:          NOTRUN -> [SKIP][56] ([i915#6334]) +2 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@gem_exec_capture@capture-invisible.html

  * igt@gem_exec_capture@capture-invisible@smem0:
    - shard-glk:          NOTRUN -> [SKIP][57] ([i915#6334]) +1 other test skip
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk9/igt@gem_exec_capture@capture-invisible@smem0.html

  * igt@gem_exec_capture@capture@vecs0-lmem0:
    - shard-dg1:          NOTRUN -> [FAIL][58] ([i915#11965]) +2 other tests fail
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@gem_exec_capture@capture@vecs0-lmem0.html

  * igt@gem_exec_fence@submit:
    - shard-dg1:          NOTRUN -> [SKIP][59] ([i915#4812]) +4 other tests skip
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@gem_exec_fence@submit.html
    - shard-mtlp:         NOTRUN -> [SKIP][60] ([i915#4812]) +1 other test skip
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@gem_exec_fence@submit.html

  * igt@gem_exec_flush@basic-batch-kernel-default-cmd:
    - shard-mtlp:         NOTRUN -> [SKIP][61] ([i915#3711])
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html

  * igt@gem_exec_flush@basic-uc-pro-default:
    - shard-dg2:          NOTRUN -> [SKIP][62] ([i915#3539] / [i915#4852])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_exec_flush@basic-uc-pro-default.html

  * igt@gem_exec_flush@basic-uc-rw-default:
    - shard-dg1:          NOTRUN -> [SKIP][63] ([i915#3539] / [i915#4852]) +2 other tests skip
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@gem_exec_flush@basic-uc-rw-default.html

  * igt@gem_exec_flush@basic-uc-set-default:
    - shard-dg2:          NOTRUN -> [SKIP][64] ([i915#3539])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_exec_flush@basic-uc-set-default.html

  * igt@gem_exec_reloc@basic-active:
    - shard-dg2:          NOTRUN -> [SKIP][65] ([i915#3281]) +8 other tests skip
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@gem_exec_reloc@basic-active.html

  * igt@gem_exec_reloc@basic-cpu-read:
    - shard-rkl:          NOTRUN -> [SKIP][66] ([i915#3281]) +13 other tests skip
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@gem_exec_reloc@basic-cpu-read.html

  * igt@gem_exec_reloc@basic-gtt-noreloc:
    - shard-mtlp:         NOTRUN -> [SKIP][67] ([i915#3281]) +9 other tests skip
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@gem_exec_reloc@basic-gtt-noreloc.html

  * igt@gem_exec_reloc@basic-wc-read:
    - shard-dg1:          NOTRUN -> [SKIP][68] ([i915#3281]) +13 other tests skip
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@gem_exec_reloc@basic-wc-read.html

  * igt@gem_exec_schedule@deep@rcs0:
    - shard-mtlp:         NOTRUN -> [SKIP][69] ([i915#4537])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@gem_exec_schedule@deep@rcs0.html

  * igt@gem_exec_schedule@preempt-queue-contexts:
    - shard-dg2:          NOTRUN -> [SKIP][70] ([i915#4537] / [i915#4812]) +1 other test skip
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_exec_schedule@preempt-queue-contexts.html

  * igt@gem_exec_schedule@reorder-wide:
    - shard-mtlp:         NOTRUN -> [SKIP][71] ([i915#4537] / [i915#4812])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@gem_exec_schedule@reorder-wide.html

  * igt@gem_exec_suspend@basic-s0@smem:
    - shard-dg2:          [PASS][72] -> [INCOMPLETE][73] ([i915#11441] / [i915#13304]) +1 other test incomplete
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-4/igt@gem_exec_suspend@basic-s0@smem.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-5/igt@gem_exec_suspend@basic-s0@smem.html

  * igt@gem_fence_thrash@bo-write-verify-y:
    - shard-dg2:          NOTRUN -> [SKIP][74] ([i915#4860]) +2 other tests skip
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_fence_thrash@bo-write-verify-y.html

  * igt@gem_fenced_exec_thrash@no-spare-fences:
    - shard-dg1:          NOTRUN -> [SKIP][75] ([i915#4860]) +1 other test skip
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@gem_fenced_exec_thrash@no-spare-fences.html

  * igt@gem_fenced_exec_thrash@no-spare-fences-busy:
    - shard-mtlp:         NOTRUN -> [SKIP][76] ([i915#4860]) +1 other test skip
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@gem_fenced_exec_thrash@no-spare-fences-busy.html

  * igt@gem_huc_copy@huc-copy:
    - shard-glk:          NOTRUN -> [SKIP][77] ([i915#2190])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk6/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_evict@dontneed-evict-race:
    - shard-tglu-1:       NOTRUN -> [SKIP][78] ([i915#4613] / [i915#7582])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@gem_lmem_evict@dontneed-evict-race.html

  * igt@gem_lmem_swapping@heavy-random:
    - shard-tglu:         NOTRUN -> [SKIP][79] ([i915#4613]) +3 other tests skip
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-2/igt@gem_lmem_swapping@heavy-random.html

  * igt@gem_lmem_swapping@heavy-verify-random-ccs:
    - shard-dg1:          NOTRUN -> [SKIP][80] ([i915#12193])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@gem_lmem_swapping@heavy-verify-random-ccs.html

  * igt@gem_lmem_swapping@heavy-verify-random-ccs@lmem0:
    - shard-dg1:          NOTRUN -> [SKIP][81] ([i915#4565])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@gem_lmem_swapping@heavy-verify-random-ccs@lmem0.html

  * igt@gem_lmem_swapping@parallel-random-verify-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][82] ([i915#4613]) +6 other tests skip
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@gem_lmem_swapping@parallel-random-verify-ccs.html

  * igt@gem_lmem_swapping@random:
    - shard-tglu-1:       NOTRUN -> [SKIP][83] ([i915#4613])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@gem_lmem_swapping@random.html

  * igt@gem_lmem_swapping@random-engines:
    - shard-mtlp:         NOTRUN -> [SKIP][84] ([i915#4613]) +3 other tests skip
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@gem_lmem_swapping@random-engines.html

  * igt@gem_lmem_swapping@smem-oom@lmem0:
    - shard-dg1:          NOTRUN -> [TIMEOUT][85] ([i915#5493]) +1 other test timeout
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@gem_lmem_swapping@smem-oom@lmem0.html

  * igt@gem_lmem_swapping@verify-ccs:
    - shard-glk:          NOTRUN -> [SKIP][86] ([i915#4613]) +4 other tests skip
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk6/igt@gem_lmem_swapping@verify-ccs.html

  * igt@gem_madvise@dontneed-before-exec:
    - shard-mtlp:         NOTRUN -> [SKIP][87] ([i915#3282]) +1 other test skip
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@gem_madvise@dontneed-before-exec.html

  * igt@gem_media_vme:
    - shard-rkl:          NOTRUN -> [SKIP][88] ([i915#284])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@gem_media_vme.html

  * igt@gem_mmap_gtt@basic:
    - shard-mtlp:         NOTRUN -> [SKIP][89] ([i915#4077]) +9 other tests skip
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-4/igt@gem_mmap_gtt@basic.html

  * igt@gem_mmap_gtt@big-copy-odd:
    - shard-dg2:          NOTRUN -> [SKIP][90] ([i915#4077]) +11 other tests skip
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_mmap_gtt@big-copy-odd.html

  * igt@gem_mmap_gtt@cpuset-basic-small-copy-odd:
    - shard-dg1:          NOTRUN -> [SKIP][91] ([i915#4077]) +13 other tests skip
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@gem_mmap_gtt@cpuset-basic-small-copy-odd.html

  * igt@gem_mmap_offset@clear-via-pagefault:
    - shard-mtlp:         [PASS][92] -> [ABORT][93] ([i915#10729]) +1 other test abort
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-2/igt@gem_mmap_offset@clear-via-pagefault.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-2/igt@gem_mmap_offset@clear-via-pagefault.html

  * igt@gem_mmap_wc@fault-concurrent:
    - shard-dg2:          NOTRUN -> [SKIP][94] ([i915#4083]) +3 other tests skip
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_mmap_wc@fault-concurrent.html
    - shard-mtlp:         NOTRUN -> [SKIP][95] ([i915#4083]) +3 other tests skip
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@gem_mmap_wc@fault-concurrent.html

  * igt@gem_mmap_wc@write-read:
    - shard-dg1:          NOTRUN -> [SKIP][96] ([i915#4083]) +8 other tests skip
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@gem_mmap_wc@write-read.html

  * igt@gem_partial_pwrite_pread@write:
    - shard-dg1:          NOTRUN -> [SKIP][97] ([i915#3282]) +8 other tests skip
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@gem_partial_pwrite_pread@write.html

  * igt@gem_partial_pwrite_pread@writes-after-reads-uncached:
    - shard-rkl:          NOTRUN -> [SKIP][98] ([i915#3282]) +7 other tests skip
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html

  * igt@gem_pread@exhaustion:
    - shard-snb:          NOTRUN -> [WARN][99] ([i915#2658])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-snb1/igt@gem_pread@exhaustion.html

  * igt@gem_pxp@display-protected-crc:
    - shard-dg2:          NOTRUN -> [SKIP][100] ([i915#4270]) +2 other tests skip
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-2/igt@gem_pxp@display-protected-crc.html

  * igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted:
    - shard-rkl:          NOTRUN -> [TIMEOUT][101] ([i915#12964])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted.html

  * igt@gem_pxp@hw-rejects-pxp-context:
    - shard-tglu:         NOTRUN -> [SKIP][102] ([i915#13398])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-6/igt@gem_pxp@hw-rejects-pxp-context.html
    - shard-mtlp:         NOTRUN -> [SKIP][103] ([i915#13398])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@gem_pxp@hw-rejects-pxp-context.html

  * igt@gem_pxp@protected-encrypted-src-copy-not-readible:
    - shard-rkl:          NOTRUN -> [TIMEOUT][104] ([i915#12917] / [i915#12964]) +4 other tests timeout
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-6/igt@gem_pxp@protected-encrypted-src-copy-not-readible.html

  * igt@gem_pxp@verify-pxp-key-change-after-suspend-resume:
    - shard-dg1:          NOTRUN -> [SKIP][105] ([i915#4270]) +4 other tests skip
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@gem_pxp@verify-pxp-key-change-after-suspend-resume.html

  * igt@gem_pxp@verify-pxp-stale-buf-execution:
    - shard-rkl:          NOTRUN -> [SKIP][106] ([i915#4270])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@gem_pxp@verify-pxp-stale-buf-execution.html

  * igt@gem_readwrite@read-bad-handle:
    - shard-dg2:          NOTRUN -> [SKIP][107] ([i915#3282]) +5 other tests skip
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@gem_readwrite@read-bad-handle.html

  * igt@gem_render_copy@yf-tiled-ccs-to-y-tiled:
    - shard-dg2:          NOTRUN -> [SKIP][108] ([i915#5190] / [i915#8428]) +5 other tests skip
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@gem_render_copy@yf-tiled-ccs-to-y-tiled.html

  * igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-yf-tiled:
    - shard-mtlp:         NOTRUN -> [SKIP][109] ([i915#8428]) +8 other tests skip
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-yf-tiled.html

  * igt@gem_set_tiling_vs_blt@untiled-to-tiled:
    - shard-mtlp:         NOTRUN -> [SKIP][110] ([i915#4079]) +2 other tests skip
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@gem_set_tiling_vs_blt@untiled-to-tiled.html

  * igt@gem_set_tiling_vs_pwrite:
    - shard-dg1:          NOTRUN -> [SKIP][111] ([i915#4079]) +1 other test skip
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@gem_set_tiling_vs_pwrite.html

  * igt@gem_softpin@evict-snoop:
    - shard-mtlp:         NOTRUN -> [SKIP][112] ([i915#4885])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@gem_softpin@evict-snoop.html

  * igt@gem_tiled_pread_basic:
    - shard-dg2:          NOTRUN -> [SKIP][113] ([i915#4079])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-1/igt@gem_tiled_pread_basic.html

  * igt@gem_unfence_active_buffers:
    - shard-dg2:          NOTRUN -> [SKIP][114] ([i915#4879])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-2/igt@gem_unfence_active_buffers.html

  * igt@gem_userptr_blits@create-destroy-unsync:
    - shard-mtlp:         NOTRUN -> [SKIP][115] ([i915#3297]) +2 other tests skip
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@gem_userptr_blits@create-destroy-unsync.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-rkl:          NOTRUN -> [SKIP][116] ([i915#3297] / [i915#3323])
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@forbidden-operations:
    - shard-rkl:          NOTRUN -> [SKIP][117] ([i915#3282] / [i915#3297])
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@gem_userptr_blits@forbidden-operations.html

  * igt@gem_userptr_blits@invalid-mmap-offset-unsync:
    - shard-tglu:         NOTRUN -> [SKIP][118] ([i915#3297]) +1 other test skip
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-10/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html
    - shard-dg2:          NOTRUN -> [SKIP][119] ([i915#3297]) +1 other test skip
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html

  * igt@gem_userptr_blits@unsync-unmap:
    - shard-dg1:          NOTRUN -> [SKIP][120] ([i915#3297]) +2 other tests skip
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@gem_userptr_blits@unsync-unmap.html

  * igt@gem_userptr_blits@unsync-unmap-after-close:
    - shard-rkl:          NOTRUN -> [SKIP][121] ([i915#3297]) +1 other test skip
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@gem_userptr_blits@unsync-unmap-after-close.html

  * igt@gem_workarounds@suspend-resume:
    - shard-glk:          NOTRUN -> [INCOMPLETE][122] ([i915#13356])
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk1/igt@gem_workarounds@suspend-resume.html

  * igt@gem_workarounds@suspend-resume-context:
    - shard-glk:          [PASS][123] -> [INCOMPLETE][124] ([i915#13356])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-glk1/igt@gem_workarounds@suspend-resume-context.html
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk7/igt@gem_workarounds@suspend-resume-context.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-mtlp:         NOTRUN -> [SKIP][125] ([i915#2856]) +4 other tests skip
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@gen9_exec_parse@allowed-all.html
    - shard-dg2:          NOTRUN -> [SKIP][126] ([i915#2856]) +3 other tests skip
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-5/igt@gen9_exec_parse@allowed-all.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-glk:          NOTRUN -> [ABORT][127] ([i915#5566])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk2/igt@gen9_exec_parse@allowed-single.html

  * igt@gen9_exec_parse@batch-without-end:
    - shard-tglu-1:       NOTRUN -> [SKIP][128] ([i915#2527] / [i915#2856]) +1 other test skip
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@gen9_exec_parse@batch-without-end.html

  * igt@gen9_exec_parse@bb-chained:
    - shard-rkl:          NOTRUN -> [SKIP][129] ([i915#2527]) +5 other tests skip
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@gen9_exec_parse@bb-chained.html

  * igt@gen9_exec_parse@bb-start-cmd:
    - shard-dg1:          NOTRUN -> [SKIP][130] ([i915#2527]) +4 other tests skip
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@gen9_exec_parse@bb-start-cmd.html

  * igt@gen9_exec_parse@unaligned-jump:
    - shard-tglu:         NOTRUN -> [SKIP][131] ([i915#2527] / [i915#2856]) +2 other tests skip
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@gen9_exec_parse@unaligned-jump.html

  * igt@i915_module_load@resize-bar:
    - shard-tglu:         NOTRUN -> [SKIP][132] ([i915#6412])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-3/igt@i915_module_load@resize-bar.html

  * igt@i915_pipe_stress@stress-xrgb8888-ytiled:
    - shard-mtlp:         NOTRUN -> [SKIP][133] ([i915#8436])
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@i915_pipe_stress@stress-xrgb8888-ytiled.html

  * igt@i915_pm_freq_api@freq-basic-api:
    - shard-rkl:          NOTRUN -> [SKIP][134] ([i915#8399])
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@i915_pm_freq_api@freq-basic-api.html

  * igt@i915_pm_freq_api@freq-reset-multiple:
    - shard-tglu-1:       NOTRUN -> [SKIP][135] ([i915#8399])
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@i915_pm_freq_api@freq-reset-multiple.html

  * igt@i915_pm_rpm@gem-mmap-type:
    - shard-rkl:          [PASS][136] -> [SKIP][137] ([i915#13328])
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-rkl-5/igt@i915_pm_rpm@gem-mmap-type.html
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@i915_pm_rpm@gem-mmap-type.html

  * igt@i915_pm_rpm@reg-read-ioctl:
    - shard-rkl:          NOTRUN -> [SKIP][138] ([i915#13328])
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@i915_pm_rpm@reg-read-ioctl.html

  * igt@i915_pm_rps@min-max-config-idle:
    - shard-dg1:          NOTRUN -> [SKIP][139] ([i915#11681] / [i915#6621]) +1 other test skip
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@i915_pm_rps@min-max-config-idle.html

  * igt@i915_pm_rps@min-max-config-loaded:
    - shard-dg2:          NOTRUN -> [SKIP][140] ([i915#11681] / [i915#6621])
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-1/igt@i915_pm_rps@min-max-config-loaded.html
    - shard-mtlp:         NOTRUN -> [SKIP][141] ([i915#11681] / [i915#6621])
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@i915_pm_rps@min-max-config-loaded.html

  * igt@i915_pm_rps@thresholds:
    - shard-dg1:          NOTRUN -> [SKIP][142] ([i915#11681])
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@i915_pm_rps@thresholds.html

  * igt@i915_pm_rps@thresholds-idle:
    - shard-dg2:          NOTRUN -> [SKIP][143] ([i915#11681])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@i915_pm_rps@thresholds-idle.html

  * igt@i915_pm_sseu@full-enable:
    - shard-rkl:          NOTRUN -> [SKIP][144] ([i915#4387])
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@i915_pm_sseu@full-enable.html

  * igt@i915_power@sanity:
    - shard-rkl:          NOTRUN -> [SKIP][145] ([i915#7984])
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@i915_power@sanity.html

  * igt@i915_query@hwconfig_table:
    - shard-dg1:          NOTRUN -> [SKIP][146] ([i915#6245])
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@i915_query@hwconfig_table.html

  * igt@i915_query@query-topology-coherent-slice-mask:
    - shard-mtlp:         NOTRUN -> [SKIP][147] ([i915#6188])
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@i915_query@query-topology-coherent-slice-mask.html

  * igt@i915_query@test-query-geometry-subslices:
    - shard-dg1:          NOTRUN -> [SKIP][148] ([i915#5723])
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@i915_query@test-query-geometry-subslices.html

  * igt@i915_selftest@live@workarounds:
    - shard-mtlp:         [PASS][149] -> [DMESG-FAIL][150] ([i915#12061]) +1 other test dmesg-fail
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-5/igt@i915_selftest@live@workarounds.html
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-4/igt@i915_selftest@live@workarounds.html

  * igt@i915_selftest@mock@memory_region:
    - shard-rkl:          NOTRUN -> [DMESG-WARN][151] ([i915#9311]) +1 other test dmesg-warn
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@i915_selftest@mock@memory_region.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - shard-rkl:          NOTRUN -> [DMESG-WARN][152] ([i915#12917] / [i915#12964])
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@i915_suspend@basic-s2idle-without-i915.html

  * igt@i915_suspend@basic-s3-without-i915:
    - shard-rkl:          [PASS][153] -> [INCOMPLETE][154] ([i915#4817])
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-rkl-2/igt@i915_suspend@basic-s3-without-i915.html
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling:
    - shard-mtlp:         NOTRUN -> [SKIP][155] ([i915#4212]) +1 other test skip
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling.html

  * igt@kms_addfb_basic@addfb25-x-tiled-legacy:
    - shard-dg2:          NOTRUN -> [SKIP][156] ([i915#4212])
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html

  * igt@kms_addfb_basic@framebuffer-vs-set-tiling:
    - shard-dg1:          NOTRUN -> [SKIP][157] ([i915#4212]) +1 other test skip
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html

  * igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-a-hdmi-a-3-y-rc-ccs-cc:
    - shard-dg1:          NOTRUN -> [SKIP][158] ([i915#8709]) +3 other tests skip
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-a-hdmi-a-3-y-rc-ccs-cc.html

  * igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-2-y-rc-ccs-cc:
    - shard-rkl:          NOTRUN -> [SKIP][159] ([i915#8709]) +1 other test skip
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-2-y-rc-ccs-cc.html

  * igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-3-4-rc-ccs-cc:
    - shard-dg2:          NOTRUN -> [SKIP][160] ([i915#8709]) +7 other tests skip
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-3-4-rc-ccs-cc.html

  * igt@kms_async_flips@invalid-async-flip-atomic:
    - shard-dg2:          NOTRUN -> [SKIP][161] ([i915#12967])
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-7/igt@kms_async_flips@invalid-async-flip-atomic.html

  * igt@kms_async_flips@test-cursor:
    - shard-mtlp:         NOTRUN -> [SKIP][162] ([i915#10333])
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@kms_async_flips@test-cursor.html

  * igt@kms_atomic@plane-primary-overlay-mutable-zpos:
    - shard-tglu:         NOTRUN -> [SKIP][163] ([i915#9531])
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-dg1:          [PASS][164] -> [FAIL][165] ([i915#5956])
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg1-13/igt@kms_atomic_transition@plane-all-modeset-transition.html
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_atomic_transition@plane-all-modeset-transition.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
    - shard-rkl:          NOTRUN -> [SKIP][166] ([i915#1769] / [i915#3555])
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html

  * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [FAIL][167] ([i915#5956])
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-4.html

  * igt@kms_atomic_transition@plane-use-after-nonblocking-unbind:
    - shard-rkl:          [PASS][168] -> [DMESG-WARN][169] ([i915#12964]) +47 other tests dmesg-warn
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-rkl-3/igt@kms_atomic_transition@plane-use-after-nonblocking-unbind.html
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_atomic_transition@plane-use-after-nonblocking-unbind.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-90:
    - shard-dg1:          NOTRUN -> [SKIP][170] ([i915#4538] / [i915#5286]) +7 other tests skip
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html
    - shard-tglu:         NOTRUN -> [SKIP][171] ([i915#5286]) +4 other tests skip
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-2/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-90:
    - shard-tglu-1:       NOTRUN -> [SKIP][172] ([i915#5286]) +1 other test skip
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-addfb:
    - shard-dg1:          NOTRUN -> [SKIP][173] ([i915#5286])
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@kms_big_fb@4-tiled-addfb.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-rkl:          NOTRUN -> [SKIP][174] ([i915#5286]) +10 other tests skip
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-mtlp:         [PASS][175] -> [FAIL][176] ([i915#5138])
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-7/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-270:
    - shard-dg1:          NOTRUN -> [SKIP][177] ([i915#3638]) +2 other tests skip
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_big_fb@y-tiled-64bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-8bpp-rotate-270:
    - shard-rkl:          NOTRUN -> [SKIP][178] ([i915#3638]) +5 other tests skip
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-addfb:
    - shard-dg2:          NOTRUN -> [SKIP][179] ([i915#5190]) +1 other test skip
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-2/igt@kms_big_fb@y-tiled-addfb.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-dg2:          NOTRUN -> [SKIP][180] ([i915#4538] / [i915#5190]) +12 other tests skip
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-90:
    - shard-dg1:          NOTRUN -> [SKIP][181] ([i915#4538]) +4 other tests skip
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_big_fb@yf-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0:
    - shard-mtlp:         NOTRUN -> [SKIP][182] +17 other tests skip
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html

  * igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs@pipe-a-hdmi-a-1:
    - shard-tglu:         NOTRUN -> [SKIP][183] ([i915#6095]) +94 other tests skip
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-3/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][184] ([i915#10307] / [i915#10434] / [i915#6095]) +4 other tests skip
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-basic-y-tiled-ccs@pipe-d-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][185] ([i915#6095]) +59 other tests skip
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@kms_ccs@crc-primary-basic-y-tiled-ccs@pipe-d-edp-1.html

  * igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-d-hdmi-a-3:
    - shard-dg1:          NOTRUN -> [SKIP][186] ([i915#6095]) +172 other tests skip
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-d-hdmi-a-3.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][187] ([i915#12805])
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-1:
    - shard-tglu-1:       NOTRUN -> [SKIP][188] ([i915#6095]) +14 other tests skip
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][189] ([i915#12805])
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html
    - shard-tglu-1:       NOTRUN -> [SKIP][190] ([i915#12805])
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-d-dp-4:
    - shard-dg2:          NOTRUN -> [SKIP][191] ([i915#6095]) +11 other tests skip
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-d-dp-4.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-2:
    - shard-glk:          NOTRUN -> [INCOMPLETE][192] ([i915#12796])
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk9/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs:
    - shard-dg1:          NOTRUN -> [SKIP][193] ([i915#12313]) +3 other tests skip
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html
    - shard-tglu:         NOTRUN -> [SKIP][194] ([i915#12313])
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][195] ([i915#10307] / [i915#6095]) +167 other tests skip
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-7/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3.html

  * igt@kms_ccs@missing-ccs-buffer-y-tiled-ccs@pipe-b-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][196] ([i915#6095]) +104 other tests skip
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_ccs@missing-ccs-buffer-y-tiled-ccs@pipe-b-hdmi-a-1.html

  * igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs@pipe-a-hdmi-a-1:
    - shard-glk:          NOTRUN -> [SKIP][197] +412 other tests skip
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk4/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][198] ([i915#12313]) +1 other test skip
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-rkl:          NOTRUN -> [SKIP][199] ([i915#3742])
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@kms_cdclk@mode-transition.html

  * igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][200] ([i915#11616] / [i915#7213]) +4 other tests skip
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1.html

  * igt@kms_cdclk@plane-scaling:
    - shard-tglu-1:       NOTRUN -> [SKIP][201] ([i915#3742])
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_cdclk@plane-scaling.html

  * igt@kms_chamelium_color@ctm-0-25:
    - shard-dg2:          NOTRUN -> [SKIP][202] +7 other tests skip
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-2/igt@kms_chamelium_color@ctm-0-25.html

  * igt@kms_chamelium_edid@dp-edid-change-during-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][203] ([i915#11151] / [i915#7828]) +9 other tests skip
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-6/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html

  * igt@kms_chamelium_frames@hdmi-cmp-planar-formats:
    - shard-dg2:          NOTRUN -> [SKIP][204] ([i915#11151] / [i915#7828]) +7 other tests skip
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-2/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html

  * igt@kms_chamelium_frames@hdmi-crc-single:
    - shard-rkl:          NOTRUN -> [SKIP][205] ([i915#11151] / [i915#7828]) +10 other tests skip
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_chamelium_frames@hdmi-crc-single.html

  * igt@kms_chamelium_hpd@dp-hpd-for-each-pipe:
    - shard-mtlp:         NOTRUN -> [SKIP][206] ([i915#11151] / [i915#7828]) +2 other tests skip
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@kms_chamelium_hpd@dp-hpd-for-each-pipe.html

  * igt@kms_chamelium_hpd@hdmi-hpd:
    - shard-tglu-1:       NOTRUN -> [SKIP][207] ([i915#11151] / [i915#7828]) +2 other tests skip
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_chamelium_hpd@hdmi-hpd.html

  * igt@kms_chamelium_hpd@hdmi-hpd-storm-disable:
    - shard-dg1:          NOTRUN -> [SKIP][208] ([i915#11151] / [i915#7828]) +13 other tests skip
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_chamelium_hpd@hdmi-hpd-storm-disable.html

  * igt@kms_color@deep-color:
    - shard-tglu:         NOTRUN -> [SKIP][209] ([i915#3555] / [i915#9979])
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_color@deep-color.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-tglu:         NOTRUN -> [SKIP][210] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424]) +1 other test skip
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@atomic-dpms@pipe-a-dp-4:
    - shard-dg2:          NOTRUN -> [TIMEOUT][211] ([i915#7173])
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@kms_content_protection@atomic-dpms@pipe-a-dp-4.html

  * igt@kms_content_protection@content-type-change:
    - shard-dg2:          NOTRUN -> [SKIP][212] ([i915#9424])
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-7/igt@kms_content_protection@content-type-change.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-rkl:          NOTRUN -> [SKIP][213] ([i915#3116])
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_content_protection@legacy:
    - shard-tglu-1:       NOTRUN -> [SKIP][214] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424])
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@lic-type-0:
    - shard-rkl:          NOTRUN -> [SKIP][215] ([i915#9424])
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_content_protection@lic-type-0.html

  * igt@kms_content_protection@mei-interface:
    - shard-tglu:         NOTRUN -> [SKIP][216] ([i915#6944] / [i915#9424])
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@srm:
    - shard-tglu:         NOTRUN -> [SKIP][217] ([i915#6944] / [i915#7116] / [i915#7118])
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/igt@kms_content_protection@srm.html

  * igt@kms_content_protection@type1:
    - shard-dg2:          NOTRUN -> [SKIP][218] ([i915#7118] / [i915#9424])
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_content_protection@type1.html
    - shard-rkl:          NOTRUN -> [SKIP][219] ([i915#7118] / [i915#9424]) +1 other test skip
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@kms_content_protection@type1.html
    - shard-mtlp:         NOTRUN -> [SKIP][220] ([i915#3555] / [i915#6944] / [i915#9424])
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@kms_content_protection@type1.html

  * igt@kms_content_protection@uevent@pipe-a-dp-4:
    - shard-dg2:          NOTRUN -> [FAIL][221] ([i915#1339] / [i915#7173])
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@kms_content_protection@uevent@pipe-a-dp-4.html

  * igt@kms_cursor_crc@cursor-offscreen-512x170:
    - shard-tglu:         NOTRUN -> [SKIP][222] ([i915#13049]) +1 other test skip
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-8/igt@kms_cursor_crc@cursor-offscreen-512x170.html
    - shard-mtlp:         NOTRUN -> [SKIP][223] ([i915#13049])
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@kms_cursor_crc@cursor-offscreen-512x170.html

  * igt@kms_cursor_crc@cursor-onscreen-256x85:
    - shard-tglu:         [PASS][224] -> [FAIL][225] ([i915#13566]) +3 other tests fail
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-tglu-3/igt@kms_cursor_crc@cursor-onscreen-256x85.html
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@kms_cursor_crc@cursor-onscreen-256x85.html

  * igt@kms_cursor_crc@cursor-onscreen-256x85@pipe-a-hdmi-a-1:
    - shard-rkl:          [PASS][226] -> [FAIL][227] ([i915#13566]) +2 other tests fail
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-rkl-2/igt@kms_cursor_crc@cursor-onscreen-256x85@pipe-a-hdmi-a-1.html
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@kms_cursor_crc@cursor-onscreen-256x85@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-onscreen-32x32:
    - shard-dg1:          NOTRUN -> [SKIP][228] ([i915#3555]) +7 other tests skip
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_cursor_crc@cursor-onscreen-32x32.html

  * igt@kms_cursor_crc@cursor-onscreen-512x512:
    - shard-dg1:          NOTRUN -> [SKIP][229] ([i915#13049]) +1 other test skip
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_cursor_crc@cursor-onscreen-512x512.html

  * igt@kms_cursor_crc@cursor-random-128x128@pipe-c-hdmi-a-1:
    - shard-glk:          NOTRUN -> [DMESG-WARN][230] ([i915#118]) +1 other test dmesg-warn
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk8/igt@kms_cursor_crc@cursor-random-128x128@pipe-c-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-random-128x42@pipe-a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [FAIL][231] ([i915#13566])
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_cursor_crc@cursor-random-128x42@pipe-a-hdmi-a-1.html
    - shard-tglu-1:       NOTRUN -> [FAIL][232] ([i915#13566]) +1 other test fail
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_cursor_crc@cursor-random-128x42@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-random-32x10:
    - shard-mtlp:         NOTRUN -> [SKIP][233] ([i915#3555] / [i915#8814]) +1 other test skip
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@kms_cursor_crc@cursor-random-32x10.html

  * igt@kms_cursor_crc@cursor-rapid-movement-128x42:
    - shard-mtlp:         NOTRUN -> [SKIP][234] ([i915#8814])
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@kms_cursor_crc@cursor-rapid-movement-128x42.html

  * igt@kms_cursor_crc@cursor-rapid-movement-32x10:
    - shard-rkl:          NOTRUN -> [SKIP][235] ([i915#3555]) +7 other tests skip
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html
    - shard-tglu-1:       NOTRUN -> [SKIP][236] ([i915#3555])
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html

  * igt@kms_cursor_crc@cursor-rapid-movement-512x512:
    - shard-dg2:          NOTRUN -> [SKIP][237] ([i915#13049])
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-8/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-rkl:          NOTRUN -> [SKIP][238] ([i915#13049]) +1 other test skip
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_cursor_crc@cursor-sliding-64x21:
    - shard-tglu:         NOTRUN -> [FAIL][239] ([i915#13566]) +1 other test fail
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-3/igt@kms_cursor_crc@cursor-sliding-64x21.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
    - shard-dg2:          NOTRUN -> [SKIP][240] ([i915#13046] / [i915#5354]) +4 other tests skip
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
    - shard-mtlp:         NOTRUN -> [SKIP][241] ([i915#9809]) +2 other tests skip
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - shard-rkl:          NOTRUN -> [SKIP][242] ([i915#4103])
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size:
    - shard-dg1:          NOTRUN -> [SKIP][243] ([i915#4103] / [i915#4213])
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size:
    - shard-tglu:         NOTRUN -> [SKIP][244] +90 other tests skip
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html

  * igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot:
    - shard-mtlp:         NOTRUN -> [SKIP][245] ([i915#9067])
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
    - shard-dg2:          NOTRUN -> [SKIP][246] ([i915#9067])
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
    - shard-rkl:          NOTRUN -> [SKIP][247] ([i915#9067])
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-6/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
    - shard-dg1:          NOTRUN -> [SKIP][248] ([i915#9067])
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
    - shard-tglu:         NOTRUN -> [SKIP][249] ([i915#9067])
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
    - shard-mtlp:         NOTRUN -> [SKIP][250] ([i915#4213]) +1 other test skip
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
    - shard-tglu:         NOTRUN -> [SKIP][251] ([i915#4103]) +1 other test skip
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html

  * igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
    - shard-rkl:          NOTRUN -> [SKIP][252] ([i915#9723])
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html

  * igt@kms_dirtyfb@psr-dirtyfb-ioctl:
    - shard-tglu-1:       NOTRUN -> [SKIP][253] ([i915#9723])
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc:
    - shard-tglu:         NOTRUN -> [SKIP][254] ([i915#1769] / [i915#3555] / [i915#3804])
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/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][255] ([i915#3804])
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/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][256] ([i915#3804])
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-2.html

  * igt@kms_dp_linktrain_fallback@dp-fallback:
    - shard-tglu-1:       NOTRUN -> [SKIP][257] ([i915#12402])
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - shard-dg1:          NOTRUN -> [SKIP][258] ([i915#12402])
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_dp_linktrain_fallback@dp-fallback.html

  * igt@kms_dsc@dsc-fractional-bpp:
    - shard-tglu:         NOTRUN -> [SKIP][259] ([i915#3840])
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@kms_dsc@dsc-fractional-bpp.html

  * igt@kms_dsc@dsc-fractional-bpp-with-bpc:
    - shard-rkl:          NOTRUN -> [SKIP][260] ([i915#3840])
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html

  * igt@kms_dsc@dsc-with-bpc:
    - shard-dg2:          NOTRUN -> [SKIP][261] ([i915#3555] / [i915#3840])
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_dsc@dsc-with-bpc.html
    - shard-dg1:          NOTRUN -> [SKIP][262] ([i915#3555] / [i915#3840])
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_dsc@dsc-with-bpc.html

  * igt@kms_dsc@dsc-with-bpc-formats:
    - shard-mtlp:         NOTRUN -> [SKIP][263] ([i915#3555] / [i915#3840])
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@kms_dsc@dsc-with-bpc-formats.html
    - shard-tglu:         NOTRUN -> [SKIP][264] ([i915#3555] / [i915#3840])
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_dsc@dsc-with-bpc-formats.html

  * igt@kms_dsc@dsc-with-formats:
    - shard-rkl:          NOTRUN -> [SKIP][265] ([i915#3555] / [i915#3840])
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_dsc@dsc-with-formats.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc:
    - shard-dg1:          NOTRUN -> [SKIP][266] ([i915#3840] / [i915#9053])
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_dsc@dsc-with-output-formats-with-bpc.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][267] ([i915#9878])
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk1/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_fbcon_fbt@psr:
    - shard-dg2:          NOTRUN -> [SKIP][268] ([i915#3469])
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@kms_fbcon_fbt@psr.html
    - shard-rkl:          NOTRUN -> [SKIP][269] ([i915#3955])
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@kms_fbcon_fbt@psr.html

  * igt@kms_feature_discovery@chamelium:
    - shard-dg1:          NOTRUN -> [SKIP][270] ([i915#4854])
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@display-3x:
    - shard-rkl:          NOTRUN -> [SKIP][271] ([i915#1839])
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@kms_feature_discovery@display-3x.html
    - shard-tglu:         NOTRUN -> [SKIP][272] ([i915#1839])
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-2/igt@kms_feature_discovery@display-3x.html
    - shard-mtlp:         NOTRUN -> [SKIP][273] ([i915#1839])
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@kms_feature_discovery@display-3x.html

  * igt@kms_feature_discovery@display-4x:
    - shard-dg1:          NOTRUN -> [SKIP][274] ([i915#1839]) +1 other test skip
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_feature_discovery@display-4x.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-dg2:          NOTRUN -> [SKIP][275] ([i915#9337])
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@kms_feature_discovery@dp-mst.html
    - shard-dg1:          NOTRUN -> [SKIP][276] ([i915#9337])
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_feature_discovery@psr2:
    - shard-tglu-1:       NOTRUN -> [SKIP][277] ([i915#658])
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_feature_discovery@psr2.html
    - shard-dg1:          NOTRUN -> [SKIP][278] ([i915#658])
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@kms_feature_discovery@psr2.html

  * igt@kms_fence_pin_leak:
    - shard-dg1:          NOTRUN -> [SKIP][279] ([i915#4881])
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_fence_pin_leak.html

  * igt@kms_flip@2x-flip-vs-dpms:
    - shard-tglu-1:       NOTRUN -> [SKIP][280] ([i915#3637]) +3 other tests skip
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_flip@2x-flip-vs-dpms.html

  * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible:
    - shard-rkl:          NOTRUN -> [SKIP][281] ([i915#9934]) +14 other tests skip
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-6/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
    - shard-mtlp:         NOTRUN -> [SKIP][282] ([i915#3637]) +5 other tests skip
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@kms_flip@2x-flip-vs-expired-vblank.html

  * igt@kms_flip@2x-flip-vs-fences:
    - shard-dg1:          NOTRUN -> [SKIP][283] ([i915#8381]) +1 other test skip
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@kms_flip@2x-flip-vs-fences.html

  * igt@kms_flip@2x-flip-vs-panning-interruptible:
    - shard-dg2:          NOTRUN -> [SKIP][284] ([i915#9934]) +2 other tests skip
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-7/igt@kms_flip@2x-flip-vs-panning-interruptible.html

  * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
    - shard-dg1:          NOTRUN -> [SKIP][285] ([i915#9934]) +9 other tests skip
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
    - shard-tglu:         NOTRUN -> [SKIP][286] ([i915#3637]) +3 other tests skip
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-6/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html

  * igt@kms_flip@2x-wf_vblank-ts-check:
    - shard-snb:          [PASS][287] -> [FAIL][288] ([i915#11989]) +1 other test fail
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-snb1/igt@kms_flip@2x-wf_vblank-ts-check.html
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-snb2/igt@kms_flip@2x-wf_vblank-ts-check.html

  * igt@kms_flip@plain-flip-ts-check:
    - shard-tglu:         [PASS][289] -> [FAIL][290] ([i915#11989]) +1 other test fail
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-tglu-4/igt@kms_flip@plain-flip-ts-check.html
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-10/igt@kms_flip@plain-flip-ts-check.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling:
    - shard-rkl:          NOTRUN -> [SKIP][291] ([i915#2672] / [i915#3555]) +4 other tests skip
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling@pipe-a-valid-mode:
    - shard-rkl:          NOTRUN -> [SKIP][292] ([i915#2672]) +4 other tests skip
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode:
    - shard-dg1:          NOTRUN -> [SKIP][293] ([i915#2587] / [i915#2672]) +6 other tests skip
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][294] ([i915#2672] / [i915#8813]) +2 other tests skip
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling:
    - shard-dg2:          NOTRUN -> [SKIP][295] ([i915#2672] / [i915#3555] / [i915#5190]) +2 other tests skip
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
    - shard-dg1:          NOTRUN -> [SKIP][296] ([i915#2587] / [i915#2672] / [i915#3555])
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
    - shard-tglu:         NOTRUN -> [SKIP][297] ([i915#2587] / [i915#2672] / [i915#3555])
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode:
    - shard-dg2:          NOTRUN -> [SKIP][298] ([i915#2672]) +3 other tests skip
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling:
    - shard-tglu:         NOTRUN -> [SKIP][299] ([i915#2672] / [i915#3555]) +2 other tests skip
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling:
    - shard-mtlp:         NOTRUN -> [SKIP][300] ([i915#3555] / [i915#8813])
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][301] ([i915#8810])
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-valid-mode:
    - shard-tglu:         NOTRUN -> [SKIP][302] ([i915#2587] / [i915#2672]) +3 other tests skip
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-8/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
    - shard-tglu-1:       NOTRUN -> [SKIP][303] ([i915#2672] / [i915#3555])
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode:
    - shard-tglu-1:       NOTRUN -> [SKIP][304] ([i915#2587] / [i915#2672])
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling:
    - shard-mtlp:         NOTRUN -> [SKIP][305] ([i915#3555] / [i915#8810] / [i915#8813])
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][306] ([i915#3555] / [i915#8810])
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling:
    - shard-dg1:          NOTRUN -> [SKIP][307] ([i915#2672] / [i915#3555]) +5 other tests skip
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling:
    - shard-mtlp:         NOTRUN -> [SKIP][308] ([i915#2672] / [i915#3555] / [i915#8813]) +6 other tests skip
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html
    - shard-dg2:          NOTRUN -> [SKIP][309] ([i915#2672] / [i915#3555]) +2 other tests skip
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-7/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render:
    - shard-dg2:          [PASS][310] -> [FAIL][311] ([i915#6880]) +1 other test fail
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-5/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-7/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt:
    - shard-dg1:          NOTRUN -> [SKIP][312] ([i915#4423])
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-snb:          [PASS][313] -> [SKIP][314]
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-snb7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt.html
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-snb7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render:
    - shard-dg1:          NOTRUN -> [SKIP][315] +52 other tests skip
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-gtt:
    - shard-dg1:          NOTRUN -> [SKIP][316] ([i915#8708]) +27 other tests skip
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-4:
    - shard-rkl:          NOTRUN -> [SKIP][317] ([i915#5439])
   [317]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_frontbuffer_tracking@fbc-tiling-4.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc:
    - shard-snb:          NOTRUN -> [SKIP][318] +454 other tests skip
   [318]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-snb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt:
    - shard-rkl:          NOTRUN -> [SKIP][319] +30 other tests skip
   [319]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-cpu:
    - shard-mtlp:         NOTRUN -> [SKIP][320] ([i915#1825]) +22 other tests skip
   [320]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-move:
    - shard-dg2:          NOTRUN -> [SKIP][321] ([i915#5354]) +23 other tests skip
   [321]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt:
    - shard-rkl:          NOTRUN -> [SKIP][322] ([i915#1825]) +50 other tests skip
   [322]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
    - shard-rkl:          NOTRUN -> [SKIP][323] ([i915#3023]) +40 other tests skip
   [323]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-render:
    - shard-tglu-1:       NOTRUN -> [SKIP][324] +36 other tests skip
   [324]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
    - shard-tglu-1:       NOTRUN -> [SKIP][325] ([i915#5439])
   [325]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html
    - shard-dg1:          NOTRUN -> [SKIP][326] ([i915#5439])
   [326]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html

  * igt@kms_frontbuffer_tracking@pipe-fbc-rte:
    - shard-rkl:          NOTRUN -> [SKIP][327] ([i915#9766])
   [327]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-pwrite:
    - shard-dg2:          NOTRUN -> [SKIP][328] ([i915#10433] / [i915#3458]) +1 other test skip
   [328]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-1p-rte:
    - shard-dg2:          NOTRUN -> [SKIP][329] ([i915#3458]) +16 other tests skip
   [329]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@kms_frontbuffer_tracking@psr-1p-rte.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][330] ([i915#8708]) +21 other tests skip
   [330]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][331] ([i915#8708]) +8 other tests skip
   [331]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-modesetfrombusy:
    - shard-dg1:          NOTRUN -> [SKIP][332] ([i915#3458]) +24 other tests skip
   [332]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_frontbuffer_tracking@psr-modesetfrombusy.html

  * igt@kms_hdr@bpc-switch:
    - shard-dg1:          NOTRUN -> [SKIP][333] ([i915#3555] / [i915#8228]) +1 other test skip
   [333]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_hdr@bpc-switch.html
    - shard-tglu:         NOTRUN -> [SKIP][334] ([i915#3555] / [i915#8228])
   [334]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/igt@kms_hdr@bpc-switch.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-rkl:          NOTRUN -> [SKIP][335] ([i915#12713])
   [335]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_hdr@static-swap:
    - shard-mtlp:         NOTRUN -> [SKIP][336] ([i915#3555] / [i915#8228])
   [336]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@kms_hdr@static-swap.html
    - shard-dg2:          [PASS][337] -> [SKIP][338] ([i915#3555] / [i915#8228]) +1 other test skip
   [337]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-10/igt@kms_hdr@static-swap.html
   [338]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-5/igt@kms_hdr@static-swap.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][339] ([i915#3555] / [i915#8228]) +1 other test skip
   [339]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_hdr@static-toggle-dpms.html

  * igt@kms_invalid_mode@clock-too-high:
    - shard-mtlp:         NOTRUN -> [SKIP][340] ([i915#3555] / [i915#6403] / [i915#8826])
   [340]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_invalid_mode@clock-too-high.html

  * igt@kms_invalid_mode@clock-too-high@pipe-a-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][341] ([i915#9457]) +3 other tests skip
   [341]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_invalid_mode@clock-too-high@pipe-a-edp-1.html

  * igt@kms_joiner@basic-force-big-joiner:
    - shard-rkl:          NOTRUN -> [SKIP][342] ([i915#12388])
   [342]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@kms_joiner@basic-force-big-joiner.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - shard-dg1:          NOTRUN -> [SKIP][343] ([i915#12394] / [i915#13522])
   [343]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-big-joiner:
    - shard-dg1:          NOTRUN -> [SKIP][344] ([i915#10656])
   [344]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@kms_joiner@invalid-modeset-big-joiner.html

  * igt@kms_joiner@invalid-modeset-force-big-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][345] ([i915#12388])
   [345]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/igt@kms_joiner@invalid-modeset-force-big-joiner.html

  * igt@kms_joiner@invalid-modeset-force-ultra-joiner:
    - shard-dg2:          NOTRUN -> [SKIP][346] ([i915#10656] / [i915#13522])
   [346]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - shard-tglu:         NOTRUN -> [SKIP][347] ([i915#12394] / [i915#13522])
   [347]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-ultra-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][348] ([i915#12339])
   [348]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-6/igt@kms_joiner@invalid-modeset-ultra-joiner.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-dg1:          NOTRUN -> [SKIP][349] ([i915#13522])
   [349]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
    - shard-tglu:         NOTRUN -> [SKIP][350] ([i915#13522])
   [350]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-2/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
    - shard-mtlp:         NOTRUN -> [SKIP][351] ([i915#13522])
   [351]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
    - shard-rkl:          NOTRUN -> [SKIP][352] ([i915#13522])
   [352]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-rkl:          NOTRUN -> [SKIP][353] ([i915#4816])
   [353]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@kms_panel_fitting@atomic-fastset:
    - shard-dg2:          NOTRUN -> [SKIP][354] ([i915#6301])
   [354]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-3/igt@kms_panel_fitting@atomic-fastset.html
    - shard-rkl:          NOTRUN -> [SKIP][355] ([i915#6301])
   [355]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@kms_panel_fitting@atomic-fastset.html

  * igt@kms_panel_fitting@legacy:
    - shard-dg1:          NOTRUN -> [SKIP][356] ([i915#6301])
   [356]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_panel_fitting@legacy.html

  * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a:
    - shard-glk:          [PASS][357] -> [INCOMPLETE][358] ([i915#13026])
   [357]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-glk6/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a.html
   [358]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk8/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a.html

  * igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-1-size-128:
    - shard-rkl:          NOTRUN -> [DMESG-WARN][359] ([i915#12964]) +16 other tests dmesg-warn
   [359]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-1-size-128.html

  * igt@kms_plane_lowres@tiling-4:
    - shard-tglu:         NOTRUN -> [SKIP][360] ([i915#3555]) +6 other tests skip
   [360]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/igt@kms_plane_lowres@tiling-4.html
    - shard-mtlp:         NOTRUN -> [SKIP][361] ([i915#10226] / [i915#11614] / [i915#3555] / [i915#8821])
   [361]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@kms_plane_lowres@tiling-4.html

  * igt@kms_plane_lowres@tiling-4@pipe-b-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][362] ([i915#11614] / [i915#3582]) +3 other tests skip
   [362]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@kms_plane_lowres@tiling-4@pipe-b-edp-1.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-a:
    - shard-rkl:          NOTRUN -> [SKIP][363] ([i915#12247]) +17 other tests skip
   [363]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-a.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format:
    - shard-dg1:          NOTRUN -> [SKIP][364] ([i915#12247]) +32 other tests skip
   [364]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format.html
    - shard-dg2:          NOTRUN -> [SKIP][365] ([i915#12247] / [i915#9423])
   [365]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-1/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-d:
    - shard-dg2:          NOTRUN -> [SKIP][366] ([i915#12247]) +7 other tests skip
   [366]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-1/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-d.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-rotation@pipe-c:
    - shard-tglu:         NOTRUN -> [SKIP][367] ([i915#12247]) +14 other tests skip
   [367]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-10/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-rotation@pipe-c.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a:
    - shard-tglu-1:       NOTRUN -> [SKIP][368] ([i915#12247]) +4 other tests skip
   [368]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25:
    - shard-rkl:          NOTRUN -> [SKIP][369] ([i915#12247] / [i915#6953]) +1 other test skip
   [369]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_plane_scaling@planes-downscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25:
    - shard-dg1:          NOTRUN -> [SKIP][370] ([i915#12247] / [i915#6953]) +1 other test skip
   [370]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5:
    - shard-mtlp:         NOTRUN -> [SKIP][371] ([i915#6953])
   [371]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25:
    - shard-rkl:          NOTRUN -> [SKIP][372] ([i915#12247] / [i915#3555])
   [372]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25:
    - shard-dg2:          NOTRUN -> [SKIP][373] ([i915#12247] / [i915#6953] / [i915#9423])
   [373]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75:
    - shard-mtlp:         NOTRUN -> [SKIP][374] ([i915#12247] / [i915#3555] / [i915#6953]) +1 other test skip
   [374]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a:
    - shard-mtlp:         NOTRUN -> [SKIP][375] ([i915#12247]) +21 other tests skip
   [375]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a.html

  * igt@kms_pm_backlight@basic-brightness:
    - shard-dg1:          NOTRUN -> [SKIP][376] ([i915#5354])
   [376]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_pm_backlight@basic-brightness.html
    - shard-tglu:         NOTRUN -> [SKIP][377] ([i915#9812])
   [377]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-2/igt@kms_pm_backlight@basic-brightness.html

  * igt@kms_pm_backlight@brightness-with-dpms:
    - shard-dg1:          NOTRUN -> [SKIP][378] ([i915#12343])
   [378]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_pm_backlight@brightness-with-dpms.html

  * igt@kms_pm_backlight@fade:
    - shard-tglu-1:       NOTRUN -> [SKIP][379] ([i915#9812])
   [379]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_pm_backlight@fade.html

  * igt@kms_pm_backlight@fade-with-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][380] ([i915#5354]) +2 other tests skip
   [380]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_pm_backlight@fade-with-dpms.html

  * igt@kms_pm_dc@dc3co-vpb-simulation:
    - shard-rkl:          NOTRUN -> [SKIP][381] ([i915#9685]) +1 other test skip
   [381]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_pm_dc@dc3co-vpb-simulation.html

  * igt@kms_pm_dc@dc6-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][382] ([i915#3361])
   [382]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_pm_dc@dc6-dpms.html
    - shard-tglu:         [PASS][383] -> [FAIL][384] ([i915#9295])
   [383]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-tglu-10/igt@kms_pm_dc@dc6-dpms.html
   [384]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-3/igt@kms_pm_dc@dc6-dpms.html

  * igt@kms_pm_dc@dc9-dpms:
    - shard-tglu:         NOTRUN -> [SKIP][385] ([i915#4281])
   [385]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-8/igt@kms_pm_dc@dc9-dpms.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-dg1:          NOTRUN -> [SKIP][386] ([i915#9340])
   [386]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_lpsp@screens-disabled:
    - shard-tglu-1:       NOTRUN -> [SKIP][387] ([i915#8430])
   [387]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_pm_lpsp@screens-disabled.html
    - shard-dg1:          NOTRUN -> [SKIP][388] ([i915#8430])
   [388]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_pm_lpsp@screens-disabled.html

  * igt@kms_pm_rpm@dpms-lpsp:
    - shard-dg1:          NOTRUN -> [SKIP][389] ([i915#9519])
   [389]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@kms_pm_rpm@dpms-lpsp.html

  * igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-tglu:         NOTRUN -> [SKIP][390] ([i915#9519])
   [390]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@kms_pm_rpm@i2c:
    - shard-glk:          [PASS][391] -> [FAIL][392] ([i915#8717])
   [391]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-glk7/igt@kms_pm_rpm@i2c.html
   [392]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk6/igt@kms_pm_rpm@i2c.html

  * igt@kms_pm_rpm@modeset-lpsp:
    - shard-dg2:          [PASS][393] -> [SKIP][394] ([i915#9519]) +1 other test skip
   [393]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-4/igt@kms_pm_rpm@modeset-lpsp.html
   [394]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-7/igt@kms_pm_rpm@modeset-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp:
    - shard-mtlp:         NOTRUN -> [SKIP][395] ([i915#9519]) +1 other test skip
   [395]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@kms_pm_rpm@modeset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress:
    - shard-rkl:          NOTRUN -> [SKIP][396] ([i915#9519]) +1 other test skip
   [396]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@kms_pm_rpm@modeset-non-lpsp-stress.html

  * igt@kms_pm_rpm@system-suspend-modeset:
    - shard-glk:          NOTRUN -> [INCOMPLETE][397] ([i915#10553])
   [397]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk9/igt@kms_pm_rpm@system-suspend-modeset.html

  * igt@kms_prime@basic-crc-hybrid:
    - shard-tglu:         NOTRUN -> [SKIP][398] ([i915#6524])
   [398]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/igt@kms_prime@basic-crc-hybrid.html

  * igt@kms_prime@basic-modeset-hybrid:
    - shard-rkl:          NOTRUN -> [SKIP][399] ([i915#6524]) +1 other test skip
   [399]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@kms_prime@basic-modeset-hybrid.html
    - shard-dg1:          NOTRUN -> [SKIP][400] ([i915#6524]) +1 other test skip
   [400]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_prime@basic-modeset-hybrid.html
    - shard-mtlp:         NOTRUN -> [SKIP][401] ([i915#6524])
   [401]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@kms_prime@basic-modeset-hybrid.html
    - shard-dg2:          NOTRUN -> [SKIP][402] ([i915#6524] / [i915#6805])
   [402]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_prime@basic-modeset-hybrid.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf:
    - shard-snb:          NOTRUN -> [SKIP][403] ([i915#11520]) +11 other tests skip
   [403]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-snb5/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area:
    - shard-mtlp:         NOTRUN -> [SKIP][404] ([i915#12316]) +3 other tests skip
   [404]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf:
    - shard-dg2:          NOTRUN -> [SKIP][405] ([i915#11520]) +6 other tests skip
   [405]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-2/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html

  * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-fully-sf:
    - shard-tglu:         NOTRUN -> [SKIP][406] ([i915#11520]) +6 other tests skip
   [406]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area:
    - shard-rkl:          NOTRUN -> [SKIP][407] ([i915#11520]) +12 other tests skip
   [407]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area:
    - shard-glk:          NOTRUN -> [SKIP][408] ([i915#11520]) +7 other tests skip
   [408]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk2/igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area-big-fb:
    - shard-tglu-1:       NOTRUN -> [SKIP][409] ([i915#11520]) +3 other tests skip
   [409]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb:
    - shard-dg1:          NOTRUN -> [SKIP][410] ([i915#11520]) +12 other tests skip
   [410]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - shard-dg1:          NOTRUN -> [SKIP][411] ([i915#9683]) +1 other test skip
   [411]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@kms_psr2_su@frontbuffer-xrgb8888.html

  * igt@kms_psr2_su@page_flip-nv12:
    - shard-tglu-1:       NOTRUN -> [SKIP][412] ([i915#9683])
   [412]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_psr2_su@page_flip-nv12.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-rkl:          NOTRUN -> [SKIP][413] ([i915#9683]) +1 other test skip
   [413]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr@fbc-psr-dpms:
    - shard-mtlp:         NOTRUN -> [SKIP][414] ([i915#9688]) +21 other tests skip
   [414]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_psr@fbc-psr-dpms.html

  * igt@kms_psr@fbc-psr-primary-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][415] ([i915#1072] / [i915#9732]) +19 other tests skip
   [415]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-2/igt@kms_psr@fbc-psr-primary-mmap-gtt.html

  * igt@kms_psr@fbc-psr-sprite-mmap-cpu:
    - shard-tglu-1:       NOTRUN -> [SKIP][416] ([i915#9732]) +7 other tests skip
   [416]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_psr@fbc-psr-sprite-mmap-cpu.html

  * igt@kms_psr@pr-basic:
    - shard-tglu:         NOTRUN -> [SKIP][417] ([i915#9732]) +22 other tests skip
   [417]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@kms_psr@pr-basic.html

  * igt@kms_psr@psr-sprite-mmap-cpu:
    - shard-dg1:          NOTRUN -> [SKIP][418] ([i915#1072] / [i915#9732]) +34 other tests skip
   [418]: https://intel-gfx-ci.01.org/tree/drm-tip/

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/index.html

[-- Attachment #2: Type: text/html, Size: 110167 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: ✗ Xe.CI.Full: failure for Integrate kmemleak scans in igt_runner (rev2)
  2025-01-29 10:40 ` ✗ Xe.CI.Full: failure " Patchwork
@ 2025-01-29 13:18   ` Peter Senna Tschudin
  0 siblings, 0 replies; 31+ messages in thread
From: Peter Senna Tschudin @ 2025-01-29 13:18 UTC (permalink / raw)
  To: igt-dev, I915-ci-infra

Dear I915,

On 29.01.2025 11:40, Patchwork wrote:
> == Series Details ==
> 
> Series: Integrate kmemleak scans in igt_runner (rev2)
> URL   : https://patchwork.freedesktop.org/series/143996/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from XEIGT_8212_full -> XEIGTPW_12508_full
> ====================================================
> 
> Summary
> -------
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with XEIGTPW_12508_full absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in XEIGTPW_12508_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.
> 
>   
> 
> Participating hosts (4 -> 4)
> ------------------------------
> 
>   No changes in participating hosts
> 
> Possible new issues
> -------------------
> 
>   Here are the unknown changes that may have been introduced in XEIGTPW_12508_full:
> 
> ### IGT changes ###
> 
> #### Possible regressions ####
> 
>   * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs:
>     - shard-dg2-set2:     [PASS][1] -> [DMESG-WARN][2]
>    [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-433/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
>    [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-436/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
> 
>   * igt@xe_pm_residency@gt-c6-freeze:
>     - shard-dg2-set2:     [PASS][3] -> [ABORT][4] +1 other test abort
>    [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8212/shard-dg2-435/igt@xe_pm_residency@gt-c6-freeze.html
>    [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12508/shard-dg2-432/igt@xe_pm_residency@gt-c6-freeze.html

These are unrelated to my change. Please fix and re-run.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: ✗ i915.CI.Full: failure for Integrate kmemleak scans in igt_runner (rev2)
  2025-01-29 11:25 ` ✗ i915.CI.Full: " Patchwork
@ 2025-01-29 13:19   ` Peter Senna Tschudin
  2025-01-30  6:18     ` Ravali, JupallyX
  0 siblings, 1 reply; 31+ messages in thread
From: Peter Senna Tschudin @ 2025-01-29 13:19 UTC (permalink / raw)
  To: igt-dev, I915-ci-infra

Dear I915,


On 29.01.2025 12:25, Patchwork wrote:
> == Series Details ==
> 
> Series: Integrate kmemleak scans in igt_runner (rev2)
> URL   : https://patchwork.freedesktop.org/series/143996/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_16035_full -> IGTPW_12508_full
> ====================================================
> 
> Summary
> -------
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with IGTPW_12508_full absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in IGTPW_12508_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_12508/index.html
> 
> Participating hosts (11 -> 11)
> ------------------------------
> 
>   No changes in participating hosts
> 
> Possible new issues
> -------------------
> 
>   Here are the unknown changes that may have been introduced in IGTPW_12508_full:
> 
> ### IGT changes ###
> 
> #### Possible regressions ####
> 
>   * igt@gem_eio@in-flight-contexts-immediate:
>     - shard-mtlp:         [PASS][1] -> [ABORT][2]
>    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-1/igt@gem_eio@in-flight-contexts-immediate.html
>    [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@gem_eio@in-flight-contexts-immediate.html
> 
>   * igt@gem_softpin@allocator-evict@ccs0:
>     - shard-dg2:          [PASS][3] -> [INCOMPLETE][4] +1 other test incomplete
>    [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-1/igt@gem_softpin@allocator-evict@ccs0.html
>    [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-8/igt@gem_softpin@allocator-evict@ccs0.html
> 
>   * igt@i915_pm_rps@reset:
>     - shard-dg2:          [PASS][5] -> [FAIL][6]
>    [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-6/igt@i915_pm_rps@reset.html
>    [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@i915_pm_rps@reset.html
>     - shard-dg1:          [PASS][7] -> [FAIL][8]
>    [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg1-18/igt@i915_pm_rps@reset.html
>    [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@i915_pm_rps@reset.html
> 
>   * igt@kms_prime@basic-modeset-hybrid:
>     - shard-tglu:         NOTRUN -> [ABORT][9]
>    [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-7/igt@kms_prime@basic-modeset-hybrid.html
> 
>   
> #### Warnings ####
> 
>   * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf:
>     - shard-mtlp:         [SKIP][10] ([i915#12316]) -> [ABORT][11]
>    [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-5/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.html
>    [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-4/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.html
> 
>   * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pipe-a-edp-1:
>     - shard-mtlp:         [SKIP][12] ([i915#9808]) -> [ABORT][13]
>    [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-5/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pipe-a-edp-1.html
>    [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-4/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pipe-a-edp-1.html

These are unrelated to my change. Please fix and rerun.

[...]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* ✓ i915.CI.Full: success for Integrate kmemleak scans in igt_runner (rev2)
  2025-01-28 15:15 [PATCH i-g-t v4 0/2] Integrate kmemleak scans in igt_runner Peter Senna Tschudin
                   ` (6 preceding siblings ...)
  2025-01-29 11:25 ` ✗ i915.CI.Full: " Patchwork
@ 2025-01-30  5:26 ` Patchwork
  7 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2025-01-30  5:26 UTC (permalink / raw)
  To: Peter Senna Tschudin; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 100265 bytes --]

== Series Details ==

Series: Integrate kmemleak scans in igt_runner (rev2)
URL   : https://patchwork.freedesktop.org/series/143996/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_16035_full -> IGTPW_12508_full
====================================================

Summary
-------

  **WARNING**

  Minor unknown changes coming with IGTPW_12508_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_12508_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_12508/index.html

Participating hosts (11 -> 11)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_12508_full:

### IGT changes ###

#### Warnings ####

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf:
    - shard-mtlp:         [SKIP][1] ([i915#12316]) -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-5/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-4/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pipe-a-edp-1:
    - shard-mtlp:         [SKIP][3] ([i915#9808]) -> [ABORT][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-5/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pipe-a-edp-1.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-4/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pipe-a-edp-1.html

  
Known issues
------------

  Here are the changes found in IGTPW_12508_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@api_intel_bb@crc32:
    - shard-tglu-1:       NOTRUN -> [SKIP][5] ([i915#6230])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@api_intel_bb@crc32.html
    - shard-dg1:          NOTRUN -> [SKIP][6] ([i915#6230])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@api_intel_bb@crc32.html

  * igt@api_intel_bb@object-reloc-keep-cache:
    - shard-rkl:          NOTRUN -> [SKIP][7] ([i915#8411]) +1 other test skip
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@api_intel_bb@object-reloc-keep-cache.html

  * igt@debugfs_test@read_all_entries_display_on:
    - shard-mtlp:         NOTRUN -> [ABORT][8] ([i915#13343])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@debugfs_test@read_all_entries_display_on.html

  * igt@device_reset@cold-reset-bound:
    - shard-tglu-1:       NOTRUN -> [SKIP][9] ([i915#11078])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@device_reset@cold-reset-bound.html
    - shard-rkl:          NOTRUN -> [SKIP][10] ([i915#11078])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-6/igt@device_reset@cold-reset-bound.html

  * igt@device_reset@unbind-cold-reset-rebind:
    - shard-tglu:         NOTRUN -> [SKIP][11] ([i915#11078])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-10/igt@device_reset@unbind-cold-reset-rebind.html

  * igt@device_reset@unbind-reset-rebind:
    - shard-dg1:          NOTRUN -> [ABORT][12] ([i915#11814] / [i915#11815] / [i915#9413])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@device_reset@unbind-reset-rebind.html

  * igt@drm_fdinfo@busy-hang@rcs0:
    - shard-mtlp:         NOTRUN -> [SKIP][13] ([i915#8414]) +9 other tests skip
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@drm_fdinfo@busy-hang@rcs0.html

  * igt@drm_fdinfo@busy-idle-check-all@vcs1:
    - shard-dg1:          NOTRUN -> [SKIP][14] ([i915#8414]) +11 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@drm_fdinfo@busy-idle-check-all@vcs1.html

  * igt@drm_fdinfo@busy@rcs0:
    - shard-dg2:          NOTRUN -> [SKIP][15] ([i915#8414]) +9 other tests skip
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@drm_fdinfo@busy@rcs0.html

  * igt@gem_basic@multigpu-create-close:
    - shard-rkl:          NOTRUN -> [SKIP][16] ([i915#7697]) +1 other test skip
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@gem_basic@multigpu-create-close.html
    - shard-tglu:         NOTRUN -> [SKIP][17] ([i915#7697]) +1 other test skip
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-8/igt@gem_basic@multigpu-create-close.html
    - shard-mtlp:         NOTRUN -> [SKIP][18] ([i915#7697])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@gem_basic@multigpu-create-close.html
    - shard-dg2:          NOTRUN -> [SKIP][19] ([i915#7697])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@gem_basic@multigpu-create-close.html

  * igt@gem_busy@semaphore:
    - shard-dg2:          NOTRUN -> [SKIP][20] ([i915#3936])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@gem_busy@semaphore.html

  * igt@gem_caching@read-writes:
    - shard-mtlp:         NOTRUN -> [SKIP][21] ([i915#4873])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@gem_caching@read-writes.html

  * igt@gem_ccs@block-copy-compressed:
    - shard-rkl:          NOTRUN -> [SKIP][22] ([i915#3555] / [i915#9323])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@gem_ccs@block-copy-compressed.html

  * igt@gem_ccs@block-multicopy-inplace:
    - shard-dg1:          NOTRUN -> [SKIP][23] ([i915#3555] / [i915#9323])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@gem_ccs@block-multicopy-inplace.html
    - shard-tglu:         NOTRUN -> [SKIP][24] ([i915#3555] / [i915#9323])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@gem_ccs@block-multicopy-inplace.html

  * igt@gem_ccs@ctrl-surf-copy:
    - shard-mtlp:         NOTRUN -> [SKIP][25] ([i915#3555] / [i915#9323])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@gem_ccs@ctrl-surf-copy.html

  * igt@gem_ccs@suspend-resume:
    - shard-tglu:         NOTRUN -> [SKIP][26] ([i915#9323])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/igt@gem_ccs@suspend-resume.html

  * igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-lmem0-lmem0:
    - shard-dg2:          NOTRUN -> [INCOMPLETE][27] ([i915#12392] / [i915#7297])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-3/igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-lmem0-lmem0.html

  * igt@gem_create@create-ext-set-pat:
    - shard-dg2:          NOTRUN -> [SKIP][28] ([i915#8562])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-5/igt@gem_create@create-ext-set-pat.html
    - shard-dg1:          NOTRUN -> [SKIP][29] ([i915#8562])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@gem_create@create-ext-set-pat.html

  * igt@gem_ctx_isolation@preservation-s3@rcs0:
    - shard-glk:          NOTRUN -> [INCOMPLETE][30] ([i915#12353]) +1 other test incomplete
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk7/igt@gem_ctx_isolation@preservation-s3@rcs0.html

  * igt@gem_ctx_persistence@engines-queued:
    - shard-snb:          NOTRUN -> [SKIP][31] ([i915#1099]) +2 other tests skip
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-snb7/igt@gem_ctx_persistence@engines-queued.html

  * igt@gem_ctx_persistence@heartbeat-stop:
    - shard-mtlp:         NOTRUN -> [SKIP][32] ([i915#8555]) +1 other test skip
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-2/igt@gem_ctx_persistence@heartbeat-stop.html

  * igt@gem_ctx_persistence@saturated-hostile-nopreempt@vcs0:
    - shard-mtlp:         NOTRUN -> [SKIP][33] ([i915#5882]) +6 other tests skip
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@gem_ctx_persistence@saturated-hostile-nopreempt@vcs0.html

  * igt@gem_ctx_sseu@engines:
    - shard-tglu:         NOTRUN -> [SKIP][34] ([i915#280])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@gem_ctx_sseu@engines.html

  * igt@gem_ctx_sseu@invalid-sseu:
    - shard-dg2:          NOTRUN -> [SKIP][35] ([i915#280])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_ctx_sseu@invalid-sseu.html
    - shard-rkl:          NOTRUN -> [SKIP][36] ([i915#280]) +1 other test skip
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@gem_ctx_sseu@invalid-sseu.html

  * igt@gem_eio@hibernate:
    - shard-rkl:          NOTRUN -> [ABORT][37] ([i915#7975] / [i915#8213])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@gem_eio@hibernate.html

  * igt@gem_eio@in-flight-contexts-immediate:
    - shard-mtlp:         [PASS][38] -> [ABORT][39] ([i915#13193]) +1 other test abort
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-1/igt@gem_eio@in-flight-contexts-immediate.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@gem_eio@in-flight-contexts-immediate.html

  * igt@gem_eio@in-flight-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][40] ([i915#13390])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk2/igt@gem_eio@in-flight-suspend.html

  * igt@gem_eio@unwedge-stress:
    - shard-dg1:          NOTRUN -> [FAIL][41] ([i915#12714] / [i915#5784])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_balancer@bonded-false-hang:
    - shard-dg2:          NOTRUN -> [SKIP][42] ([i915#4812])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-5/igt@gem_exec_balancer@bonded-false-hang.html

  * igt@gem_exec_balancer@bonded-sync:
    - shard-dg1:          NOTRUN -> [SKIP][43] ([i915#4771])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@gem_exec_balancer@bonded-sync.html

  * igt@gem_exec_balancer@parallel:
    - shard-rkl:          NOTRUN -> [SKIP][44] ([i915#4525]) +1 other test skip
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@gem_exec_balancer@parallel.html

  * igt@gem_exec_balancer@parallel-balancer:
    - shard-tglu:         NOTRUN -> [SKIP][45] ([i915#4525]) +1 other test skip
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-7/igt@gem_exec_balancer@parallel-balancer.html

  * igt@gem_exec_capture@capture-invisible:
    - shard-dg2:          NOTRUN -> [SKIP][46] ([i915#6334]) +2 other tests skip
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_exec_capture@capture-invisible.html
    - shard-dg1:          NOTRUN -> [SKIP][47] ([i915#6334]) +2 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@gem_exec_capture@capture-invisible.html

  * igt@gem_exec_capture@capture-invisible@smem0:
    - shard-glk:          NOTRUN -> [SKIP][48] ([i915#6334]) +1 other test skip
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk9/igt@gem_exec_capture@capture-invisible@smem0.html

  * igt@gem_exec_capture@capture@vecs0-lmem0:
    - shard-dg1:          NOTRUN -> [FAIL][49] ([i915#11965]) +2 other tests fail
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@gem_exec_capture@capture@vecs0-lmem0.html

  * igt@gem_exec_fence@submit:
    - shard-dg1:          NOTRUN -> [SKIP][50] ([i915#4812]) +4 other tests skip
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@gem_exec_fence@submit.html
    - shard-mtlp:         NOTRUN -> [SKIP][51] ([i915#4812]) +1 other test skip
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@gem_exec_fence@submit.html

  * igt@gem_exec_flush@basic-batch-kernel-default-cmd:
    - shard-mtlp:         NOTRUN -> [SKIP][52] ([i915#3711])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html

  * igt@gem_exec_flush@basic-uc-pro-default:
    - shard-dg2:          NOTRUN -> [SKIP][53] ([i915#3539] / [i915#4852])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_exec_flush@basic-uc-pro-default.html

  * igt@gem_exec_flush@basic-uc-rw-default:
    - shard-dg1:          NOTRUN -> [SKIP][54] ([i915#3539] / [i915#4852]) +2 other tests skip
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@gem_exec_flush@basic-uc-rw-default.html

  * igt@gem_exec_flush@basic-uc-set-default:
    - shard-dg2:          NOTRUN -> [SKIP][55] ([i915#3539])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_exec_flush@basic-uc-set-default.html

  * igt@gem_exec_reloc@basic-active:
    - shard-dg2:          NOTRUN -> [SKIP][56] ([i915#3281]) +8 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@gem_exec_reloc@basic-active.html

  * igt@gem_exec_reloc@basic-cpu-read:
    - shard-rkl:          NOTRUN -> [SKIP][57] ([i915#3281]) +13 other tests skip
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@gem_exec_reloc@basic-cpu-read.html

  * igt@gem_exec_reloc@basic-gtt-noreloc:
    - shard-mtlp:         NOTRUN -> [SKIP][58] ([i915#3281]) +9 other tests skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@gem_exec_reloc@basic-gtt-noreloc.html

  * igt@gem_exec_reloc@basic-wc-read:
    - shard-dg1:          NOTRUN -> [SKIP][59] ([i915#3281]) +13 other tests skip
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@gem_exec_reloc@basic-wc-read.html

  * igt@gem_exec_schedule@deep@rcs0:
    - shard-mtlp:         NOTRUN -> [SKIP][60] ([i915#4537])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@gem_exec_schedule@deep@rcs0.html

  * igt@gem_exec_schedule@preempt-queue-contexts:
    - shard-dg2:          NOTRUN -> [SKIP][61] ([i915#4537] / [i915#4812]) +1 other test skip
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_exec_schedule@preempt-queue-contexts.html

  * igt@gem_exec_schedule@reorder-wide:
    - shard-mtlp:         NOTRUN -> [SKIP][62] ([i915#4537] / [i915#4812])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@gem_exec_schedule@reorder-wide.html

  * igt@gem_exec_suspend@basic-s0@smem:
    - shard-dg2:          [PASS][63] -> [INCOMPLETE][64] ([i915#11441] / [i915#13304]) +1 other test incomplete
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-4/igt@gem_exec_suspend@basic-s0@smem.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-5/igt@gem_exec_suspend@basic-s0@smem.html

  * igt@gem_fence_thrash@bo-write-verify-y:
    - shard-dg2:          NOTRUN -> [SKIP][65] ([i915#4860]) +2 other tests skip
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_fence_thrash@bo-write-verify-y.html

  * igt@gem_fenced_exec_thrash@no-spare-fences:
    - shard-dg1:          NOTRUN -> [SKIP][66] ([i915#4860]) +1 other test skip
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@gem_fenced_exec_thrash@no-spare-fences.html

  * igt@gem_fenced_exec_thrash@no-spare-fences-busy:
    - shard-mtlp:         NOTRUN -> [SKIP][67] ([i915#4860]) +1 other test skip
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@gem_fenced_exec_thrash@no-spare-fences-busy.html

  * igt@gem_huc_copy@huc-copy:
    - shard-glk:          NOTRUN -> [SKIP][68] ([i915#2190])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk6/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_evict@dontneed-evict-race:
    - shard-tglu-1:       NOTRUN -> [SKIP][69] ([i915#4613] / [i915#7582])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@gem_lmem_evict@dontneed-evict-race.html

  * igt@gem_lmem_swapping@heavy-random:
    - shard-tglu:         NOTRUN -> [SKIP][70] ([i915#4613]) +3 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-2/igt@gem_lmem_swapping@heavy-random.html

  * igt@gem_lmem_swapping@heavy-verify-random-ccs:
    - shard-dg1:          NOTRUN -> [SKIP][71] ([i915#12193])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@gem_lmem_swapping@heavy-verify-random-ccs.html

  * igt@gem_lmem_swapping@heavy-verify-random-ccs@lmem0:
    - shard-dg1:          NOTRUN -> [SKIP][72] ([i915#4565])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@gem_lmem_swapping@heavy-verify-random-ccs@lmem0.html

  * igt@gem_lmem_swapping@parallel-random-verify-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][73] ([i915#4613]) +6 other tests skip
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@gem_lmem_swapping@parallel-random-verify-ccs.html

  * igt@gem_lmem_swapping@random:
    - shard-tglu-1:       NOTRUN -> [SKIP][74] ([i915#4613])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@gem_lmem_swapping@random.html

  * igt@gem_lmem_swapping@random-engines:
    - shard-mtlp:         NOTRUN -> [SKIP][75] ([i915#4613]) +3 other tests skip
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@gem_lmem_swapping@random-engines.html

  * igt@gem_lmem_swapping@smem-oom@lmem0:
    - shard-dg1:          NOTRUN -> [TIMEOUT][76] ([i915#5493]) +1 other test timeout
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@gem_lmem_swapping@smem-oom@lmem0.html

  * igt@gem_lmem_swapping@verify-ccs:
    - shard-glk:          NOTRUN -> [SKIP][77] ([i915#4613]) +4 other tests skip
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk6/igt@gem_lmem_swapping@verify-ccs.html

  * igt@gem_madvise@dontneed-before-exec:
    - shard-mtlp:         NOTRUN -> [SKIP][78] ([i915#3282]) +1 other test skip
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@gem_madvise@dontneed-before-exec.html

  * igt@gem_media_vme:
    - shard-rkl:          NOTRUN -> [SKIP][79] ([i915#284])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@gem_media_vme.html

  * igt@gem_mmap_gtt@basic:
    - shard-mtlp:         NOTRUN -> [SKIP][80] ([i915#4077]) +9 other tests skip
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-4/igt@gem_mmap_gtt@basic.html

  * igt@gem_mmap_gtt@big-copy-odd:
    - shard-dg2:          NOTRUN -> [SKIP][81] ([i915#4077]) +11 other tests skip
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_mmap_gtt@big-copy-odd.html

  * igt@gem_mmap_gtt@cpuset-basic-small-copy-odd:
    - shard-dg1:          NOTRUN -> [SKIP][82] ([i915#4077]) +13 other tests skip
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@gem_mmap_gtt@cpuset-basic-small-copy-odd.html

  * igt@gem_mmap_offset@clear-via-pagefault:
    - shard-mtlp:         [PASS][83] -> [ABORT][84] ([i915#10729]) +1 other test abort
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-2/igt@gem_mmap_offset@clear-via-pagefault.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-2/igt@gem_mmap_offset@clear-via-pagefault.html

  * igt@gem_mmap_wc@fault-concurrent:
    - shard-dg2:          NOTRUN -> [SKIP][85] ([i915#4083]) +3 other tests skip
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@gem_mmap_wc@fault-concurrent.html
    - shard-mtlp:         NOTRUN -> [SKIP][86] ([i915#4083]) +3 other tests skip
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@gem_mmap_wc@fault-concurrent.html

  * igt@gem_mmap_wc@write-read:
    - shard-dg1:          NOTRUN -> [SKIP][87] ([i915#4083]) +8 other tests skip
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@gem_mmap_wc@write-read.html

  * igt@gem_partial_pwrite_pread@write:
    - shard-dg1:          NOTRUN -> [SKIP][88] ([i915#3282]) +8 other tests skip
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@gem_partial_pwrite_pread@write.html

  * igt@gem_partial_pwrite_pread@writes-after-reads-uncached:
    - shard-rkl:          NOTRUN -> [SKIP][89] ([i915#3282]) +7 other tests skip
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html

  * igt@gem_pread@exhaustion:
    - shard-snb:          NOTRUN -> [WARN][90] ([i915#2658])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-snb1/igt@gem_pread@exhaustion.html

  * igt@gem_pxp@display-protected-crc:
    - shard-dg2:          NOTRUN -> [SKIP][91] ([i915#4270]) +2 other tests skip
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-2/igt@gem_pxp@display-protected-crc.html

  * igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted:
    - shard-rkl:          NOTRUN -> [TIMEOUT][92] ([i915#12964])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted.html

  * igt@gem_pxp@hw-rejects-pxp-context:
    - shard-tglu:         NOTRUN -> [SKIP][93] ([i915#13398])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-6/igt@gem_pxp@hw-rejects-pxp-context.html
    - shard-mtlp:         NOTRUN -> [SKIP][94] ([i915#13398])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@gem_pxp@hw-rejects-pxp-context.html

  * igt@gem_pxp@protected-encrypted-src-copy-not-readible:
    - shard-rkl:          NOTRUN -> [TIMEOUT][95] ([i915#12917] / [i915#12964]) +4 other tests timeout
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-6/igt@gem_pxp@protected-encrypted-src-copy-not-readible.html

  * igt@gem_pxp@verify-pxp-key-change-after-suspend-resume:
    - shard-dg1:          NOTRUN -> [SKIP][96] ([i915#4270]) +4 other tests skip
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@gem_pxp@verify-pxp-key-change-after-suspend-resume.html

  * igt@gem_pxp@verify-pxp-stale-buf-execution:
    - shard-rkl:          NOTRUN -> [SKIP][97] ([i915#4270])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@gem_pxp@verify-pxp-stale-buf-execution.html

  * igt@gem_readwrite@read-bad-handle:
    - shard-dg2:          NOTRUN -> [SKIP][98] ([i915#3282]) +5 other tests skip
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@gem_readwrite@read-bad-handle.html

  * igt@gem_render_copy@yf-tiled-ccs-to-y-tiled:
    - shard-dg2:          NOTRUN -> [SKIP][99] ([i915#5190] / [i915#8428]) +5 other tests skip
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@gem_render_copy@yf-tiled-ccs-to-y-tiled.html

  * igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-yf-tiled:
    - shard-mtlp:         NOTRUN -> [SKIP][100] ([i915#8428]) +8 other tests skip
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-yf-tiled.html

  * igt@gem_set_tiling_vs_blt@untiled-to-tiled:
    - shard-mtlp:         NOTRUN -> [SKIP][101] ([i915#4079]) +2 other tests skip
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@gem_set_tiling_vs_blt@untiled-to-tiled.html

  * igt@gem_set_tiling_vs_pwrite:
    - shard-dg1:          NOTRUN -> [SKIP][102] ([i915#4079]) +1 other test skip
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@gem_set_tiling_vs_pwrite.html

  * igt@gem_softpin@allocator-evict@ccs0:
    - shard-dg2:          [PASS][103] -> [INCOMPLETE][104] ([i915#13597]) +1 other test incomplete
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-1/igt@gem_softpin@allocator-evict@ccs0.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-8/igt@gem_softpin@allocator-evict@ccs0.html

  * igt@gem_softpin@evict-snoop:
    - shard-mtlp:         NOTRUN -> [SKIP][105] ([i915#4885])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@gem_softpin@evict-snoop.html

  * igt@gem_tiled_pread_basic:
    - shard-dg2:          NOTRUN -> [SKIP][106] ([i915#4079])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-1/igt@gem_tiled_pread_basic.html

  * igt@gem_unfence_active_buffers:
    - shard-dg2:          NOTRUN -> [SKIP][107] ([i915#4879])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-2/igt@gem_unfence_active_buffers.html

  * igt@gem_userptr_blits@create-destroy-unsync:
    - shard-mtlp:         NOTRUN -> [SKIP][108] ([i915#3297]) +2 other tests skip
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@gem_userptr_blits@create-destroy-unsync.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-rkl:          NOTRUN -> [SKIP][109] ([i915#3297] / [i915#3323])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@forbidden-operations:
    - shard-rkl:          NOTRUN -> [SKIP][110] ([i915#3282] / [i915#3297])
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@gem_userptr_blits@forbidden-operations.html

  * igt@gem_userptr_blits@invalid-mmap-offset-unsync:
    - shard-tglu:         NOTRUN -> [SKIP][111] ([i915#3297]) +1 other test skip
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-10/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html
    - shard-dg2:          NOTRUN -> [SKIP][112] ([i915#3297]) +1 other test skip
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html

  * igt@gem_userptr_blits@unsync-unmap:
    - shard-dg1:          NOTRUN -> [SKIP][113] ([i915#3297]) +2 other tests skip
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@gem_userptr_blits@unsync-unmap.html

  * igt@gem_userptr_blits@unsync-unmap-after-close:
    - shard-rkl:          NOTRUN -> [SKIP][114] ([i915#3297]) +1 other test skip
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@gem_userptr_blits@unsync-unmap-after-close.html

  * igt@gem_workarounds@suspend-resume:
    - shard-glk:          NOTRUN -> [INCOMPLETE][115] ([i915#13356])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk1/igt@gem_workarounds@suspend-resume.html

  * igt@gem_workarounds@suspend-resume-context:
    - shard-glk:          [PASS][116] -> [INCOMPLETE][117] ([i915#13356])
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-glk1/igt@gem_workarounds@suspend-resume-context.html
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk7/igt@gem_workarounds@suspend-resume-context.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-mtlp:         NOTRUN -> [SKIP][118] ([i915#2856]) +4 other tests skip
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@gen9_exec_parse@allowed-all.html
    - shard-dg2:          NOTRUN -> [SKIP][119] ([i915#2856]) +3 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-5/igt@gen9_exec_parse@allowed-all.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-glk:          NOTRUN -> [ABORT][120] ([i915#5566])
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk2/igt@gen9_exec_parse@allowed-single.html

  * igt@gen9_exec_parse@batch-without-end:
    - shard-tglu-1:       NOTRUN -> [SKIP][121] ([i915#2527] / [i915#2856]) +1 other test skip
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@gen9_exec_parse@batch-without-end.html

  * igt@gen9_exec_parse@bb-chained:
    - shard-rkl:          NOTRUN -> [SKIP][122] ([i915#2527]) +5 other tests skip
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@gen9_exec_parse@bb-chained.html

  * igt@gen9_exec_parse@bb-start-cmd:
    - shard-dg1:          NOTRUN -> [SKIP][123] ([i915#2527]) +4 other tests skip
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@gen9_exec_parse@bb-start-cmd.html

  * igt@gen9_exec_parse@unaligned-jump:
    - shard-tglu:         NOTRUN -> [SKIP][124] ([i915#2527] / [i915#2856]) +2 other tests skip
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@gen9_exec_parse@unaligned-jump.html

  * igt@i915_module_load@resize-bar:
    - shard-tglu:         NOTRUN -> [SKIP][125] ([i915#6412])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-3/igt@i915_module_load@resize-bar.html

  * igt@i915_pipe_stress@stress-xrgb8888-ytiled:
    - shard-mtlp:         NOTRUN -> [SKIP][126] ([i915#8436])
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@i915_pipe_stress@stress-xrgb8888-ytiled.html

  * igt@i915_pm_freq_api@freq-basic-api:
    - shard-rkl:          NOTRUN -> [SKIP][127] ([i915#8399])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@i915_pm_freq_api@freq-basic-api.html

  * igt@i915_pm_freq_api@freq-reset-multiple:
    - shard-tglu-1:       NOTRUN -> [SKIP][128] ([i915#8399])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@i915_pm_freq_api@freq-reset-multiple.html

  * igt@i915_pm_rpm@gem-mmap-type:
    - shard-rkl:          [PASS][129] -> [SKIP][130] ([i915#13328])
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-rkl-5/igt@i915_pm_rpm@gem-mmap-type.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@i915_pm_rpm@gem-mmap-type.html

  * igt@i915_pm_rpm@reg-read-ioctl:
    - shard-rkl:          NOTRUN -> [SKIP][131] ([i915#13328])
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@i915_pm_rpm@reg-read-ioctl.html

  * igt@i915_pm_rps@min-max-config-idle:
    - shard-dg1:          NOTRUN -> [SKIP][132] ([i915#11681] / [i915#6621]) +1 other test skip
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@i915_pm_rps@min-max-config-idle.html

  * igt@i915_pm_rps@min-max-config-loaded:
    - shard-dg2:          NOTRUN -> [SKIP][133] ([i915#11681] / [i915#6621])
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-1/igt@i915_pm_rps@min-max-config-loaded.html
    - shard-mtlp:         NOTRUN -> [SKIP][134] ([i915#11681] / [i915#6621])
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@i915_pm_rps@min-max-config-loaded.html

  * igt@i915_pm_rps@reset:
    - shard-dg2:          [PASS][135] -> [FAIL][136] ([i915#13598])
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-6/igt@i915_pm_rps@reset.html
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@i915_pm_rps@reset.html
    - shard-dg1:          [PASS][137] -> [FAIL][138] ([i915#13598])
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg1-18/igt@i915_pm_rps@reset.html
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@i915_pm_rps@reset.html

  * igt@i915_pm_rps@thresholds:
    - shard-dg1:          NOTRUN -> [SKIP][139] ([i915#11681])
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@i915_pm_rps@thresholds.html

  * igt@i915_pm_rps@thresholds-idle:
    - shard-dg2:          NOTRUN -> [SKIP][140] ([i915#11681])
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@i915_pm_rps@thresholds-idle.html

  * igt@i915_pm_sseu@full-enable:
    - shard-rkl:          NOTRUN -> [SKIP][141] ([i915#4387])
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@i915_pm_sseu@full-enable.html

  * igt@i915_power@sanity:
    - shard-rkl:          NOTRUN -> [SKIP][142] ([i915#7984])
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@i915_power@sanity.html

  * igt@i915_query@hwconfig_table:
    - shard-dg1:          NOTRUN -> [SKIP][143] ([i915#6245])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@i915_query@hwconfig_table.html

  * igt@i915_query@query-topology-coherent-slice-mask:
    - shard-mtlp:         NOTRUN -> [SKIP][144] ([i915#6188])
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@i915_query@query-topology-coherent-slice-mask.html

  * igt@i915_query@test-query-geometry-subslices:
    - shard-dg1:          NOTRUN -> [SKIP][145] ([i915#5723])
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@i915_query@test-query-geometry-subslices.html

  * igt@i915_selftest@live@workarounds:
    - shard-mtlp:         [PASS][146] -> [DMESG-FAIL][147] ([i915#12061]) +1 other test dmesg-fail
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-5/igt@i915_selftest@live@workarounds.html
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-4/igt@i915_selftest@live@workarounds.html

  * igt@i915_selftest@mock@memory_region:
    - shard-rkl:          NOTRUN -> [DMESG-WARN][148] ([i915#9311]) +1 other test dmesg-warn
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@i915_selftest@mock@memory_region.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - shard-rkl:          NOTRUN -> [DMESG-WARN][149] ([i915#12917] / [i915#12964])
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@i915_suspend@basic-s2idle-without-i915.html

  * igt@i915_suspend@basic-s3-without-i915:
    - shard-rkl:          [PASS][150] -> [INCOMPLETE][151] ([i915#4817])
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-rkl-2/igt@i915_suspend@basic-s3-without-i915.html
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling:
    - shard-mtlp:         NOTRUN -> [SKIP][152] ([i915#4212]) +1 other test skip
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling.html

  * igt@kms_addfb_basic@addfb25-x-tiled-legacy:
    - shard-dg2:          NOTRUN -> [SKIP][153] ([i915#4212])
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html

  * igt@kms_addfb_basic@framebuffer-vs-set-tiling:
    - shard-dg1:          NOTRUN -> [SKIP][154] ([i915#4212]) +1 other test skip
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html

  * igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-a-hdmi-a-3-y-rc-ccs-cc:
    - shard-dg1:          NOTRUN -> [SKIP][155] ([i915#8709]) +3 other tests skip
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-a-hdmi-a-3-y-rc-ccs-cc.html

  * igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-2-y-rc-ccs-cc:
    - shard-rkl:          NOTRUN -> [SKIP][156] ([i915#8709]) +1 other test skip
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-2-y-rc-ccs-cc.html

  * igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-3-4-rc-ccs-cc:
    - shard-dg2:          NOTRUN -> [SKIP][157] ([i915#8709]) +7 other tests skip
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-3-4-rc-ccs-cc.html

  * igt@kms_async_flips@invalid-async-flip-atomic:
    - shard-dg2:          NOTRUN -> [SKIP][158] ([i915#12967])
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-7/igt@kms_async_flips@invalid-async-flip-atomic.html

  * igt@kms_async_flips@test-cursor:
    - shard-mtlp:         NOTRUN -> [SKIP][159] ([i915#10333])
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@kms_async_flips@test-cursor.html

  * igt@kms_atomic@plane-primary-overlay-mutable-zpos:
    - shard-tglu:         NOTRUN -> [SKIP][160] ([i915#9531])
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-dg1:          [PASS][161] -> [FAIL][162] ([i915#5956])
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg1-13/igt@kms_atomic_transition@plane-all-modeset-transition.html
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_atomic_transition@plane-all-modeset-transition.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
    - shard-rkl:          NOTRUN -> [SKIP][163] ([i915#1769] / [i915#3555])
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html

  * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [FAIL][164] ([i915#5956])
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-4.html

  * igt@kms_atomic_transition@plane-use-after-nonblocking-unbind:
    - shard-rkl:          [PASS][165] -> [DMESG-WARN][166] ([i915#12964]) +47 other tests dmesg-warn
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-rkl-3/igt@kms_atomic_transition@plane-use-after-nonblocking-unbind.html
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_atomic_transition@plane-use-after-nonblocking-unbind.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-90:
    - shard-dg1:          NOTRUN -> [SKIP][167] ([i915#4538] / [i915#5286]) +7 other tests skip
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html
    - shard-tglu:         NOTRUN -> [SKIP][168] ([i915#5286]) +4 other tests skip
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-2/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-90:
    - shard-tglu-1:       NOTRUN -> [SKIP][169] ([i915#5286]) +1 other test skip
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-addfb:
    - shard-dg1:          NOTRUN -> [SKIP][170] ([i915#5286])
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@kms_big_fb@4-tiled-addfb.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-rkl:          NOTRUN -> [SKIP][171] ([i915#5286]) +10 other tests skip
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-mtlp:         [PASS][172] -> [FAIL][173] ([i915#5138])
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-7/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-270:
    - shard-dg1:          NOTRUN -> [SKIP][174] ([i915#3638]) +2 other tests skip
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_big_fb@y-tiled-64bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-8bpp-rotate-270:
    - shard-rkl:          NOTRUN -> [SKIP][175] ([i915#3638]) +5 other tests skip
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-addfb:
    - shard-dg2:          NOTRUN -> [SKIP][176] ([i915#5190]) +1 other test skip
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-2/igt@kms_big_fb@y-tiled-addfb.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-dg2:          NOTRUN -> [SKIP][177] ([i915#4538] / [i915#5190]) +12 other tests skip
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-90:
    - shard-dg1:          NOTRUN -> [SKIP][178] ([i915#4538]) +4 other tests skip
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_big_fb@yf-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0:
    - shard-mtlp:         NOTRUN -> [SKIP][179] +17 other tests skip
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html

  * igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs@pipe-a-hdmi-a-1:
    - shard-tglu:         NOTRUN -> [SKIP][180] ([i915#6095]) +94 other tests skip
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-3/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][181] ([i915#10307] / [i915#10434] / [i915#6095]) +4 other tests skip
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-basic-y-tiled-ccs@pipe-d-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][182] ([i915#6095]) +59 other tests skip
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@kms_ccs@crc-primary-basic-y-tiled-ccs@pipe-d-edp-1.html

  * igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-d-hdmi-a-3:
    - shard-dg1:          NOTRUN -> [SKIP][183] ([i915#6095]) +172 other tests skip
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-d-hdmi-a-3.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][184] ([i915#12805])
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-1:
    - shard-tglu-1:       NOTRUN -> [SKIP][185] ([i915#6095]) +14 other tests skip
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][186] ([i915#12805])
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html
    - shard-tglu-1:       NOTRUN -> [SKIP][187] ([i915#12805])
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-d-dp-4:
    - shard-dg2:          NOTRUN -> [SKIP][188] ([i915#6095]) +11 other tests skip
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs@pipe-d-dp-4.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-2:
    - shard-glk:          NOTRUN -> [INCOMPLETE][189] ([i915#12796])
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk9/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs:
    - shard-dg1:          NOTRUN -> [SKIP][190] ([i915#12313]) +3 other tests skip
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html
    - shard-tglu:         NOTRUN -> [SKIP][191] ([i915#12313])
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][192] ([i915#10307] / [i915#6095]) +167 other tests skip
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-7/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3.html

  * igt@kms_ccs@missing-ccs-buffer-y-tiled-ccs@pipe-b-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][193] ([i915#6095]) +104 other tests skip
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_ccs@missing-ccs-buffer-y-tiled-ccs@pipe-b-hdmi-a-1.html

  * igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs@pipe-a-hdmi-a-1:
    - shard-glk:          NOTRUN -> [SKIP][194] +412 other tests skip
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk4/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][195] ([i915#12313]) +1 other test skip
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-rkl:          NOTRUN -> [SKIP][196] ([i915#3742])
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@kms_cdclk@mode-transition.html

  * igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][197] ([i915#11616] / [i915#7213]) +4 other tests skip
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1.html

  * igt@kms_cdclk@plane-scaling:
    - shard-tglu-1:       NOTRUN -> [SKIP][198] ([i915#3742])
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_cdclk@plane-scaling.html

  * igt@kms_chamelium_color@ctm-0-25:
    - shard-dg2:          NOTRUN -> [SKIP][199] +7 other tests skip
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-2/igt@kms_chamelium_color@ctm-0-25.html

  * igt@kms_chamelium_edid@dp-edid-change-during-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][200] ([i915#11151] / [i915#7828]) +9 other tests skip
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-6/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html

  * igt@kms_chamelium_frames@hdmi-cmp-planar-formats:
    - shard-dg2:          NOTRUN -> [SKIP][201] ([i915#11151] / [i915#7828]) +7 other tests skip
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-2/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html

  * igt@kms_chamelium_frames@hdmi-crc-single:
    - shard-rkl:          NOTRUN -> [SKIP][202] ([i915#11151] / [i915#7828]) +10 other tests skip
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_chamelium_frames@hdmi-crc-single.html

  * igt@kms_chamelium_hpd@dp-hpd-for-each-pipe:
    - shard-mtlp:         NOTRUN -> [SKIP][203] ([i915#11151] / [i915#7828]) +2 other tests skip
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@kms_chamelium_hpd@dp-hpd-for-each-pipe.html

  * igt@kms_chamelium_hpd@hdmi-hpd:
    - shard-tglu-1:       NOTRUN -> [SKIP][204] ([i915#11151] / [i915#7828]) +2 other tests skip
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_chamelium_hpd@hdmi-hpd.html

  * igt@kms_chamelium_hpd@hdmi-hpd-storm-disable:
    - shard-dg1:          NOTRUN -> [SKIP][205] ([i915#11151] / [i915#7828]) +13 other tests skip
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_chamelium_hpd@hdmi-hpd-storm-disable.html

  * igt@kms_color@deep-color:
    - shard-tglu:         NOTRUN -> [SKIP][206] ([i915#3555] / [i915#9979])
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_color@deep-color.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-tglu:         NOTRUN -> [SKIP][207] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424]) +1 other test skip
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@atomic-dpms@pipe-a-dp-4:
    - shard-dg2:          NOTRUN -> [TIMEOUT][208] ([i915#7173])
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@kms_content_protection@atomic-dpms@pipe-a-dp-4.html

  * igt@kms_content_protection@content-type-change:
    - shard-dg2:          NOTRUN -> [SKIP][209] ([i915#9424])
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-7/igt@kms_content_protection@content-type-change.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-rkl:          NOTRUN -> [SKIP][210] ([i915#3116])
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_content_protection@legacy:
    - shard-tglu-1:       NOTRUN -> [SKIP][211] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424])
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@lic-type-0:
    - shard-rkl:          NOTRUN -> [SKIP][212] ([i915#9424])
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_content_protection@lic-type-0.html

  * igt@kms_content_protection@mei-interface:
    - shard-tglu:         NOTRUN -> [SKIP][213] ([i915#6944] / [i915#9424])
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@srm:
    - shard-tglu:         NOTRUN -> [SKIP][214] ([i915#6944] / [i915#7116] / [i915#7118])
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/igt@kms_content_protection@srm.html

  * igt@kms_content_protection@type1:
    - shard-dg2:          NOTRUN -> [SKIP][215] ([i915#7118] / [i915#9424])
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_content_protection@type1.html
    - shard-rkl:          NOTRUN -> [SKIP][216] ([i915#7118] / [i915#9424]) +1 other test skip
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@kms_content_protection@type1.html
    - shard-mtlp:         NOTRUN -> [SKIP][217] ([i915#3555] / [i915#6944] / [i915#9424])
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@kms_content_protection@type1.html

  * igt@kms_content_protection@uevent@pipe-a-dp-4:
    - shard-dg2:          NOTRUN -> [FAIL][218] ([i915#1339] / [i915#7173])
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@kms_content_protection@uevent@pipe-a-dp-4.html

  * igt@kms_cursor_crc@cursor-offscreen-512x170:
    - shard-tglu:         NOTRUN -> [SKIP][219] ([i915#13049]) +1 other test skip
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-8/igt@kms_cursor_crc@cursor-offscreen-512x170.html
    - shard-mtlp:         NOTRUN -> [SKIP][220] ([i915#13049])
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@kms_cursor_crc@cursor-offscreen-512x170.html

  * igt@kms_cursor_crc@cursor-onscreen-256x85:
    - shard-tglu:         [PASS][221] -> [FAIL][222] ([i915#13566]) +3 other tests fail
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-tglu-3/igt@kms_cursor_crc@cursor-onscreen-256x85.html
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@kms_cursor_crc@cursor-onscreen-256x85.html

  * igt@kms_cursor_crc@cursor-onscreen-256x85@pipe-a-hdmi-a-1:
    - shard-rkl:          [PASS][223] -> [FAIL][224] ([i915#13566]) +2 other tests fail
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-rkl-2/igt@kms_cursor_crc@cursor-onscreen-256x85@pipe-a-hdmi-a-1.html
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@kms_cursor_crc@cursor-onscreen-256x85@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-onscreen-32x32:
    - shard-dg1:          NOTRUN -> [SKIP][225] ([i915#3555]) +7 other tests skip
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_cursor_crc@cursor-onscreen-32x32.html

  * igt@kms_cursor_crc@cursor-onscreen-512x512:
    - shard-dg1:          NOTRUN -> [SKIP][226] ([i915#13049]) +1 other test skip
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_cursor_crc@cursor-onscreen-512x512.html

  * igt@kms_cursor_crc@cursor-random-128x128@pipe-c-hdmi-a-1:
    - shard-glk:          NOTRUN -> [DMESG-WARN][227] ([i915#118]) +1 other test dmesg-warn
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk8/igt@kms_cursor_crc@cursor-random-128x128@pipe-c-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-random-128x42@pipe-a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [FAIL][228] ([i915#13566])
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_cursor_crc@cursor-random-128x42@pipe-a-hdmi-a-1.html
    - shard-tglu-1:       NOTRUN -> [FAIL][229] ([i915#13566]) +1 other test fail
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_cursor_crc@cursor-random-128x42@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-random-32x10:
    - shard-mtlp:         NOTRUN -> [SKIP][230] ([i915#3555] / [i915#8814]) +1 other test skip
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@kms_cursor_crc@cursor-random-32x10.html

  * igt@kms_cursor_crc@cursor-rapid-movement-128x42:
    - shard-mtlp:         NOTRUN -> [SKIP][231] ([i915#8814])
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@kms_cursor_crc@cursor-rapid-movement-128x42.html

  * igt@kms_cursor_crc@cursor-rapid-movement-32x10:
    - shard-rkl:          NOTRUN -> [SKIP][232] ([i915#3555]) +7 other tests skip
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html
    - shard-tglu-1:       NOTRUN -> [SKIP][233] ([i915#3555])
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html

  * igt@kms_cursor_crc@cursor-rapid-movement-512x512:
    - shard-dg2:          NOTRUN -> [SKIP][234] ([i915#13049])
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-8/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-rkl:          NOTRUN -> [SKIP][235] ([i915#13049]) +1 other test skip
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_cursor_crc@cursor-sliding-64x21:
    - shard-tglu:         NOTRUN -> [FAIL][236] ([i915#13566]) +1 other test fail
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-3/igt@kms_cursor_crc@cursor-sliding-64x21.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
    - shard-dg2:          NOTRUN -> [SKIP][237] ([i915#13046] / [i915#5354]) +4 other tests skip
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
    - shard-mtlp:         NOTRUN -> [SKIP][238] ([i915#9809]) +2 other tests skip
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - shard-rkl:          NOTRUN -> [SKIP][239] ([i915#4103])
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size:
    - shard-dg1:          NOTRUN -> [SKIP][240] ([i915#4103] / [i915#4213])
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size:
    - shard-tglu:         NOTRUN -> [SKIP][241] +90 other tests skip
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html

  * igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot:
    - shard-mtlp:         NOTRUN -> [SKIP][242] ([i915#9067])
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
    - shard-dg2:          NOTRUN -> [SKIP][243] ([i915#9067])
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
    - shard-rkl:          NOTRUN -> [SKIP][244] ([i915#9067])
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-6/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
    - shard-dg1:          NOTRUN -> [SKIP][245] ([i915#9067])
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
    - shard-tglu:         NOTRUN -> [SKIP][246] ([i915#9067])
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
    - shard-mtlp:         NOTRUN -> [SKIP][247] ([i915#4213]) +1 other test skip
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
    - shard-tglu:         NOTRUN -> [SKIP][248] ([i915#4103]) +1 other test skip
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html

  * igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
    - shard-rkl:          NOTRUN -> [SKIP][249] ([i915#9723])
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html

  * igt@kms_dirtyfb@psr-dirtyfb-ioctl:
    - shard-tglu-1:       NOTRUN -> [SKIP][250] ([i915#9723])
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc:
    - shard-tglu:         NOTRUN -> [SKIP][251] ([i915#1769] / [i915#3555] / [i915#3804])
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/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][252] ([i915#3804])
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/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][253] ([i915#3804])
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-2.html

  * igt@kms_dp_linktrain_fallback@dp-fallback:
    - shard-tglu-1:       NOTRUN -> [SKIP][254] ([i915#12402])
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - shard-dg1:          NOTRUN -> [SKIP][255] ([i915#12402])
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_dp_linktrain_fallback@dp-fallback.html

  * igt@kms_dsc@dsc-fractional-bpp:
    - shard-tglu:         NOTRUN -> [SKIP][256] ([i915#3840])
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@kms_dsc@dsc-fractional-bpp.html

  * igt@kms_dsc@dsc-fractional-bpp-with-bpc:
    - shard-rkl:          NOTRUN -> [SKIP][257] ([i915#3840])
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html

  * igt@kms_dsc@dsc-with-bpc:
    - shard-dg2:          NOTRUN -> [SKIP][258] ([i915#3555] / [i915#3840])
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_dsc@dsc-with-bpc.html
    - shard-dg1:          NOTRUN -> [SKIP][259] ([i915#3555] / [i915#3840])
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_dsc@dsc-with-bpc.html

  * igt@kms_dsc@dsc-with-bpc-formats:
    - shard-mtlp:         NOTRUN -> [SKIP][260] ([i915#3555] / [i915#3840])
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@kms_dsc@dsc-with-bpc-formats.html
    - shard-tglu:         NOTRUN -> [SKIP][261] ([i915#3555] / [i915#3840])
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_dsc@dsc-with-bpc-formats.html

  * igt@kms_dsc@dsc-with-formats:
    - shard-rkl:          NOTRUN -> [SKIP][262] ([i915#3555] / [i915#3840])
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_dsc@dsc-with-formats.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc:
    - shard-dg1:          NOTRUN -> [SKIP][263] ([i915#3840] / [i915#9053])
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_dsc@dsc-with-output-formats-with-bpc.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][264] ([i915#9878])
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk1/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_fbcon_fbt@psr:
    - shard-dg2:          NOTRUN -> [SKIP][265] ([i915#3469])
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@kms_fbcon_fbt@psr.html
    - shard-rkl:          NOTRUN -> [SKIP][266] ([i915#3955])
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@kms_fbcon_fbt@psr.html

  * igt@kms_feature_discovery@chamelium:
    - shard-dg1:          NOTRUN -> [SKIP][267] ([i915#4854])
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@display-3x:
    - shard-rkl:          NOTRUN -> [SKIP][268] ([i915#1839])
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@kms_feature_discovery@display-3x.html
    - shard-tglu:         NOTRUN -> [SKIP][269] ([i915#1839])
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-2/igt@kms_feature_discovery@display-3x.html
    - shard-mtlp:         NOTRUN -> [SKIP][270] ([i915#1839])
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@kms_feature_discovery@display-3x.html

  * igt@kms_feature_discovery@display-4x:
    - shard-dg1:          NOTRUN -> [SKIP][271] ([i915#1839]) +1 other test skip
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_feature_discovery@display-4x.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-dg2:          NOTRUN -> [SKIP][272] ([i915#9337])
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@kms_feature_discovery@dp-mst.html
    - shard-dg1:          NOTRUN -> [SKIP][273] ([i915#9337])
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_feature_discovery@psr2:
    - shard-tglu-1:       NOTRUN -> [SKIP][274] ([i915#658])
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_feature_discovery@psr2.html
    - shard-dg1:          NOTRUN -> [SKIP][275] ([i915#658])
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@kms_feature_discovery@psr2.html

  * igt@kms_fence_pin_leak:
    - shard-dg1:          NOTRUN -> [SKIP][276] ([i915#4881])
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_fence_pin_leak.html

  * igt@kms_flip@2x-flip-vs-dpms:
    - shard-tglu-1:       NOTRUN -> [SKIP][277] ([i915#3637]) +3 other tests skip
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_flip@2x-flip-vs-dpms.html

  * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible:
    - shard-rkl:          NOTRUN -> [SKIP][278] ([i915#9934]) +14 other tests skip
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-6/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
    - shard-mtlp:         NOTRUN -> [SKIP][279] ([i915#3637]) +5 other tests skip
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@kms_flip@2x-flip-vs-expired-vblank.html

  * igt@kms_flip@2x-flip-vs-fences:
    - shard-dg1:          NOTRUN -> [SKIP][280] ([i915#8381]) +1 other test skip
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@kms_flip@2x-flip-vs-fences.html

  * igt@kms_flip@2x-flip-vs-panning-interruptible:
    - shard-dg2:          NOTRUN -> [SKIP][281] ([i915#9934]) +2 other tests skip
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-7/igt@kms_flip@2x-flip-vs-panning-interruptible.html

  * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
    - shard-dg1:          NOTRUN -> [SKIP][282] ([i915#9934]) +9 other tests skip
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
    - shard-tglu:         NOTRUN -> [SKIP][283] ([i915#3637]) +3 other tests skip
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-6/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html

  * igt@kms_flip@2x-wf_vblank-ts-check:
    - shard-snb:          [PASS][284] -> [FAIL][285] ([i915#11989]) +1 other test fail
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-snb1/igt@kms_flip@2x-wf_vblank-ts-check.html
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-snb2/igt@kms_flip@2x-wf_vblank-ts-check.html

  * igt@kms_flip@plain-flip-ts-check:
    - shard-tglu:         [PASS][286] -> [FAIL][287] ([i915#11989]) +1 other test fail
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-tglu-4/igt@kms_flip@plain-flip-ts-check.html
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-10/igt@kms_flip@plain-flip-ts-check.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling:
    - shard-rkl:          NOTRUN -> [SKIP][288] ([i915#2672] / [i915#3555]) +4 other tests skip
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling@pipe-a-valid-mode:
    - shard-rkl:          NOTRUN -> [SKIP][289] ([i915#2672]) +4 other tests skip
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode:
    - shard-dg1:          NOTRUN -> [SKIP][290] ([i915#2587] / [i915#2672]) +6 other tests skip
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][291] ([i915#2672] / [i915#8813]) +2 other tests skip
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling:
    - shard-dg2:          NOTRUN -> [SKIP][292] ([i915#2672] / [i915#3555] / [i915#5190]) +2 other tests skip
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
    - shard-dg1:          NOTRUN -> [SKIP][293] ([i915#2587] / [i915#2672] / [i915#3555])
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
    - shard-tglu:         NOTRUN -> [SKIP][294] ([i915#2587] / [i915#2672] / [i915#3555])
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode:
    - shard-dg2:          NOTRUN -> [SKIP][295] ([i915#2672]) +3 other tests skip
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling:
    - shard-tglu:         NOTRUN -> [SKIP][296] ([i915#2672] / [i915#3555]) +2 other tests skip
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling:
    - shard-mtlp:         NOTRUN -> [SKIP][297] ([i915#3555] / [i915#8813])
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][298] ([i915#8810])
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-valid-mode:
    - shard-tglu:         NOTRUN -> [SKIP][299] ([i915#2587] / [i915#2672]) +3 other tests skip
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-8/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
    - shard-tglu-1:       NOTRUN -> [SKIP][300] ([i915#2672] / [i915#3555])
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode:
    - shard-tglu-1:       NOTRUN -> [SKIP][301] ([i915#2587] / [i915#2672])
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling:
    - shard-mtlp:         NOTRUN -> [SKIP][302] ([i915#3555] / [i915#8810] / [i915#8813])
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][303] ([i915#3555] / [i915#8810])
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling:
    - shard-dg1:          NOTRUN -> [SKIP][304] ([i915#2672] / [i915#3555]) +5 other tests skip
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling:
    - shard-mtlp:         NOTRUN -> [SKIP][305] ([i915#2672] / [i915#3555] / [i915#8813]) +6 other tests skip
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html
    - shard-dg2:          NOTRUN -> [SKIP][306] ([i915#2672] / [i915#3555]) +2 other tests skip
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-7/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render:
    - shard-dg2:          [PASS][307] -> [FAIL][308] ([i915#6880]) +1 other test fail
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-5/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-7/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt:
    - shard-dg1:          NOTRUN -> [SKIP][309] ([i915#4423])
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-snb:          [PASS][310] -> [SKIP][311]
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-snb7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt.html
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-snb7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render:
    - shard-dg1:          NOTRUN -> [SKIP][312] +52 other tests skip
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-gtt:
    - shard-dg1:          NOTRUN -> [SKIP][313] ([i915#8708]) +27 other tests skip
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-4:
    - shard-rkl:          NOTRUN -> [SKIP][314] ([i915#5439])
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_frontbuffer_tracking@fbc-tiling-4.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc:
    - shard-snb:          NOTRUN -> [SKIP][315] +454 other tests skip
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-snb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt:
    - shard-rkl:          NOTRUN -> [SKIP][316] +30 other tests skip
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-cpu:
    - shard-mtlp:         NOTRUN -> [SKIP][317] ([i915#1825]) +22 other tests skip
   [317]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-move:
    - shard-dg2:          NOTRUN -> [SKIP][318] ([i915#5354]) +23 other tests skip
   [318]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt:
    - shard-rkl:          NOTRUN -> [SKIP][319] ([i915#1825]) +50 other tests skip
   [319]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
    - shard-rkl:          NOTRUN -> [SKIP][320] ([i915#3023]) +40 other tests skip
   [320]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-render:
    - shard-tglu-1:       NOTRUN -> [SKIP][321] +36 other tests skip
   [321]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
    - shard-tglu-1:       NOTRUN -> [SKIP][322] ([i915#5439])
   [322]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html
    - shard-dg1:          NOTRUN -> [SKIP][323] ([i915#5439])
   [323]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html

  * igt@kms_frontbuffer_tracking@pipe-fbc-rte:
    - shard-rkl:          NOTRUN -> [SKIP][324] ([i915#9766])
   [324]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-7/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-pwrite:
    - shard-dg2:          NOTRUN -> [SKIP][325] ([i915#10433] / [i915#3458]) +1 other test skip
   [325]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-1p-rte:
    - shard-dg2:          NOTRUN -> [SKIP][326] ([i915#3458]) +16 other tests skip
   [326]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-6/igt@kms_frontbuffer_tracking@psr-1p-rte.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][327] ([i915#8708]) +21 other tests skip
   [327]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][328] ([i915#8708]) +8 other tests skip
   [328]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-modesetfrombusy:
    - shard-dg1:          NOTRUN -> [SKIP][329] ([i915#3458]) +24 other tests skip
   [329]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_frontbuffer_tracking@psr-modesetfrombusy.html

  * igt@kms_hdr@bpc-switch:
    - shard-dg1:          NOTRUN -> [SKIP][330] ([i915#3555] / [i915#8228]) +1 other test skip
   [330]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_hdr@bpc-switch.html
    - shard-tglu:         NOTRUN -> [SKIP][331] ([i915#3555] / [i915#8228])
   [331]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/igt@kms_hdr@bpc-switch.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-rkl:          NOTRUN -> [SKIP][332] ([i915#12713])
   [332]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_hdr@static-swap:
    - shard-mtlp:         NOTRUN -> [SKIP][333] ([i915#3555] / [i915#8228])
   [333]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@kms_hdr@static-swap.html
    - shard-dg2:          [PASS][334] -> [SKIP][335] ([i915#3555] / [i915#8228]) +1 other test skip
   [334]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-10/igt@kms_hdr@static-swap.html
   [335]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-5/igt@kms_hdr@static-swap.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][336] ([i915#3555] / [i915#8228]) +1 other test skip
   [336]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_hdr@static-toggle-dpms.html

  * igt@kms_invalid_mode@clock-too-high:
    - shard-mtlp:         NOTRUN -> [SKIP][337] ([i915#3555] / [i915#6403] / [i915#8826])
   [337]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_invalid_mode@clock-too-high.html

  * igt@kms_invalid_mode@clock-too-high@pipe-a-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][338] ([i915#9457]) +3 other tests skip
   [338]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_invalid_mode@clock-too-high@pipe-a-edp-1.html

  * igt@kms_joiner@basic-force-big-joiner:
    - shard-rkl:          NOTRUN -> [SKIP][339] ([i915#12388])
   [339]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@kms_joiner@basic-force-big-joiner.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - shard-dg1:          NOTRUN -> [SKIP][340] ([i915#12394] / [i915#13522])
   [340]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-big-joiner:
    - shard-dg1:          NOTRUN -> [SKIP][341] ([i915#10656])
   [341]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-18/igt@kms_joiner@invalid-modeset-big-joiner.html

  * igt@kms_joiner@invalid-modeset-force-big-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][342] ([i915#12388])
   [342]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/igt@kms_joiner@invalid-modeset-force-big-joiner.html

  * igt@kms_joiner@invalid-modeset-force-ultra-joiner:
    - shard-dg2:          NOTRUN -> [SKIP][343] ([i915#10656] / [i915#13522])
   [343]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - shard-tglu:         NOTRUN -> [SKIP][344] ([i915#12394] / [i915#13522])
   [344]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-ultra-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][345] ([i915#12339])
   [345]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-6/igt@kms_joiner@invalid-modeset-ultra-joiner.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-dg1:          NOTRUN -> [SKIP][346] ([i915#13522])
   [346]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
    - shard-tglu:         NOTRUN -> [SKIP][347] ([i915#13522])
   [347]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-2/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
    - shard-mtlp:         NOTRUN -> [SKIP][348] ([i915#13522])
   [348]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-3/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
    - shard-rkl:          NOTRUN -> [SKIP][349] ([i915#13522])
   [349]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-rkl:          NOTRUN -> [SKIP][350] ([i915#4816])
   [350]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@kms_panel_fitting@atomic-fastset:
    - shard-dg2:          NOTRUN -> [SKIP][351] ([i915#6301])
   [351]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-3/igt@kms_panel_fitting@atomic-fastset.html
    - shard-rkl:          NOTRUN -> [SKIP][352] ([i915#6301])
   [352]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@kms_panel_fitting@atomic-fastset.html

  * igt@kms_panel_fitting@legacy:
    - shard-dg1:          NOTRUN -> [SKIP][353] ([i915#6301])
   [353]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_panel_fitting@legacy.html

  * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a:
    - shard-glk:          [PASS][354] -> [INCOMPLETE][355] ([i915#13026])
   [354]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-glk6/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a.html
   [355]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk8/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a.html

  * igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-1-size-128:
    - shard-rkl:          NOTRUN -> [DMESG-WARN][356] ([i915#12964]) +16 other tests dmesg-warn
   [356]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-1-size-128.html

  * igt@kms_plane_lowres@tiling-4:
    - shard-tglu:         NOTRUN -> [SKIP][357] ([i915#3555]) +6 other tests skip
   [357]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/igt@kms_plane_lowres@tiling-4.html
    - shard-mtlp:         NOTRUN -> [SKIP][358] ([i915#10226] / [i915#11614] / [i915#3555] / [i915#8821])
   [358]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@kms_plane_lowres@tiling-4.html

  * igt@kms_plane_lowres@tiling-4@pipe-b-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][359] ([i915#11614] / [i915#3582]) +3 other tests skip
   [359]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@kms_plane_lowres@tiling-4@pipe-b-edp-1.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-a:
    - shard-rkl:          NOTRUN -> [SKIP][360] ([i915#12247]) +17 other tests skip
   [360]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-a.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format:
    - shard-dg1:          NOTRUN -> [SKIP][361] ([i915#12247]) +32 other tests skip
   [361]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-14/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format.html
    - shard-dg2:          NOTRUN -> [SKIP][362] ([i915#12247] / [i915#9423])
   [362]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-1/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-d:
    - shard-dg2:          NOTRUN -> [SKIP][363] ([i915#12247]) +7 other tests skip
   [363]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-1/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-d.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-rotation@pipe-c:
    - shard-tglu:         NOTRUN -> [SKIP][364] ([i915#12247]) +14 other tests skip
   [364]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-10/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-rotation@pipe-c.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a:
    - shard-tglu-1:       NOTRUN -> [SKIP][365] ([i915#12247]) +4 other tests skip
   [365]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25:
    - shard-rkl:          NOTRUN -> [SKIP][366] ([i915#12247] / [i915#6953]) +1 other test skip
   [366]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_plane_scaling@planes-downscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25:
    - shard-dg1:          NOTRUN -> [SKIP][367] ([i915#12247] / [i915#6953]) +1 other test skip
   [367]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5:
    - shard-mtlp:         NOTRUN -> [SKIP][368] ([i915#6953])
   [368]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-8/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25:
    - shard-rkl:          NOTRUN -> [SKIP][369] ([i915#12247] / [i915#3555])
   [369]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25:
    - shard-dg2:          NOTRUN -> [SKIP][370] ([i915#12247] / [i915#6953] / [i915#9423])
   [370]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75:
    - shard-mtlp:         NOTRUN -> [SKIP][371] ([i915#12247] / [i915#3555] / [i915#6953]) +1 other test skip
   [371]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a:
    - shard-mtlp:         NOTRUN -> [SKIP][372] ([i915#12247]) +21 other tests skip
   [372]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a.html

  * igt@kms_pm_backlight@basic-brightness:
    - shard-dg1:          NOTRUN -> [SKIP][373] ([i915#5354])
   [373]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_pm_backlight@basic-brightness.html
    - shard-tglu:         NOTRUN -> [SKIP][374] ([i915#9812])
   [374]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-2/igt@kms_pm_backlight@basic-brightness.html

  * igt@kms_pm_backlight@brightness-with-dpms:
    - shard-dg1:          NOTRUN -> [SKIP][375] ([i915#12343])
   [375]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_pm_backlight@brightness-with-dpms.html

  * igt@kms_pm_backlight@fade:
    - shard-tglu-1:       NOTRUN -> [SKIP][376] ([i915#9812])
   [376]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_pm_backlight@fade.html

  * igt@kms_pm_backlight@fade-with-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][377] ([i915#5354]) +2 other tests skip
   [377]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-1/igt@kms_pm_backlight@fade-with-dpms.html

  * igt@kms_pm_dc@dc3co-vpb-simulation:
    - shard-rkl:          NOTRUN -> [SKIP][378] ([i915#9685]) +1 other test skip
   [378]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-5/igt@kms_pm_dc@dc3co-vpb-simulation.html

  * igt@kms_pm_dc@dc6-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][379] ([i915#3361])
   [379]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_pm_dc@dc6-dpms.html
    - shard-tglu:         [PASS][380] -> [FAIL][381] ([i915#9295])
   [380]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-tglu-10/igt@kms_pm_dc@dc6-dpms.html
   [381]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-3/igt@kms_pm_dc@dc6-dpms.html

  * igt@kms_pm_dc@dc9-dpms:
    - shard-tglu:         NOTRUN -> [SKIP][382] ([i915#4281])
   [382]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-8/igt@kms_pm_dc@dc9-dpms.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-dg1:          NOTRUN -> [SKIP][383] ([i915#9340])
   [383]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_lpsp@screens-disabled:
    - shard-tglu-1:       NOTRUN -> [SKIP][384] ([i915#8430])
   [384]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_pm_lpsp@screens-disabled.html
    - shard-dg1:          NOTRUN -> [SKIP][385] ([i915#8430])
   [385]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_pm_lpsp@screens-disabled.html

  * igt@kms_pm_rpm@dpms-lpsp:
    - shard-dg1:          NOTRUN -> [SKIP][386] ([i915#9519])
   [386]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@kms_pm_rpm@dpms-lpsp.html

  * igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-tglu:         NOTRUN -> [SKIP][387] ([i915#9519])
   [387]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@kms_pm_rpm@i2c:
    - shard-glk:          [PASS][388] -> [FAIL][389] ([i915#8717])
   [388]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-glk7/igt@kms_pm_rpm@i2c.html
   [389]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk6/igt@kms_pm_rpm@i2c.html

  * igt@kms_pm_rpm@modeset-lpsp:
    - shard-dg2:          [PASS][390] -> [SKIP][391] ([i915#9519]) +1 other test skip
   [390]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-4/igt@kms_pm_rpm@modeset-lpsp.html
   [391]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-7/igt@kms_pm_rpm@modeset-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp:
    - shard-mtlp:         NOTRUN -> [SKIP][392] ([i915#9519]) +1 other test skip
   [392]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@kms_pm_rpm@modeset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress:
    - shard-rkl:          NOTRUN -> [SKIP][393] ([i915#9519]) +1 other test skip
   [393]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-2/igt@kms_pm_rpm@modeset-non-lpsp-stress.html

  * igt@kms_pm_rpm@system-suspend-modeset:
    - shard-glk:          NOTRUN -> [INCOMPLETE][394] ([i915#10553])
   [394]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk9/igt@kms_pm_rpm@system-suspend-modeset.html

  * igt@kms_prime@basic-crc-hybrid:
    - shard-tglu:         NOTRUN -> [SKIP][395] ([i915#6524])
   [395]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-5/igt@kms_prime@basic-crc-hybrid.html

  * igt@kms_prime@basic-modeset-hybrid:
    - shard-rkl:          NOTRUN -> [SKIP][396] ([i915#6524]) +1 other test skip
   [396]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@kms_prime@basic-modeset-hybrid.html
    - shard-dg1:          NOTRUN -> [SKIP][397] ([i915#6524]) +1 other test skip
   [397]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@kms_prime@basic-modeset-hybrid.html
    - shard-tglu:         NOTRUN -> [ABORT][398] ([i915#13010])
   [398]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-7/igt@kms_prime@basic-modeset-hybrid.html
    - shard-mtlp:         NOTRUN -> [SKIP][399] ([i915#6524])
   [399]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-6/igt@kms_prime@basic-modeset-hybrid.html
    - shard-dg2:          NOTRUN -> [SKIP][400] ([i915#6524] / [i915#6805])
   [400]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-4/igt@kms_prime@basic-modeset-hybrid.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf:
    - shard-snb:          NOTRUN -> [SKIP][401] ([i915#11520]) +11 other tests skip
   [401]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-snb5/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area:
    - shard-mtlp:         NOTRUN -> [SKIP][402] ([i915#12316]) +3 other tests skip
   [402]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf:
    - shard-dg2:          NOTRUN -> [SKIP][403] ([i915#11520]) +6 other tests skip
   [403]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-2/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html

  * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-fully-sf:
    - shard-tglu:         NOTRUN -> [SKIP][404] ([i915#11520]) +6 other tests skip
   [404]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-9/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area:
    - shard-rkl:          NOTRUN -> [SKIP][405] ([i915#11520]) +12 other tests skip
   [405]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area:
    - shard-glk:          NOTRUN -> [SKIP][406] ([i915#11520]) +7 other tests skip
   [406]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-glk2/igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area-big-fb:
    - shard-tglu-1:       NOTRUN -> [SKIP][407] ([i915#11520]) +3 other tests skip
   [407]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb:
    - shard-dg1:          NOTRUN -> [SKIP][408] ([i915#11520]) +12 other tests skip
   [408]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - shard-dg1:          NOTRUN -> [SKIP][409] ([i915#9683]) +1 other test skip
   [409]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-17/igt@kms_psr2_su@frontbuffer-xrgb8888.html

  * igt@kms_psr2_su@page_flip-nv12:
    - shard-tglu-1:       NOTRUN -> [SKIP][410] ([i915#9683])
   [410]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_psr2_su@page_flip-nv12.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-rkl:          NOTRUN -> [SKIP][411] ([i915#9683]) +1 other test skip
   [411]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-4/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr@fbc-psr-dpms:
    - shard-mtlp:         NOTRUN -> [SKIP][412] ([i915#9688]) +21 other tests skip
   [412]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-1/igt@kms_psr@fbc-psr-dpms.html

  * igt@kms_psr@fbc-psr-primary-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][413] ([i915#1072] / [i915#9732]) +19 other tests skip
   [413]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-2/igt@kms_psr@fbc-psr-primary-mmap-gtt.html

  * igt@kms_psr@fbc-psr-sprite-mmap-cpu:
    - shard-tglu-1:       NOTRUN -> [SKIP][414] ([i915#9732]) +7 other tests skip
   [414]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-1/igt@kms_psr@fbc-psr-sprite-mmap-cpu.html

  * igt@kms_psr@pr-basic:
    - shard-tglu:         NOTRUN -> [SKIP][415] ([i915#9732]) +22 other tests skip
   [415]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-4/igt@kms_psr@pr-basic.html

  * igt@kms_psr@psr-sprite-mmap-cpu:
    - shard-dg1:          NOTRUN -> [SKIP][416] ([i915#1072] / [i915#9732]) +34 other tests skip
   [416]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-13/igt@kms_psr@psr-sprite-mmap-cpu.html

  * igt@kms_psr@psr2-cursor-mmap-gtt:
    - shard-rkl:          NOTRUN -> [SKIP][417] ([i915#1072] / [i915#9732]) +28 other tests skip
   [417]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-rkl-3/igt@kms_psr@psr2-cursor-mmap-gtt.html

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/index.html

[-- Attachment #2: Type: text/html, Size: 110140 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* RE: ✗ i915.CI.Full: failure for Integrate kmemleak scans in igt_runner (rev2)
  2025-01-29 13:19   ` Peter Senna Tschudin
@ 2025-01-30  6:18     ` Ravali, JupallyX
  0 siblings, 0 replies; 31+ messages in thread
From: Ravali, JupallyX @ 2025-01-30  6:18 UTC (permalink / raw)
  To: i915-ci-infra@lists.freedesktop.org,
	igt-dev@lists.freedesktop.org

Hi,
 
https://patchwork.freedesktop.org/series/143996/ - Re-reported.
 
Xe.CI.Full - Addressed failures, Xe cannot be re-reported.
i915.CI.Full - Re-reported.
 
Thanks,
Ravali

-----Original Message-----
From: I915-ci-infra <i915-ci-infra-bounces@lists.freedesktop.org> On Behalf Of Peter Senna Tschudin
Sent: 29 January 2025 18:50
To: igt-dev@lists.freedesktop.org; I915-ci-infra@lists.freedesktop.org
Subject: Re: ✗ i915.CI.Full: failure for Integrate kmemleak scans in igt_runner (rev2)

Dear I915,


On 29.01.2025 12:25, Patchwork wrote:
> == Series Details ==
> 
> Series: Integrate kmemleak scans in igt_runner (rev2)
> URL   : https://patchwork.freedesktop.org/series/143996/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_16035_full -> IGTPW_12508_full 
> ====================================================
> 
> Summary
> -------
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with IGTPW_12508_full absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in IGTPW_12508_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_12508/index.html
> 
> Participating hosts (11 -> 11)
> ------------------------------
> 
>   No changes in participating hosts
> 
> Possible new issues
> -------------------
> 
>   Here are the unknown changes that may have been introduced in IGTPW_12508_full:
> 
> ### IGT changes ###
> 
> #### Possible regressions ####
> 
>   * igt@gem_eio@in-flight-contexts-immediate:
>     - shard-mtlp:         [PASS][1] -> [ABORT][2]
>    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-1/igt@gem_eio@in-flight-contexts-immediate.html
>    [2]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-7/igt@
> gem_eio@in-flight-contexts-immediate.html
> 
>   * igt@gem_softpin@allocator-evict@ccs0:
>     - shard-dg2:          [PASS][3] -> [INCOMPLETE][4] +1 other test incomplete
>    [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-1/igt@gem_softpin@allocator-evict@ccs0.html
>    [4]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-8/igt@g
> em_softpin@allocator-evict@ccs0.html
> 
>   * igt@i915_pm_rps@reset:
>     - shard-dg2:          [PASS][5] -> [FAIL][6]
>    [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg2-6/igt@i915_pm_rps@reset.html
>    [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg2-10/igt@i915_pm_rps@reset.html
>     - shard-dg1:          [PASS][7] -> [FAIL][8]
>    [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-dg1-18/igt@i915_pm_rps@reset.html
>    [8]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-dg1-12/igt@
> i915_pm_rps@reset.html
> 
>   * igt@kms_prime@basic-modeset-hybrid:
>     - shard-tglu:         NOTRUN -> [ABORT][9]
>    [9]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-tglu-7/igt@
> kms_prime@basic-modeset-hybrid.html
> 
>   
> #### Warnings ####
> 
>   * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf:
>     - shard-mtlp:         [SKIP][10] ([i915#12316]) -> [ABORT][11]
>    [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-5/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.html
>    [11]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-4/igt@
> kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.htm
> l
> 
>   * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pipe-a-edp-1:
>     - shard-mtlp:         [SKIP][12] ([i915#9808]) -> [ABORT][13]
>    [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16035/shard-mtlp-5/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pipe-a-edp-1.html
>    [13]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12508/shard-mtlp-4/igt@
> kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf@pip
> e-a-edp-1.html

These are unrelated to my change. Please fix and rerun.

[...]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-01-28 15:15 ` [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak Peter Senna Tschudin
@ 2025-01-31 12:34   ` Kamil Konieczny
  2025-02-03  9:23     ` Peter Senna Tschudin
  2025-01-31 12:38   ` Kamil Konieczny
  1 sibling, 1 reply; 31+ messages in thread
From: Kamil Konieczny @ 2025-01-31 12:34 UTC (permalink / raw)
  To: Peter Senna Tschudin
  Cc: igt-dev, ryszard.knop, lucas.demarchi, katarzyna.piecielska,
	Jonathan Cavitt

Hi Peter,
On 2025-01-28 at 16:15:36 +0100, Peter Senna Tschudin wrote:
> Adds a simple library for interacting with kmemleak and add
> unit testing for the library. There are two modes intended to
> integrate with igt_runner:
> - once: collect kmemleaks after all test completed
> - each: collect kmemleaks after eachb test completes
> 
> To use the library include "igt_kmemleak.h", call
> igt_kmemleak_init(NULL) to check if kmemleak is enabled and finally
> call igt_kmemleak() to collect kmemleaks. igt_kmemleak() expect the
> following arguments:
>   - const char *last_test: Name of the last lest or NULL
>   - int resdirfd: file descriptor of the results directory
>   - bool kmemleak_each: Are we scanning once or scanning after
>     each test?
>   - bool sync: sync after each write?
> 
> CC: ryszard.knop@intel.com
> CC: lucas.demarchi@intel.com
> CC: katarzyna.piecielska@intel.com
> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> Signed-off-by: Peter Senna Tschudin <peter.senna@linux.intel.com>
> ---
>  lib/igt_kmemleak.c       | 274 +++++++++++++++++++++++++++++++++++++++
>  lib/igt_kmemleak.h       |  16 +++
>  lib/meson.build          |   1 +
>  lib/tests/igt_kmemleak.c | 267 ++++++++++++++++++++++++++++++++++++++
>  lib/tests/meson.build    |   1 +
>  5 files changed, 559 insertions(+)
>  create mode 100644 lib/igt_kmemleak.c
>  create mode 100644 lib/igt_kmemleak.h
>  create mode 100644 lib/tests/igt_kmemleak.c
> 
> diff --git a/lib/igt_kmemleak.c b/lib/igt_kmemleak.c
> new file mode 100644
> index 000000000..b875d95a2
> --- /dev/null
> +++ b/lib/igt_kmemleak.c
> @@ -0,0 +1,274 @@
> +// SPDX-License-Identifier: MIT
> +/*
> + * Copyright © 2024 Intel Corporation
> + */
> +
> +#include <stdio.h>
> +#include <string.h>
> +#include <unistd.h>
> +#include <fcntl.h>
> +#include <errno.h>

Sort this alphabetically with exception of unistd.h - this
header could be first.

> +
> +#include "igt_core.h"
> +#include "igt_kmemleak.h"
> +
> +/* We can change the path for unit testing, see igt_kmemleak_init() */
> +static char igt_kmemleak_file[256] = "/sys/kernel/debug/kmemleak";
> +
> +#define MAX_WRITE_RETRIES 5
> +/**
> + * igt_kmemleak_write - Writes the buffer to the file descriptor retrying when
> + * possible.
> + * @fd: The file descriptor to write to.
> + * @buf: Pointer to the data to write.
> + * @count: Total number of bytes to write.
> + *
> + * Returns the total number of bytes written on success, or -1 on failure.
> + */
> +static bool igt_kmemleak_write(int fd, const void *buf, size_t count)
> +{
> +	const char *ptr = buf;
> +	size_t remaining = count;
> +	ssize_t written;
> +	int retries = 0;
> +
> +	while (remaining > 0) {
> +		written = write(fd, ptr, remaining);
> +		if (written > 0) {
> +			ptr += written;
> +			remaining -= written;
> +		} else if (written == -1) {
> +			if (errno == EINTR || errno == EAGAIN) {
> +				/* Retry for recoverable errors */
> +				if (++retries > MAX_WRITE_RETRIES) {
> +					igt_warn("igt_write: Exceeded retry limit\n");

Do not use test prints in lib, especially those used by runner.

> +					return false;
> +				}
> +				continue;
> +			} else {
> +				/* Log unrecoverable error */
> +				igt_warn("igt_write: unrecoverable write error");

Same here.

> +				return false;
> +			}
> +		} else if (written == 0) {
> +			if (++retries > MAX_WRITE_RETRIES) {
> +				igt_warn("igt_write: Exceeded retry limit\n");

Same here.

> +				return false;
> +			}
> +		}
> +	}
> +	return true;
> +}
> +
> +/**
> + * igt_kmemeak_cmd:
> + * @cmd: command to send to kmemleak
> + *
> + * Send a command to kmemleak.
> + *
> + * Returns: true if sending the command was successful, false otherwise.
> + */
> +static bool igt_kmemleak_cmd(const char *cmd)
> +{
> +	int fp;
> +	bool res;
> +
> +	fp = open(igt_kmemleak_file, O_RDWR);
> +	if (!fp)
> +		return false;
> +
> +	res = igt_kmemleak_write(fp, cmd, strlen(cmd));
> +	close(fp);
> +
> +	return res;
> +}
> +
> +/**
> + * igt_kmemeak_clear:
> + *
> + * Trigger an immediate clear on kmemleak.
> + *
> + * Returns: true if sending the command to clear was successful, false
> + * otherwise.
> + */
> +static bool igt_kmemleak_clear(void)
> +{
> +	return igt_kmemleak_cmd("clear");
> +}
> +
> +/**
> + * igt_kmemeak_found_leaks:
> + *
> + * Check if kmemleak found any leaks by trying to read one byte from the
> + * kmemleak file.
> + *
> + * Returns: true if kmemleak found any leaks, false otherwise.
> + */
> +static bool igt_kmemleak_found_leaks(void)
> +{
> +	FILE *fp;

Why FILE* and fopen? Could you just use open/read?

> +	char buf[1];
> +	size_t rlen;
> +
> +	fp = fopen(igt_kmemleak_file, "r");
> +	if (!fp)
> +		return false;
> +
> +	rlen = fread(buf, 1, 1, fp);
> +
> +	if (rlen == 1)
> +		lseek(fileno(fp), 0, SEEK_SET);
> +
> +	fclose(fp);
> +
> +	return rlen == 1;
> +}
> +
> +/**
> + * igt_kmemeak_scan:
> + *
> + * Trigger an immediate scan on kmemleak.
> + *
> + * Returns: true if leaks are found. False on failure and when no leaks are
> + * found.
> + */
> +static bool igt_kmemleak_scan(void)
> +{
> +	if (!igt_kmemleak_cmd("scan"))
> +		return false;
> +
> +	/* kmemleak documentation states that "the memory scanning is only
> +	 * performed when the /sys/kernel/debug/kmemleak file is read." Read
> +	 * a byte to trigger the scan now.
> +	 */
> +	return igt_kmemleak_found_leaks();
> +}
> +
> +/**
> + * igt_kmemleak_append_to:
> + * @last_test: last test name to append to the file
> + * @resdirfd: file descriptor of the results directory
> + * @kmemleak_each: Are we scanning once or scanning after each test?
> + * @sync: sync the kmemleak file often
> + *
> + * Append the kmemleak file to the result file adding a header indicating if
> + * the leaks are for all tests or for a single one.
> + *
> + * Returns: true if appending to the file was successful, false otherwise.
> + */
> +static bool igt_kmemleak_append_to(const char *last_test, int resdirfd,
> +				   bool kmemleak_each, bool sync)
> +{
> +	const char *before = "kmemleaks found before running any test\n\n";
> +	const char *once = "kmemleaks found after running all tests\n";
> +	int kmemleakfd, resfilefd;
> +	char buf[4096];
> +	size_t rlen;
> +
> +	kmemleakfd = open(igt_kmemleak_file, O_RDONLY);
> +	if (kmemleakfd < 0)
> +		return false;
> +
> +	/* Seek back to first byte */
> +	lseek(kmemleakfd, 0, SEEK_SET);
> +
> +	/* Open text file to append */
> +	resfilefd = openat(resdirfd, KMEMLEAKRESFILENAME,
> +			   O_RDWR | O_CREAT | O_APPEND, 0666);
> +	if (!resfilefd) {
> +		close(kmemleakfd);
> +		return false;
> +	}
> +
> +	/* This is the header added before the content of the kmemleak file */
> +	if (kmemleak_each) {
> +		if (!last_test) {
> +			igt_kmemleak_write(resfilefd, before, strlen(before));
> +		} else {
> +			/* Write \n\n last_test \n to buf */
> +			snprintf(buf, sizeof(buf),
> +				 "\n\nkmemleaks found after running %s:\n",
> +				 last_test);
> +
> +			igt_kmemleak_write(resfilefd, buf, strlen(buf));
> +			memset(buf, 0, sizeof(buf));
> +		}
> +	} else {
> +		igt_kmemleak_write(resfilefd, once, strlen(once));
> +	}
> +
> +	if (sync)
> +		fsync(resfilefd);
> +
> +	while ((rlen = read(kmemleakfd, buf, sizeof(buf))) > 0) {
> +		if (!igt_kmemleak_write(resfilefd, buf, rlen)) {
> +			close(resfilefd);
> +			close(kmemleakfd);
> +			return false;
> +		}
> +		if (sync)
> +			fsync(resfilefd);
> +	}
> +
> +	close(resfilefd);
> +	close(kmemleakfd);
> +
> +	return true;
> +}
> +
> +/**
> + * igt_kmemeak_init:
> + * @unit_test_kmemleak_file: path to kmemleak file for unit testing
> + *
> + * Check if kmemleak is enabled in the kernel, if debugfs is mounted and
> + * if kmemleak file is present and readable.
> + *
> + * Returns: true if kmemleak is enabled, false otherwise.
> + */
> +bool igt_kmemleak_init(const char *unit_test_kmemleak_file)
> +{
> +	FILE *fp;

Same here, open/read.

> +
> +	if (unit_test_kmemleak_file)
> +		snprintf(igt_kmemleak_file,
> +			 sizeof(igt_kmemleak_file),
> +			 "%s",
> +			 unit_test_kmemleak_file);
> +
> +	fp = fopen(igt_kmemleak_file, "r");
> +	if (!fp)
> +		return false;
> +
> +	fclose(fp);
> +
> +	return true;
> +}
> +
> +/**
> + * igt_kmemleak:
> + * @last_test: last test name to append to the file
> + * @resdirfd: file descriptor of the results directory
> + * @kmemleak_each: Are we scanning once or scanning after each test?
> + * @sync: sync the kmemleak file often
> + *
> + * This is the main function that should be called when integrating igt_kmemleak
> + * into igt_runner or elsewhere. There are two flows:
> + *  - run once: runs only once after all tests are completed
> + *  - run for each test: runs after every test
> + *
> + * Returns: true on success, false otherwise.
> + */
> +bool igt_kmemleak(const char *last_test, int resdirfd, bool kmemleak_each,
> +		  bool sync)
> +{
> +	/* Scan to collect results */
> +	if (igt_kmemleak_scan())
> +		if (!igt_kmemleak_append_to(last_test, resdirfd,
> +					    kmemleak_each, sync))
> +			return false;
> +
> +	if (kmemleak_each)
> +		igt_kmemleak_clear();
> +
> +	return true;
> +}
> diff --git a/lib/igt_kmemleak.h b/lib/igt_kmemleak.h
> new file mode 100644
> index 000000000..cf7440384
> --- /dev/null
> +++ b/lib/igt_kmemleak.h
> @@ -0,0 +1,16 @@
> +/* SPDX-License-Identifier: MIT
> + * Copyright © 2024 Intel Corporation
> + */
> +
> +#ifndef IGT_KMEMLEAK_H
> +#define IGT_KMEMLEAK_H
> +
> +#include <stdbool.h>
> +
> +bool igt_kmemleak_init(const char *unit_test_kmemleak_file);
> +bool igt_kmemleak(const char *last_test, int resdirfd, bool kmemleak_each,
> +		  bool sync);
> +
> +#define KMEMLEAKRESFILENAME "kmemleak.txt"

imho better: IGT_KMEMLEAK_RESFILENAME

Regards,
Kamil

> +
> +#endif /* IGT_KMEMLEAK_H */
> diff --git a/lib/meson.build b/lib/meson.build
> index 9fffdd3c6..7959dcacb 100644
> --- a/lib/meson.build
> +++ b/lib/meson.build
> @@ -97,6 +97,7 @@ lib_sources = [
>  	'igt_dummyload.c',
>  	'igt_store.c',
>  	'uwildmat/uwildmat.c',
> +	'igt_kmemleak.c',
>  	'igt_kmod.c',
>  	'igt_ktap.c',
>  	'igt_panfrost.c',
> diff --git a/lib/tests/igt_kmemleak.c b/lib/tests/igt_kmemleak.c
> new file mode 100644
> index 000000000..a69ed2d1f
> --- /dev/null
> +++ b/lib/tests/igt_kmemleak.c
> @@ -0,0 +1,267 @@
> +// SPDX-License-Identifier: MIT
> +/*
> + * Copyright © 2024 Intel Corporation
> + */
> +
> +#include <ctype.h>
> +#include <fcntl.h>
> +#include <stdio.h>
> +#include <zlib.h>
> +
> +#include "igt.h"
> +#include "igt_kmemleak.h"
> +
> +const char *kmemleak_file_example =
> +"unreferenced object 0xffff888102a2e638 (size 80):\n"
> +" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
> +" hex dump (first 32 bytes):\n"
> +"   00 00 00 00 00 00 00 00 0d 01 a2 00 00 00 00 00  ................\n"
> +"   f0 7c 03 00 00 c9 ff ff 00 00 00 00 00 00 00 00  .|..............\n"
> +" backtrace (crc 2df71a7e):\n"
> +"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
> +"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
> +"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
> +"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
> +"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
> +"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
> +"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
> +"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
> +"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
> +"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
> +"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
> +"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
> +"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
> +"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
> +"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
> +"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
> +"unreferenced object 0xffff888102a2ed18 (size 80):\n"
> +" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
> +" hex dump (first 32 bytes):\n"
> +"   38 e6 a2 02 81 88 ff ff 0d 11 2d 00 00 00 00 00  8.........-.....\n"
> +"   f2 7c 03 00 00 c9 ff ff 58 ea a2 02 81 88 ff ff  .|......X.......\n"
> +" backtrace (crc ec2a8bdc):\n"
> +"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
> +"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
> +"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
> +"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
> +"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
> +"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
> +"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
> +"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
> +"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
> +"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
> +"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
> +"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
> +"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
> +"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
> +"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
> +"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
> +"unreferenced object 0xffff888102a2ea58 (size 80):\n"
> +" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
> +" hex dump (first 32 bytes):\n"
> +"   38 e6 a2 02 81 88 ff ff 0d 01 a0 00 00 00 00 00  8...............\n"
> +"   f6 7c 03 00 00 c9 ff ff 00 00 00 00 00 00 00 00  .|..............\n"
> +" backtrace (crc f911c0d1):\n"
> +"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
> +"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
> +"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
> +"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
> +"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
> +"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
> +"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
> +"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
> +"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
> +"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
> +"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
> +"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
> +"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
> +"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
> +"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
> +"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
> +"unreferenced object 0xffff888102a2e428 (size 80):\n"
> +" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
> +" hex dump (first 32 bytes):\n"
> +"   58 ea a2 02 81 88 ff ff 0d 01 35 00 00 00 00 00  X.........5.....\n"
> +"   fc 7c 03 00 00 c9 ff ff 00 00 00 00 00 00 00 00  .|..............\n"
> +" backtrace (crc cb8aaffd):\n"
> +"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
> +"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
> +"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
> +"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
> +"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
> +"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
> +"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
> +"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
> +"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
> +"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
> +"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
> +"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
> +"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
> +"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
> +"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
> +"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
> +"unreferenced object 0xffff888102a2e008 (size 80):\n"
> +" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
> +" hex dump (first 32 bytes):\n"
> +"   28 e4 a2 02 81 88 ff ff 0d 01 2d 00 00 00 00 00  (.........-.....\n"
> +"   fc 7c 03 00 00 c9 ff ff c8 e2 a2 02 81 88 ff ff  .|..............\n"
> +" backtrace (crc 7f883e78):\n"
> +"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
> +"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
> +"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
> +"   [<ffffffff81c2b9e5>] acpi_ps_get_next_namepath+0x1f5/0x390\n"
> +"   [<ffffffff81c2cc15>] acpi_ps_parse_loop+0x4a5/0xa60\n"
> +"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
> +"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
> +"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
> +"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
> +"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
> +"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
> +"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
> +"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
> +"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
> +"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
> +"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
> +"unreferenced object 0xffff888102a2e2c8 (size 80):\n"
> +" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
> +" hex dump (first 32 bytes):\n"
> +"   28 e4 a2 02 81 88 ff ff 0d 01 73 00 00 00 00 00  (.........s.....\n"
> +"   00 7d 03 00 00 c9 ff ff 00 00 00 00 00 00 00 00  .}..............\n"
> +" backtrace (crc 338c016):\n"
> +"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
> +"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
> +"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
> +"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
> +"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
> +"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
> +"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
> +"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
> +"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
> +"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
> +"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
> +"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
> +"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
> +"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
> +"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
> +"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
> +"unreferenced object 0xffff888102a2e378 (size 80):\n"
> +" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
> +" hex dump (first 32 bytes):\n"
> +"   c8 e2 a2 02 81 88 ff ff 0d 01 0d 00 00 00 00 00  ................\n"
> +"   01 7d 03 00 00 c9 ff ff 98 e7 a2 02 81 88 ff ff  .}..............\n"
> +" backtrace (crc 665fb8a7):\n"
> +"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
> +"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
> +"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
> +"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
> +"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
> +"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
> +"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
> +"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
> +"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
> +"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
> +"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
> +"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
> +"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
> +"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
> +"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
> +"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
> +"unreferenced object 0xffff888102a2e798 (size 80):\n"
> +" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
> +" hex dump (first 32 bytes):\n"
> +"   7c8 e2 a2 02 81 88 ff ff 0d 01 98 00 00 00 00 00  ................\n"
> +"   1b 7d 03 00 00 c9 ff ff 00 00 00 00 00 00 00 00  .}..............\n"
> +" backtrace (crc b7a23a1c):\n"
> +"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
> +"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
> +"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
> +"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
> +"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
> +"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
> +"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
> +"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
> +"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
> +"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
> +"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
> +"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
> +"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
> +"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
> +"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
> +"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
> +"unreferenced object 0xffff888102a2e0b8 (size 80):\n"
> +" comm \"swapper/0\", pid 1, jiffies 4294672730\n"
> +" hex dump (first 32 bytes):\n"
> +"   98 e7 a2 02 81 88 ff ff 0d 01 2d 00 00 00 00 00  ..........-.....\n"
> +"   1c 7d 03 00 00 c9 ff ff 00 00 00 00 00 00 00 00  .}..............\n"
> +" backtrace (crc 14d67a9c):\n"
> +"   [<ffffffff824cd71b>] kmemleak_alloc+0x4b/0x80\n"
> +"   [<ffffffff814e169b>] kmem_cache_alloc_noprof+0x2ab/0x370\n"
> +"   [<ffffffff81c2f4dc>] acpi_ps_alloc_op+0xdc/0xf0\n"
> +"   [<ffffffff81c2d650>] acpi_ps_create_op+0x1c0/0x400\n"
> +"   [<ffffffff81c2c8dc>] acpi_ps_parse_loop+0x16c/0xa60\n"
> +"   [<ffffffff81c2e94f>] acpi_ps_parse_aml+0x22f/0x5f0\n"
> +"   [<ffffffff81c2fa82>] acpi_ps_execute_method+0x152/0x380\n"
> +"   [<ffffffff81c233ed>] acpi_ns_evaluate+0x31d/0x5e0\n"
> +"   [<ffffffff81c2a606>] acpi_evaluate_object+0x206/0x490\n"
> +"   [<ffffffff81bf1202>] __acpi_power_off.isra.0+0x22/0x70\n"
> +"   [<ffffffff81bf275b>] acpi_turn_off_unused_power_resources+0xbb/0xf0\n"
> +"   [<ffffffff83867799>] acpi_scan_init+0x119/0x290\n"
> +"   [<ffffffff8386711a>] acpi_init+0x23a/0x590\n"
> +"   [<ffffffff81002c71>] do_one_initcall+0x61/0x3d0\n"
> +"   [<ffffffff837dce32>] kernel_init_freeable+0x3e2/0x680\n"
> +"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170\n";
> +
> +static const char *igt_kmemleak_unit_testing_resdir = "/tmp";
> +
> +igt_main
> +{
> +	char unit_testing_kmemleak_filepath[256] = "/tmp/igt_kmemleak_test_XXXXXX";
> +	int written_bytes;
> +	int resdirfd;
> +	int fd;
> +
> +	igt_fixture {
> +		/* resdirfd is used by igt_kmemleak() to store results */
> +		igt_assert(resdirfd = open(igt_kmemleak_unit_testing_resdir,
> +					   O_DIRECTORY | O_RDONLY));
> +
> +		/* Try to delete results file in case of leftovers,
> +		 * ignoring errors as the file may not exist
> +		 */
> +		unlinkat(resdirfd, KMEMLEAKRESFILENAME, 0);
> +
> +		/* Creating a fake kmemleak file for unit testing */
> +		fd = mkstemp(unit_testing_kmemleak_filepath);
> +		igt_assert(fd >= 0);
> +
> +		written_bytes = write(fd, kmemleak_file_example,
> +				strlen(kmemleak_file_example));
> +		igt_assert_eq(written_bytes, strlen(kmemleak_file_example));
> +
> +		close(fd);
> +
> +		/* Initializing igt_kmemleak with a fake kmemleak file
> +		 * for unit testing
> +		 */
> +		igt_assert(igt_kmemleak_init(unit_testing_kmemleak_filepath));
> +	}
> +
> +	igt_subtest_group {
> +		igt_subtest("test_igt_kmemleak_once")
> +			igt_assert(igt_kmemleak(NULL, resdirfd, false, true));
> +
> +		igt_subtest("test_igt_kmemleak_each") {
> +			igt_assert(igt_kmemleak("test_name_1", resdirfd,
> +						true, false));
> +			igt_assert(igt_kmemleak("test_name_2", resdirfd,
> +						true, true));
> +			igt_assert(igt_kmemleak("test_name_3", resdirfd,
> +						true, false));
> +		}
> +		igt_fixture {
> +			close(resdirfd);
> +		}
> +	}
> +	igt_fixture
> +		unlinkat(resdirfd, KMEMLEAKRESFILENAME, 0);
> +}
> diff --git a/lib/tests/meson.build b/lib/tests/meson.build
> index 1ce19f63c..5c42408d5 100644
> --- a/lib/tests/meson.build
> +++ b/lib/tests/meson.build
> @@ -16,6 +16,7 @@ lib_tests = [
>          'igt_ktap_parser',
>  	'igt_list_only',
>  	'igt_invalid_subtest_name',
> +	'igt_kmemleak',
>  	'igt_nesting',
>  	'igt_no_exit',
>  	'igt_runnercomms_packets',
> -- 
> 2.34.1
> 

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-01-28 15:15 ` [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak Peter Senna Tschudin
  2025-01-31 12:34   ` Kamil Konieczny
@ 2025-01-31 12:38   ` Kamil Konieczny
  2025-02-03  9:14     ` Peter Senna Tschudin
  1 sibling, 1 reply; 31+ messages in thread
From: Kamil Konieczny @ 2025-01-31 12:38 UTC (permalink / raw)
  To: igt-dev
  Cc: Peter Senna Tschudin, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt

Hi Peter,
On 2025-01-28 at 16:15:36 +0100, Peter Senna Tschudin wrote:

sorry one more nit, found by checkpatch, see below.

> Adds a simple library for interacting with kmemleak and add
> unit testing for the library. There are two modes intended to
> integrate with igt_runner:
> - once: collect kmemleaks after all test completed
> - each: collect kmemleaks after eachb test completes
> 
> To use the library include "igt_kmemleak.h", call
> igt_kmemleak_init(NULL) to check if kmemleak is enabled and finally
> call igt_kmemleak() to collect kmemleaks. igt_kmemleak() expect the
> following arguments:
>   - const char *last_test: Name of the last lest or NULL
>   - int resdirfd: file descriptor of the results directory
>   - bool kmemleak_each: Are we scanning once or scanning after
>     each test?
>   - bool sync: sync after each write?
> 
> CC: ryszard.knop@intel.com
> CC: lucas.demarchi@intel.com
> CC: katarzyna.piecielska@intel.com
> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> Signed-off-by: Peter Senna Tschudin <peter.senna@linux.intel.com>
> ---
>  lib/igt_kmemleak.c       | 274 +++++++++++++++++++++++++++++++++++++++
>  lib/igt_kmemleak.h       |  16 +++
>  lib/meson.build          |   1 +
>  lib/tests/igt_kmemleak.c | 267 ++++++++++++++++++++++++++++++++++++++
>  lib/tests/meson.build    |   1 +
>  5 files changed, 559 insertions(+)
>  create mode 100644 lib/igt_kmemleak.c
>  create mode 100644 lib/igt_kmemleak.h
>  create mode 100644 lib/tests/igt_kmemleak.c
> 

...cut...

> +
> +static const char *igt_kmemleak_unit_testing_resdir = "/tmp";
> +
> +igt_main
> +{
> +	char unit_testing_kmemleak_filepath[256] = "/tmp/igt_kmemleak_test_XXXXXX";
> +	int written_bytes;
> +	int resdirfd;
> +	int fd;
> +
> +	igt_fixture {
> +		/* resdirfd is used by igt_kmemleak() to store results */
> +		igt_assert(resdirfd = open(igt_kmemleak_unit_testing_resdir,
> +					   O_DIRECTORY | O_RDONLY));
> +
> +		/* Try to delete results file in case of leftovers,
> +		 * ignoring errors as the file may not exist
> +		 */
> +		unlinkat(resdirfd, KMEMLEAKRESFILENAME, 0);
> +
> +		/* Creating a fake kmemleak file for unit testing */
> +		fd = mkstemp(unit_testing_kmemleak_filepath);
> +		igt_assert(fd >= 0);
> +
> +		written_bytes = write(fd, kmemleak_file_example,
> +				strlen(kmemleak_file_example));

Align here or just write this in one line:
		written_bytes = write(fd, kmemleak_file_example, strlen(kmemleak_file_example));
or
		written_bytes = write(fd, kmemleak_file_example,
				      strlen(kmemleak_file_example));

Regards,
Kamil

...cut...

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 2/2] runner/executor: Integrate igt_kmemleak scans
  2025-01-28 15:15 ` [PATCH i-g-t v4 2/2] runner/executor: Integrate igt_kmemleak scans Peter Senna Tschudin
@ 2025-01-31 12:50   ` Kamil Konieczny
  2025-02-03  9:10     ` Peter Senna Tschudin
  0 siblings, 1 reply; 31+ messages in thread
From: Kamil Konieczny @ 2025-01-31 12:50 UTC (permalink / raw)
  To: igt-dev
  Cc: Peter Senna Tschudin, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt

Hi Peter,
On 2025-01-28 at 16:15:37 +0100, Peter Senna Tschudin wrote:
> Modifies igt_runner to include calls to igt_kmemleak(). Kmemleak
> scanning is disabled by default, so add command line options to
> igt_runner to enable kmemleak scanning:  -k, -k<option>, --kmemleak,
> --kmemleak=<option>. The options are:
>  - once: run one kmemleak scan after all tests from the test-list
>          complete.
>  - each: run one kmemleak scan after each test completes.
> 
> If kmemleaks are found they will be saved to the igt_runner results
> directory in a file named kmemleak.txt.
> 
> Updates serialize_settings() and read_settings_from_file() to save
> and restore igt_runner settings to and from disk. This is used when
> calling igt_runner with '--dry-run' and then by calling igt_resume
> instead of igt_runner.
> 
> Updates unit testing for igt_runner to test that:
>  - Kmemleak scans are disabled by default
>  - Kmemleak scans  be enabled by command line arguments
>  - The choice about kmemleaks being enabled or not is saved to disk
>    and restored from disk
> 
> CC: ryszard.knop@intel.com
> CC: lucas.demarchi@intel.com
> CC: katarzyna.piecielska@intel.com
> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> Signed-off-by: Peter Senna Tschudin <peter.senna@linux.intel.com>
> ---
>  runner/executor.c     | 25 +++++++++++++++++++++++--
>  runner/runner_tests.c | 16 +++++++++++++++-
>  runner/settings.c     | 31 ++++++++++++++++++++++++++++++-
>  runner/settings.h     |  2 ++
>  4 files changed, 70 insertions(+), 4 deletions(-)
> 
> diff --git a/runner/executor.c b/runner/executor.c
> index 999e7f719..992366312 100644
> --- a/runner/executor.c
> +++ b/runner/executor.c
> @@ -31,6 +31,7 @@
>  #include "igt_aux.h"
>  #include "igt_core.h"
>  #include "igt_facts.h"
> +#include "igt_kmemleak.h"
>  #include "igt_taints.h"
>  #include "igt_vec.h"
>  #include "executor.h"
> @@ -2370,6 +2371,13 @@ bool execute(struct execute_state *state,
>  	if (settings->facts)
>  		igt_facts_lists_init();
>  
> +	if (settings->kmemleak)
> +		if (!igt_kmemleak_init(NULL)) {
> +			errf("Failed to initialize kmemleak. Is kernel support enabled?\n");
> +			errf("Disabling kmemleak on igt_runner and continuing...\n");

Make it one errf() call, split string if needed.

> +			settings->kmemleak = settings->kmemleak_each = false;

Avoid this, write two assinments here.

> +		}
> +
>  	if (state->next >= job_list->size) {
>  		outf("All tests already executed.\n");
>  		return true;
> @@ -2497,10 +2505,18 @@ bool execute(struct execute_state *state,
>  		bool already_written = false;
>  
>  		/* Collect facts before running each test */
> -		if (settings->facts) {
> +		if (settings->facts)
>  			igt_facts(last_test);
> +
> +		if (settings->kmemleak_each)
> +			if (!igt_kmemleak(last_test, resdirfd,
> +					  settings->kmemleak_each,
> +					  settings->sync))
> +				errf("Failed to collect kmemleak logs after %s\n",
> +				     last_test);
> +
> +		if (settings->facts || settings->kmemleak_each)
>  			last_test = entry_display_name(&job_list->entries[state->next]);
> -		}
>  
>  		if (should_die_because_signal(sigfd)) {
>  			status = false;
> @@ -2595,6 +2611,11 @@ bool execute(struct execute_state *state,
>  	if (settings->facts)
>  		igt_facts(last_test);
>  
> +	if (settings->kmemleak)
> +		if (!igt_kmemleak(last_test, resdirfd,
> +				  settings->kmemleak_each, settings->sync))
> +			errf("Failed to collect kmemleak logs after the last test\n");
> +
>  	if ((timefd = openat(resdirfd, "endtime.txt", O_CREAT | O_WRONLY | O_EXCL, 0666)) >= 0) {
>  		dprintf(timefd, "%f\n", timeofday_double());
>  		close(timefd);
> diff --git a/runner/runner_tests.c b/runner/runner_tests.c
> index 8441763f2..769fa2929 100644
> --- a/runner/runner_tests.c
> +++ b/runner/runner_tests.c
> @@ -191,6 +191,7 @@ static void assert_settings_equal(struct settings *one, struct settings *two)
>  	igt_assert_eq(one->dry_run, two->dry_run);
>  	igt_assert_eq(one->allow_non_root, two->allow_non_root);
>  	igt_assert_eq(one->facts, two->facts);
> +	igt_assert_eq(one->kmemleak, two->kmemleak);
>  	igt_assert_eq(one->sync, two->sync);
>  	igt_assert_eq(one->log_level, two->log_level);
>  	igt_assert_eq(one->overwrite, two->overwrite);
> @@ -304,6 +305,7 @@ igt_main
>  		igt_assert(igt_list_empty(&settings->env_vars));
>  		igt_assert(!igt_vec_length(&settings->hook_strs));
>  		igt_assert(!settings->facts);
> +		igt_assert(!settings->kmemleak);
>  		igt_assert(!settings->sync);
>  		igt_assert_eq(settings->log_level, LOG_LEVEL_NORMAL);
>  		igt_assert(!settings->overwrite);
> @@ -426,6 +428,7 @@ igt_main
>  		igt_assert_eq(settings->include_regexes.size, 0);
>  		igt_assert_eq(settings->exclude_regexes.size, 0);
>  		igt_assert(!settings->facts);
> +		igt_assert(!settings->kmemleak);
>  		igt_assert(!settings->sync);
>  		igt_assert_eq(settings->log_level, LOG_LEVEL_NORMAL);
>  		igt_assert(!settings->overwrite);
> @@ -464,6 +467,7 @@ igt_main
>  				       "-b", blacklist_name,
>  				       "--blacklist", blacklist2_name,
>  				       "-f",
> +				       "-k",
>  				       "-s",
>  				       "-l", "verbose",
>  				       "--overwrite",
> @@ -523,6 +527,7 @@ igt_main
>  		igt_assert_eqstr(*((char **)igt_vec_elem(&settings->hook_strs, 1)), "echo world");
>  
>  		igt_assert(settings->facts);
> +		igt_assert(settings->kmemleak);
>  		igt_assert(settings->sync);
>  		igt_assert_eq(settings->log_level, LOG_LEVEL_VERBOSE);
>  		igt_assert(settings->overwrite);
> @@ -718,6 +723,7 @@ igt_main
>  	igt_subtest("parse-clears-old-data") {
>  		const char *argv[] = { "runner",
>  				       "-n", "foo",
> +				       "--overwrite",

Do not make unrelated changes, add only kmemleak.
You also didn't write about this change in description, if you
think it is a fix it should go in separate patch, not here.

>  				       "--dry-run",
>  				       "--allow-non-root",
>  				       "test-root-dir",
> @@ -727,21 +733,29 @@ igt_main
>  		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
>  
>  		igt_assert_eqstr(settings->name, "foo");
> +		igt_assert(settings->overwrite);

Same here, unrelated.

>  		igt_assert(settings->dry_run);
>  		igt_assert(!settings->test_list);
>  		igt_assert(!settings->facts);
> +		igt_assert(!settings->kmemleak);
>  		igt_assert(!settings->sync);
>  
>  		argv[1] = "--test-list";
> +		argv[2] = "foo"; /* Unchanged */

Same here, unrelated.

>  		argv[3] = "--facts";
> -		argv[4] = "--sync";

Same here, unrelated.

> +		argv[4] = "--kmemleak";
> +		argv[5] = "--sync";

Same here, unrelated.

> +		argv[6] = "test-root-dir"; /* Unchanged */

Same here, unrelated.

> +		argv[7] = "results-path"; /* Unchanged */

Same here, unrelated.

>  
>  		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
>  
>  		igt_assert_eqstr(settings->name, "results-path");
>  		igt_assert(!settings->dry_run);
> +		igt_assert(!settings->overwrite);

Same here, unrelated.

>  		igt_assert(strstr(settings->test_list, "foo") != NULL);
>  		igt_assert(settings->facts);
> +		igt_assert(settings->kmemleak);
>  		igt_assert(settings->sync);
>  	}
>  
> diff --git a/runner/settings.c b/runner/settings.c
> index 92fd42ea6..560bc2b5e 100644
> --- a/runner/settings.c
> +++ b/runner/settings.c
> @@ -41,6 +41,7 @@ enum {
>  	OPT_EXCLUDE = 'x',
>  	OPT_ENVIRONMENT = 'e',
>  	OPT_FACTS = 'f',
> +	OPT_KMEMLEAK = 'k',
>  	OPT_SYNC = 's',
>  	OPT_LOG_LEVEL = 'l',
>  	OPT_OVERWRITE = 'o',
> @@ -232,6 +233,16 @@ static const char *usage_str =
>  	"                                   not respond to ping.\n"
>  	"                         all     - abort for all of the above.\n"
>  	"  -f, --facts           Enable facts tracking\n"
> +	"  -k, -k<option>, --kmemleak, --kmemleak=<option>\n"
> +	"                        Enable kmemleak tracking. Each kmemleak scan\n"
> +	"                        can take from 5 to 60 seconds, slowing down\n"
> +	"                        the run considerably. The default is to scan\n"
> +	"                        only once after the last test. It is also\n"
> +	"                        possible to scan after each test. Possible\n"
> +	"                        options:\n"
> +	"                         once - The default is to run one kmemleak\n"
> +	"                                scan after the last test\n"
> +	"                         each - Run one kmemleak scan after each test\n"
>  	"  -s, --sync            Sync results to disk after every test\n"
>  	"  -l {quiet,verbose,dummy}, --log-level {quiet,verbose,dummy}\n"
>  	"                        Set the logger verbosity level\n"
> @@ -668,6 +679,7 @@ bool parse_options(int argc, char **argv,
>  		{"abort-on-monitored-error", optional_argument, NULL, OPT_ABORT_ON_ERROR},
>  		{"disk-usage-limit", required_argument, NULL, OPT_DISK_USAGE_LIMIT},
>  		{"facts", no_argument, NULL, OPT_FACTS},
> +		{"kmemleak", optional_argument, NULL, OPT_KMEMLEAK},
>  		{"sync", no_argument, NULL, OPT_SYNC},
>  		{"log-level", required_argument, NULL, OPT_LOG_LEVEL},
>  		{"test-list", required_argument, NULL, OPT_TEST_LIST},
> @@ -698,7 +710,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:fsl:omb:L",
> +	while ((c = getopt_long(argc, argv, "hn:dt:x:e:fsl:omb:Lk::",

Why there are two colons at end? Also imho 'k' should be placed after 'f'
like below:

	while ((c = getopt_long(argc, argv, "hn:dt:x:e:fk:sl:omb:L",

especially that you add its code after OPT_FACTS below.

>  				long_options, NULL)) != -1) {
>  		switch (c) {
>  		case OPT_VERSION:
> @@ -742,6 +754,19 @@ bool parse_options(int argc, char **argv,
>  		case OPT_FACTS:
>  			settings->facts = true;
>  			break;
> +		case OPT_KMEMLEAK:
> +			settings->kmemleak = true;
> +			if (optarg) {
> +				if (strcmp(optarg, "once") == 0)
> +					settings->kmemleak_each = false;
> +				else if (strcmp(optarg, "each") == 0)
> +					settings->kmemleak_each = true;
> +				else {
> +					usage(stderr, "Invalid kmemleak option");
> +					goto error;
> +				}

Use braces here: if () { ... } else if (...) { ... } else { ... }

> +			}
> +			break;
>  		case OPT_SYNC:
>  			settings->sync = true;
>  			break;
> @@ -1105,6 +1130,8 @@ bool serialize_settings(struct settings *settings)
>  	SERIALIZE_LINE(f, settings, dry_run, "%d");
>  	SERIALIZE_LINE(f, settings, allow_non_root, "%d");
>  	SERIALIZE_LINE(f, settings, facts, "%d");
> +	SERIALIZE_LINE(f, settings, kmemleak, "%d");
> +	SERIALIZE_LINE(f, settings, kmemleak_each, "%d");
>  	SERIALIZE_LINE(f, settings, sync, "%d");
>  	SERIALIZE_LINE(f, settings, log_level, "%d");
>  	SERIALIZE_LINE(f, settings, overwrite, "%d");
> @@ -1176,6 +1203,8 @@ bool read_settings_from_file(struct settings *settings, FILE *f)
>  		PARSE_LINE(settings, name, val, dry_run, numval);
>  		PARSE_LINE(settings, name, val, allow_non_root, numval);
>  		PARSE_LINE(settings, name, val, facts, numval);
> +		PARSE_LINE(settings, name, val, kmemleak, numval);
> +		PARSE_LINE(settings, name, val, kmemleak_each, numval);
>  		PARSE_LINE(settings, name, val, sync, numval);
>  		PARSE_LINE(settings, name, val, log_level, numval);
>  		PARSE_LINE(settings, name, val, overwrite, numval);
> diff --git a/runner/settings.h b/runner/settings.h
> index f69f09778..ab00b3e32 100644
> --- a/runner/settings.h
> +++ b/runner/settings.h
> @@ -58,6 +58,8 @@ struct settings {
>  	struct igt_list_head env_vars;
>  	struct igt_vec hook_strs;
>  	bool facts;
> +	bool kmemleak;
> +	bool kmemleak_each;
>  	bool sync;
>  	int log_level;
>  	bool overwrite;
> -- 
> 2.34.1
> 

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 2/2] runner/executor: Integrate igt_kmemleak scans
  2025-01-31 12:50   ` Kamil Konieczny
@ 2025-02-03  9:10     ` Peter Senna Tschudin
  2025-02-12 14:24       ` Kamil Konieczny
  0 siblings, 1 reply; 31+ messages in thread
From: Peter Senna Tschudin @ 2025-02-03  9:10 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt

Hi Kamil,

Thank you for the review.

[...]

>>  		igt_facts_lists_init();
>>  
>> +	if (settings->kmemleak)
>> +		if (!igt_kmemleak_init(NULL)) {
>> +			errf("Failed to initialize kmemleak. Is kernel support enabled?\n");
>> +			errf("Disabling kmemleak on igt_runner and continuing...\n");
> 
> Make it one errf() call, split string if needed.
chekcpatch does not like multi-line strings. Can you show me the code
you want me to use here that satisfies you and checkpatch at the same time?


[...]
> 
>> +			settings->kmemleak = settings->kmemleak_each = false;
> 
> Avoid this, write two assinments here.

I personally find this very elegant, but sure, I will make the change.

[...]

>> @@ -718,6 +723,7 @@ igt_main
>>  	igt_subtest("parse-clears-old-data") {
>>  		const char *argv[] = { "runner",
>>  				       "-n", "foo",
>> +				       "--overwrite",
> 
> Do not make unrelated changes, add only kmemleak.
> You also didn't write about this change in description, if you
> think it is a fix it should go in separate patch, not here.

These are not unrelated. First as this is unit testing, this has no
downstream effects. Second, I am adding --overwrite to grow the argv
array. The reason for that is to be able to test the new argument.

As I had explained to Jonathan Cavitt in a previous email, the alternative
to adding an extra option would be to change how the entire file allocates
argv[] which felt like an overkill. If adding an extra option that has no
downstream effect is unacceptable, please let me know how you want me to
grow the array with an example.

> 
>>  				       "--dry-run",
>>  				       "--allow-non-root",
>>  				       "test-root-dir",
>> @@ -727,21 +733,29 @@ igt_main
>>  		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
>>  
>>  		igt_assert_eqstr(settings->name, "foo");
>> +		igt_assert(settings->overwrite);
> 
> Same here, unrelated.
Updating the unit testing to take overwrite into account.

> 
>>  		igt_assert(settings->dry_run);
>>  		igt_assert(!settings->test_list);
>>  		igt_assert(!settings->facts);
>> +		igt_assert(!settings->kmemleak);
>>  		igt_assert(!settings->sync);
>>  
>>  		argv[1] = "--test-list";
>> +		argv[2] = "foo"; /* Unchanged */
> 
> Same here, unrelated.
This is unchanged as the comment indicates. It is here only for documentation.
It was defined a few lines before: const char *argv[] = { "runner", "-n", "foo",

> 
>>  		argv[3] = "--facts";
>> -		argv[4] = "--sync";
> 
> Same here, unrelated.
Just read the next two lines please.

> 
>> +		argv[4] = "--kmemleak";
>> +		argv[5] = "--sync";
> 
> Same here, unrelated.
Just read the previous two lines please.

> 
>> +		argv[6] = "test-root-dir"; /* Unchanged */
> 
> Same here, unrelated.
Same explanation as 'foo'. No changes.
> 
>> +		argv[7] = "results-path"; /* Unchanged */
> 
> Same here, unrelated.
Same explanation as 'foo'. No changes.

> 
>>  
>>  		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
>>  
>>  		igt_assert_eqstr(settings->name, "results-path");
>>  		igt_assert(!settings->dry_run);
>> +		igt_assert(!settings->overwrite);
> 
> Same here, unrelated.

Same as before.

[...]

>>  	settings->dmesg_warn_level = -1;
>>  	settings->prune_mode = -1;
>>  
>> -	while ((c = getopt_long(argc, argv, "hn:dt:x:e:fsl:omb:L",
>> +	while ((c = getopt_long(argc, argv, "hn:dt:x:e:fsl:omb:Lk::",
> 
> Why there are two colons at end? Also imho 'k' should be placed after 'f'
> like below:

From Getopt documentation*: If an option character is followed by two colons
(‘::’), its argument is optional;

> 
> 	while ((c = getopt_long(argc, argv, "hn:dt:x:e:fk:sl:omb:L",

This is wrong as it is missing one ':'. I will fix the order.

> 
> especially that you add its code after OPT_FACTS below.
> 
>>  				long_options, NULL)) != -1) {
>>  		switch (c) {
>>  		case OPT_VERSION:
>> @@ -742,6 +754,19 @@ bool parse_options(int argc, char **argv,
>>  		case OPT_FACTS:
>>  			settings->facts = true;
>>  			break;
>> +		case OPT_KMEMLEAK:
>> +			settings->kmemleak = true;
>> +			if (optarg) {
>> +				if (strcmp(optarg, "once") == 0)
>> +					settings->kmemleak_each = false;
>> +				else if (strcmp(optarg, "each") == 0)
>> +					settings->kmemleak_each = true;
>> +				else {
>> +					usage(stderr, "Invalid kmemleak option");
>> +					goto error;
>> +				}
> 
> Use braces here: if () { ... } else if (...) { ... } else { ... }

Sure

[...]

* - https://www.gnu.org/software/libc/manual/html_node/Using-Getopt.html

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-01-31 12:38   ` Kamil Konieczny
@ 2025-02-03  9:14     ` Peter Senna Tschudin
  2025-02-12 14:26       ` Kamil Konieczny
  0 siblings, 1 reply; 31+ messages in thread
From: Peter Senna Tschudin @ 2025-02-03  9:14 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt

Hi Kamil,

Thank you, please see my comments.

On 31.01.2025 13:38, Kamil Konieczny wrote:
> Hi Peter,
> On 2025-01-28 at 16:15:36 +0100, Peter Senna Tschudin wrote:
> 
> sorry one more nit, found by checkpatch, see below.
> 
>> Adds a simple library for interacting with kmemleak and add
>> unit testing for the library. There are two modes intended to
>> integrate with igt_runner:
>> - once: collect kmemleaks after all test completed
>> - each: collect kmemleaks after eachb test completes
>>
>> To use the library include "igt_kmemleak.h", call
>> igt_kmemleak_init(NULL) to check if kmemleak is enabled and finally
>> call igt_kmemleak() to collect kmemleaks. igt_kmemleak() expect the
>> following arguments:
>>   - const char *last_test: Name of the last lest or NULL
>>   - int resdirfd: file descriptor of the results directory
>>   - bool kmemleak_each: Are we scanning once or scanning after
>>     each test?
>>   - bool sync: sync after each write?
>>
>> CC: ryszard.knop@intel.com
>> CC: lucas.demarchi@intel.com
>> CC: katarzyna.piecielska@intel.com
>> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
>> Signed-off-by: Peter Senna Tschudin <peter.senna@linux.intel.com>
>> ---
>>  lib/igt_kmemleak.c       | 274 +++++++++++++++++++++++++++++++++++++++
>>  lib/igt_kmemleak.h       |  16 +++
>>  lib/meson.build          |   1 +
>>  lib/tests/igt_kmemleak.c | 267 ++++++++++++++++++++++++++++++++++++++
>>  lib/tests/meson.build    |   1 +
>>  5 files changed, 559 insertions(+)
>>  create mode 100644 lib/igt_kmemleak.c
>>  create mode 100644 lib/igt_kmemleak.h
>>  create mode 100644 lib/tests/igt_kmemleak.c
>>
> 
> ...cut...
> 
>> +
>> +static const char *igt_kmemleak_unit_testing_resdir = "/tmp";
>> +
>> +igt_main
>> +{
>> +	char unit_testing_kmemleak_filepath[256] = "/tmp/igt_kmemleak_test_XXXXXX";
>> +	int written_bytes;
>> +	int resdirfd;
>> +	int fd;
>> +
>> +	igt_fixture {
>> +		/* resdirfd is used by igt_kmemleak() to store results */
>> +		igt_assert(resdirfd = open(igt_kmemleak_unit_testing_resdir,
>> +					   O_DIRECTORY | O_RDONLY));
>> +
>> +		/* Try to delete results file in case of leftovers,
>> +		 * ignoring errors as the file may not exist
>> +		 */
>> +		unlinkat(resdirfd, KMEMLEAKRESFILENAME, 0);
>> +
>> +		/* Creating a fake kmemleak file for unit testing */
>> +		fd = mkstemp(unit_testing_kmemleak_filepath);
>> +		igt_assert(fd >= 0);
>> +
>> +		written_bytes = write(fd, kmemleak_file_example,
>> +				strlen(kmemleak_file_example));
> 
> Align here or just write this in one line:
> 		written_bytes = write(fd, kmemleak_file_example, strlen(kmemleak_file_example));
> or
> 		written_bytes = write(fd, kmemleak_file_example,
> 				      strlen(kmemleak_file_example));

Good catch, curious why my checkpatch did not catch this one:

---
psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ ../linux/scripts/checkpatch.pl 0001-lib-igt_kmemleak-library-to-interact-with-kmemleak.patch
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#39:
new file mode 100644

WARNING: quoted string split across lines
#394: FILE: lib/tests/igt_kmemleak.c:37:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2ed18 (size 80):\n"

WARNING: quoted string split across lines
#416: FILE: lib/tests/igt_kmemleak.c:59:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2ea58 (size 80):\n"

WARNING: quoted string split across lines
#438: FILE: lib/tests/igt_kmemleak.c:81:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e428 (size 80):\n"

WARNING: quoted string split across lines
#460: FILE: lib/tests/igt_kmemleak.c:103:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e008 (size 80):\n"

WARNING: quoted string split across lines
#482: FILE: lib/tests/igt_kmemleak.c:125:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e2c8 (size 80):\n"

WARNING: quoted string split across lines
#504: FILE: lib/tests/igt_kmemleak.c:147:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e378 (size 80):\n"

WARNING: quoted string split across lines
#526: FILE: lib/tests/igt_kmemleak.c:169:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e798 (size 80):\n"

WARNING: quoted string split across lines
#548: FILE: lib/tests/igt_kmemleak.c:191:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e0b8 (size 80):\n"

total: 0 errors, 9 warnings, 571 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

0001-lib-igt_kmemleak-library-to-interact-with-kmemleak.patch has style problems, please review.

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.
---



> 
> Regards,
> Kamil
> 
> ...cut...


^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-01-31 12:34   ` Kamil Konieczny
@ 2025-02-03  9:23     ` Peter Senna Tschudin
  2025-02-11 16:17       ` Zbigniew Kempczyński
  0 siblings, 1 reply; 31+ messages in thread
From: Peter Senna Tschudin @ 2025-02-03  9:23 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt

Hi Kamil,

Thank you for your review. Please see below.

On 31.01.2025 13:34, Kamil Konieczny wrote:

[...]

>> +#include <stdio.h>
>> +#include <string.h>
>> +#include <unistd.h>
>> +#include <fcntl.h>
>> +#include <errno.h>
> 
> Sort this alphabetically with exception of unistd.h - this
> header could be first.

That is picky, but ok.


> 
>> +
>> +#include "igt_core.h"
>> +#include "igt_kmemleak.h"
>> +
>> +/* We can change the path for unit testing, see igt_kmemleak_init() */
>> +static char igt_kmemleak_file[256] = "/sys/kernel/debug/kmemleak";
>> +
>> +#define MAX_WRITE_RETRIES 5
>> +/**
>> + * igt_kmemleak_write - Writes the buffer to the file descriptor retrying when
>> + * possible.
>> + * @fd: The file descriptor to write to.
>> + * @buf: Pointer to the data to write.
>> + * @count: Total number of bytes to write.
>> + *
>> + * Returns the total number of bytes written on success, or -1 on failure.
>> + */
>> +static bool igt_kmemleak_write(int fd, const void *buf, size_t count)
>> +{
>> +	const char *ptr = buf;
>> +	size_t remaining = count;
>> +	ssize_t written;
>> +	int retries = 0;
>> +
>> +	while (remaining > 0) {
>> +		written = write(fd, ptr, remaining);
>> +		if (written > 0) {
>> +			ptr += written;
>> +			remaining -= written;
>> +		} else if (written == -1) {
>> +			if (errno == EINTR || errno == EAGAIN) {
>> +				/* Retry for recoverable errors */
>> +				if (++retries > MAX_WRITE_RETRIES) {
>> +					igt_warn("igt_write: Exceeded retry limit\n");
> 
> Do not use test prints in lib, especially those used by runner.

Oh, I will. kmemleak is about writing to disk. If that fails, I will tell the user.
Why does this restriction applies only to me? See:

---
psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools/lib$ git grep igt_warn|wc -l
164
psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools/lib$ cd ..
psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep igt_warn|wc -l
324
---

About 50% of all references to igt_warn are in lib, what is the problem with my code?


> 
>> +					return false;
>> +				}
>> +				continue;
>> +			} else {
>> +				/* Log unrecoverable error */
>> +				igt_warn("igt_write: unrecoverable write error");
> 
> Same here.
We should not remove this one.

> 
>> +				return false;
>> +			}
>> +		} else if (written == 0) {
>> +			if (++retries > MAX_WRITE_RETRIES) {
>> +				igt_warn("igt_write: Exceeded retry limit\n");
> 
> Same here.
We should not remove this one.

[...]

>> +	FILE *fp;
> 
> Why FILE* and fopen? Could you just use open/read?

Why not?

---
psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep fopen|wc -l
97
---


[...]

>> +bool igt_kmemleak_init(const char *unit_test_kmemleak_file)
>> +{
>> +	FILE *fp;
> 
> Same here, open/read.

Same here, why not?
---
psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep fopen|wc -l
97
---

[...]

>> +#define KMEMLEAKRESFILENAME "kmemleak.txt"
> 
> imho better: IGT_KMEMLEAK_RESFILENAME

It reads better indeed. Thanks.

[...]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-02-03  9:23     ` Peter Senna Tschudin
@ 2025-02-11 16:17       ` Zbigniew Kempczyński
  2025-02-11 19:12         ` Peter Senna Tschudin
  2025-02-25 13:46         ` Peter Senna Tschudin
  0 siblings, 2 replies; 31+ messages in thread
From: Zbigniew Kempczyński @ 2025-02-11 16:17 UTC (permalink / raw)
  To: Peter Senna Tschudin
  Cc: Kamil Konieczny, igt-dev, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt

On Mon, Feb 03, 2025 at 10:23:00AM +0100, Peter Senna Tschudin wrote:
> Hi Kamil,
> 
> Thank you for your review. Please see below.
> 
> On 31.01.2025 13:34, Kamil Konieczny wrote:
> 
> [...]
> 
> >> +#include <stdio.h>
> >> +#include <string.h>
> >> +#include <unistd.h>
> >> +#include <fcntl.h>
> >> +#include <errno.h>
> > 
> > Sort this alphabetically with exception of unistd.h - this
> > header could be first.
> 
> That is picky, but ok.
> 
> 
> > 
> >> +
> >> +#include "igt_core.h"
> >> +#include "igt_kmemleak.h"
> >> +
> >> +/* We can change the path for unit testing, see igt_kmemleak_init() */
> >> +static char igt_kmemleak_file[256] = "/sys/kernel/debug/kmemleak";
> >> +
> >> +#define MAX_WRITE_RETRIES 5
> >> +/**
> >> + * igt_kmemleak_write - Writes the buffer to the file descriptor retrying when
> >> + * possible.
> >> + * @fd: The file descriptor to write to.
> >> + * @buf: Pointer to the data to write.
> >> + * @count: Total number of bytes to write.
> >> + *
> >> + * Returns the total number of bytes written on success, or -1 on failure.
> >> + */
> >> +static bool igt_kmemleak_write(int fd, const void *buf, size_t count)
> >> +{
> >> +	const char *ptr = buf;
> >> +	size_t remaining = count;
> >> +	ssize_t written;
> >> +	int retries = 0;
> >> +
> >> +	while (remaining > 0) {
> >> +		written = write(fd, ptr, remaining);
> >> +		if (written > 0) {
> >> +			ptr += written;
> >> +			remaining -= written;
> >> +		} else if (written == -1) {
> >> +			if (errno == EINTR || errno == EAGAIN) {
> >> +				/* Retry for recoverable errors */
> >> +				if (++retries > MAX_WRITE_RETRIES) {
> >> +					igt_warn("igt_write: Exceeded retry limit\n");
> > 
> > Do not use test prints in lib, especially those used by runner.
> 
> Oh, I will. kmemleak is about writing to disk. If that fails, I will tell the user.
> Why does this restriction applies only to me? See:
> 
> ---
> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools/lib$ git grep igt_warn|wc -l
> 164
> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools/lib$ cd ..
> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep igt_warn|wc -l
> 324
> ---
> 
> About 50% of all references to igt_warn are in lib, what is the problem with my code?

I'm looking at the code and I have impression this should be part of
the runner, not igt library. Do I understand correctly that your
code will be used by the runner only and not by the tests?

Regarding your above question, I think runner should use as much as
minimal from lib/ directory, because this is collection of functions
designed for tests, not for runner. I think generic code like data
structures (lists) are fine, but not the others. Imagine you'll
incidentally try to use igt_require() - follow the call and see
the pitfall there.

So if my understanding is correct and this code should be part of the
runner only your test might be moved to the runner_tests.c.

BTW please rebase on top of current master, there were changes in
the runner/settings.c file that affects this series.

--
Zbigniew

> 
> 
> > 
> >> +					return false;
> >> +				}
> >> +				continue;
> >> +			} else {
> >> +				/* Log unrecoverable error */
> >> +				igt_warn("igt_write: unrecoverable write error");
> > 
> > Same here.
> We should not remove this one.
> 
> > 
> >> +				return false;
> >> +			}
> >> +		} else if (written == 0) {
> >> +			if (++retries > MAX_WRITE_RETRIES) {
> >> +				igt_warn("igt_write: Exceeded retry limit\n");
> > 
> > Same here.
> We should not remove this one.
> 
> [...]
> 
> >> +	FILE *fp;
> > 
> > Why FILE* and fopen? Could you just use open/read?
> 
> Why not?
> 
> ---
> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep fopen|wc -l
> 97
> ---
> 
> 
> [...]
> 
> >> +bool igt_kmemleak_init(const char *unit_test_kmemleak_file)
> >> +{
> >> +	FILE *fp;
> > 
> > Same here, open/read.
> 
> Same here, why not?
> ---
> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep fopen|wc -l
> 97
> ---
> 
> [...]
> 
> >> +#define KMEMLEAKRESFILENAME "kmemleak.txt"
> > 
> > imho better: IGT_KMEMLEAK_RESFILENAME
> 
> It reads better indeed. Thanks.
> 
> [...]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-02-11 16:17       ` Zbigniew Kempczyński
@ 2025-02-11 19:12         ` Peter Senna Tschudin
  2025-02-12  8:36           ` Zbigniew Kempczyński
  2025-02-25 13:46         ` Peter Senna Tschudin
  1 sibling, 1 reply; 31+ messages in thread
From: Peter Senna Tschudin @ 2025-02-11 19:12 UTC (permalink / raw)
  To: Zbigniew Kempczyński
  Cc: Kamil Konieczny, igt-dev, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt

Hi Zbigniew,

Thank you for your comments, please see my answers below.

On 11.02.2025 17:17, Zbigniew Kempczyński wrote:
> On Mon, Feb 03, 2025 at 10:23:00AM +0100, Peter Senna Tschudin wrote:
>> Hi Kamil,
>>
>> Thank you for your review. Please see below.
>>
>> On 31.01.2025 13:34, Kamil Konieczny wrote:
>>
>> [...]
>>
>>>> +#include <stdio.h>
>>>> +#include <string.h>
>>>> +#include <unistd.h>
>>>> +#include <fcntl.h>
>>>> +#include <errno.h>
>>>
>>> Sort this alphabetically with exception of unistd.h - this
>>> header could be first.
>>
>> That is picky, but ok.
>>
>>
>>>
>>>> +
>>>> +#include "igt_core.h"
>>>> +#include "igt_kmemleak.h"
>>>> +
>>>> +/* We can change the path for unit testing, see igt_kmemleak_init() */
>>>> +static char igt_kmemleak_file[256] = "/sys/kernel/debug/kmemleak";
>>>> +
>>>> +#define MAX_WRITE_RETRIES 5
>>>> +/**
>>>> + * igt_kmemleak_write - Writes the buffer to the file descriptor retrying when
>>>> + * possible.
>>>> + * @fd: The file descriptor to write to.
>>>> + * @buf: Pointer to the data to write.
>>>> + * @count: Total number of bytes to write.
>>>> + *
>>>> + * Returns the total number of bytes written on success, or -1 on failure.
>>>> + */
>>>> +static bool igt_kmemleak_write(int fd, const void *buf, size_t count)
>>>> +{
>>>> +	const char *ptr = buf;
>>>> +	size_t remaining = count;
>>>> +	ssize_t written;
>>>> +	int retries = 0;
>>>> +
>>>> +	while (remaining > 0) {
>>>> +		written = write(fd, ptr, remaining);
>>>> +		if (written > 0) {
>>>> +			ptr += written;
>>>> +			remaining -= written;
>>>> +		} else if (written == -1) {
>>>> +			if (errno == EINTR || errno == EAGAIN) {
>>>> +				/* Retry for recoverable errors */
>>>> +				if (++retries > MAX_WRITE_RETRIES) {
>>>> +					igt_warn("igt_write: Exceeded retry limit\n");
>>>
>>> Do not use test prints in lib, especially those used by runner.
>>
>> Oh, I will. kmemleak is about writing to disk. If that fails, I will tell the user.
>> Why does this restriction applies only to me? See:
>>
>> ---
>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools/lib$ git grep igt_warn|wc -l
>> 164
>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools/lib$ cd ..
>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep igt_warn|wc -l
>> 324
>> ---
>>
>> About 50% of all references to igt_warn are in lib, what is the problem with my code?
> 
> I'm looking at the code and I have impression this should be part of
> the runner, not igt library. Do I understand correctly that your
> code will be used by the runner only and not by the tests?

It is difficult to know for now. We have one test that will use the lib
as is: `tests/amdgpu/amd_mem_leak.c`. But that is not the main potential
use case.

As I describe in the cover letter, transient leaks are kind of tricky,
and we may require to request a scan from a test itself for better
coverage. So in short I honestly do not know if we will have test
integration in the future or not.

> 
> Regarding your above question, I think runner should use as much as
> minimal from lib/ directory, because this is collection of functions
> designed for tests, not for runner. I think generic code like data
> structures (lists) are fine, but not the others. Imagine you'll
> incidentally try to use igt_require() - follow the call and see
> the pitfall there.

Currently the list of lib includes in the runner directory is not
small (I used a dumb regex that looks for includes starting with igt_):

#include "igt_aux.h"
#include "igt_core.h"
#include "igt_facts.h"
#include "igt_hook.h"
#include "igt_list.h"
#include "igt_taints.h"
#include "igt_vec.h"


> 
> So if my understanding is correct and this code should be part of the
> runner only your test might be moved to the runner_tests.c.

It is difficult to know at this stage. At least the amd test I mentioned
earlier will use it.

> 
> BTW please rebase on top of current master, there were changes in
> the runner/settings.c file that affects this series.

As soon as I am confident this will be merged, I surely will.

Thanks!

> 
> --
> Zbigniew
> 
>>
>>
>>>
>>>> +					return false;
>>>> +				}
>>>> +				continue;
>>>> +			} else {
>>>> +				/* Log unrecoverable error */
>>>> +				igt_warn("igt_write: unrecoverable write error");
>>>
>>> Same here.
>> We should not remove this one.
>>
>>>
>>>> +				return false;
>>>> +			}
>>>> +		} else if (written == 0) {
>>>> +			if (++retries > MAX_WRITE_RETRIES) {
>>>> +				igt_warn("igt_write: Exceeded retry limit\n");
>>>
>>> Same here.
>> We should not remove this one.
>>
>> [...]
>>
>>>> +	FILE *fp;
>>>
>>> Why FILE* and fopen? Could you just use open/read?
>>
>> Why not?
>>
>> ---
>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep fopen|wc -l
>> 97
>> ---
>>
>>
>> [...]
>>
>>>> +bool igt_kmemleak_init(const char *unit_test_kmemleak_file)
>>>> +{
>>>> +	FILE *fp;
>>>
>>> Same here, open/read.
>>
>> Same here, why not?
>> ---
>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep fopen|wc -l
>> 97
>> ---
>>
>> [...]
>>
>>>> +#define KMEMLEAKRESFILENAME "kmemleak.txt"
>>>
>>> imho better: IGT_KMEMLEAK_RESFILENAME
>>
>> It reads better indeed. Thanks.
>>
>> [...]


^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-02-11 19:12         ` Peter Senna Tschudin
@ 2025-02-12  8:36           ` Zbigniew Kempczyński
  2025-02-12  9:18             ` Peter Senna Tschudin
  0 siblings, 1 reply; 31+ messages in thread
From: Zbigniew Kempczyński @ 2025-02-12  8:36 UTC (permalink / raw)
  To: Peter Senna Tschudin
  Cc: Kamil Konieczny, igt-dev, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt

On Tue, Feb 11, 2025 at 08:12:16PM +0100, Peter Senna Tschudin wrote:
> Hi Zbigniew,
> 
> Thank you for your comments, please see my answers below.
> 
> On 11.02.2025 17:17, Zbigniew Kempczyński wrote:
> > On Mon, Feb 03, 2025 at 10:23:00AM +0100, Peter Senna Tschudin wrote:
> >> Hi Kamil,
> >>
> >> Thank you for your review. Please see below.
> >>
> >> On 31.01.2025 13:34, Kamil Konieczny wrote:
> >>
> >> [...]
> >>
> >>>> +#include <stdio.h>
> >>>> +#include <string.h>
> >>>> +#include <unistd.h>
> >>>> +#include <fcntl.h>
> >>>> +#include <errno.h>
> >>>
> >>> Sort this alphabetically with exception of unistd.h - this
> >>> header could be first.
> >>
> >> That is picky, but ok.
> >>
> >>
> >>>
> >>>> +
> >>>> +#include "igt_core.h"
> >>>> +#include "igt_kmemleak.h"
> >>>> +
> >>>> +/* We can change the path for unit testing, see igt_kmemleak_init() */
> >>>> +static char igt_kmemleak_file[256] = "/sys/kernel/debug/kmemleak";
> >>>> +
> >>>> +#define MAX_WRITE_RETRIES 5
> >>>> +/**
> >>>> + * igt_kmemleak_write - Writes the buffer to the file descriptor retrying when
> >>>> + * possible.
> >>>> + * @fd: The file descriptor to write to.
> >>>> + * @buf: Pointer to the data to write.
> >>>> + * @count: Total number of bytes to write.
> >>>> + *
> >>>> + * Returns the total number of bytes written on success, or -1 on failure.
> >>>> + */
> >>>> +static bool igt_kmemleak_write(int fd, const void *buf, size_t count)
> >>>> +{
> >>>> +	const char *ptr = buf;
> >>>> +	size_t remaining = count;
> >>>> +	ssize_t written;
> >>>> +	int retries = 0;
> >>>> +
> >>>> +	while (remaining > 0) {
> >>>> +		written = write(fd, ptr, remaining);
> >>>> +		if (written > 0) {
> >>>> +			ptr += written;
> >>>> +			remaining -= written;
> >>>> +		} else if (written == -1) {
> >>>> +			if (errno == EINTR || errno == EAGAIN) {
> >>>> +				/* Retry for recoverable errors */
> >>>> +				if (++retries > MAX_WRITE_RETRIES) {
> >>>> +					igt_warn("igt_write: Exceeded retry limit\n");
> >>>
> >>> Do not use test prints in lib, especially those used by runner.
> >>
> >> Oh, I will. kmemleak is about writing to disk. If that fails, I will tell the user.
> >> Why does this restriction applies only to me? See:
> >>
> >> ---
> >> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools/lib$ git grep igt_warn|wc -l
> >> 164
> >> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools/lib$ cd ..
> >> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep igt_warn|wc -l
> >> 324
> >> ---
> >>
> >> About 50% of all references to igt_warn are in lib, what is the problem with my code?
> > 
> > I'm looking at the code and I have impression this should be part of
> > the runner, not igt library. Do I understand correctly that your
> > code will be used by the runner only and not by the tests?
> 
> It is difficult to know for now. We have one test that will use the lib
> as is: `tests/amdgpu/amd_mem_leak.c`. But that is not the main potential
> use case.
> 
> As I describe in the cover letter, transient leaks are kind of tricky,
> and we may require to request a scan from a test itself for better
> coverage. So in short I honestly do not know if we will have test
> integration in the future or not.

Fundamental question is - where do you want to scan/clear - on the runner
level or on the test? What will happen if you start to clear-scan/clear
both from runner (-k) and from the test itself. I've intentionally
added clear first to limit catched leaks to period where test was
executed.

On the runner level we would collect for all tests, on the test level
I imagine command line argument passed to the test like -k which would
enable the scan on the very beginning. But this would require to rewrite
all tests which are using pure main() instead of igt_main.*().
If really there's leak and someone wants to catch it, he can always
simply wrap around script execution by kmemleak clear-scan/clear.

Resume - I would stick to the runner level, I see no judgement to change
igt_core / tests to use this library directly.

> 
> > 
> > Regarding your above question, I think runner should use as much as
> > minimal from lib/ directory, because this is collection of functions
> > designed for tests, not for runner. I think generic code like data
> > structures (lists) are fine, but not the others. Imagine you'll
> > incidentally try to use igt_require() - follow the call and see
> > the pitfall there.
> 
> Currently the list of lib includes in the runner directory is not
> small (I used a dumb regex that looks for includes starting with igt_):
> 
> #include "igt_aux.h"
> #include "igt_core.h"
> #include "igt_facts.h"
> #include "igt_hook.h"
> #include "igt_list.h"
> #include "igt_taints.h"
> #include "igt_vec.h"
> 
> 
> > 
> > So if my understanding is correct and this code should be part of the
> > runner only your test might be moved to the runner_tests.c.
> 
> It is difficult to know at this stage. At least the amd test I mentioned
> earlier will use it.

I've explored runner code even if it is not in the center of my
interests. I've seen there're few places where it is tainted by igt
library code which might call logging from igt domain like igt_warn()
[igt_gettime()], or igt_assert() [igt_vec_elem()]. I've experimented
how runner code behaves with those calls, igt_warn() just logs but
output format differs than executor.c __logf__(). I think we should
be consistent in this case. Asserting __igt_fail_assert() unfortunately
uses igt logging but if we ever assert in the runner this will have
fatal consequences. IGT library contains a lot of asserts, so functions
from them should be meticulously reviewed before using in the runner.

--
Zbigniew

> 
> > 
> > BTW please rebase on top of current master, there were changes in
> > the runner/settings.c file that affects this series.
> 
> As soon as I am confident this will be merged, I surely will.
> 
> Thanks!
> 
> > 
> > --
> > Zbigniew
> > 
> >>
> >>
> >>>
> >>>> +					return false;
> >>>> +				}
> >>>> +				continue;
> >>>> +			} else {
> >>>> +				/* Log unrecoverable error */
> >>>> +				igt_warn("igt_write: unrecoverable write error");
> >>>
> >>> Same here.
> >> We should not remove this one.
> >>
> >>>
> >>>> +				return false;
> >>>> +			}
> >>>> +		} else if (written == 0) {
> >>>> +			if (++retries > MAX_WRITE_RETRIES) {
> >>>> +				igt_warn("igt_write: Exceeded retry limit\n");
> >>>
> >>> Same here.
> >> We should not remove this one.
> >>
> >> [...]
> >>
> >>>> +	FILE *fp;
> >>>
> >>> Why FILE* and fopen? Could you just use open/read?
> >>
> >> Why not?
> >>
> >> ---
> >> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep fopen|wc -l
> >> 97
> >> ---
> >>
> >>
> >> [...]
> >>
> >>>> +bool igt_kmemleak_init(const char *unit_test_kmemleak_file)
> >>>> +{
> >>>> +	FILE *fp;
> >>>
> >>> Same here, open/read.
> >>
> >> Same here, why not?
> >> ---
> >> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep fopen|wc -l
> >> 97
> >> ---
> >>
> >> [...]
> >>
> >>>> +#define KMEMLEAKRESFILENAME "kmemleak.txt"
> >>>
> >>> imho better: IGT_KMEMLEAK_RESFILENAME
> >>
> >> It reads better indeed. Thanks.
> >>
> >> [...]
> 

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-02-12  8:36           ` Zbigniew Kempczyński
@ 2025-02-12  9:18             ` Peter Senna Tschudin
  2025-02-12 10:01               ` Zbigniew Kempczyński
  0 siblings, 1 reply; 31+ messages in thread
From: Peter Senna Tschudin @ 2025-02-12  9:18 UTC (permalink / raw)
  To: Zbigniew Kempczyński
  Cc: Kamil Konieczny, igt-dev, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt



On 12.02.2025 09:36, Zbigniew Kempczyński wrote:
> On Tue, Feb 11, 2025 at 08:12:16PM +0100, Peter Senna Tschudin wrote:
>> Hi Zbigniew,
>>
>> Thank you for your comments, please see my answers below.
>>
>> On 11.02.2025 17:17, Zbigniew Kempczyński wrote:
>>> On Mon, Feb 03, 2025 at 10:23:00AM +0100, Peter Senna Tschudin wrote:
>>>> Hi Kamil,
>>>>
>>>> Thank you for your review. Please see below.
>>>>
>>>> On 31.01.2025 13:34, Kamil Konieczny wrote:
>>>>
>>>> [...]
>>>>
>>>>>> +#include <stdio.h>
>>>>>> +#include <string.h>
>>>>>> +#include <unistd.h>
>>>>>> +#include <fcntl.h>
>>>>>> +#include <errno.h>
>>>>>
>>>>> Sort this alphabetically with exception of unistd.h - this
>>>>> header could be first.
>>>>
>>>> That is picky, but ok.
>>>>
>>>>
>>>>>
>>>>>> +
>>>>>> +#include "igt_core.h"
>>>>>> +#include "igt_kmemleak.h"
>>>>>> +
>>>>>> +/* We can change the path for unit testing, see igt_kmemleak_init() */
>>>>>> +static char igt_kmemleak_file[256] = "/sys/kernel/debug/kmemleak";
>>>>>> +
>>>>>> +#define MAX_WRITE_RETRIES 5
>>>>>> +/**
>>>>>> + * igt_kmemleak_write - Writes the buffer to the file descriptor retrying when
>>>>>> + * possible.
>>>>>> + * @fd: The file descriptor to write to.
>>>>>> + * @buf: Pointer to the data to write.
>>>>>> + * @count: Total number of bytes to write.
>>>>>> + *
>>>>>> + * Returns the total number of bytes written on success, or -1 on failure.
>>>>>> + */
>>>>>> +static bool igt_kmemleak_write(int fd, const void *buf, size_t count)
>>>>>> +{
>>>>>> +	const char *ptr = buf;
>>>>>> +	size_t remaining = count;
>>>>>> +	ssize_t written;
>>>>>> +	int retries = 0;
>>>>>> +
>>>>>> +	while (remaining > 0) {
>>>>>> +		written = write(fd, ptr, remaining);
>>>>>> +		if (written > 0) {
>>>>>> +			ptr += written;
>>>>>> +			remaining -= written;
>>>>>> +		} else if (written == -1) {
>>>>>> +			if (errno == EINTR || errno == EAGAIN) {
>>>>>> +				/* Retry for recoverable errors */
>>>>>> +				if (++retries > MAX_WRITE_RETRIES) {
>>>>>> +					igt_warn("igt_write: Exceeded retry limit\n");
>>>>>
>>>>> Do not use test prints in lib, especially those used by runner.
>>>>
>>>> Oh, I will. kmemleak is about writing to disk. If that fails, I will tell the user.
>>>> Why does this restriction applies only to me? See:
>>>>
>>>> ---
>>>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools/lib$ git grep igt_warn|wc -l
>>>> 164
>>>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools/lib$ cd ..
>>>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep igt_warn|wc -l
>>>> 324
>>>> ---
>>>>
>>>> About 50% of all references to igt_warn are in lib, what is the problem with my code?
>>>
>>> I'm looking at the code and I have impression this should be part of
>>> the runner, not igt library. Do I understand correctly that your
>>> code will be used by the runner only and not by the tests?
>>
>> It is difficult to know for now. We have one test that will use the lib
>> as is: `tests/amdgpu/amd_mem_leak.c`. But that is not the main potential
>> use case.
>>
>> As I describe in the cover letter, transient leaks are kind of tricky,
>> and we may require to request a scan from a test itself for better
>> coverage. So in short I honestly do not know if we will have test
>> integration in the future or not.
> 
> Fundamental question is - where do you want to scan/clear - on the runner
> level or on the test? What will happen if you start to clear-scan/clear
> both from runner (-k) and from the test itself. I've intentionally
> added clear first to limit catched leaks to period where test was
> executed.

I do not know know. There may be uses for both. Currently I went for the
runner for two reasons: it is simple, and produced good results.

However for transient leaks the key seems to be timing and then igt_runner
does not offer enough granularity. We may need clears and scans at very
specific places in the code.

My goal is to have CI experiment with kmemleak on igt_runner, collect
developer feedback, and then decide if the next step of trying to figure
it out how to have a more granular test-level scan makes sense and if is
suitable for our use case.

Detecting transient leaks is an open problem.

> 
> On the runner level we would collect for all tests, on the test level
> I imagine command line argument passed to the test like -k which would
> enable the scan on the very beginning. But this would require to rewrite
> all tests which are using pure main() instead of igt_main.*().
> If really there's leak and someone wants to catch it, he can always
> simply wrap around script execution by kmemleak clear-scan/clear.

Currently we have -keach and -konce with -keach scanning between each test.
As I said, this produces results, but is not effective for transient leaks.

Again, I do not know. If the initial evaluation indicates that there may be
a benefit on extending the tests to trigger kmemleak scans, I see no reason
for not doing it.


> 
> Resume - I would stick to the runner level, I see no judgement to change
> igt_core / tests to use this library directly.

Resume: I prefer to wait until the initial feedback from CI and developers.
I will be happy to move this to runner later if we decide to not walk the
unknown road of trying to catch as many transient leaks as we can.

That being said, let me know how to move forward.

> 
>>
>>>
>>> Regarding your above question, I think runner should use as much as
>>> minimal from lib/ directory, because this is collection of functions
>>> designed for tests, not for runner. I think generic code like data
>>> structures (lists) are fine, but not the others. Imagine you'll
>>> incidentally try to use igt_require() - follow the call and see
>>> the pitfall there.
>>
>> Currently the list of lib includes in the runner directory is not
>> small (I used a dumb regex that looks for includes starting with igt_):
>>
>> #include "igt_aux.h"
>> #include "igt_core.h"
>> #include "igt_facts.h"
>> #include "igt_hook.h"
>> #include "igt_list.h"
>> #include "igt_taints.h"
>> #include "igt_vec.h"
>>
>>
>>>
>>> So if my understanding is correct and this code should be part of the
>>> runner only your test might be moved to the runner_tests.c.
>>
>> It is difficult to know at this stage. At least the amd test I mentioned
>> earlier will use it.
> 
> I've explored runner code even if it is not in the center of my
> interests. I've seen there're few places where it is tainted by igt
> library code which might call logging from igt domain like igt_warn()
> [igt_gettime()], or igt_assert() [igt_vec_elem()]. I've experimented
> how runner code behaves with those calls, igt_warn() just logs but
> output format differs than executor.c __logf__(). I think we should
> be consistent in this case. Asserting __igt_fail_assert() unfortunately
> uses igt logging but if we ever assert in the runner this will have
> fatal consequences. IGT library contains a lot of asserts, so functions
> from them should be meticulously reviewed before using in the runner.

I see, but there is a very important detail here. Enabling kmemleak scans
come at a very high runtime cost. The slowdown is expected to be 4X. So
my judgement tells me that if CI is enduring the pains of a 4X slowdown
to get kmemleaks results, the minimum we can do is tell them when
something goes wrong.

On top of that, those write errors are rare, very rare I would say. I can
use any other function you want. I am just not ok to fail silently in this
case.

A big thank you for your comments.

> 
> --
> Zbigniew
> 
>>
>>>
>>> BTW please rebase on top of current master, there were changes in
>>> the runner/settings.c file that affects this series.
>>
>> As soon as I am confident this will be merged, I surely will.
>>
>> Thanks!
>>
>>>
>>> --
>>> Zbigniew
>>>
>>>>
>>>>
>>>>>
>>>>>> +					return false;
>>>>>> +				}
>>>>>> +				continue;
>>>>>> +			} else {
>>>>>> +				/* Log unrecoverable error */
>>>>>> +				igt_warn("igt_write: unrecoverable write error");
>>>>>
>>>>> Same here.
>>>> We should not remove this one.
>>>>
>>>>>
>>>>>> +				return false;
>>>>>> +			}
>>>>>> +		} else if (written == 0) {
>>>>>> +			if (++retries > MAX_WRITE_RETRIES) {
>>>>>> +				igt_warn("igt_write: Exceeded retry limit\n");
>>>>>
>>>>> Same here.
>>>> We should not remove this one.
>>>>
>>>> [...]
>>>>
>>>>>> +	FILE *fp;
>>>>>
>>>>> Why FILE* and fopen? Could you just use open/read?
>>>>
>>>> Why not?
>>>>
>>>> ---
>>>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep fopen|wc -l
>>>> 97
>>>> ---
>>>>
>>>>
>>>> [...]
>>>>
>>>>>> +bool igt_kmemleak_init(const char *unit_test_kmemleak_file)
>>>>>> +{
>>>>>> +	FILE *fp;
>>>>>
>>>>> Same here, open/read.
>>>>
>>>> Same here, why not?
>>>> ---
>>>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep fopen|wc -l
>>>> 97
>>>> ---
>>>>
>>>> [...]
>>>>
>>>>>> +#define KMEMLEAKRESFILENAME "kmemleak.txt"
>>>>>
>>>>> imho better: IGT_KMEMLEAK_RESFILENAME
>>>>
>>>> It reads better indeed. Thanks.
>>>>
>>>> [...]
>>


^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-02-12  9:18             ` Peter Senna Tschudin
@ 2025-02-12 10:01               ` Zbigniew Kempczyński
  2025-02-12 13:12                 ` Peter Senna Tschudin
  0 siblings, 1 reply; 31+ messages in thread
From: Zbigniew Kempczyński @ 2025-02-12 10:01 UTC (permalink / raw)
  To: Peter Senna Tschudin
  Cc: Kamil Konieczny, igt-dev, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt

On Wed, Feb 12, 2025 at 10:18:17AM +0100, Peter Senna Tschudin wrote:
> 
> 
> On 12.02.2025 09:36, Zbigniew Kempczyński wrote:
> > On Tue, Feb 11, 2025 at 08:12:16PM +0100, Peter Senna Tschudin wrote:
> >> Hi Zbigniew,
> >>
> >> Thank you for your comments, please see my answers below.
> >>
> >> On 11.02.2025 17:17, Zbigniew Kempczyński wrote:
> >>> On Mon, Feb 03, 2025 at 10:23:00AM +0100, Peter Senna Tschudin wrote:
> >>>> Hi Kamil,
> >>>>
> >>>> Thank you for your review. Please see below.
> >>>>
> >>>> On 31.01.2025 13:34, Kamil Konieczny wrote:
> >>>>
> >>>> [...]
> >>>>
> >>>>>> +#include <stdio.h>
> >>>>>> +#include <string.h>
> >>>>>> +#include <unistd.h>
> >>>>>> +#include <fcntl.h>
> >>>>>> +#include <errno.h>
> >>>>>
> >>>>> Sort this alphabetically with exception of unistd.h - this
> >>>>> header could be first.
> >>>>
> >>>> That is picky, but ok.
> >>>>
> >>>>
> >>>>>
> >>>>>> +
> >>>>>> +#include "igt_core.h"
> >>>>>> +#include "igt_kmemleak.h"
> >>>>>> +
> >>>>>> +/* We can change the path for unit testing, see igt_kmemleak_init() */
> >>>>>> +static char igt_kmemleak_file[256] = "/sys/kernel/debug/kmemleak";
> >>>>>> +
> >>>>>> +#define MAX_WRITE_RETRIES 5
> >>>>>> +/**
> >>>>>> + * igt_kmemleak_write - Writes the buffer to the file descriptor retrying when
> >>>>>> + * possible.
> >>>>>> + * @fd: The file descriptor to write to.
> >>>>>> + * @buf: Pointer to the data to write.
> >>>>>> + * @count: Total number of bytes to write.
> >>>>>> + *
> >>>>>> + * Returns the total number of bytes written on success, or -1 on failure.
> >>>>>> + */
> >>>>>> +static bool igt_kmemleak_write(int fd, const void *buf, size_t count)
> >>>>>> +{
> >>>>>> +	const char *ptr = buf;
> >>>>>> +	size_t remaining = count;
> >>>>>> +	ssize_t written;
> >>>>>> +	int retries = 0;
> >>>>>> +
> >>>>>> +	while (remaining > 0) {
> >>>>>> +		written = write(fd, ptr, remaining);
> >>>>>> +		if (written > 0) {
> >>>>>> +			ptr += written;
> >>>>>> +			remaining -= written;
> >>>>>> +		} else if (written == -1) {
> >>>>>> +			if (errno == EINTR || errno == EAGAIN) {
> >>>>>> +				/* Retry for recoverable errors */
> >>>>>> +				if (++retries > MAX_WRITE_RETRIES) {
> >>>>>> +					igt_warn("igt_write: Exceeded retry limit\n");
> >>>>>
> >>>>> Do not use test prints in lib, especially those used by runner.
> >>>>
> >>>> Oh, I will. kmemleak is about writing to disk. If that fails, I will tell the user.
> >>>> Why does this restriction applies only to me? See:
> >>>>
> >>>> ---
> >>>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools/lib$ git grep igt_warn|wc -l
> >>>> 164
> >>>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools/lib$ cd ..
> >>>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep igt_warn|wc -l
> >>>> 324
> >>>> ---
> >>>>
> >>>> About 50% of all references to igt_warn are in lib, what is the problem with my code?
> >>>
> >>> I'm looking at the code and I have impression this should be part of
> >>> the runner, not igt library. Do I understand correctly that your
> >>> code will be used by the runner only and not by the tests?
> >>
> >> It is difficult to know for now. We have one test that will use the lib
> >> as is: `tests/amdgpu/amd_mem_leak.c`. But that is not the main potential
> >> use case.
> >>
> >> As I describe in the cover letter, transient leaks are kind of tricky,
> >> and we may require to request a scan from a test itself for better
> >> coverage. So in short I honestly do not know if we will have test
> >> integration in the future or not.
> > 
> > Fundamental question is - where do you want to scan/clear - on the runner
> > level or on the test? What will happen if you start to clear-scan/clear
> > both from runner (-k) and from the test itself. I've intentionally
> > added clear first to limit catched leaks to period where test was
> > executed.
> 
> I do not know know. There may be uses for both. Currently I went for the
> runner for two reasons: it is simple, and produced good results.
> 
> However for transient leaks the key seems to be timing and then igt_runner
> does not offer enough granularity. We may need clears and scans at very
> specific places in the code.
> 
> My goal is to have CI experiment with kmemleak on igt_runner, collect
> developer feedback, and then decide if the next step of trying to figure
> it out how to have a more granular test-level scan makes sense and if is
> suitable for our use case.
> 
> Detecting transient leaks is an open problem.
> 
> > 
> > On the runner level we would collect for all tests, on the test level
> > I imagine command line argument passed to the test like -k which would
> > enable the scan on the very beginning. But this would require to rewrite
> > all tests which are using pure main() instead of igt_main.*().
> > If really there's leak and someone wants to catch it, he can always
> > simply wrap around script execution by kmemleak clear-scan/clear.
> 
> Currently we have -keach and -konce with -keach scanning between each test.
> As I said, this produces results, but is not effective for transient leaks.
> 
> Again, I do not know. If the initial evaluation indicates that there may be
> a benefit on extending the tests to trigger kmemleak scans, I see no reason
> for not doing it.
> 
> 
> > 
> > Resume - I would stick to the runner level, I see no judgement to change
> > igt_core / tests to use this library directly.
> 
> Resume: I prefer to wait until the initial feedback from CI and developers.
> I will be happy to move this to runner later if we decide to not walk the
> unknown road of trying to catch as many transient leaks as we can.
> 
> That being said, let me know how to move forward.

Question is to CI folks, for me this scan should be executed as
dedicated CI run with kmemleak on. And I repeat - I don't see reason
we should add this support to the tests, as few line script which
wraps around test by kmemleak clear/scan is enough. We already have
scripts directory so it is good place for such wrapper.

--
Zbigniew

> 
> > 
> >>
> >>>
> >>> Regarding your above question, I think runner should use as much as
> >>> minimal from lib/ directory, because this is collection of functions
> >>> designed for tests, not for runner. I think generic code like data
> >>> structures (lists) are fine, but not the others. Imagine you'll
> >>> incidentally try to use igt_require() - follow the call and see
> >>> the pitfall there.
> >>
> >> Currently the list of lib includes in the runner directory is not
> >> small (I used a dumb regex that looks for includes starting with igt_):
> >>
> >> #include "igt_aux.h"
> >> #include "igt_core.h"
> >> #include "igt_facts.h"
> >> #include "igt_hook.h"
> >> #include "igt_list.h"
> >> #include "igt_taints.h"
> >> #include "igt_vec.h"
> >>
> >>
> >>>
> >>> So if my understanding is correct and this code should be part of the
> >>> runner only your test might be moved to the runner_tests.c.
> >>
> >> It is difficult to know at this stage. At least the amd test I mentioned
> >> earlier will use it.
> > 
> > I've explored runner code even if it is not in the center of my
> > interests. I've seen there're few places where it is tainted by igt
> > library code which might call logging from igt domain like igt_warn()
> > [igt_gettime()], or igt_assert() [igt_vec_elem()]. I've experimented
> > how runner code behaves with those calls, igt_warn() just logs but
> > output format differs than executor.c __logf__(). I think we should
> > be consistent in this case. Asserting __igt_fail_assert() unfortunately
> > uses igt logging but if we ever assert in the runner this will have
> > fatal consequences. IGT library contains a lot of asserts, so functions
> > from them should be meticulously reviewed before using in the runner.
> 
> I see, but there is a very important detail here. Enabling kmemleak scans
> come at a very high runtime cost. The slowdown is expected to be 4X. So
> my judgement tells me that if CI is enduring the pains of a 4X slowdown
> to get kmemleaks results, the minimum we can do is tell them when
> something goes wrong.
> 
> On top of that, those write errors are rare, very rare I would say. I can
> use any other function you want. I am just not ok to fail silently in this
> case.
> 
> A big thank you for your comments.
> 
> > 
> > --
> > Zbigniew
> > 
> >>
> >>>
> >>> BTW please rebase on top of current master, there were changes in
> >>> the runner/settings.c file that affects this series.
> >>
> >> As soon as I am confident this will be merged, I surely will.
> >>
> >> Thanks!
> >>
> >>>
> >>> --
> >>> Zbigniew
> >>>
> >>>>
> >>>>
> >>>>>
> >>>>>> +					return false;
> >>>>>> +				}
> >>>>>> +				continue;
> >>>>>> +			} else {
> >>>>>> +				/* Log unrecoverable error */
> >>>>>> +				igt_warn("igt_write: unrecoverable write error");
> >>>>>
> >>>>> Same here.
> >>>> We should not remove this one.
> >>>>
> >>>>>
> >>>>>> +				return false;
> >>>>>> +			}
> >>>>>> +		} else if (written == 0) {
> >>>>>> +			if (++retries > MAX_WRITE_RETRIES) {
> >>>>>> +				igt_warn("igt_write: Exceeded retry limit\n");
> >>>>>
> >>>>> Same here.
> >>>> We should not remove this one.
> >>>>
> >>>> [...]
> >>>>
> >>>>>> +	FILE *fp;
> >>>>>
> >>>>> Why FILE* and fopen? Could you just use open/read?
> >>>>
> >>>> Why not?
> >>>>
> >>>> ---
> >>>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep fopen|wc -l
> >>>> 97
> >>>> ---
> >>>>
> >>>>
> >>>> [...]
> >>>>
> >>>>>> +bool igt_kmemleak_init(const char *unit_test_kmemleak_file)
> >>>>>> +{
> >>>>>> +	FILE *fp;
> >>>>>
> >>>>> Same here, open/read.
> >>>>
> >>>> Same here, why not?
> >>>> ---
> >>>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep fopen|wc -l
> >>>> 97
> >>>> ---
> >>>>
> >>>> [...]
> >>>>
> >>>>>> +#define KMEMLEAKRESFILENAME "kmemleak.txt"
> >>>>>
> >>>>> imho better: IGT_KMEMLEAK_RESFILENAME
> >>>>
> >>>> It reads better indeed. Thanks.
> >>>>
> >>>> [...]
> >>
> 

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-02-12 10:01               ` Zbigniew Kempczyński
@ 2025-02-12 13:12                 ` Peter Senna Tschudin
  2025-02-12 13:41                   ` Kamil Konieczny
  0 siblings, 1 reply; 31+ messages in thread
From: Peter Senna Tschudin @ 2025-02-12 13:12 UTC (permalink / raw)
  To: Zbigniew Kempczyński
  Cc: Kamil Konieczny, igt-dev, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt



On 12.02.2025 11:01, Zbigniew Kempczyński wrote:
> On Wed, Feb 12, 2025 at 10:18:17AM +0100, Peter Senna Tschudin wrote:
>>
>>
>> On 12.02.2025 09:36, Zbigniew Kempczyński wrote:
>>> On Tue, Feb 11, 2025 at 08:12:16PM +0100, Peter Senna Tschudin wrote:
>>>> Hi Zbigniew,
>>>>
>>>> Thank you for your comments, please see my answers below.
>>>>
>>>> On 11.02.2025 17:17, Zbigniew Kempczyński wrote:
>>>>> On Mon, Feb 03, 2025 at 10:23:00AM +0100, Peter Senna Tschudin wrote:
>>>>>> Hi Kamil,
>>>>>>
>>>>>> Thank you for your review. Please see below.
>>>>>>
>>>>>> On 31.01.2025 13:34, Kamil Konieczny wrote:
>>>>>>
>>>>>> [...]
>>>>>>
>>>>>>>> +#include <stdio.h>
>>>>>>>> +#include <string.h>
>>>>>>>> +#include <unistd.h>
>>>>>>>> +#include <fcntl.h>
>>>>>>>> +#include <errno.h>
>>>>>>>
>>>>>>> Sort this alphabetically with exception of unistd.h - this
>>>>>>> header could be first.
>>>>>>
>>>>>> That is picky, but ok.
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>> +
>>>>>>>> +#include "igt_core.h"
>>>>>>>> +#include "igt_kmemleak.h"
>>>>>>>> +
>>>>>>>> +/* We can change the path for unit testing, see igt_kmemleak_init() */
>>>>>>>> +static char igt_kmemleak_file[256] = "/sys/kernel/debug/kmemleak";
>>>>>>>> +
>>>>>>>> +#define MAX_WRITE_RETRIES 5
>>>>>>>> +/**
>>>>>>>> + * igt_kmemleak_write - Writes the buffer to the file descriptor retrying when
>>>>>>>> + * possible.
>>>>>>>> + * @fd: The file descriptor to write to.
>>>>>>>> + * @buf: Pointer to the data to write.
>>>>>>>> + * @count: Total number of bytes to write.
>>>>>>>> + *
>>>>>>>> + * Returns the total number of bytes written on success, or -1 on failure.
>>>>>>>> + */
>>>>>>>> +static bool igt_kmemleak_write(int fd, const void *buf, size_t count)
>>>>>>>> +{
>>>>>>>> +	const char *ptr = buf;
>>>>>>>> +	size_t remaining = count;
>>>>>>>> +	ssize_t written;
>>>>>>>> +	int retries = 0;
>>>>>>>> +
>>>>>>>> +	while (remaining > 0) {
>>>>>>>> +		written = write(fd, ptr, remaining);
>>>>>>>> +		if (written > 0) {
>>>>>>>> +			ptr += written;
>>>>>>>> +			remaining -= written;
>>>>>>>> +		} else if (written == -1) {
>>>>>>>> +			if (errno == EINTR || errno == EAGAIN) {
>>>>>>>> +				/* Retry for recoverable errors */
>>>>>>>> +				if (++retries > MAX_WRITE_RETRIES) {
>>>>>>>> +					igt_warn("igt_write: Exceeded retry limit\n");
>>>>>>>
>>>>>>> Do not use test prints in lib, especially those used by runner.
>>>>>>
>>>>>> Oh, I will. kmemleak is about writing to disk. If that fails, I will tell the user.
>>>>>> Why does this restriction applies only to me? See:
>>>>>>
>>>>>> ---
>>>>>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools/lib$ git grep igt_warn|wc -l
>>>>>> 164
>>>>>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools/lib$ cd ..
>>>>>> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ git grep igt_warn|wc -l
>>>>>> 324
>>>>>> ---
>>>>>>
>>>>>> About 50% of all references to igt_warn are in lib, what is the problem with my code?
>>>>>
>>>>> I'm looking at the code and I have impression this should be part of
>>>>> the runner, not igt library. Do I understand correctly that your
>>>>> code will be used by the runner only and not by the tests?
>>>>
>>>> It is difficult to know for now. We have one test that will use the lib
>>>> as is: `tests/amdgpu/amd_mem_leak.c`. But that is not the main potential
>>>> use case.
>>>>
>>>> As I describe in the cover letter, transient leaks are kind of tricky,
>>>> and we may require to request a scan from a test itself for better
>>>> coverage. So in short I honestly do not know if we will have test
>>>> integration in the future or not.
>>>
>>> Fundamental question is - where do you want to scan/clear - on the runner
>>> level or on the test? What will happen if you start to clear-scan/clear
>>> both from runner (-k) and from the test itself. I've intentionally
>>> added clear first to limit catched leaks to period where test was
>>> executed.
>>
>> I do not know know. There may be uses for both. Currently I went for the
>> runner for two reasons: it is simple, and produced good results.
>>
>> However for transient leaks the key seems to be timing and then igt_runner
>> does not offer enough granularity. We may need clears and scans at very
>> specific places in the code.
>>
>> My goal is to have CI experiment with kmemleak on igt_runner, collect
>> developer feedback, and then decide if the next step of trying to figure
>> it out how to have a more granular test-level scan makes sense and if is
>> suitable for our use case.
>>
>> Detecting transient leaks is an open problem.
>>
>>>
>>> On the runner level we would collect for all tests, on the test level
>>> I imagine command line argument passed to the test like -k which would
>>> enable the scan on the very beginning. But this would require to rewrite
>>> all tests which are using pure main() instead of igt_main.*().
>>> If really there's leak and someone wants to catch it, he can always
>>> simply wrap around script execution by kmemleak clear-scan/clear.
>>
>> Currently we have -keach and -konce with -keach scanning between each test.
>> As I said, this produces results, but is not effective for transient leaks.
>>
>> Again, I do not know. If the initial evaluation indicates that there may be
>> a benefit on extending the tests to trigger kmemleak scans, I see no reason
>> for not doing it.
>>
>>
>>>
>>> Resume - I would stick to the runner level, I see no judgement to change
>>> igt_core / tests to use this library directly.
>>
>> Resume: I prefer to wait until the initial feedback from CI and developers.
>> I will be happy to move this to runner later if we decide to not walk the
>> unknown road of trying to catch as many transient leaks as we can.
>>
>> That being said, let me know how to move forward.
> 
> Question is to CI folks, for me this scan should be executed as
> dedicated CI run with kmemleak on. And I repeat - I don't see reason
> we should add this support to the tests, as few line script which
> wraps around test by kmemleak clear/scan is enough. We already have
> scripts directory so it is good place for such wrapper.

So I am moving the code to the runner directory, and using printf() instead
of igt_warn(). Any other request for the series?

[...]


^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-02-12 13:12                 ` Peter Senna Tschudin
@ 2025-02-12 13:41                   ` Kamil Konieczny
  2025-02-12 14:57                     ` Peter Senna Tschudin
  0 siblings, 1 reply; 31+ messages in thread
From: Kamil Konieczny @ 2025-02-12 13:41 UTC (permalink / raw)
  To: Peter Senna Tschudin
  Cc: Zbigniew Kempczyński, igt-dev, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt

Hi Peter,
On 2025-02-12 at 14:12:44 +0100, Peter Senna Tschudin wrote:
> 
> 
> On 12.02.2025 11:01, Zbigniew Kempczyński wrote:
> > On Wed, Feb 12, 2025 at 10:18:17AM +0100, Peter Senna Tschudin wrote:

[...]

> >> Resume: I prefer to wait until the initial feedback from CI and developers.
> >> I will be happy to move this to runner later if we decide to not walk the
> >> unknown road of trying to catch as many transient leaks as we can.
> >>
> >> That being said, let me know how to move forward.
> > 
> > Question is to CI folks, for me this scan should be executed as
> > dedicated CI run with kmemleak on. And I repeat - I don't see reason
> > we should add this support to the tests, as few line script which
> > wraps around test by kmemleak clear/scan is enough. We already have
> > scripts directory so it is good place for such wrapper.
> 
> So I am moving the code to the runner directory, and using printf() instead
> of igt_warn(). Any other request for the series?
> 
> [...]
> 

or fprintf() or write() so you could write to a file instead
of stdout, as stdout isn't collected now by runner itself (it
goes to igt_runnerNN.txt but that is another story).

I also want to see ack from CI, on ML or in any other way.

Regards,
Kamil


^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 2/2] runner/executor: Integrate igt_kmemleak scans
  2025-02-03  9:10     ` Peter Senna Tschudin
@ 2025-02-12 14:24       ` Kamil Konieczny
  2025-02-12 14:53         ` Peter Senna Tschudin
  0 siblings, 1 reply; 31+ messages in thread
From: Kamil Konieczny @ 2025-02-12 14:24 UTC (permalink / raw)
  To: Peter Senna Tschudin
  Cc: igt-dev, ryszard.knop, lucas.demarchi, katarzyna.piecielska,
	Jonathan Cavitt

Hi Peter,
On 2025-02-03 at 10:10:53 +0100, Peter Senna Tschudin wrote:
> Hi Kamil,
> 
> Thank you for the review.
> 
> [...]
> 
> >>  		igt_facts_lists_init();
> >>  
> >> +	if (settings->kmemleak)
> >> +		if (!igt_kmemleak_init(NULL)) {
> >> +			errf("Failed to initialize kmemleak. Is kernel support enabled?\n");
> >> +			errf("Disabling kmemleak on igt_runner and continuing...\n");
> > 
> > Make it one errf() call, split string if needed.
> chekcpatch does not like multi-line strings. Can you show me the code
> you want me to use here that satisfies you and checkpatch at the same time?
> 

It is a tool and it do happen when developer could ignore it,
you have one example here and other is for drm structs which
use camel case names.

> 
> [...]
> > 
> >> +			settings->kmemleak = settings->kmemleak_each = false;
> > 
> > Avoid this, write two assinments here.
> 
> I personally find this very elegant, but sure, I will make the change.
> 
> [...]
> 
> >> @@ -718,6 +723,7 @@ igt_main
> >>  	igt_subtest("parse-clears-old-data") {
> >>  		const char *argv[] = { "runner",
> >>  				       "-n", "foo",
> >> +				       "--overwrite",
> > 
> > Do not make unrelated changes, add only kmemleak.
> > You also didn't write about this change in description, if you
> > think it is a fix it should go in separate patch, not here.
> 
> These are not unrelated. First as this is unit testing, this has no
> downstream effects. Second, I am adding --overwrite to grow the argv
> array. The reason for that is to be able to test the new argument.

Well, I do no understand why are you doing this in this patch?
When you added facts you change only small fragment but now it
looks like an unneccecery big change. Please make this change
small and consider adding all that bigger unrelated changes
in separate cleanup patch after this one.

Regards,
Kamil

> 
> As I had explained to Jonathan Cavitt in a previous email, the alternative
> to adding an extra option would be to change how the entire file allocates
> argv[] which felt like an overkill. If adding an extra option that has no
> downstream effect is unacceptable, please let me know how you want me to
> grow the array with an example.
> 
> > 
> >>  				       "--dry-run",
> >>  				       "--allow-non-root",
> >>  				       "test-root-dir",
> >> @@ -727,21 +733,29 @@ igt_main
> >>  		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
> >>  
> >>  		igt_assert_eqstr(settings->name, "foo");
> >> +		igt_assert(settings->overwrite);
> > 
> > Same here, unrelated.
> Updating the unit testing to take overwrite into account.
> 
> > 
> >>  		igt_assert(settings->dry_run);
> >>  		igt_assert(!settings->test_list);
> >>  		igt_assert(!settings->facts);
> >> +		igt_assert(!settings->kmemleak);
> >>  		igt_assert(!settings->sync);
> >>  
> >>  		argv[1] = "--test-list";
> >> +		argv[2] = "foo"; /* Unchanged */
> > 
> > Same here, unrelated.
> This is unchanged as the comment indicates. It is here only for documentation.
> It was defined a few lines before: const char *argv[] = { "runner", "-n", "foo",
> 
> > 
> >>  		argv[3] = "--facts";
> >> -		argv[4] = "--sync";
> > 
> > Same here, unrelated.
> Just read the next two lines please.
> 
> > 
> >> +		argv[4] = "--kmemleak";
> >> +		argv[5] = "--sync";
> > 
> > Same here, unrelated.
> Just read the previous two lines please.
> 
> > 
> >> +		argv[6] = "test-root-dir"; /* Unchanged */
> > 
> > Same here, unrelated.
> Same explanation as 'foo'. No changes.
> > 
> >> +		argv[7] = "results-path"; /* Unchanged */
> > 
> > Same here, unrelated.
> Same explanation as 'foo'. No changes.
> 
> > 
> >>  
> >>  		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
> >>  
> >>  		igt_assert_eqstr(settings->name, "results-path");
> >>  		igt_assert(!settings->dry_run);
> >> +		igt_assert(!settings->overwrite);
> > 
> > Same here, unrelated.
> 
> Same as before.
> 
> [...]
> 
> >>  	settings->dmesg_warn_level = -1;
> >>  	settings->prune_mode = -1;
> >>  
> >> -	while ((c = getopt_long(argc, argv, "hn:dt:x:e:fsl:omb:L",
> >> +	while ((c = getopt_long(argc, argv, "hn:dt:x:e:fsl:omb:Lk::",
> > 
> > Why there are two colons at end? Also imho 'k' should be placed after 'f'
> > like below:
> 
> From Getopt documentation*: If an option character is followed by two colons
> (‘::’), its argument is optional;
> 
> > 
> > 	while ((c = getopt_long(argc, argv, "hn:dt:x:e:fk:sl:omb:L",
> 
> This is wrong as it is missing one ':'. I will fix the order.
> 
> > 
> > especially that you add its code after OPT_FACTS below.
> > 
> >>  				long_options, NULL)) != -1) {
> >>  		switch (c) {
> >>  		case OPT_VERSION:
> >> @@ -742,6 +754,19 @@ bool parse_options(int argc, char **argv,
> >>  		case OPT_FACTS:
> >>  			settings->facts = true;
> >>  			break;
> >> +		case OPT_KMEMLEAK:
> >> +			settings->kmemleak = true;
> >> +			if (optarg) {
> >> +				if (strcmp(optarg, "once") == 0)
> >> +					settings->kmemleak_each = false;
> >> +				else if (strcmp(optarg, "each") == 0)
> >> +					settings->kmemleak_each = true;
> >> +				else {
> >> +					usage(stderr, "Invalid kmemleak option");
> >> +					goto error;
> >> +				}
> > 
> > Use braces here: if () { ... } else if (...) { ... } else { ... }
> 
> Sure
> 
> [...]
> 
> * - https://www.gnu.org/software/libc/manual/html_node/Using-Getopt.html

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-02-03  9:14     ` Peter Senna Tschudin
@ 2025-02-12 14:26       ` Kamil Konieczny
  0 siblings, 0 replies; 31+ messages in thread
From: Kamil Konieczny @ 2025-02-12 14:26 UTC (permalink / raw)
  To: Peter Senna Tschudin
  Cc: igt-dev, ryszard.knop, lucas.demarchi, katarzyna.piecielska,
	Jonathan Cavitt

Hi Peter,
On 2025-02-03 at 10:14:19 +0100, Peter Senna Tschudin wrote:
> Hi Kamil,
> 
> Thank you, please see my comments.
> 
> On 31.01.2025 13:38, Kamil Konieczny wrote:
> > Hi Peter,
> > On 2025-01-28 at 16:15:36 +0100, Peter Senna Tschudin wrote:
> > 
> > sorry one more nit, found by checkpatch, see below.
> > 
> >> Adds a simple library for interacting with kmemleak and add
> >> unit testing for the library. There are two modes intended to
> >> integrate with igt_runner:
> >> - once: collect kmemleaks after all test completed
> >> - each: collect kmemleaks after eachb test completes
> >>
> >> To use the library include "igt_kmemleak.h", call
> >> igt_kmemleak_init(NULL) to check if kmemleak is enabled and finally
> >> call igt_kmemleak() to collect kmemleaks. igt_kmemleak() expect the
> >> following arguments:
> >>   - const char *last_test: Name of the last lest or NULL
> >>   - int resdirfd: file descriptor of the results directory
> >>   - bool kmemleak_each: Are we scanning once or scanning after
> >>     each test?
> >>   - bool sync: sync after each write?
> >>
> >> CC: ryszard.knop@intel.com
> >> CC: lucas.demarchi@intel.com
> >> CC: katarzyna.piecielska@intel.com
> >> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> >> Signed-off-by: Peter Senna Tschudin <peter.senna@linux.intel.com>
> >> ---
> >>  lib/igt_kmemleak.c       | 274 +++++++++++++++++++++++++++++++++++++++
> >>  lib/igt_kmemleak.h       |  16 +++
> >>  lib/meson.build          |   1 +
> >>  lib/tests/igt_kmemleak.c | 267 ++++++++++++++++++++++++++++++++++++++
> >>  lib/tests/meson.build    |   1 +
> >>  5 files changed, 559 insertions(+)
> >>  create mode 100644 lib/igt_kmemleak.c
> >>  create mode 100644 lib/igt_kmemleak.h
> >>  create mode 100644 lib/tests/igt_kmemleak.c
> >>
> > 
> > ...cut...
> > 
> >> +
> >> +static const char *igt_kmemleak_unit_testing_resdir = "/tmp";
> >> +
> >> +igt_main
> >> +{
> >> +	char unit_testing_kmemleak_filepath[256] = "/tmp/igt_kmemleak_test_XXXXXX";
> >> +	int written_bytes;
> >> +	int resdirfd;
> >> +	int fd;
> >> +
> >> +	igt_fixture {
> >> +		/* resdirfd is used by igt_kmemleak() to store results */
> >> +		igt_assert(resdirfd = open(igt_kmemleak_unit_testing_resdir,
> >> +					   O_DIRECTORY | O_RDONLY));
> >> +
> >> +		/* Try to delete results file in case of leftovers,
> >> +		 * ignoring errors as the file may not exist
> >> +		 */
> >> +		unlinkat(resdirfd, KMEMLEAKRESFILENAME, 0);
> >> +
> >> +		/* Creating a fake kmemleak file for unit testing */
> >> +		fd = mkstemp(unit_testing_kmemleak_filepath);
> >> +		igt_assert(fd >= 0);
> >> +
> >> +		written_bytes = write(fd, kmemleak_file_example,
> >> +				strlen(kmemleak_file_example));
> > 
> > Align here or just write this in one line:
> > 		written_bytes = write(fd, kmemleak_file_example, strlen(kmemleak_file_example));
> > or
> > 		written_bytes = write(fd, kmemleak_file_example,
> > 				      strlen(kmemleak_file_example));
> 
> Good catch, curious why my checkpatch did not catch this one:
> 
> ---
> psennats@friendship7-home:~/UPSTREAM/igt-gpu-tools$ ../linux/scripts/checkpatch.pl 0001-lib-igt_kmemleak-library-to-interact-with-kmemleak.patch
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #39:
> new file mode 100644
> 
> WARNING: quoted string split across lines
> #394: FILE: lib/tests/igt_kmemleak.c:37:
> +"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
> +"unreferenced object 0xffff888102a2ed18 (size 80):\n"
> 

You could ignore this, checkpatch is not perfect.

Regards,
Kamil

[...]
> 
> WARNING: quoted string split across lines
> #526: FILE: lib/tests/igt_kmemleak.c:169:
> +"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
> +"unreferenced object 0xffff888102a2e798 (size 80):\n"
> 
> WARNING: quoted string split across lines
> #548: FILE: lib/tests/igt_kmemleak.c:191:
> +"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
> +"unreferenced object 0xffff888102a2e0b8 (size 80):\n"
> 
> total: 0 errors, 9 warnings, 571 lines checked
> 
> NOTE: For some of the reported defects, checkpatch may be able to
>       mechanically convert to the typical style using --fix or --fix-inplace.
> 
> 0001-lib-igt_kmemleak-library-to-interact-with-kmemleak.patch has style problems, please review.
> 
> NOTE: If any of the errors are false positives, please report
>       them to the maintainer, see CHECKPATCH in MAINTAINERS.
> ---
> 
> 
> 
> > 
> > Regards,
> > Kamil
> > 
> > ...cut...
> 

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 2/2] runner/executor: Integrate igt_kmemleak scans
  2025-02-12 14:24       ` Kamil Konieczny
@ 2025-02-12 14:53         ` Peter Senna Tschudin
  0 siblings, 0 replies; 31+ messages in thread
From: Peter Senna Tschudin @ 2025-02-12 14:53 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt

Hi Kamil,

On 12.02.2025 15:24, Kamil Konieczny wrote:
> Hi Peter,
> On 2025-02-03 at 10:10:53 +0100, Peter Senna Tschudin wrote:
>> Hi Kamil,
>>
>> Thank you for the review.
>>
>> [...]
>>
>>>>  		igt_facts_lists_init();
>>>>  
>>>> +	if (settings->kmemleak)
>>>> +		if (!igt_kmemleak_init(NULL)) {
>>>> +			errf("Failed to initialize kmemleak. Is kernel support enabled?\n");
>>>> +			errf("Disabling kmemleak on igt_runner and continuing...\n");
>>>
>>> Make it one errf() call, split string if needed.
>> chekcpatch does not like multi-line strings. Can you show me the code
>> you want me to use here that satisfies you and checkpatch at the same time?
>>
> 
> It is a tool and it do happen when developer could ignore it,
> you have one example here and other is for drm structs which
> use camel case names.

So you want a single errf() with a multi line string and you are happy to ignore
checkpatch complaining about it. Cool, will do.

> 
>>
>> [...]
>>>
>>>> +			settings->kmemleak = settings->kmemleak_each = false;
>>>
>>> Avoid this, write two assinments here.
>>
>> I personally find this very elegant, but sure, I will make the change.
>>
>> [...]
>>
>>>> @@ -718,6 +723,7 @@ igt_main
>>>>  	igt_subtest("parse-clears-old-data") {
>>>>  		const char *argv[] = { "runner",
>>>>  				       "-n", "foo",
>>>> +				       "--overwrite",
>>>
>>> Do not make unrelated changes, add only kmemleak.
>>> You also didn't write about this change in description, if you
>>> think it is a fix it should go in separate patch, not here.
>>
>> These are not unrelated. First as this is unit testing, this has no
>> downstream effects. Second, I am adding --overwrite to grow the argv
>> array. The reason for that is to be able to test the new argument.
> 
> Well, I do no understand why are you doing this in this patch?
> When you added facts you change only small fragment but now it
> looks like an unneccecery big change. Please make this change
> small and consider adding all that bigger unrelated changes
> in separate cleanup patch after this one.

I was lucky that there was a free slot on the array for facts. Now I cannot
unit test facts and kmemleak at the same time without growing the array.
Sorry. Do you see an easy way that I am missing?

Thank you,

Peter

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-02-12 13:41                   ` Kamil Konieczny
@ 2025-02-12 14:57                     ` Peter Senna Tschudin
  0 siblings, 0 replies; 31+ messages in thread
From: Peter Senna Tschudin @ 2025-02-12 14:57 UTC (permalink / raw)
  To: Kamil Konieczny, Zbigniew Kempczyński, igt-dev, ryszard.knop,
	lucas.demarchi, katarzyna.piecielska, Jonathan Cavitt



On 12.02.2025 14:41, Kamil Konieczny wrote:
> Hi Peter,
> On 2025-02-12 at 14:12:44 +0100, Peter Senna Tschudin wrote:
>>
>>
>> On 12.02.2025 11:01, Zbigniew Kempczyński wrote:
>>> On Wed, Feb 12, 2025 at 10:18:17AM +0100, Peter Senna Tschudin wrote:
> 
> [...]
> 
>>>> Resume: I prefer to wait until the initial feedback from CI and developers.
>>>> I will be happy to move this to runner later if we decide to not walk the
>>>> unknown road of trying to catch as many transient leaks as we can.
>>>>
>>>> That being said, let me know how to move forward.
>>>
>>> Question is to CI folks, for me this scan should be executed as
>>> dedicated CI run with kmemleak on. And I repeat - I don't see reason
>>> we should add this support to the tests, as few line script which
>>> wraps around test by kmemleak clear/scan is enough. We already have
>>> scripts directory so it is good place for such wrapper.
>>
>> So I am moving the code to the runner directory, and using printf() instead
>> of igt_warn(). Any other request for the series?
>>
>> [...]
>>
> 
> or fprintf() or write() so you could write to a file instead
> of stdout, as stdout isn't collected now by runner itself (it
> goes to igt_runnerNN.txt but that is another story).

The errors in question here are exactly about writing to disk, so
I am positive that it only makes sense for them to go to stdout or
stderr. Are you ok with printing an error message instead of trying
to save to disk?

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-02-11 16:17       ` Zbigniew Kempczyński
  2025-02-11 19:12         ` Peter Senna Tschudin
@ 2025-02-25 13:46         ` Peter Senna Tschudin
  2025-02-25 18:06           ` Peter Senna Tschudin
  1 sibling, 1 reply; 31+ messages in thread
From: Peter Senna Tschudin @ 2025-02-25 13:46 UTC (permalink / raw)
  To: Zbigniew Kempczyński
  Cc: Kamil Konieczny, igt-dev, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt

Hi Zbigniew,

On 11.02.2025 17:17, Zbigniew Kempczyński wrote:
[...]

> 
> I'm looking at the code and I have impression this should be part of
> the runner, not igt library. Do I understand correctly that your
> code will be used by the runner only and not by the tests?
> 
> Regarding your above question, I think runner should use as much as
> minimal from lib/ directory, because this is collection of functions
> designed for tests, not for runner. I think generic code like data
> structures (lists) are fine, but not the others. Imagine you'll
> incidentally try to use igt_require() - follow the call and see
> the pitfall there.
> 
> So if my understanding is correct and this code should be part of the
> runner only your test might be moved to the runner_tests.c.
> 
> BTW please rebase on top of current master, there were changes in
> the runner/settings.c file that affects this series.

I sent V5 a few moments ago and I included the AMD folks who sent a patch
to add kmemleaks integration as a library for tests. Please have a look at
the last comment from AMD explaining why adding a lib for tests:

https://patchwork.freedesktop.org/series/145011/

I feel we should work with them to avoid duplication functionality. What
are your toughs?

Thanks!


[...]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak
  2025-02-25 13:46         ` Peter Senna Tschudin
@ 2025-02-25 18:06           ` Peter Senna Tschudin
  0 siblings, 0 replies; 31+ messages in thread
From: Peter Senna Tschudin @ 2025-02-25 18:06 UTC (permalink / raw)
  To: Zbigniew Kempczyński
  Cc: Kamil Konieczny, igt-dev, ryszard.knop, lucas.demarchi,
	katarzyna.piecielska, Jonathan Cavitt

Hi Zbigniew,

On 25.02.2025 14:46, Peter Senna Tschudin wrote:
> Hi Zbigniew,
> 
> On 11.02.2025 17:17, Zbigniew Kempczyński wrote:
> [...]
> 
>>
>> I'm looking at the code and I have impression this should be part of
>> the runner, not igt library. Do I understand correctly that your
>> code will be used by the runner only and not by the tests?
>>
>> Regarding your above question, I think runner should use as much as
>> minimal from lib/ directory, because this is collection of functions
>> designed for tests, not for runner. I think generic code like data
>> structures (lists) are fine, but not the others. Imagine you'll
>> incidentally try to use igt_require() - follow the call and see
>> the pitfall there.
>>
>> So if my understanding is correct and this code should be part of the
>> runner only your test might be moved to the runner_tests.c.
>>
>> BTW please rebase on top of current master, there were changes in
>> the runner/settings.c file that affects this series.
> 
> I sent V5 a few moments ago and I included the AMD folks who sent a patch
> to add kmemleaks integration as a library for tests. Please have a look at
> the last comment from AMD explaining why adding a lib for tests:
> 
> https://patchwork.freedesktop.org/series/145011/
> 
> I feel we should work with them to avoid duplication functionality. What
> are your toughs?

I have a proposal: what about extending the kmemleak library to add an
additional option that to accept a test list file pointing to the
tests we want to collect kmemleak reports? At least in theory this will
allow the AMD folks to do what they want. Something like:
 - once: collect kmemleak reports after running all tests
 - each: collect kmemleak reports after running each test
 - file: collect kmemleak reports after each test on the file

Please let me know what you think.

Thanks,

Peter

^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2025-02-25 18:06 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-28 15:15 [PATCH i-g-t v4 0/2] Integrate kmemleak scans in igt_runner Peter Senna Tschudin
2025-01-28 15:15 ` [PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak Peter Senna Tschudin
2025-01-31 12:34   ` Kamil Konieczny
2025-02-03  9:23     ` Peter Senna Tschudin
2025-02-11 16:17       ` Zbigniew Kempczyński
2025-02-11 19:12         ` Peter Senna Tschudin
2025-02-12  8:36           ` Zbigniew Kempczyński
2025-02-12  9:18             ` Peter Senna Tschudin
2025-02-12 10:01               ` Zbigniew Kempczyński
2025-02-12 13:12                 ` Peter Senna Tschudin
2025-02-12 13:41                   ` Kamil Konieczny
2025-02-12 14:57                     ` Peter Senna Tschudin
2025-02-25 13:46         ` Peter Senna Tschudin
2025-02-25 18:06           ` Peter Senna Tschudin
2025-01-31 12:38   ` Kamil Konieczny
2025-02-03  9:14     ` Peter Senna Tschudin
2025-02-12 14:26       ` Kamil Konieczny
2025-01-28 15:15 ` [PATCH i-g-t v4 2/2] runner/executor: Integrate igt_kmemleak scans Peter Senna Tschudin
2025-01-31 12:50   ` Kamil Konieczny
2025-02-03  9:10     ` Peter Senna Tschudin
2025-02-12 14:24       ` Kamil Konieczny
2025-02-12 14:53         ` Peter Senna Tschudin
2025-01-28 20:48 ` ✓ i915.CI.BAT: success for Integrate kmemleak scans in igt_runner (rev2) Patchwork
2025-01-28 20:49 ` Patchwork
2025-01-28 20:52 ` ✓ Xe.CI.BAT: " Patchwork
2025-01-29 10:40 ` ✗ Xe.CI.Full: failure " Patchwork
2025-01-29 13:18   ` Peter Senna Tschudin
2025-01-29 11:25 ` ✗ i915.CI.Full: " Patchwork
2025-01-29 13:19   ` Peter Senna Tschudin
2025-01-30  6:18     ` Ravali, JupallyX
2025-01-30  5:26 ` ✓ i915.CI.Full: success " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox