Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/1] tests/intel/xe_exec_capture: Add coredump decode validation subtests
@ 2026-08-16 18:09 Jan Maslak
  2026-08-16 18:09 ` [PATCH 1/1] " Jan Maslak
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Jan Maslak @ 2026-08-16 18:09 UTC (permalink / raw)
  To: igt-dev; +Cc: matthew.brost, Jan Maslak

This series adds coredump decode validation subtests to xe_exec_capture.

The tests create dumpable VM buffers with deterministic contents, trigger an
engine hang, and validate every ASCII85 blob in the resulting devcoredump.
The large variant exercises coredump chunking and the legacy rendering limit.

Jan Maslak (1):
  tests/intel/xe_exec_capture: Add coredump decode validation subtests

 tests/intel/xe_exec_capture.c | 549 +++++++++++++++++++++++++++++++++-
 1 file changed, 548 insertions(+), 1 deletion(-)

-- 
2.43.0

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

* [PATCH 1/1] tests/intel/xe_exec_capture: Add coredump decode validation subtests
  2026-08-16 18:09 [PATCH 0/1] tests/intel/xe_exec_capture: Add coredump decode validation subtests Jan Maslak
@ 2026-08-16 18:09 ` Jan Maslak
  2026-10-14 15:09   ` Cavitt, Jonathan
  2026-08-16 18:43 ` ✓ Xe.CI.BAT: success for " Patchwork
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Jan Maslak @ 2026-08-16 18:09 UTC (permalink / raw)
  To: igt-dev; +Cc: matthew.brost, Jan Maslak

Add decode-data and decode-data-large subtests that create dumpable VM
buffers with deterministic contents, hang an engine, and validate the
resulting devcoredump.

Decode every ASCII85 blob and verify its decoded size matches the
advertised length. For test-created VM blobs, also verify the decoded
contents. The large variant crosses the kernel coredump chunking
threshold and legacy rendering limit.

Signed-off-by: Jan Maslak <jan.maslak@intel.com>
---
 tests/intel/xe_exec_capture.c | 549 +++++++++++++++++++++++++++++++++-
 1 file changed, 548 insertions(+), 1 deletion(-)

diff --git a/tests/intel/xe_exec_capture.c b/tests/intel/xe_exec_capture.c
index 6e454cfff3..2d726cabf9 100644
--- a/tests/intel/xe_exec_capture.c
+++ b/tests/intel/xe_exec_capture.c
@@ -17,10 +17,13 @@
 #include <inttypes.h>
 #include <regex.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
+#include <sys/mman.h>
 
 #include "igt.h"
 #include "igt_device.h"
+#include "igt_os.h"
 #include "igt_sriov_device.h"
 #include "igt_sysfs.h"
 #include "lib/igt_syncobj.h"
@@ -82,6 +85,43 @@
 #define INDEX_VM_LENGTH			2
 #define INDEX_VM_SIZE			3
 
+/*
+ * Binary sections of the dump are encoded with the kernel's
+ * include/linux/ascii85.h: a zero dword becomes a single 'z', every other
+ * dword becomes 5 characters in the '!'..'u' range.
+ */
+#define ASCII85_ZERO			'z'
+#define ASCII85_MIN			'!'
+#define ASCII85_MAX			'u'
+#define ASCII85_GROUP_LEN		5
+
+#define LENGTH_SUFFIX			"].length:"
+#define DATA_SUFFIX			"].data:"
+#define ERROR_SUFFIX			"].error:"
+#define MAX_BLOB_NAME_LEN		64
+
+#define CAPTURE_SPIN_ADDRESS		0x1a0000ull
+#define CAPTURE_PAYLOAD_ADDRESS		0x100000000ull
+
+/* Largest dump size the kernel could render before it learned to chunk (VLK-71080) */
+#define DEVCOREDUMP_LEGACY_MAX_SIZE	((uint64_t)INT_MAX)
+
+/*
+ * The test payloads contain no zero dwords, so their ASCII85 size is exactly
+ * 5/4 of their binary size. The decoder still supports zero dwords.
+ */
+#define ASCII85_ENCODED_SIZE(bytes)	((bytes) / 4 * 5)
+
+/* Small, but already far past any line-oriented parser */
+#define DECODE_PAYLOAD_SIZE		SZ_2M
+#define DECODE_PAYLOAD_COUNT		2
+
+#define LARGE_PAYLOAD_SIZE		SZ_64M
+/* One extra buffer makes the encoded payload exceed the legacy cap */
+#define LARGE_PAYLOAD_COUNT		\
+	((int)(DEVCOREDUMP_LEGACY_MAX_SIZE / \
+	       ASCII85_ENCODED_SIZE(LARGE_PAYLOAD_SIZE)) + 1)
+
 static u64
 xe_sysfs_get_job_timeout_ms(int fd, struct drm_xe_engine_class_instance *eci)
 {
@@ -224,6 +264,323 @@ static bool rm_devcoredump(char *path)
 	return false;
 }
 
+static bool devcoredump_exists(char *path)
+{
+	return access_devcoredump(path, NULL, NULL) != 0;
+}
+
+/**
+ * struct payload_bo - A buffer object the test fills with known dword values
+ * @handle: GEM handle
+ * @addr: GPU virtual address the buffer is bound at, which is also the name the
+ *	  dump gives it, i.e. "[<addr>].data:"
+ * @size: buffer size in bytes
+ * @payload_index: zero-based payload index, used to generate this buffer's
+ *		   dword values
+ * @seen: set once the dump has been found to carry this buffer intact
+ */
+struct payload_bo {
+	uint32_t handle;
+	uint64_t addr;
+	uint64_t size;
+	uint32_t payload_index;
+	bool seen;
+};
+
+/* Keep each payload's dword values distinct and non-zero. */
+#define PAYLOAD_INDEX_STRIDE		0x04000000u
+
+/**
+ * payload_dword - Return the expected dword at a payload offset
+ * @payload_index: zero-based payload index
+ * @dword_index: dword offset in the payload
+ *
+ * Returns: expected dword value
+ */
+static uint32_t payload_dword(uint32_t payload_index, uint64_t dword_index)
+{
+	return (payload_index + 1) * PAYLOAD_INDEX_STRIDE + (uint32_t)dword_index;
+}
+
+/**
+ * struct ascii85_decoder - Position within one encoded blob
+ * @pos: next character to consume
+ * @bad: set once a group is found that no encoder could have produced
+ * @truncated: set when the blob ends part way through a group
+ */
+struct ascii85_decoder {
+	const char *pos;
+	bool bad;
+	bool truncated;
+};
+
+/**
+ * ascii85_next_dword - Decode the next dword of a blob
+ * @dec: decoder positioned at the start of a group
+ * @out: filled with the decoded value
+ *
+ * Returns: false at the end of the blob, on the first malformed group or on a
+ * group cut short, the last two reported through @dec->bad and @dec->truncated.
+ */
+static bool ascii85_next_dword(struct ascii85_decoder *dec, uint32_t *out)
+{
+	uint64_t acc = 0;
+	int i;
+
+	if (!*dec->pos || *dec->pos == '\n')
+		return false;
+
+	/* A zero dword is abbreviated to one character */
+	if (*dec->pos == ASCII85_ZERO) {
+		dec->pos++;
+		*out = 0;
+		return true;
+	}
+
+	/* Otherwise five base-85 digits, most significant first */
+	for (i = 0; i < ASCII85_GROUP_LEN; i++) {
+		if (!dec->pos[i] || dec->pos[i] == '\n') {
+			dec->truncated = true;
+			return false;
+		}
+		if (dec->pos[i] < ASCII85_MIN || dec->pos[i] > ASCII85_MAX) {
+			dec->bad = true;
+			return false;
+		}
+		acc = acc * 85 + (dec->pos[i] - ASCII85_MIN);
+	}
+
+	/* 85^5 exceeds 2^32, so not every group is encodable */
+	if (acc > UINT32_MAX) {
+		dec->bad = true;
+		return false;
+	}
+
+	dec->pos += ASCII85_GROUP_LEN;
+	*out = acc;
+
+	return true;
+}
+
+/**
+ * parse_blob_field - Split a "[<name>]<suffix> <value>" devcoredump line
+ * @line: line to match, e.g. "[4e4800000].length: 0x4000000"
+ * @suffix: LENGTH_SUFFIX, DATA_SUFFIX or ERROR_SUFFIX, matched literally so that
+ *	    "].replay_length:" does not look like "].length:"
+ * @name: filled with the bracketed name on success
+ * @name_size: size of @name
+ * @value: set to the first character of the value on success
+ *
+ * Returns: true when @line carries @suffix, false otherwise.
+ */
+static bool
+parse_blob_field(const char *line, const char *suffix, char *name, size_t name_size,
+		 const char **value)
+{
+	const char *open = strchr(line, '[');
+	const char *close;
+	size_t len;
+
+	if (!open)
+		return false;
+
+	open++;
+	close = strchr(open, ']');
+	if (!close || strncmp(close, suffix, strlen(suffix)))
+		return false;
+
+	len = close - open;
+	if (len >= name_size)
+		return false;
+
+	memcpy(name, open, len);
+	name[len] = '\0';
+
+	*value = close + strlen(suffix);
+	while (**value == ' ' || **value == '\t')
+		(*value)++;
+
+	return true;
+}
+
+/**
+ * payload_by_name - Find the payload a blob name refers to
+ * @name: bracketed blob name, e.g. "4e4800000" or "HWSP"
+ * @payloads: buffers the test bound before hanging, or NULL
+ * @n_payloads: number of entries in @payloads
+ *
+ * Returns: the matching payload, or NULL when @name is not one of them. The
+ * dump also uses labels such as "HWSP" and "CTB" for driver-owned sections;
+ * names that are not entirely hexadecimal never match, which keeps "CTB" from
+ * resolving as the address 0xc.
+ */
+static struct payload_bo *
+payload_by_name(const char *name, struct payload_bo *payloads, int n_payloads)
+{
+	uint64_t addr;
+	char *end;
+	int i;
+
+	if (!payloads)
+		return NULL;
+
+	addr = strtoull(name, &end, 16);
+	if (end == name || *end)
+		return NULL;
+
+	for (i = 0; i < n_payloads; i++)
+		if (payloads[i].addr == addr)
+			return &payloads[i];
+
+	return NULL;
+}
+
+/**
+ * check_blob - Validate one ".length"/".data" pair of a devcoredump
+ * @name: bracketed blob name, a hex VMA address for VM state sections
+ * @length: byte count advertised by the ".length" line
+ * @data: encoded payload of the ".data" line
+ * @payloads: buffers the test bound before hanging, or NULL
+ * @n_payloads: number of entries in @payloads
+ *
+ * Asserts that the blob is valid ASCII85 and decodes to exactly @length bytes.
+ * Test-created payloads are also checked against their expected contents.
+ */
+static void
+check_blob(const char *name, uint64_t length, const char *data,
+	   struct payload_bo *payloads, int n_payloads)
+{
+	struct ascii85_decoder dec = { .pos = data };
+	struct payload_bo *expected_payload;
+	uint64_t expected_dwords = 0;
+	uint64_t dwords = 0;
+	uint32_t val;
+
+	expected_payload = payload_by_name(name, payloads, n_payloads);
+	if (expected_payload) {
+		igt_assert_f(length == expected_payload->size,
+			     "[%s]: .length reports 0x%" PRIx64
+			     " bytes, bound VMA is 0x%" PRIx64 " bytes\n",
+			     name, length, expected_payload->size);
+		expected_dwords = expected_payload->size / sizeof(uint32_t);
+	}
+
+	/*
+	 * Decode every blob for structural validation. Only test-created payloads
+	 * need the additional content comparison.
+	 */
+	while (ascii85_next_dword(&dec, &val)) {
+		if (expected_payload) {
+			igt_assert_f(dwords < expected_dwords,
+				     "[%s]: .data contains more dwords than the bound payload\n",
+				     name);
+			igt_assert_f(val == payload_dword(expected_payload->payload_index,
+							  dwords),
+				     "[%s]: decoded dword %" PRIu64
+				     " differs from the content written to the buffer\n",
+				     name, dwords);
+		}
+		dwords++;
+	}
+
+	igt_assert_f(!dec.truncated,
+		     "[%s]: .data ends mid-ASCII85 group after %" PRIu64 " of %" PRIu64
+		     " dwords, the dump was cut short\n",
+		     name, dwords, length / sizeof(uint32_t));
+
+	igt_assert_f(!dec.bad,
+		     "[%s]: .data is not valid ASCII85 at dword %" PRIu64
+		     " of %" PRIu64 " announced by .length\n",
+		     name, dwords, length / sizeof(uint32_t));
+
+	igt_assert_f(dwords * sizeof(uint32_t) == length,
+		     "[%s]: .length reports 0x%" PRIx64 " bytes but .data decodes to"
+		     " 0x%" PRIx64 " bytes\n",
+		     name, length, dwords * sizeof(uint32_t));
+
+	if (!expected_payload)
+		return;
+
+	expected_payload->seen = true;
+	igt_debug("Cross-validated 0x%" PRIx64 " bytes of VMA [%s]\n", length, name);
+}
+
+/**
+ * validate_devcoredump - Check every ASCII85 blob of a devcoredump
+ * @path: path of the devcoredump data file
+ * @payloads: buffers the test bound before hanging, or NULL
+ * @n_payloads: number of entries in @payloads
+ *
+ * Walks the whole dump, checks each blob's decoded size, and verifies that all
+ * test-created payloads are present with the expected contents.
+ */
+static void
+validate_devcoredump(const char *path, struct payload_bo *payloads, int n_payloads)
+{
+	char pending_name[MAX_BLOB_NAME_LEN] = {0};
+	char name[MAX_BLOB_NAME_LEN];
+	uint64_t pending_length = 0;
+	bool have_pending = false;
+	bool read_error;
+	size_t line_size = 0;
+	char *line = NULL;
+	const char *value;
+	int n_blobs = 0, read_errno, i;
+	FILE *f;
+
+	f = fopen(path, "r");
+	igt_assert_f(f, "Failed to open %s, errno=%d\n", path, errno);
+
+	/* .data lines can be megabytes long, so let getline() grow the buffer. */
+	while (getline(&line, &line_size, f) > 0) {
+		if (parse_blob_field(line, LENGTH_SUFFIX, name, sizeof(name), &value)) {
+			pending_length = strtoull(value, NULL, 0);
+			memcpy(pending_name, name, strlen(name) + 1);
+			have_pending = true;
+			continue;
+		}
+
+		if (parse_blob_field(line, ERROR_SUFFIX, name, sizeof(name), &value)) {
+			if (have_pending && !strcmp(name, pending_name))
+				have_pending = false;
+
+			igt_assert_f(!payload_by_name(name, payloads, n_payloads),
+				     "[%s]: kernel could not snapshot the buffer: %s",
+				     name, value);
+			continue;
+		}
+
+		if (!parse_blob_field(line, DATA_SUFFIX, name, sizeof(name), &value))
+			continue;
+
+		igt_assert_f(have_pending && !strcmp(name, pending_name),
+			     "[%s].data is not preceded by a matching .length line\n",
+			     name);
+
+		have_pending = false;
+		n_blobs++;
+		check_blob(name, pending_length, value, payloads, n_payloads);
+	}
+
+	read_error = ferror(f);
+	read_errno = read_error ? errno : 0;
+	free(line);
+	fclose(f);
+
+	igt_assert_f(!read_error, "Failed to read %s, errno=%d\n", path, read_errno);
+	igt_assert_f(!have_pending,
+		     "[%s].length has no matching .data or .error line\n",
+		     pending_name);
+
+	igt_assert_f(n_blobs, "No ASCII85 blob found in %s\n", path);
+	igt_debug("Validated %d ASCII85 blobs\n", n_blobs);
+
+	for (i = 0; i < n_payloads; i++)
+		igt_assert_f(payloads[i].seen,
+			     "VMA 0x%" PRIx64 " missing from the devcoredump VM state\n",
+			     payloads[i].addr);
+}
+
 static char
 *get_coredump_item(regex_t *regex, char **lines, const char *tag, int tag_index, int target_index)
 {
@@ -392,6 +749,8 @@ static void test_card(int fd)
 		check_item_u64(&regex, lines, "length:", addr,
 			       addr + BATCH_DW_COUNT * sizeof(u32), INDEX_VALUE, INDEX_KEY);
 
+		validate_devcoredump(path, NULL, 0);
+
 		/* clear devcoredump */
 		rm_devcoredump(path);
 		sleep(1);
@@ -404,10 +763,183 @@ static void test_card(int fd)
 	regfree(&regex);
 }
 
+/**
+ * hang_with_payloads - Hang @eci with dumpable buffers of known content
+ * @fd: xe device file descriptor
+ * @eci: engine to hang
+ * @payloads: buffers to create, fill and bind; handles are returned to the
+ *	      caller, which owns them
+ * @n_payloads: number of entries in @payloads
+ *
+ * Submits a batch that spins forever, so the job timeout fires and the driver
+ * writes a devcoredump. The payloads share the address space of that batch and
+ * are bound DUMPABLE, which is what tells the driver to copy their contents
+ * into the dump, giving us blobs whose expected bytes are known exactly.
+ */
+static void
+hang_with_payloads(int fd, struct drm_xe_engine_class_instance *eci,
+		   struct payload_bo *payloads, int n_payloads)
+{
+	struct drm_xe_sync sync = {
+		.type = DRM_XE_SYNC_TYPE_SYNCOBJ,
+		.flags = DRM_XE_SYNC_FLAG_SIGNAL,
+	};
+	struct drm_xe_exec exec = {
+		.num_batch_buffer = 1,
+		.num_syncs = 1,
+		.syncs = to_user_pointer(&sync),
+	};
+	struct xe_spin_opts spin_opts = { .addr = CAPTURE_SPIN_ADDRESS };
+	uint64_t spin_size = xe_bb_size(fd, sizeof(struct xe_spin));
+	uint32_t vm = xe_vm_create(fd, 0, 0);
+	uint32_t spin_bo, exec_queue, bind_syncobj, exec_syncobj;
+	struct xe_spin *spin;
+	int i;
+
+	spin_bo = xe_bo_create(fd, vm, spin_size, vram_if_possible(fd, eci->gt_id),
+			       DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM);
+	spin = xe_bo_map(fd, spin_bo, spin_size);
+
+	bind_syncobj = syncobj_create(fd, 0);
+	sync.handle = bind_syncobj;
+
+	__xe_vm_bind_assert(fd, vm, 0, spin_bo, 0, CAPTURE_SPIN_ADDRESS, spin_size,
+			    DRM_XE_VM_BIND_OP_MAP, DRM_XE_VM_BIND_FLAG_DUMPABLE,
+			    &sync, 1, 0, 0);
+	igt_assert(syncobj_wait(fd, &bind_syncobj, 1, INT64_MAX, 0, NULL));
+
+	for (i = 0; i < n_payloads; i++) {
+		uint32_t *map;
+		uint64_t j;
+
+		/* Use system memory so the large capture does not require large VRAM. */
+		payloads[i].handle = xe_bo_create(fd, vm, payloads[i].size,
+						  system_memory(fd), 0);
+		map = xe_bo_map(fd, payloads[i].handle, payloads[i].size);
+		for (j = 0; j < payloads[i].size / sizeof(*map); j++)
+			map[j] = payload_dword(payloads[i].payload_index, j);
+		munmap(map, payloads[i].size);
+
+		syncobj_reset(fd, &bind_syncobj, 1);
+		__xe_vm_bind_assert(fd, vm, 0, payloads[i].handle, 0, payloads[i].addr,
+				    payloads[i].size, DRM_XE_VM_BIND_OP_MAP,
+				    DRM_XE_VM_BIND_FLAG_DUMPABLE, &sync, 1, 0, 0);
+		igt_assert(syncobj_wait(fd, &bind_syncobj, 1, INT64_MAX, 0, NULL));
+	}
+
+	exec_queue = xe_exec_queue_create(fd, vm, eci, 0);
+	exec_syncobj = syncobj_create(fd, 0);
+
+	xe_spin_init(spin, &spin_opts);
+
+	sync.handle = exec_syncobj;
+	exec.exec_queue_id = exec_queue;
+	exec.address = CAPTURE_SPIN_ADDRESS;
+	xe_exec(fd, &exec);
+
+	xe_spin_wait_started(spin);
+
+	/* The job timeout resets the queue, which is what creates the dump */
+	igt_assert(syncobj_wait(fd, &exec_syncobj, 1, INT64_MAX, 0, NULL));
+
+	syncobj_destroy(fd, exec_syncobj);
+	syncobj_destroy(fd, bind_syncobj);
+	xe_exec_queue_destroy(fd, exec_queue);
+	munmap(spin, spin_size);
+	gem_close(fd, spin_bo);
+	xe_vm_destroy(fd, vm);
+}
+
+/**
+ * SUBTEST: decode-data
+ * Description: Create payloads with known contents, hang an engine, and
+ * 		verify the resulting coredump's blob lengths and payload
+ * 		contents before removing it
+ *
+ * SUBTEST: decode-data-large
+ * Description: Same as decode-data, but with enough data to exercise kernel's
+ * 		coredump chunking and the legacy size limit
+ */
+static void
+test_capture_payload(int fd, struct drm_xe_engine_class_instance *eci,
+		     int n_payloads, uint64_t payload_size)
+{
+	char path[MAX_SYSFS_PATH_LEN];
+	struct payload_bo *payloads;
+	int i;
+
+	/* Every buffer needs its own slice of the 32-bit value space */
+	igt_assert(payload_size / sizeof(uint32_t) <= PAYLOAD_INDEX_STRIDE &&
+		   n_payloads <= UINT32_MAX / PAYLOAD_INDEX_STRIDE);
+
+	payloads = calloc(n_payloads, sizeof(*payloads));
+	igt_assert(payloads);
+
+	for (i = 0; i < n_payloads; i++) {
+		payloads[i].addr = CAPTURE_PAYLOAD_ADDRESS + i * payload_size;
+		payloads[i].size = payload_size;
+		payloads[i].payload_index = i;
+	}
+
+	get_devcoredump_path(igt_device_get_card_index(fd), path);
+	rm_devcoredump(path);
+
+	/* Wait for the previous coredump to disappear before creating another. */
+	igt_assert_f(igt_wait(!devcoredump_exists(path), 5000, 100),
+		     "Devcoredump not removed, errno=%d.\n", errno);
+
+	hang_with_payloads(fd, eci, payloads, n_payloads);
+
+	/*
+	 * Close our BO handles; the snapshot holds BO references until it copies
+	 * their contents into kernel-owned buffers for the coredump.
+	 */
+	for (i = 0; i < n_payloads; i++)
+		gem_close(fd, payloads[i].handle);
+
+	igt_assert_f(igt_wait(devcoredump_exists(path), 5000, 100),
+		     "Devcoredump not created, a previous dump may still be held\n");
+
+	validate_devcoredump(path, payloads, n_payloads);
+
+	free(payloads);
+
+	rm_devcoredump(path);
+
+	/* Wait for the dump to disappear so its large buffers can be released. */
+	igt_assert_f(igt_wait(!devcoredump_exists(path), 5000, 100),
+		     "Devcoredump not removed, errno=%d.\n", errno);
+}
+
+/**
+ * require_capture_memory - Skip unless the machine can hold the whole capture
+ * @n_payloads: number of buffers the subtest binds
+ * @payload_size: size of each buffer
+ *
+ * Upper bound on the footprint: the payloads, the snapshot copy the kernel
+ * takes of them, the chunk the kernel renders and the longest line getline()
+ * has to buffer. Not all of them peak at the same instant. The rendering buffer
+ * is sized for the unfixed kernel, which is the one this has to survive.
+ */
+static void require_capture_memory(int n_payloads, uint64_t payload_size)
+{
+	uint64_t payload = (uint64_t)n_payloads * payload_size;
+	uint64_t encoded = ASCII85_ENCODED_SIZE(payload);
+	uint64_t rendered = encoded < DEVCOREDUMP_LEGACY_MAX_SIZE ?
+			    encoded : DEVCOREDUMP_LEGACY_MAX_SIZE;
+
+	igt_require_memory(1, 2 * payload + rendered +
+			   ASCII85_ENCODED_SIZE(payload_size), CHECK_RAM);
+}
+
 int igt_main()
 {
 	int xe;
-	struct drm_xe_engine_class_instance *hwe;
+	/*
+	 * The payload tests exercise VM capture and need one engine to trigger it.
+	 * The reset subtest separately iterates over every available engine.
+	 */
+	struct drm_xe_engine_class_instance *hwe, *hang_hwe = NULL;
 	u64 timeouts[DRM_XE_ENGINE_CLASS_VM_BIND] = {0};
 
 	igt_fixture() {
@@ -416,6 +948,8 @@ int igt_main()
 			/* Skip kernel only classes */
 			if (hwe->engine_class >= DRM_XE_ENGINE_CLASS_VM_BIND)
 				continue;
+			if (!hang_hwe)
+				hang_hwe = hwe;
 			/* Skip classes already set */
 			if (timeouts[hwe->engine_class])
 				continue;
@@ -433,6 +967,19 @@ int igt_main()
 	igt_subtest("reset")
 		test_card(xe);
 
+	igt_subtest("decode-data") {
+		igt_require(hang_hwe);
+		test_capture_payload(xe, hang_hwe, DECODE_PAYLOAD_COUNT,
+				     DECODE_PAYLOAD_SIZE);
+	}
+
+	igt_subtest("decode-data-large") {
+		igt_require(hang_hwe);
+		require_capture_memory(LARGE_PAYLOAD_COUNT, LARGE_PAYLOAD_SIZE);
+		test_capture_payload(xe, hang_hwe, LARGE_PAYLOAD_COUNT,
+				     LARGE_PAYLOAD_SIZE);
+	}
+
 	igt_fixture() {
 		xe_for_each_engine(xe, hwe) {
 			u64 store, timeout;
-- 
2.43.0


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

* ✓ Xe.CI.BAT: success for tests/intel/xe_exec_capture: Add coredump decode validation subtests
  2026-08-16 18:09 [PATCH 0/1] tests/intel/xe_exec_capture: Add coredump decode validation subtests Jan Maslak
  2026-08-16 18:09 ` [PATCH 1/1] " Jan Maslak
@ 2026-08-16 18:43 ` Patchwork
  2026-08-16 19:00 ` ✓ i915.CI.BAT: " Patchwork
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2026-08-16 18:43 UTC (permalink / raw)
  To: Jan Maslak; +Cc: igt-dev

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

== Series Details ==

Series: tests/intel/xe_exec_capture: Add coredump decode validation subtests
URL   : https://patchwork.freedesktop.org/series/172303/
State : success

== Summary ==

CI Bug Log - changes from XEIGT_9057_BAT -> XEIGTPW_15686_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (13 -> 13)
------------------------------

  No changes in participating hosts


Changes
-------

  No changes found


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

  * IGT: IGT_9057 -> IGTPW_15686
  * Linux: xe-5599-9832bc7a458a4a67e68dcf96927588859c1994f3 -> xe-5605-ceef0899403ceea5643d80a02bfdf9587f3845b8

  IGTPW_15686: 15686
  IGT_9057: 8f7d5198bdb1c5af7c97b967a0bcbe77b653e8a0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-5599-9832bc7a458a4a67e68dcf96927588859c1994f3: 9832bc7a458a4a67e68dcf96927588859c1994f3
  xe-5605-ceef0899403ceea5643d80a02bfdf9587f3845b8: ceef0899403ceea5643d80a02bfdf9587f3845b8

== Logs ==

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

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

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

* ✓ i915.CI.BAT: success for tests/intel/xe_exec_capture: Add coredump decode validation subtests
  2026-08-16 18:09 [PATCH 0/1] tests/intel/xe_exec_capture: Add coredump decode validation subtests Jan Maslak
  2026-08-16 18:09 ` [PATCH 1/1] " Jan Maslak
  2026-08-16 18:43 ` ✓ Xe.CI.BAT: success for " Patchwork
@ 2026-08-16 19:00 ` Patchwork
  2026-08-16 20:04 ` ✗ Xe.CI.FULL: failure " Patchwork
  2026-08-17 21:26 ` ✗ i915.CI.Full: " Patchwork
  4 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2026-08-16 19:00 UTC (permalink / raw)
  To: Jan Maslak; +Cc: igt-dev

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

== Series Details ==

Series: tests/intel/xe_exec_capture: Add coredump decode validation subtests
URL   : https://patchwork.freedesktop.org/series/172303/
State : success

== Summary ==

CI Bug Log - changes from IGT_9057 -> IGTPW_15686
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (36 -> 31)
------------------------------

  Missing    (5): bat-mtlp-9 fi-snb-2520m bat-jsl-5 bat-adlp-6 bat-dg2-13 

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

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

### IGT changes ###

#### Possible fixes ####

  * igt@i915_selftest@live@perf:
    - fi-kbl-7567u:       [DMESG-WARN][1] ([i915#13735]) -> [PASS][2] +13 other tests pass
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_9057/fi-kbl-7567u/igt@i915_selftest@live@perf.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/fi-kbl-7567u/igt@i915_selftest@live@perf.html

  
  [i915#13735]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13735


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

  * CI: CI-20190529 -> None
  * IGT: IGT_9057 -> IGTPW_15686
  * Linux: CI_DRM_19000 -> CI_DRM_19004

  CI-20190529: 20190529
  CI_DRM_19000: 9832bc7a458a4a67e68dcf96927588859c1994f3 @ git://anongit.freedesktop.org/gfx-ci/linux
  CI_DRM_19004: ceef0899403ceea5643d80a02bfdf9587f3845b8 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_15686: 15686
  IGT_9057: 8f7d5198bdb1c5af7c97b967a0bcbe77b653e8a0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* ✗ Xe.CI.FULL: failure for tests/intel/xe_exec_capture: Add coredump decode validation subtests
  2026-08-16 18:09 [PATCH 0/1] tests/intel/xe_exec_capture: Add coredump decode validation subtests Jan Maslak
                   ` (2 preceding siblings ...)
  2026-08-16 19:00 ` ✓ i915.CI.BAT: " Patchwork
@ 2026-08-16 20:04 ` Patchwork
  2026-08-17 21:26 ` ✗ i915.CI.Full: " Patchwork
  4 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2026-08-16 20:04 UTC (permalink / raw)
  To: Jan Maslak; +Cc: igt-dev

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

== Series Details ==

Series: tests/intel/xe_exec_capture: Add coredump decode validation subtests
URL   : https://patchwork.freedesktop.org/series/172303/
State : failure

== Summary ==

CI Bug Log - changes from XEIGT_9057_FULL -> XEIGTPW_15686_FULL
====================================================

Summary
-------

  **FAILURE**

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

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_video_decode0:
    - shard-lnl:          [PASS][1] -> [FAIL][2] +2 other tests fail
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9057/shard-lnl-1/igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_video_decode0.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-lnl-7/igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_video_decode0.html

  * igt@xe_wedged@basic-wedged:
    - shard-lnl:          [PASS][3] -> [DMESG-WARN][4] +1 other test dmesg-warn
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9057/shard-lnl-7/igt@xe_wedged@basic-wedged.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-lnl-1/igt@xe_wedged@basic-wedged.html
    - shard-bmg:          [PASS][5] -> [DMESG-WARN][6]
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9057/shard-bmg-5/igt@xe_wedged@basic-wedged.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-9/igt@xe_wedged@basic-wedged.html

  
#### Warnings ####

  * igt@xe_survivability@runtime-survivability:
    - shard-bmg:          [DMESG-WARN][7] ([Intel XE#6627] / [Intel XE#7419]) -> [DMESG-WARN][8]
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9057/shard-bmg-1/igt@xe_survivability@runtime-survivability.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-4/igt@xe_survivability@runtime-survivability.html

  
New tests
---------

  New tests have been introduced between XEIGT_9057_FULL and XEIGTPW_15686_FULL:

### New IGT tests (2) ###

  * igt@xe_exec_capture@decode-data:
    - Statuses : 1 pass(s)
    - Exec time: [2.93] s

  * igt@xe_exec_capture@decode-data-large:
    - Statuses : 2 pass(s)
    - Exec time: [14.75, 17.15] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@intel_hwmon@hwmon-write:
    - shard-bmg:          NOTRUN -> [FAIL][9] ([Intel XE#8583])
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-3/igt@intel_hwmon@hwmon-write.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][10] ([Intel XE#2327]) +2 other tests skip
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-3/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-270:
    - shard-bmg:          NOTRUN -> [SKIP][11] ([Intel XE#1124]) +7 other tests skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-4/igt@kms_big_fb@y-tiled-64bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-addfb-size-overflow:
    - shard-bmg:          NOTRUN -> [SKIP][12] ([Intel XE#610] / [Intel XE#7387])
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-4/igt@kms_big_fb@y-tiled-addfb-size-overflow.html

  * igt@kms_bw@connected-linear-tiling-3-displays-target-2160x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][13] ([Intel XE#7679])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-2/igt@kms_bw@connected-linear-tiling-3-displays-target-2160x1440p.html

  * igt@kms_bw@linear-tiling-4-displays-target-2560x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][14] ([Intel XE#367]) +4 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-2/igt@kms_bw@linear-tiling-4-displays-target-2560x1440p.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][15] ([Intel XE#3432]) +1 other test skip
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-2/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
    - shard-bmg:          NOTRUN -> [SKIP][16] ([Intel XE#2887]) +8 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-4/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_cdclk@plane-scaling:
    - shard-bmg:          NOTRUN -> [SKIP][17] ([Intel XE#2724] / [Intel XE#7449])
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-9/igt@kms_cdclk@plane-scaling.html

  * igt@kms_chamelium_color@ctm-0-75:
    - shard-bmg:          NOTRUN -> [SKIP][18] ([Intel XE#2325] / [Intel XE#7358])
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-8/igt@kms_chamelium_color@ctm-0-75.html

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#2252]) +3 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  * igt@kms_content_protection@atomic-dpms-hdcp14@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [FAIL][20] ([Intel XE#3304] / [Intel XE#7374]) +1 other test fail
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-4/igt@kms_content_protection@atomic-dpms-hdcp14@pipe-a-dp-2.html

  * igt@kms_content_protection@atomic-hdcp14:
    - shard-bmg:          NOTRUN -> [FAIL][21] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +1 other test fail
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-8/igt@kms_content_protection@atomic-hdcp14.html

  * igt@kms_content_protection@dp-mst-lic-type-0-hdcp14:
    - shard-bmg:          NOTRUN -> [SKIP][22] ([Intel XE#6974])
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-10/igt@kms_content_protection@dp-mst-lic-type-0-hdcp14.html

  * igt@kms_content_protection@lic-type-1:
    - shard-bmg:          NOTRUN -> [SKIP][23] ([Intel XE#7642])
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-3/igt@kms_content_protection@lic-type-1.html

  * igt@kms_cursor_crc@cursor-offscreen-32x32:
    - shard-bmg:          NOTRUN -> [SKIP][24] ([Intel XE#2320]) +5 other tests skip
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-2/igt@kms_cursor_crc@cursor-offscreen-32x32.html

  * igt@kms_cursor_crc@cursor-random-512x512:
    - shard-bmg:          NOTRUN -> [SKIP][25] ([Intel XE#2321] / [Intel XE#7355]) +1 other test skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-10/igt@kms_cursor_crc@cursor-random-512x512.html

  * igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
    - shard-bmg:          NOTRUN -> [SKIP][26] ([Intel XE#1508])
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-9/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html

  * igt@kms_dp_link_training@uhbr-sst:
    - shard-bmg:          NOTRUN -> [SKIP][27] ([Intel XE#4354] / [Intel XE#5870])
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-7/igt@kms_dp_link_training@uhbr-sst.html

  * igt@kms_dsc@dsc-basic-ultrajoiner:
    - shard-bmg:          NOTRUN -> [SKIP][28] ([Intel XE#8265]) +3 other tests skip
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-8/igt@kms_dsc@dsc-basic-ultrajoiner.html

  * igt@kms_fbcon_fbt@psr:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#8680])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-2/igt@kms_fbcon_fbt@psr.html

  * igt@kms_feature_discovery@psr2:
    - shard-bmg:          NOTRUN -> [SKIP][30] ([Intel XE#2374] / [Intel XE#6128])
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-4/igt@kms_feature_discovery@psr2.html

  * igt@kms_flip@flip-vs-expired-vblank@b-edp1:
    - shard-lnl:          [PASS][31] -> [FAIL][32] ([Intel XE#301]) +2 other tests fail
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9057/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html

  * igt@kms_flip@flip-vs-expired-vblank@c-edp1:
    - shard-lnl:          [PASS][33] -> [FAIL][34] ([Intel XE#301] / [Intel XE#3149]) +1 other test fail
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9057/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
    - shard-bmg:          NOTRUN -> [SKIP][35] ([Intel XE#7178] / [Intel XE#7349]) +2 other tests skip
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-7/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling:
    - shard-bmg:          NOTRUN -> [SKIP][36] ([Intel XE#7178] / [Intel XE#7351]) +2 other tests skip
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-8/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-p016-linear-to-p016-linear-reflect-x:
    - shard-bmg:          NOTRUN -> [SKIP][37] ([Intel XE#7179])
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-6/igt@kms_flip_scaled_crc@flip-p016-linear-to-p016-linear-reflect-x.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt:
    - shard-bmg:          NOTRUN -> [SKIP][38] ([Intel XE#4141]) +7 other tests skip
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y:
    - shard-bmg:          NOTRUN -> [SKIP][39] ([Intel XE#2352] / [Intel XE#7399])
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html

  * igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][40] ([Intel XE#2311]) +50 other tests skip
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-9/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-abgr161616f-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][41] ([Intel XE#7061]) +3 other tests skip
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsrhdr-abgr161616f-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-argb161616f-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][42] ([Intel XE#7061] / [Intel XE#7356]) +3 other tests skip
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-8/igt@kms_frontbuffer_tracking@psr-argb161616f-draw-blt.html

  * igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-spr-indfb-move:
    - shard-bmg:          NOTRUN -> [SKIP][43] ([Intel XE#2313]) +54 other tests skip
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-7/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-spr-indfb-move.html

  * igt@kms_joiner@invalid-modeset-big-joiner:
    - shard-bmg:          NOTRUN -> [SKIP][44] ([Intel XE#6901])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-3/igt@kms_joiner@invalid-modeset-big-joiner.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-bmg:          NOTRUN -> [SKIP][45] ([Intel XE#4090] / [Intel XE#7443])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-9/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_pipe_stress@stress-xrgb8888-yftiled:
    - shard-bmg:          NOTRUN -> [SKIP][46] ([Intel XE#6912] / [Intel XE#7375])
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-7/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html

  * igt@kms_plane@pixel-format-yf-tiled-modifier:
    - shard-bmg:          NOTRUN -> [SKIP][47] ([Intel XE#7283]) +3 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-9/igt@kms_plane@pixel-format-yf-tiled-modifier.html

  * igt@kms_plane_multiple@2x-tiling-y:
    - shard-bmg:          NOTRUN -> [SKIP][48] ([Intel XE#5021] / [Intel XE#7377])
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-9/igt@kms_plane_multiple@2x-tiling-y.html

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

  * igt@kms_pm_dc@dc3co-framedrop-check@pr-xrgb8888:
    - shard-bmg:          NOTRUN -> [SKIP][50] ([Intel XE#8395] / [Intel XE#8396]) +1 other test skip
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-8/igt@kms_pm_dc@dc3co-framedrop-check@pr-xrgb8888.html

  * igt@kms_pm_dc@dc3co-framedrop-check@psr2-xrgb8888:
    - shard-bmg:          NOTRUN -> [SKIP][51] ([Intel XE#8396]) +1 other test skip
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-8/igt@kms_pm_dc@dc3co-framedrop-check@psr2-xrgb8888.html

  * igt@kms_pm_rpm@dpms-lpsp:
    - shard-bmg:          NOTRUN -> [SKIP][52] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#7383] / [Intel XE#836])
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-4/igt@kms_pm_rpm@dpms-lpsp.html

  * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb:
    - shard-bmg:          NOTRUN -> [SKIP][53] ([Intel XE#1489]) +6 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-2/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr@psr2-sprite-blt:
    - shard-bmg:          NOTRUN -> [SKIP][54] ([Intel XE#2234] / [Intel XE#2850]) +13 other tests skip
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-5/igt@kms_psr@psr2-sprite-blt.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-bmg:          NOTRUN -> [SKIP][55] ([Intel XE#2330] / [Intel XE#5813])
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
    - shard-bmg:          NOTRUN -> [SKIP][56] ([Intel XE#3904] / [Intel XE#7342]) +1 other test skip
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-3/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html

  * igt@kms_scaling_modes@scaling-mode-full-aspect:
    - shard-bmg:          NOTRUN -> [SKIP][57] ([Intel XE#2413])
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-9/igt@kms_scaling_modes@scaling-mode-full-aspect.html

  * igt@kms_setmode@invalid-clone-exclusive-crtc:
    - shard-bmg:          NOTRUN -> [SKIP][58] ([Intel XE#1435] / [Intel XE#8695])
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-1/igt@kms_setmode@invalid-clone-exclusive-crtc.html

  * igt@kms_sharpness_filter@filter-scaler-downscale:
    - shard-bmg:          NOTRUN -> [SKIP][59] ([Intel XE#6503]) +2 other tests skip
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-1/igt@kms_sharpness_filter@filter-scaler-downscale.html

  * igt@kms_tv_load_detect@load-detect:
    - shard-bmg:          NOTRUN -> [SKIP][60] ([Intel XE#2450] / [Intel XE#5857])
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-9/igt@kms_tv_load_detect@load-detect.html

  * igt@kms_vrr@flip-basic:
    - shard-bmg:          NOTRUN -> [SKIP][61] ([Intel XE#1499])
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-3/igt@kms_vrr@flip-basic.html

  * igt@kms_vrr@lobf-dc3co:
    - shard-bmg:          NOTRUN -> [SKIP][62] ([Intel XE#8397])
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-4/igt@kms_vrr@lobf-dc3co.html

  * igt@xe_create@multigpu-create-massive-size:
    - shard-bmg:          NOTRUN -> [SKIP][63] ([Intel XE#2504] / [Intel XE#7319] / [Intel XE#7350])
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-4/igt@xe_create@multigpu-create-massive-size.html

  * igt@xe_evict@evict-small-external-multi-queue-cm:
    - shard-bmg:          NOTRUN -> [SKIP][64] ([Intel XE#8370])
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-2/igt@xe_evict@evict-small-external-multi-queue-cm.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate-race:
    - shard-bmg:          NOTRUN -> [SKIP][65] ([Intel XE#2322] / [Intel XE#7372]) +8 other tests skip
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-10/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate-race.html

  * igt@xe_exec_fault_mode@many-multi-queue-rebind-prefetch:
    - shard-bmg:          NOTRUN -> [SKIP][66] ([Intel XE#8374]) +12 other tests skip
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-9/igt@xe_exec_fault_mode@many-multi-queue-rebind-prefetch.html

  * igt@xe_exec_multi_queue@few-execs-preempt-mode-fault-priority:
    - shard-bmg:          NOTRUN -> [SKIP][67] ([Intel XE#8364]) +24 other tests skip
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-10/igt@xe_exec_multi_queue@few-execs-preempt-mode-fault-priority.html

  * igt@xe_exec_reset@multi-queue-cat-error-on-secondary:
    - shard-bmg:          NOTRUN -> [SKIP][68] ([Intel XE#8369]) +1 other test skip
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-3/igt@xe_exec_reset@multi-queue-cat-error-on-secondary.html

  * igt@xe_exec_threads@threads-multi-queue-mixed-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][69] ([Intel XE#8378]) +6 other tests skip
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-4/igt@xe_exec_threads@threads-multi-queue-mixed-rebind.html

  * igt@xe_fault_injection@inject-fault-probe-function-xe_device_probe_early:
    - shard-bmg:          [PASS][70] -> [ABORT][71] ([Intel XE#8007]) +2 other tests abort
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9057/shard-bmg-7/igt@xe_fault_injection@inject-fault-probe-function-xe_device_probe_early.html
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-6/igt@xe_fault_injection@inject-fault-probe-function-xe_device_probe_early.html

  * igt@xe_fault_injection@vm-create-fail-xe_exec_queue_create_bind:
    - shard-bmg:          NOTRUN -> [ABORT][72] ([Intel XE#8007])
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-1/igt@xe_fault_injection@vm-create-fail-xe_exec_queue_create_bind.html

  * igt@xe_live_ktest@xe_eudebug:
    - shard-bmg:          NOTRUN -> [SKIP][73] ([Intel XE#2833])
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-8/igt@xe_live_ktest@xe_eudebug.html

  * igt@xe_multigpu_svm@mgpu-atomic-op-conflict:
    - shard-bmg:          NOTRUN -> [SKIP][74] ([Intel XE#6964]) +4 other tests skip
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-8/igt@xe_multigpu_svm@mgpu-atomic-op-conflict.html

  * igt@xe_page_reclaim@boundary-split:
    - shard-bmg:          NOTRUN -> [SKIP][75] ([Intel XE#7793]) +4 other tests skip
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-9/igt@xe_page_reclaim@boundary-split.html

  * igt@xe_pat@pat-sw-hw-suspend:
    - shard-bmg:          NOTRUN -> [FAIL][76] ([Intel XE#7695])
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-7/igt@xe_pat@pat-sw-hw-suspend.html

  * igt@xe_pm@s2idle-d3cold-basic-exec:
    - shard-bmg:          NOTRUN -> [SKIP][77] ([Intel XE#2284] / [Intel XE#7370]) +2 other tests skip
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-7/igt@xe_pm@s2idle-d3cold-basic-exec.html

  * igt@xe_pmu@engine-activity-accuracy-90:
    - shard-lnl:          [PASS][78] -> [FAIL][79] ([Intel XE#8555])
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9057/shard-lnl-1/igt@xe_pmu@engine-activity-accuracy-90.html
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-lnl-7/igt@xe_pmu@engine-activity-accuracy-90.html

  * igt@xe_prefetch_fault@prefetch-fault-svm:
    - shard-bmg:          NOTRUN -> [SKIP][80] ([Intel XE#7599])
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-2/igt@xe_prefetch_fault@prefetch-fault-svm.html

  * igt@xe_pxp@pxp-src-to-pxp-dest-rendercopy:
    - shard-bmg:          NOTRUN -> [SKIP][81] ([Intel XE#4733] / [Intel XE#7417])
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-8/igt@xe_pxp@pxp-src-to-pxp-dest-rendercopy.html

  * igt@xe_query@multigpu-query-invalid-size:
    - shard-bmg:          NOTRUN -> [SKIP][82] ([Intel XE#944]) +1 other test skip
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-8/igt@xe_query@multigpu-query-invalid-size.html

  
#### Possible fixes ####

  * igt@kms_pm_dc@dc6-psr:
    - shard-lnl:          [FAIL][83] ([Intel XE#8399]) -> [PASS][84]
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9057/shard-lnl-5/igt@kms_pm_dc@dc6-psr.html
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-lnl-5/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-lnl:          [SKIP][85] ([Intel XE#8361]) -> [PASS][86]
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9057/shard-lnl-2/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-lnl-8/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@xe_module_load@reload-no-display:
    - shard-bmg:          [ABORT][87] ([Intel XE#8007]) -> [PASS][88] +1 other test pass
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9057/shard-bmg-2/igt@xe_module_load@reload-no-display.html
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-4/igt@xe_module_load@reload-no-display.html

  * igt@xe_sriov_flr@flr-vfs-parallel:
    - shard-bmg:          [FAIL][89] ([Intel XE#6569]) -> [PASS][90] +1 other test pass
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9057/shard-bmg-8/igt@xe_sriov_flr@flr-vfs-parallel.html
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-5/igt@xe_sriov_flr@flr-vfs-parallel.html

  
#### Warnings ####

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-bmg:          [SKIP][91] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][92] ([Intel XE#1729] / [Intel XE#7424])
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9057/shard-bmg-6/igt@kms_tiled_display@basic-test-pattern.html
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-bmg:          [SKIP][93] ([Intel XE#2509] / [Intel XE#7437]) -> [SKIP][94] ([Intel XE#2426] / [Intel XE#5848])
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9057/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-7/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@sriov_basic@pf-unbind-with-vfs-enabled-numvfs-all:
    - shard-bmg:          [FAIL][95] ([Intel XE#7992]) -> [ABORT][96] ([Intel XE#8868])
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9057/shard-bmg-8/igt@sriov_basic@pf-unbind-with-vfs-enabled-numvfs-all.html
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15686/shard-bmg-8/igt@sriov_basic@pf-unbind-with-vfs-enabled-numvfs-all.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [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#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
  [Intel XE#1508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1508
  [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [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#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [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#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
  [Intel XE#2352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2352
  [Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374
  [Intel XE#2413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2413
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2450]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2450
  [Intel XE#2504]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2504
  [Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
  [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#2833]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2833
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
  [Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
  [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4090]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4090
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
  [Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813
  [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
  [Intel XE#5857]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5857
  [Intel XE#5870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5870
  [Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
  [Intel XE#6128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6128
  [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
  [Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569
  [Intel XE#6627]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6627
  [Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
  [Intel XE#6901]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6901
  [Intel XE#6912]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6912
  [Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
  [Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
  [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
  [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
  [Intel XE#7179]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7179
  [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
  [Intel XE#7319]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7319
  [Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
  [Intel XE#7349]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7349
  [Intel XE#7350]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7350
  [Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
  [Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355
  [Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
  [Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
  [Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370
  [Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
  [Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
  [Intel XE#7375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7375
  [Intel XE#7377]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7377
  [Intel XE#7383]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7383
  [Intel XE#7387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7387
  [Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399
  [Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
  [Intel XE#7419]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7419
  [Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
  [Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437
  [Intel XE#7443]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7443
  [Intel XE#7449]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7449
  [Intel XE#7599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7599
  [Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
  [Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
  [Intel XE#7695]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7695
  [Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
  [Intel XE#7992]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7992
  [Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007
  [Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
  [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
  [Intel XE#8361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8361
  [Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
  [Intel XE#8369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8369
  [Intel XE#8370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8370
  [Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374
  [Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378
  [Intel XE#8395]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8395
  [Intel XE#8396]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8396
  [Intel XE#8397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8397
  [Intel XE#8399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8399
  [Intel XE#8555]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8555
  [Intel XE#8583]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8583
  [Intel XE#8680]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8680
  [Intel XE#8695]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8695
  [Intel XE#8868]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8868
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944


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

  * IGT: IGT_9057 -> IGTPW_15686
  * Linux: xe-5599-9832bc7a458a4a67e68dcf96927588859c1994f3 -> xe-5605-ceef0899403ceea5643d80a02bfdf9587f3845b8

  IGTPW_15686: 15686
  IGT_9057: 8f7d5198bdb1c5af7c97b967a0bcbe77b653e8a0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-5599-9832bc7a458a4a67e68dcf96927588859c1994f3: 9832bc7a458a4a67e68dcf96927588859c1994f3
  xe-5605-ceef0899403ceea5643d80a02bfdf9587f3845b8: ceef0899403ceea5643d80a02bfdf9587f3845b8

== Logs ==

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

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

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

* ✗ i915.CI.Full: failure for tests/intel/xe_exec_capture: Add coredump decode validation subtests
  2026-08-16 18:09 [PATCH 0/1] tests/intel/xe_exec_capture: Add coredump decode validation subtests Jan Maslak
                   ` (3 preceding siblings ...)
  2026-08-16 20:04 ` ✗ Xe.CI.FULL: failure " Patchwork
@ 2026-08-17 21:26 ` Patchwork
  4 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2026-08-17 21:26 UTC (permalink / raw)
  To: Jan Maslak; +Cc: igt-dev

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

== Series Details ==

Series: tests/intel/xe_exec_capture: Add coredump decode validation subtests
URL   : https://patchwork.freedesktop.org/series/172303/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_19004_full -> IGTPW_15686_full
====================================================

Summary
-------

  **FAILURE**

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

Participating hosts (10 -> 10)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@i915_pm_rpm@gem-execbuf-stress:
    - shard-tglu-1:       NOTRUN -> [INCOMPLETE][1] +1 other test incomplete
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@i915_pm_rpm@gem-execbuf-stress.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@api_intel_bb@object-reloc-keep-cache:
    - shard-rkl:          NOTRUN -> [SKIP][2] ([i915#8411])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@api_intel_bb@object-reloc-keep-cache.html

  * igt@gem_basic@multigpu-create-close:
    - shard-rkl:          NOTRUN -> [SKIP][3] ([i915#7697])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-7/igt@gem_basic@multigpu-create-close.html

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

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

  * igt@gem_ccs@suspend-resume@tile4-compressed-compfmt0-lmem0-lmem0:
    - shard-dg2:          NOTRUN -> [INCOMPLETE][6] ([i915#13356] / [i915#16348])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-4/igt@gem_ccs@suspend-resume@tile4-compressed-compfmt0-lmem0-lmem0.html

  * igt@gem_create@create-ext-cpu-access-big:
    - shard-tglu:         NOTRUN -> [SKIP][7] ([i915#6335])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-6/igt@gem_create@create-ext-cpu-access-big.html
    - shard-mtlp:         NOTRUN -> [SKIP][8] ([i915#6335])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-2/igt@gem_create@create-ext-cpu-access-big.html
    - shard-dg2:          NOTRUN -> [FAIL][9] ([i915#15454])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-5/igt@gem_create@create-ext-cpu-access-big.html
    - shard-rkl:          NOTRUN -> [SKIP][10] ([i915#14544] / [i915#6335])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@gem_create@create-ext-cpu-access-big.html

  * igt@gem_create@create-ext-set-pat:
    - shard-rkl:          NOTRUN -> [SKIP][11] ([i915#8562])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-2/igt@gem_create@create-ext-set-pat.html

  * igt@gem_ctx_isolation@preservation-s3:
    - shard-rkl:          [PASS][12] -> [INCOMPLETE][13] ([i915#13356]) +2 other tests incomplete
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-4/igt@gem_ctx_isolation@preservation-s3.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@gem_ctx_isolation@preservation-s3.html

  * igt@gem_ctx_sseu@invalid-args:
    - shard-rkl:          NOTRUN -> [SKIP][14] ([i915#280])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-2/igt@gem_ctx_sseu@invalid-args.html

  * igt@gem_eio@in-flight-suspend:
    - shard-rkl:          [PASS][15] -> [ABORT][16] ([i915#15131])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-8/igt@gem_eio@in-flight-suspend.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-1/igt@gem_eio@in-flight-suspend.html
    - shard-glk:          NOTRUN -> [INCOMPLETE][17] ([i915#13390])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk8/igt@gem_eio@in-flight-suspend.html

  * igt@gem_eio@kms:
    - shard-rkl:          [PASS][18] -> [DMESG-WARN][19] ([i915#13363])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-8/igt@gem_eio@kms.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-2/igt@gem_eio@kms.html
    - shard-tglu:         NOTRUN -> [DMESG-WARN][20] ([i915#13363])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-3/igt@gem_eio@kms.html

  * igt@gem_exec_balancer@parallel-dmabuf-import-out-fence:
    - shard-tglu:         NOTRUN -> [SKIP][21] ([i915#4525])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-10/igt@gem_exec_balancer@parallel-dmabuf-import-out-fence.html

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

  * igt@gem_exec_params@rsvd2-dirt:
    - shard-dg2:          NOTRUN -> [SKIP][23] ([i915#5107])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-8/igt@gem_exec_params@rsvd2-dirt.html

  * igt@gem_exec_reloc@basic-cpu-noreloc:
    - shard-dg2:          NOTRUN -> [SKIP][24] ([i915#3281]) +1 other test skip
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-1/igt@gem_exec_reloc@basic-cpu-noreloc.html
    - shard-dg1:          NOTRUN -> [SKIP][25] ([i915#3281])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-17/igt@gem_exec_reloc@basic-cpu-noreloc.html
    - shard-mtlp:         NOTRUN -> [SKIP][26] ([i915#3281])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-7/igt@gem_exec_reloc@basic-cpu-noreloc.html

  * igt@gem_exec_reloc@basic-gtt-cpu:
    - shard-rkl:          NOTRUN -> [SKIP][27] ([i915#14544] / [i915#3281])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@gem_exec_reloc@basic-gtt-cpu.html

  * igt@gem_exec_reloc@basic-gtt-read:
    - shard-rkl:          NOTRUN -> [SKIP][28] ([i915#3281]) +9 other tests skip
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-2/igt@gem_exec_reloc@basic-gtt-read.html

  * igt@gem_exec_schedule@semaphore-power:
    - shard-rkl:          NOTRUN -> [SKIP][29] ([i915#7276])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@gem_exec_schedule@semaphore-power.html

  * igt@gem_exec_suspend@basic-s4-devices:
    - shard-rkl:          [PASS][30] -> [FAIL][31] ([i915#16594]) +1 other test fail
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-2/igt@gem_exec_suspend@basic-s4-devices.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-2/igt@gem_exec_suspend@basic-s4-devices.html
    - shard-tglu:         [PASS][32] -> [FAIL][33] ([i915#16594]) +1 other test fail
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-tglu-8/igt@gem_exec_suspend@basic-s4-devices.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-3/igt@gem_exec_suspend@basic-s4-devices.html
    - shard-mtlp:         [PASS][34] -> [FAIL][35] ([i915#16594]) +1 other test fail
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-mtlp-1/igt@gem_exec_suspend@basic-s4-devices.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-8/igt@gem_exec_suspend@basic-s4-devices.html

  * igt@gem_fence_thrash@bo-write-verify-threaded-none:
    - shard-dg2:          NOTRUN -> [SKIP][36] ([i915#4860])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-3/igt@gem_fence_thrash@bo-write-verify-threaded-none.html

  * igt@gem_fenced_exec_thrash@no-spare-fences-busy-interruptible:
    - shard-dg1:          NOTRUN -> [SKIP][37] ([i915#4860])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-15/igt@gem_fenced_exec_thrash@no-spare-fences-busy-interruptible.html

  * igt@gem_lmem_swapping@heavy-verify-multi-ccs:
    - shard-tglu-1:       NOTRUN -> [SKIP][38] ([i915#4613])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html

  * igt@gem_lmem_swapping@heavy-verify-random-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][39] ([i915#4613]) +2 other tests skip
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-4/igt@gem_lmem_swapping@heavy-verify-random-ccs.html

  * igt@gem_lmem_swapping@random:
    - shard-glk:          NOTRUN -> [SKIP][40] ([i915#4613]) +3 other tests skip
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk8/igt@gem_lmem_swapping@random.html

  * igt@gem_lmem_swapping@smem-oom:
    - shard-tglu:         NOTRUN -> [SKIP][41] ([i915#4613]) +1 other test skip
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-2/igt@gem_lmem_swapping@smem-oom.html
    - shard-mtlp:         NOTRUN -> [SKIP][42] ([i915#4613])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-2/igt@gem_lmem_swapping@smem-oom.html
    - shard-rkl:          NOTRUN -> [SKIP][43] ([i915#14544] / [i915#4613])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@gem_lmem_swapping@smem-oom.html

  * igt@gem_partial_pwrite_pread@reads:
    - shard-rkl:          NOTRUN -> [SKIP][44] ([i915#3282]) +5 other tests skip
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@gem_partial_pwrite_pread@reads.html

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

  * igt@gem_pwrite@basic-exhaustion:
    - shard-glk10:        NOTRUN -> [WARN][46] ([i915#14702] / [i915#2658])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk10/igt@gem_pwrite@basic-exhaustion.html

  * igt@gem_pxp@hw-rejects-pxp-buffer:
    - shard-tglu-1:       NOTRUN -> [SKIP][47] ([i915#13398])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@gem_pxp@hw-rejects-pxp-buffer.html

  * igt@gem_pxp@hw-rejects-pxp-context:
    - shard-rkl:          NOTRUN -> [SKIP][48] ([i915#13717] / [i915#14544])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@gem_pxp@hw-rejects-pxp-context.html

  * igt@gem_pxp@regular-baseline-src-copy-readible:
    - shard-rkl:          NOTRUN -> [SKIP][49] ([i915#4270])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@gem_pxp@regular-baseline-src-copy-readible.html

  * igt@gem_pxp@reject-modify-context-protection-off-3:
    - shard-dg2:          NOTRUN -> [SKIP][50] ([i915#4270])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-3/igt@gem_pxp@reject-modify-context-protection-off-3.html

  * igt@gem_readwrite@beyond-eob:
    - shard-dg2:          NOTRUN -> [SKIP][51] ([i915#3282]) +2 other tests skip
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-8/igt@gem_readwrite@beyond-eob.html

  * igt@gem_render_copy@y-tiled-to-vebox-x-tiled:
    - shard-mtlp:         NOTRUN -> [SKIP][52] ([i915#8428])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-4/igt@gem_render_copy@y-tiled-to-vebox-x-tiled.html

  * igt@gem_render_copy@yf-tiled-ccs-to-y-tiled:
    - shard-dg2:          NOTRUN -> [SKIP][53] ([i915#5190] / [i915#8428]) +1 other test skip
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-8/igt@gem_render_copy@yf-tiled-ccs-to-y-tiled.html

  * igt@gem_softpin@noreloc-s3:
    - shard-glk11:        NOTRUN -> [INCOMPLETE][54] ([i915#13809] / [i915#16193])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk11/igt@gem_softpin@noreloc-s3.html

  * igt@gem_tiling_max_stride:
    - shard-dg2:          NOTRUN -> [SKIP][55] ([i915#4077]) +5 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-3/igt@gem_tiling_max_stride.html
    - shard-dg1:          NOTRUN -> [SKIP][56] ([i915#4077]) +2 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-17/igt@gem_tiling_max_stride.html
    - shard-mtlp:         NOTRUN -> [SKIP][57] ([i915#4077]) +1 other test skip
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-5/igt@gem_tiling_max_stride.html

  * igt@gem_userptr_blits@coherency-unsync:
    - shard-rkl:          NOTRUN -> [SKIP][58] ([i915#3297]) +1 other test skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-7/igt@gem_userptr_blits@coherency-unsync.html

  * igt@gem_userptr_blits@create-destroy-unsync:
    - shard-tglu-1:       NOTRUN -> [SKIP][59] ([i915#3297])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@gem_userptr_blits@create-destroy-unsync.html

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

  * igt@gem_userptr_blits@readonly-pwrite-unsync:
    - shard-dg1:          NOTRUN -> [SKIP][61] ([i915#3297])
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-15/igt@gem_userptr_blits@readonly-pwrite-unsync.html

  * igt@gem_userptr_blits@unsync-unmap:
    - shard-tglu:         NOTRUN -> [SKIP][62] ([i915#3297])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-3/igt@gem_userptr_blits@unsync-unmap.html

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

  * igt@gen7_exec_parse@chained-batch:
    - shard-glk11:        NOTRUN -> [SKIP][64] +101 other tests skip
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk11/igt@gen7_exec_parse@chained-batch.html

  * igt@gen9_exec_parse@basic-rejected-ctx-param:
    - shard-dg2:          NOTRUN -> [SKIP][65] ([i915#2856])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-3/igt@gen9_exec_parse@basic-rejected-ctx-param.html

  * igt@gen9_exec_parse@bb-secure:
    - shard-rkl:          NOTRUN -> [SKIP][66] ([i915#2527]) +1 other test skip
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@gen9_exec_parse@bb-secure.html

  * igt@gen9_exec_parse@bb-start-cmd:
    - shard-rkl:          NOTRUN -> [SKIP][67] ([i915#14544] / [i915#2527])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@gen9_exec_parse@bb-start-cmd.html

  * igt@gen9_exec_parse@shadow-peek:
    - shard-tglu:         NOTRUN -> [SKIP][68] ([i915#2527] / [i915#2856]) +1 other test skip
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-7/igt@gen9_exec_parse@shadow-peek.html

  * igt@gpu_buddy@gpu_buddy:
    - shard-rkl:          NOTRUN -> [SKIP][69] ([i915#15678])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@gpu_buddy@gpu_buddy.html

  * igt@i915_drm_fdinfo@busy-hang@vcs0:
    - shard-dg2:          NOTRUN -> [SKIP][70] ([i915#14073]) +7 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-5/igt@i915_drm_fdinfo@busy-hang@vcs0.html

  * igt@i915_pm_freq_api@freq-reset:
    - shard-rkl:          NOTRUN -> [SKIP][71] ([i915#14544] / [i915#8399])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@i915_pm_freq_api@freq-reset.html

  * igt@i915_pm_rc6_residency@rc6-accuracy:
    - shard-dg2:          [PASS][72] -> [FAIL][73] ([i915#12964]) +1 other test fail
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg2-3/igt@i915_pm_rc6_residency@rc6-accuracy.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-5/igt@i915_pm_rc6_residency@rc6-accuracy.html

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

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

  * igt@i915_query@query-topology-known-pci-ids:
    - shard-tglu:         NOTRUN -> [SKIP][76] ([i915#16109])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-9/igt@i915_query@query-topology-known-pci-ids.html

  * igt@i915_query@query-topology-unsupported:
    - shard-rkl:          NOTRUN -> [SKIP][77] ([i915#16079])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@i915_query@query-topology-unsupported.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
    - shard-glk:          [PASS][78] -> [INCOMPLETE][79] ([i915#16182] / [i915#4817])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-glk5/igt@i915_suspend@fence-restore-tiled2untiled.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk2/igt@i915_suspend@fence-restore-tiled2untiled.html

  * igt@i915_suspend@forcewake:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][80] ([i915#4817])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-4/igt@i915_suspend@forcewake.html

  * igt@intel_hwmon@hwmon-read:
    - shard-rkl:          NOTRUN -> [SKIP][81] ([i915#7707]) +1 other test skip
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@intel_hwmon@hwmon-read.html

  * igt@kms_addfb_basic@framebuffer-vs-set-tiling:
    - shard-dg2:          NOTRUN -> [SKIP][82] ([i915#4212])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-5/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html
    - shard-dg1:          NOTRUN -> [SKIP][83] ([i915#4212])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-15/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html
    - shard-mtlp:         NOTRUN -> [SKIP][84] ([i915#4212])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-3/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html

  * igt@kms_async_flips@alternate-sync-async-flip:
    - shard-dg1:          NOTRUN -> [FAIL][85] ([i915#14888]) +1 other test fail
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-15/igt@kms_async_flips@alternate-sync-async-flip.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
    - shard-tglu:         [PASS][86] -> [FAIL][87] ([i915#15662]) +1 other test fail
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-tglu-7/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-5/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
    - shard-glk:          NOTRUN -> [SKIP][88] ([i915#1769])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk9/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html
    - shard-rkl:          NOTRUN -> [SKIP][89] ([i915#1769] / [i915#3555])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-7/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html

  * igt@kms_big_fb@4-tiled-addfb:
    - shard-rkl:          NOTRUN -> [SKIP][90] ([i915#5286]) +3 other tests skip
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-4/igt@kms_big_fb@4-tiled-addfb.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-dg1:          NOTRUN -> [SKIP][91] ([i915#4538] / [i915#5286])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-15/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
    - shard-tglu:         NOTRUN -> [SKIP][92] ([i915#5286]) +3 other tests skip
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-7/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-180-async-flip:
    - shard-tglu-1:       NOTRUN -> [SKIP][93] ([i915#5286]) +2 other tests skip
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@linear-64bpp-rotate-90:
    - shard-rkl:          NOTRUN -> [SKIP][94] ([i915#3638]) +2 other tests skip
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@kms_big_fb@linear-64bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-270:
    - shard-dg2:          NOTRUN -> [SKIP][95] +1 other test skip
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-3/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html
    - shard-dg1:          NOTRUN -> [SKIP][96] ([i915#3638])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-19/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-8bpp-rotate-180:
    - shard-dg2:          NOTRUN -> [SKIP][97] ([i915#4538] / [i915#5190]) +3 other tests skip
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-6/igt@kms_big_fb@y-tiled-8bpp-rotate-180.html

  * igt@kms_big_fb@yf-tiled-addfb-size-overflow:
    - shard-dg2:          NOTRUN -> [SKIP][98] ([i915#5190])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-3/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html
    - shard-dg1:          NOTRUN -> [SKIP][99] +10 other tests skip
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-14/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html
    - shard-mtlp:         NOTRUN -> [SKIP][100] ([i915#6187])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-2/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
    - shard-snb:          NOTRUN -> [SKIP][101] +61 other tests skip
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-snb6/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html
    - shard-mtlp:         NOTRUN -> [SKIP][102] +2 other tests skip
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-4/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-dg1:          NOTRUN -> [SKIP][103] ([i915#4538]) +1 other test skip
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-19/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][104] ([i915#6095]) +204 other tests skip
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-17/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-4.html

  * igt@kms_ccs@bad-pixel-format-yf-tiled-ccs@pipe-c-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][105] ([i915#10307] / [i915#6095]) +42 other tests skip
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-4/igt@kms_ccs@bad-pixel-format-yf-tiled-ccs@pipe-c-hdmi-a-1.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][106] ([i915#12313]) +1 other test skip
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-3/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html
    - shard-rkl:          NOTRUN -> [SKIP][107] ([i915#12313])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html
    - shard-dg1:          NOTRUN -> [SKIP][108] ([i915#12313])
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-17/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html
    - shard-tglu:         NOTRUN -> [SKIP][109] ([i915#12313])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-7/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html
    - shard-mtlp:         NOTRUN -> [SKIP][110] ([i915#12313])
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-5/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html

  * igt@kms_ccs@bad-rotation-90-yf-tiled-ccs:
    - shard-tglu-1:       NOTRUN -> [SKIP][111] ([i915#6095]) +14 other tests skip
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_ccs@bad-rotation-90-yf-tiled-ccs.html

  * igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1:
    - shard-tglu:         NOTRUN -> [SKIP][112] ([i915#6095]) +29 other tests skip
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-7/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][113] ([i915#14544] / [i915#6095]) +3 other tests skip
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs@pipe-a-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][114] ([i915#6095]) +4 other tests skip
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-2/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs@pipe-a-edp-1.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-b-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][115] ([i915#6095]) +57 other tests skip
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-b-hdmi-a-1.html

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

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

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs:
    - shard-glk:          NOTRUN -> [INCOMPLETE][118] ([i915#15582]) +1 other test incomplete
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk4/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-c-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][119] ([i915#14098] / [i915#6095]) +43 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-7/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-c-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][120] ([i915#14098] / [i915#14544] / [i915#6095]) +2 other tests skip
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs@pipe-a-hdmi-a-1:
    - shard-glk:          NOTRUN -> [SKIP][121] +596 other tests skip
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk6/igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][122] ([i915#10307] / [i915#10434] / [i915#6095]) +1 other test skip
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-4/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-hdmi-a-1.html

  * igt@kms_chamelium_audio@dp-audio-after-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][123] ([i915#11151])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-6/igt@kms_chamelium_audio@dp-audio-after-suspend.html

  * igt@kms_chamelium_audio@hdmi-audio-after-suspend:
    - shard-rkl:          NOTRUN -> [SKIP][124] ([i915#11151])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@kms_chamelium_audio@hdmi-audio-after-suspend.html

  * igt@kms_chamelium_color_pipeline@plane-ctm3x4:
    - shard-tglu-1:       NOTRUN -> [SKIP][125] ([i915#16471])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html

  * igt@kms_chamelium_color_pipeline@plane-lut1d:
    - shard-dg2:          NOTRUN -> [SKIP][126] ([i915#16471])
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-8/igt@kms_chamelium_color_pipeline@plane-lut1d.html

  * igt@kms_chamelium_color_pipeline@plane-lut1d-post-ctm3x4:
    - shard-rkl:          NOTRUN -> [SKIP][127] ([i915#16471]) +1 other test skip
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-4/igt@kms_chamelium_color_pipeline@plane-lut1d-post-ctm3x4.html

  * igt@kms_chamelium_color_pipeline@plane-lut1d-pre-ctm3x4:
    - shard-tglu:         NOTRUN -> [SKIP][128] ([i915#16471])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-8/igt@kms_chamelium_color_pipeline@plane-lut1d-pre-ctm3x4.html

  * igt@kms_chamelium_edid@dp-edid-read:
    - shard-dg2:          NOTRUN -> [SKIP][129] ([i915#11151] / [i915#7828]) +1 other test skip
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-7/igt@kms_chamelium_edid@dp-edid-read.html
    - shard-dg1:          NOTRUN -> [SKIP][130] ([i915#11151] / [i915#7828])
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-16/igt@kms_chamelium_edid@dp-edid-read.html
    - shard-mtlp:         NOTRUN -> [SKIP][131] ([i915#11151] / [i915#7828])
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-6/igt@kms_chamelium_edid@dp-edid-read.html

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

  * igt@kms_chamelium_hpd@dp-hpd-storm-disable:
    - shard-tglu:         NOTRUN -> [SKIP][133] ([i915#11151] / [i915#7828]) +4 other tests skip
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-5/igt@kms_chamelium_hpd@dp-hpd-storm-disable.html

  * igt@kms_chamelium_hpd@vga-hpd-for-each-pipe:
    - shard-rkl:          NOTRUN -> [SKIP][134] ([i915#11151] / [i915#7828]) +11 other tests skip
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@kms_chamelium_hpd@vga-hpd-for-each-pipe.html

  * igt@kms_content_protection@atomic-dpms-hdcp14:
    - shard-tglu-1:       NOTRUN -> [SKIP][135] ([i915#15865])
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_content_protection@atomic-dpms-hdcp14.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-rkl:          NOTRUN -> [SKIP][136] ([i915#15330] / [i915#3116]) +2 other tests skip
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-1/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_content_protection@mei-interface:
    - shard-rkl:          NOTRUN -> [SKIP][137] ([i915#15865]) +1 other test skip
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@srm:
    - shard-tglu:         NOTRUN -> [SKIP][138] ([i915#15865])
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-4/igt@kms_content_protection@srm.html

  * igt@kms_cursor_crc@cursor-offscreen-32x32:
    - shard-dg2:          NOTRUN -> [SKIP][139] ([i915#3555]) +2 other tests skip
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-6/igt@kms_cursor_crc@cursor-offscreen-32x32.html
    - shard-dg1:          NOTRUN -> [SKIP][140] ([i915#3555]) +1 other test skip
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-14/igt@kms_cursor_crc@cursor-offscreen-32x32.html
    - shard-mtlp:         NOTRUN -> [SKIP][141] ([i915#3555] / [i915#8814]) +1 other test skip
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-4/igt@kms_cursor_crc@cursor-offscreen-32x32.html

  * igt@kms_cursor_crc@cursor-onscreen-256x85:
    - shard-tglu:         [PASS][142] -> [FAIL][143] ([i915#13566]) +3 other tests fail
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-tglu-7/igt@kms_cursor_crc@cursor-onscreen-256x85.html
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-9/igt@kms_cursor_crc@cursor-onscreen-256x85.html

  * igt@kms_cursor_crc@cursor-sliding-128x42:
    - shard-rkl:          [PASS][144] -> [FAIL][145] ([i915#13566]) +4 other tests fail
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-4/igt@kms_cursor_crc@cursor-sliding-128x42.html
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@kms_cursor_crc@cursor-sliding-128x42.html

  * igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [FAIL][146] ([i915#13566])
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1.html
    - shard-tglu:         NOTRUN -> [FAIL][147] ([i915#13566]) +1 other test fail
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-3/igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-dg2:          NOTRUN -> [SKIP][148] ([i915#13049])
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-5/igt@kms_cursor_crc@cursor-sliding-512x512.html
    - shard-rkl:          NOTRUN -> [SKIP][149] ([i915#13049])
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-4/igt@kms_cursor_crc@cursor-sliding-512x512.html
    - shard-dg1:          NOTRUN -> [SKIP][150] ([i915#13049])
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-15/igt@kms_cursor_crc@cursor-sliding-512x512.html
    - shard-tglu:         NOTRUN -> [SKIP][151] ([i915#13049])
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-4/igt@kms_cursor_crc@cursor-sliding-512x512.html
    - shard-mtlp:         NOTRUN -> [SKIP][152] ([i915#13049])
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-1/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][153] ([i915#12358] / [i915#14152]) +1 other test incomplete
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-2.html

  * igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
    - shard-rkl:          NOTRUN -> [SKIP][154] +108 other tests skip
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-7/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
    - shard-dg2:          NOTRUN -> [SKIP][155] ([i915#13046] / [i915#5354]) +1 other test skip
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-1/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
    - shard-mtlp:         NOTRUN -> [SKIP][156] ([i915#9809]) +1 other test skip
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-7/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-glk:          NOTRUN -> [FAIL][157] ([i915#15804])
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_cursor_legacy@flip-vs-cursor-crc-legacy:
    - shard-dg1:          [PASS][158] -> [FAIL][159] ([i915#15999])
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg1-16/igt@kms_cursor_legacy@flip-vs-cursor-crc-legacy.html
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-16/igt@kms_cursor_legacy@flip-vs-cursor-crc-legacy.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
    - shard-tglu-1:       NOTRUN -> [SKIP][160] ([i915#4103])
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html

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

  * igt@kms_display_modes@extended-mode-basic:
    - shard-rkl:          NOTRUN -> [SKIP][162] ([i915#13691])
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-2/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_dp_link_training@non-uhbr-mst:
    - shard-tglu:         NOTRUN -> [SKIP][163] ([i915#13749]) +1 other test skip
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-8/igt@kms_dp_link_training@non-uhbr-mst.html

  * igt@kms_dp_link_training@uhbr-sst:
    - shard-tglu-1:       NOTRUN -> [SKIP][164] ([i915#13748])
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_dp_link_training@uhbr-sst.html

  * igt@kms_dsc@dsc-basic:
    - shard-rkl:          NOTRUN -> [SKIP][165] ([i915#16361]) +6 other tests skip
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@kms_dsc@dsc-basic.html

  * igt@kms_dsc@dsc-fractional-bpp-bigjoiner:
    - shard-dg1:          NOTRUN -> [SKIP][166] ([i915#16361]) +1 other test skip
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-17/igt@kms_dsc@dsc-fractional-bpp-bigjoiner.html
    - shard-tglu:         NOTRUN -> [SKIP][167] ([i915#16361]) +3 other tests skip
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-8/igt@kms_dsc@dsc-fractional-bpp-bigjoiner.html
    - shard-mtlp:         NOTRUN -> [SKIP][168] ([i915#16361]) +1 other test skip
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-7/igt@kms_dsc@dsc-fractional-bpp-bigjoiner.html

  * igt@kms_dsc@dsc-fractional-bpp-ultrajoiner:
    - shard-dg2:          NOTRUN -> [SKIP][169] ([i915#16361]) +3 other tests skip
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-7/igt@kms_dsc@dsc-fractional-bpp-ultrajoiner.html

  * igt@kms_dsc@dsc-with-bpc:
    - shard-tglu-1:       NOTRUN -> [SKIP][170] ([i915#16361])
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_dsc@dsc-with-bpc.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-glk10:        NOTRUN -> [INCOMPLETE][171] ([i915#9878])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk10/igt@kms_fbcon_fbt@fbc-suspend.html
    - shard-rkl:          [PASS][172] -> [INCOMPLETE][173] ([i915#9878])
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-8/igt@kms_fbcon_fbt@fbc-suspend.html
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][174] ([i915#16680])
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-7/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_feature_discovery@hdr:
    - shard-rkl:          NOTRUN -> [SKIP][175] ([i915#16600])
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@kms_feature_discovery@hdr.html
    - shard-tglu-1:       NOTRUN -> [SKIP][176] ([i915#16600]) +1 other test skip
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_feature_discovery@hdr.html

  * igt@kms_flip@2x-absolute-wf_vblank:
    - shard-tglu-1:       NOTRUN -> [SKIP][177] ([i915#3637] / [i915#9934]) +2 other tests skip
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_flip@2x-absolute-wf_vblank.html

  * igt@kms_flip@2x-flip-vs-suspend-interruptible:
    - shard-glk:          NOTRUN -> [INCOMPLETE][178] ([i915#12745] / [i915#4839]) +1 other test incomplete
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk6/igt@kms_flip@2x-flip-vs-suspend-interruptible.html

  * igt@kms_flip@2x-flip-vs-suspend-interruptible@ac-hdmi-a1-hdmi-a2:
    - shard-glk:          NOTRUN -> [INCOMPLETE][179] ([i915#12745]) +1 other test incomplete
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk6/igt@kms_flip@2x-flip-vs-suspend-interruptible@ac-hdmi-a1-hdmi-a2.html

  * igt@kms_flip@2x-modeset-vs-vblank-race:
    - shard-rkl:          NOTRUN -> [SKIP][180] ([i915#9934]) +6 other tests skip
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@kms_flip@2x-modeset-vs-vblank-race.html

  * igt@kms_flip@2x-nonexisting-fb:
    - shard-tglu:         NOTRUN -> [SKIP][181] ([i915#3637] / [i915#9934]) +2 other tests skip
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-5/igt@kms_flip@2x-nonexisting-fb.html

  * igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible:
    - shard-dg2:          NOTRUN -> [SKIP][182] ([i915#9934]) +1 other test skip
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-4/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
    - shard-dg1:          NOTRUN -> [SKIP][183] ([i915#15643])
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-15/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
    - shard-tglu:         NOTRUN -> [SKIP][184] ([i915#15643])
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
    - shard-mtlp:         NOTRUN -> [SKIP][185] ([i915#15643]) +1 other test skip
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling:
    - shard-tglu-1:       NOTRUN -> [SKIP][186] ([i915#15643]) +1 other test skip
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling:
    - shard-rkl:          NOTRUN -> [SKIP][187] ([i915#15643]) +3 other tests skip
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-1/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-dg2:          NOTRUN -> [SKIP][188] ([i915#15990] / [i915#8708]) +6 other tests skip
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-8/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc.html
    - shard-dg1:          NOTRUN -> [SKIP][189] ([i915#15990] / [i915#8708]) +1 other test skip
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-18/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff:
    - shard-mtlp:         NOTRUN -> [SKIP][190] ([i915#15991] / [i915#1825]) +1 other test skip
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-8/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff:
    - shard-rkl:          NOTRUN -> [SKIP][191] ([i915#15989]) +20 other tests skip
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-tglu-1:       NOTRUN -> [SKIP][192] ([i915#15989]) +5 other tests skip
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-spr-indfb-onoff:
    - shard-rkl:          [PASS][193] -> [SKIP][194] ([i915#15989]) +6 other tests skip
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-spr-indfb-onoff.html
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-2/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-dg1:          NOTRUN -> [SKIP][195] ([i915#15990]) +2 other tests skip
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-17/igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-spr-indfb-draw-mmap-gtt.html
    - shard-mtlp:         NOTRUN -> [SKIP][196] ([i915#15990]) +1 other test skip
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-5/igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-pri-indfb-draw-pwrite:
    - shard-glk:          [PASS][197] -> [SKIP][198]
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-glk8/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-pri-indfb-draw-pwrite.html
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk5/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-pri-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-spr-indfb-draw-mmap-cpu:
    - shard-dg2:          NOTRUN -> [SKIP][199] ([i915#15991]) +12 other tests skip
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-3/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbchdr-modesetfrombusy:
    - shard-dg2:          NOTRUN -> [SKIP][200] ([i915#15989]) +5 other tests skip
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-8/igt@kms_frontbuffer_tracking@fbchdr-modesetfrombusy.html
    - shard-dg1:          NOTRUN -> [SKIP][201] ([i915#15989]) +3 other tests skip
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-15/igt@kms_frontbuffer_tracking@fbchdr-modesetfrombusy.html

  * igt@kms_frontbuffer_tracking@fbchdr-suspend:
    - shard-glk11:        NOTRUN -> [INCOMPLETE][202] ([i915#16056] / [i915#16593])
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk11/igt@kms_frontbuffer_tracking@fbchdr-suspend.html

  * igt@kms_frontbuffer_tracking@fbchdr-tiling-4:
    - shard-rkl:          NOTRUN -> [SKIP][203] ([i915#14544] / [i915#5439])
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_frontbuffer_tracking@fbchdr-tiling-4.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-gtt:
    - shard-glk10:        NOTRUN -> [SKIP][204] +85 other tests skip
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk10/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-wc:
    - shard-rkl:          NOTRUN -> [SKIP][205] ([i915#1825]) +5 other tests skip
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-rkl:          NOTRUN -> [SKIP][206] ([i915#14544] / [i915#1825])
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc.html

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

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-pri-shrfb-draw-pwrite:
    - shard-dg2:          NOTRUN -> [SKIP][208] ([i915#15102]) +10 other tests skip
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-1/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-pri-shrfb-draw-pwrite.html
    - shard-dg1:          NOTRUN -> [SKIP][209] ([i915#15102]) +3 other tests skip
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-12/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-pri-shrfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-shrfb-pgflip-blt:
    - shard-rkl:          NOTRUN -> [SKIP][210] ([i915#14544] / [i915#15102]) +8 other tests skip
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-rkl:          NOTRUN -> [SKIP][211] ([i915#15102]) +47 other tests skip
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@hdr-1p-offscreen-pri-indfb-draw-mmap-gtt:
    - shard-tglu:         NOTRUN -> [SKIP][212] ([i915#15989]) +7 other tests skip
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-8/igt@kms_frontbuffer_tracking@hdr-1p-offscreen-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@hdr-2p-primscrn-spr-indfb-draw-pwrite:
    - shard-rkl:          NOTRUN -> [SKIP][213] ([i915#14544]) +10 other tests skip
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_frontbuffer_tracking@hdr-2p-primscrn-spr-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-cur-indfb-move:
    - shard-mtlp:         NOTRUN -> [SKIP][214] ([i915#15991]) +4 other tests skip
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-2/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-tglu-1:       NOTRUN -> [SKIP][215] ([i915#15102]) +8 other tests skip
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][216] ([i915#15990] / [i915#8708])
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-8/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-render:
    - shard-dg2:          NOTRUN -> [SKIP][217] ([i915#15991] / [i915#5354]) +5 other tests skip
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-7/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc:
    - shard-tglu:         NOTRUN -> [SKIP][218] +65 other tests skip
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-pwrite:
    - shard-tglu-1:       NOTRUN -> [SKIP][219] +28 other tests skip
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-indfb-pgflip-blt:
    - shard-tglu:         NOTRUN -> [SKIP][220] ([i915#15102]) +28 other tests skip
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-3/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-indfb-pgflip-blt.html
    - shard-mtlp:         NOTRUN -> [SKIP][221] ([i915#15989]) +6 other tests skip
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-2/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][222] ([i915#15990]) +7 other tests skip
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-5/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_hdr@static-swap:
    - shard-rkl:          NOTRUN -> [SKIP][223] ([i915#16644] / [i915#3555] / [i915#8228]) +1 other test skip
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@kms_hdr@static-swap.html

  * igt@kms_hdr@static-toggle:
    - shard-tglu:         NOTRUN -> [SKIP][224] ([i915#3555] / [i915#8228])
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-9/igt@kms_hdr@static-toggle.html

  * igt@kms_invalid_mode@bad-htotal:
    - shard-dg1:          [PASS][225] -> [DMESG-WARN][226] ([i915#4423])
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg1-18/igt@kms_invalid_mode@bad-htotal.html
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-15/igt@kms_invalid_mode@bad-htotal.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-rkl:          NOTRUN -> [SKIP][227] ([i915#14544] / [i915#15815])
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-1:
    - shard-glk:          [PASS][228] -> [INCOMPLETE][229] ([i915#12756] / [i915#13409] / [i915#13476] / [i915#16789])
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-glk1/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-1.html
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk8/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-1.html

  * igt@kms_pipe_stress@stress-xrgb8888-xtiled:
    - shard-glk:          NOTRUN -> [DMESG-FAIL][230] ([i915#118]) +1 other test dmesg-fail
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk2/igt@kms_pipe_stress@stress-xrgb8888-xtiled.html

  * igt@kms_pipe_stress@stress-xrgb8888-yftiled:
    - shard-glk:          NOTRUN -> [DMESG-FAIL][231] ([i915#118] / [i915#16396])
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk9/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html
    - shard-rkl:          NOTRUN -> [SKIP][232] ([i915#14712])
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-4/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html

  * igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier:
    - shard-tglu:         NOTRUN -> [SKIP][233] ([i915#15709]) +1 other test skip
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-7/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier.html

  * igt@kms_plane@pixel-format-4-tiled-modifier:
    - shard-tglu-1:       NOTRUN -> [SKIP][234] ([i915#15709])
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_plane@pixel-format-4-tiled-modifier.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier-source-clamping:
    - shard-rkl:          NOTRUN -> [SKIP][235] ([i915#15709]) +2 other tests skip
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-4/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier-source-clamping:
    - shard-dg2:          NOTRUN -> [SKIP][236] ([i915#15709])
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-1/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier-source-clamping.html

  * igt@kms_plane_alpha_blend@alpha-basic:
    - shard-glk:          NOTRUN -> [FAIL][237] ([i915#12178])
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk2/igt@kms_plane_alpha_blend@alpha-basic.html

  * igt@kms_plane_alpha_blend@alpha-basic@pipe-a-hdmi-a-1:
    - shard-glk:          NOTRUN -> [FAIL][238] ([i915#7862]) +1 other test fail
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk2/igt@kms_plane_alpha_blend@alpha-basic@pipe-a-hdmi-a-1.html

  * igt@kms_plane_alpha_blend@constant-alpha-max:
    - shard-glk:          NOTRUN -> [FAIL][239] ([i915#10647] / [i915#12169])
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk1/igt@kms_plane_alpha_blend@constant-alpha-max.html

  * igt@kms_plane_alpha_blend@constant-alpha-max@pipe-c-hdmi-a-1:
    - shard-glk:          NOTRUN -> [FAIL][240] ([i915#10647]) +1 other test fail
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk1/igt@kms_plane_alpha_blend@constant-alpha-max@pipe-c-hdmi-a-1.html

  * igt@kms_plane_multiple@2x-tiling-4:
    - shard-rkl:          NOTRUN -> [SKIP][241] ([i915#13958] / [i915#14544])
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_plane_multiple@2x-tiling-4.html

  * igt@kms_plane_multiple@2x-tiling-x:
    - shard-tglu-1:       NOTRUN -> [SKIP][242] ([i915#13958])
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_plane_multiple@2x-tiling-x.html

  * igt@kms_plane_multiple@2x-tiling-y:
    - shard-tglu:         NOTRUN -> [SKIP][243] ([i915#13958])
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-8/igt@kms_plane_multiple@2x-tiling-y.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b:
    - shard-mtlp:         NOTRUN -> [SKIP][244] ([i915#15329]) +1 other test skip
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-8/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b.html

  * igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a:
    - shard-rkl:          NOTRUN -> [SKIP][245] ([i915#15329]) +7 other tests skip
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-4/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a.html

  * igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-d:
    - shard-tglu:         NOTRUN -> [SKIP][246] ([i915#15329]) +4 other tests skip
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-7/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-d.html

  * igt@kms_pm_backlight@basic-brightness:
    - shard-tglu:         NOTRUN -> [SKIP][247] ([i915#12343] / [i915#9812])
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-3/igt@kms_pm_backlight@basic-brightness.html

  * igt@kms_pm_backlight@fade:
    - shard-rkl:          NOTRUN -> [SKIP][248] ([i915#12343] / [i915#5354])
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@kms_pm_backlight@fade.html

  * igt@kms_pm_dc@dc5-pageflip-negative:
    - shard-tglu:         NOTRUN -> [SKIP][249] ([i915#9685])
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-4/igt@kms_pm_dc@dc5-pageflip-negative.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-dg2:          [PASS][250] -> [SKIP][251] ([i915#9340])
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg2-4/igt@kms_pm_lpsp@kms-lpsp.html
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-5/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_lpsp@screens-disabled:
    - shard-rkl:          NOTRUN -> [SKIP][252] ([i915#8430])
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-4/igt@kms_pm_lpsp@screens-disabled.html

  * igt@kms_pm_rpm@dpms-non-lpsp:
    - shard-dg2:          [PASS][253] -> [SKIP][254] ([i915#15073])
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg2-5/igt@kms_pm_rpm@dpms-non-lpsp.html
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-4/igt@kms_pm_rpm@dpms-non-lpsp.html
    - shard-rkl:          NOTRUN -> [SKIP][255] ([i915#15073])
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@kms_pm_rpm@dpms-non-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp:
    - shard-dg1:          [PASS][256] -> [SKIP][257] ([i915#15073]) +1 other test skip
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg1-15/igt@kms_pm_rpm@modeset-lpsp.html
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-16/igt@kms_pm_rpm@modeset-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp-stress:
    - shard-rkl:          [PASS][258] -> [SKIP][259] ([i915#15073])
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-8/igt@kms_pm_rpm@modeset-lpsp-stress.html
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-4/igt@kms_pm_rpm@modeset-lpsp-stress.html

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

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

  * igt@kms_prime@d3hot:
    - shard-rkl:          NOTRUN -> [SKIP][262] ([i915#14544] / [i915#6524])
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_prime@d3hot.html

  * igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf:
    - shard-glk10:        NOTRUN -> [SKIP][263] ([i915#11520]) +1 other test skip
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk10/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-sf:
    - shard-glk:          NOTRUN -> [SKIP][264] ([i915#11520]) +8 other tests skip
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk2/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area:
    - shard-glk11:        NOTRUN -> [SKIP][265] ([i915#11520]) +4 other tests skip
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk11/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf:
    - shard-tglu-1:       NOTRUN -> [SKIP][266] ([i915#11520]) +2 other tests skip
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf:
    - shard-dg1:          NOTRUN -> [SKIP][267] ([i915#11520])
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-17/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf.html
    - shard-tglu:         NOTRUN -> [SKIP][268] ([i915#11520]) +7 other tests skip
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-10/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf.html
    - shard-dg2:          NOTRUN -> [SKIP][269] ([i915#11520]) +1 other test skip
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-7/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf.html
    - shard-snb:          NOTRUN -> [SKIP][270] ([i915#11520])
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-snb6/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area:
    - shard-rkl:          NOTRUN -> [SKIP][271] ([i915#11520]) +8 other tests skip
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - shard-tglu:         NOTRUN -> [SKIP][272] ([i915#9683])
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-8/igt@kms_psr2_su@frontbuffer-xrgb8888.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-rkl:          NOTRUN -> [SKIP][273] ([i915#9683])
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-7/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr@fbc-psr-cursor-plane-onoff:
    - shard-mtlp:         NOTRUN -> [SKIP][274] ([i915#9688]) +3 other tests skip
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-6/igt@kms_psr@fbc-psr-cursor-plane-onoff.html

  * igt@kms_psr@fbc-psr2-cursor-plane-move:
    - shard-tglu:         NOTRUN -> [SKIP][275] ([i915#9732]) +11 other tests skip
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-2/igt@kms_psr@fbc-psr2-cursor-plane-move.html

  * igt@kms_psr@pr-primary-blt:
    - shard-rkl:          NOTRUN -> [SKIP][276] ([i915#1072] / [i915#14544] / [i915#9732]) +2 other tests skip
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_psr@pr-primary-blt.html

  * igt@kms_psr@psr-cursor-mmap-cpu:
    - shard-rkl:          NOTRUN -> [SKIP][277] ([i915#1072] / [i915#9732]) +18 other tests skip
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@kms_psr@psr-cursor-mmap-cpu.html
    - shard-dg1:          NOTRUN -> [SKIP][278] ([i915#1072] / [i915#9732]) +4 other tests skip
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-18/igt@kms_psr@psr-cursor-mmap-cpu.html

  * igt@kms_psr@psr2-cursor-mmap-gtt:
    - shard-tglu-1:       NOTRUN -> [SKIP][279] ([i915#9732]) +3 other tests skip
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_psr@psr2-cursor-mmap-gtt.html

  * igt@kms_psr@psr2-primary-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][280] ([i915#1072] / [i915#9732]) +5 other tests skip
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-3/igt@kms_psr@psr2-primary-mmap-gtt.html

  * igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
    - shard-rkl:          NOTRUN -> [SKIP][281] ([i915#15949])
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-glk11:        NOTRUN -> [INCOMPLETE][282] ([i915#15492] / [i915#16184])
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk11/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-rkl:          NOTRUN -> [SKIP][283] ([i915#5289])
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_selftest@drm_framebuffer:
    - shard-dg1:          NOTRUN -> [ABORT][284] ([i915#13179] / [i915#16508]) +1 other test abort
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-14/igt@kms_selftest@drm_framebuffer.html

  * igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_create:
    - shard-glk:          NOTRUN -> [ABORT][285] ([i915#13179]) +1 other test abort
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk5/igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_create.html

  * igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_free:
    - shard-glk:          NOTRUN -> [DMESG-FAIL][286] ([i915#13179])
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk5/igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_free.html

  * igt@kms_setmode@basic:
    - shard-snb:          NOTRUN -> [FAIL][287] ([i915#15106]) +6 other tests fail
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-snb4/igt@kms_setmode@basic.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - shard-rkl:          NOTRUN -> [SKIP][288] ([i915#3555]) +3 other tests skip
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-tglu-1:       NOTRUN -> [SKIP][289] ([i915#8623])
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_vblank@ts-continuation-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][290] ([i915#12276]) +1 other test incomplete
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk5/igt@kms_vblank@ts-continuation-suspend.html

  * igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][291] ([i915#12276]) +1 other test incomplete
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2.html

  * igt@kms_vrr@flip-basic:
    - shard-rkl:          NOTRUN -> [SKIP][292] ([i915#15243] / [i915#3555]) +1 other test skip
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@kms_vrr@flip-basic.html

  * igt@kms_vrr@flip-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][293] ([i915#3555]) +3 other tests skip
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-6/igt@kms_vrr@flip-suspend.html

  * igt@kms_vrr@lobf:
    - shard-rkl:          NOTRUN -> [SKIP][294] ([i915#11920])
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@kms_vrr@lobf.html

  * igt@kms_vrr@negative-basic:
    - shard-tglu-1:       NOTRUN -> [SKIP][295] ([i915#3555] / [i915#9906])
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@kms_vrr@negative-basic.html

  * igt@kms_vrr@seamless-rr-switch-drrs:
    - shard-rkl:          NOTRUN -> [SKIP][296] ([i915#9906])
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@kms_vrr@seamless-rr-switch-drrs.html

  * igt@kms_vrr@seamless-rr-switch-vrr:
    - shard-rkl:          NOTRUN -> [SKIP][297] ([i915#14544] / [i915#9906])
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_vrr@seamless-rr-switch-vrr.html

  * igt@perf@gen8-unprivileged-single-ctx-counters:
    - shard-dg2:          NOTRUN -> [SKIP][298] ([i915#2436])
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-3/igt@perf@gen8-unprivileged-single-ctx-counters.html

  * igt@perf_pmu@rc6-all-gts:
    - shard-dg2:          NOTRUN -> [SKIP][299] ([i915#8516])
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-3/igt@perf_pmu@rc6-all-gts.html
    - shard-rkl:          NOTRUN -> [SKIP][300] ([i915#8516])
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@perf_pmu@rc6-all-gts.html
    - shard-dg1:          NOTRUN -> [SKIP][301] ([i915#8516])
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-12/igt@perf_pmu@rc6-all-gts.html
    - shard-tglu:         NOTRUN -> [SKIP][302] ([i915#8516])
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-9/igt@perf_pmu@rc6-all-gts.html

  * igt@perf_pmu@rc6@other-idle-gt0:
    - shard-tglu-1:       NOTRUN -> [SKIP][303] ([i915#8516])
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-1/igt@perf_pmu@rc6@other-idle-gt0.html

  * igt@prime_vgem@fence-read-hang:
    - shard-rkl:          NOTRUN -> [SKIP][304] ([i915#3708])
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-7/igt@prime_vgem@fence-read-hang.html

  
#### Possible fixes ####

  * igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-smem-lmem0:
    - shard-dg2:          [INCOMPLETE][305] ([i915#13356] / [i915#16348]) -> [PASS][306]
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg2-4/igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-smem-lmem0.html
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-4/igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-smem-lmem0.html

  * igt@gem_workarounds@suspend-resume-fd:
    - shard-rkl:          [INCOMPLETE][307] ([i915#13356]) -> [PASS][308]
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-3/igt@gem_workarounds@suspend-resume-fd.html
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-2/igt@gem_workarounds@suspend-resume-fd.html

  * igt@i915_pm_rc6_residency@rc6-fence:
    - shard-tglu:         [WARN][309] ([i915#13790] / [i915#2681]) -> [PASS][310] +1 other test pass
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-tglu-7/igt@i915_pm_rc6_residency@rc6-fence.html
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-6/igt@i915_pm_rc6_residency@rc6-fence.html

  * igt@kms_async_flips@async-flip-with-page-flip-events-tiled-atomic@pipe-a-hdmi-a-1-x:
    - shard-glk:          [INCOMPLETE][311] ([i915#12761]) -> [PASS][312] +1 other test pass
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-glk5/igt@kms_async_flips@async-flip-with-page-flip-events-tiled-atomic@pipe-a-hdmi-a-1-x.html
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk6/igt@kms_async_flips@async-flip-with-page-flip-events-tiled-atomic@pipe-a-hdmi-a-1-x.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180:
    - shard-mtlp:         [FAIL][313] ([i915#15733] / [i915#5138]) -> [PASS][314]
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-mtlp-8/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-7/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs:
    - shard-mtlp:         [FAIL][315] ([i915#12469] / [i915#15733]) -> [PASS][316]
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-mtlp-2/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs.html
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-5/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-c-edp-1:
    - shard-mtlp:         [FAIL][317] ([i915#15733]) -> [PASS][318] +3 other tests pass
   [317]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-mtlp-2/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-c-edp-1.html
   [318]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-mtlp-5/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-c-edp-1.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc:
    - shard-rkl:          [INCOMPLETE][319] ([i915#14694] / [i915#15582]) -> [PASS][320] +1 other test pass
   [319]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-3/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html
   [320]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-7/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html

  * igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-1:
    - shard-rkl:          [FAIL][321] ([i915#13566]) -> [PASS][322] +2 other tests pass
   [321]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-5/igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-1.html
   [322]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-2/igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-1.html
    - shard-tglu:         [FAIL][323] ([i915#13566]) -> [PASS][324] +1 other test pass
   [323]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-tglu-4/igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-1.html
   [324]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-9/igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-1.html

  * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-pri-indfb-draw-mmap-gtt:
    - shard-rkl:          [SKIP][325] ([i915#15989]) -> [PASS][326] +8 other tests pass
   [325]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-4/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-pri-indfb-draw-mmap-gtt.html
   [326]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-1/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-spr-indfb-fullscreen:
    - shard-glk:          [SKIP][327] -> [PASS][328] +4 other tests pass
   [327]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-glk1/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-spr-indfb-fullscreen.html
   [328]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-glk8/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-spr-indfb-fullscreen.html

  * igt@kms_pm_rpm@dpms-lpsp:
    - shard-dg1:          [SKIP][329] ([i915#15073]) -> [PASS][330] +1 other test pass
   [329]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg1-12/igt@kms_pm_rpm@dpms-lpsp.html
   [330]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-14/igt@kms_pm_rpm@dpms-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress:
    - shard-rkl:          [SKIP][331] ([i915#15073]) -> [PASS][332]
   [331]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-2/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
   [332]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-7/igt@kms_pm_rpm@modeset-non-lpsp-stress.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-dg2:          [SKIP][333] ([i915#15073]) -> [PASS][334] +1 other test pass
   [333]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg2-4/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [334]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg2-1/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@kms_pwrite_crc@basic:
    - shard-dg1:          [DMESG-WARN][335] ([i915#4423]) -> [PASS][336] +1 other test pass
   [335]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg1-15/igt@kms_pwrite_crc@basic.html
   [336]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-18/igt@kms_pwrite_crc@basic.html

  
#### Warnings ####

  * igt@api_intel_bb@blit-reloc-purge-cache:
    - shard-rkl:          [SKIP][337] ([i915#14544] / [i915#8411]) -> [SKIP][338] ([i915#8411]) +1 other test skip
   [337]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@api_intel_bb@blit-reloc-purge-cache.html
   [338]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@api_intel_bb@blit-reloc-purge-cache.html

  * igt@api_intel_bb@object-reloc-purge-cache:
    - shard-rkl:          [SKIP][339] ([i915#8411]) -> [SKIP][340] ([i915#14544] / [i915#8411])
   [339]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-7/igt@api_intel_bb@object-reloc-purge-cache.html
   [340]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@api_intel_bb@object-reloc-purge-cache.html

  * igt@device_reset@unbind-cold-reset-rebind:
    - shard-rkl:          [SKIP][341] ([i915#11078] / [i915#14544]) -> [SKIP][342] ([i915#11078])
   [341]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@device_reset@unbind-cold-reset-rebind.html
   [342]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-4/igt@device_reset@unbind-cold-reset-rebind.html

  * igt@gem_exec_balancer@parallel-keep-in-fence:
    - shard-rkl:          [SKIP][343] ([i915#14544] / [i915#4525]) -> [SKIP][344] ([i915#4525])
   [343]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@gem_exec_balancer@parallel-keep-in-fence.html
   [344]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@gem_exec_balancer@parallel-keep-in-fence.html

  * igt@gem_exec_reloc@basic-cpu-gtt:
    - shard-rkl:          [SKIP][345] ([i915#3281]) -> [SKIP][346] ([i915#14544] / [i915#3281]) +3 other tests skip
   [345]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-4/igt@gem_exec_reloc@basic-cpu-gtt.html
   [346]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@gem_exec_reloc@basic-cpu-gtt.html

  * igt@gem_exec_reloc@basic-write-read-noreloc:
    - shard-rkl:          [SKIP][347] ([i915#14544] / [i915#3281]) -> [SKIP][348] ([i915#3281]) +5 other tests skip
   [347]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@gem_exec_reloc@basic-write-read-noreloc.html
   [348]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-7/igt@gem_exec_reloc@basic-write-read-noreloc.html

  * igt@gem_lmem_swapping@parallel-multi:
    - shard-rkl:          [SKIP][349] ([i915#14544] / [i915#4613]) -> [SKIP][350] ([i915#4613])
   [349]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@gem_lmem_swapping@parallel-multi.html
   [350]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-7/igt@gem_lmem_swapping@parallel-multi.html

  * igt@gem_lmem_swapping@parallel-random-verify-ccs:
    - shard-rkl:          [SKIP][351] ([i915#4613]) -> [SKIP][352] ([i915#14544] / [i915#4613])
   [351]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-5/igt@gem_lmem_swapping@parallel-random-verify-ccs.html
   [352]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@gem_lmem_swapping@parallel-random-verify-ccs.html

  * igt@gem_partial_pwrite_pread@write-uncached:
    - shard-rkl:          [SKIP][353] ([i915#3282]) -> [SKIP][354] ([i915#14544] / [i915#3282])
   [353]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-5/igt@gem_partial_pwrite_pread@write-uncached.html
   [354]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@gem_partial_pwrite_pread@write-uncached.html

  * igt@gem_pread@snoop:
    - shard-rkl:          [SKIP][355] ([i915#14544] / [i915#3282]) -> [SKIP][356] ([i915#3282])
   [355]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@gem_pread@snoop.html
   [356]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@gem_pread@snoop.html

  * igt@gem_userptr_blits@invalid-mmap-offset-unsync:
    - shard-rkl:          [SKIP][357] ([i915#14544] / [i915#3297]) -> [SKIP][358] ([i915#3297])
   [357]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html
   [358]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-2/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-rkl:          [SKIP][359] ([i915#14544] / [i915#2527]) -> [SKIP][360] ([i915#2527])
   [359]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@gen9_exec_parse@allowed-single.html
   [360]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-2/igt@gen9_exec_parse@allowed-single.html

  * igt@gen9_exec_parse@bb-start-out:
    - shard-rkl:          [SKIP][361] ([i915#2527]) -> [SKIP][362] ([i915#14544] / [i915#2527])
   [361]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-4/igt@gen9_exec_parse@bb-start-out.html
   [362]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@gen9_exec_parse@bb-start-out.html

  * igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
    - shard-rkl:          [SKIP][363] ([i915#12454] / [i915#12712] / [i915#14544]) -> [SKIP][364] ([i915#12454] / [i915#12712])
   [363]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html
   [364]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-2/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html

  * igt@kms_atomic@plane-primary-overlay-mutable-zpos:
    - shard-rkl:          [SKIP][365] ([i915#14544] / [i915#9531]) -> [SKIP][366] ([i915#9531])
   [365]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
   [366]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html

  * igt@kms_big_fb@4-tiled-16bpp-rotate-270:
    - shard-rkl:          [SKIP][367] ([i915#5286]) -> [SKIP][368] ([i915#14544] / [i915#5286])
   [367]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-7/igt@kms_big_fb@4-tiled-16bpp-rotate-270.html
   [368]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_big_fb@4-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
    - shard-rkl:          [SKIP][369] ([i915#14544] / [i915#5286]) -> [SKIP][370] ([i915#5286]) +1 other test skip
   [369]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
   [370]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-90:
    - shard-rkl:          [SKIP][371] ([i915#14544] / [i915#3638]) -> [SKIP][372] ([i915#3638])
   [371]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_big_fb@y-tiled-64bpp-rotate-90.html
   [372]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@kms_big_fb@y-tiled-64bpp-rotate-90.html

  * igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          [SKIP][373] ([i915#6095]) -> [SKIP][374] ([i915#14544] / [i915#6095]) +1 other test skip
   [373]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-7/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html
   [374]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs:
    - shard-rkl:          [SKIP][375] ([i915#12313] / [i915#14544]) -> [SKIP][376] ([i915#12313])
   [375]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html
   [376]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-7/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc:
    - shard-rkl:          [SKIP][377] ([i915#14098] / [i915#6095]) -> [SKIP][378] ([i915#14098] / [i915#14544] / [i915#6095]) +2 other tests skip
   [377]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-5/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc.html
   [378]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc.html
    - shard-dg1:          [SKIP][379] ([i915#4423] / [i915#6095]) -> [SKIP][380] ([i915#6095])
   [379]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg1-17/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc.html
   [380]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-14/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs:
    - shard-rkl:          [SKIP][381] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][382] ([i915#14098] / [i915#6095]) +6 other tests skip
   [381]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs.html
   [382]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          [SKIP][383] ([i915#14544] / [i915#6095]) -> [SKIP][384] ([i915#6095]) +3 other tests skip
   [383]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html
   [384]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_chamelium_audio@dp-audio-after-suspend:
    - shard-rkl:          [SKIP][385] ([i915#11151]) -> [SKIP][386] ([i915#11151] / [i915#14544])
   [385]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-4/igt@kms_chamelium_audio@dp-audio-after-suspend.html
   [386]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_chamelium_audio@dp-audio-after-suspend.html

  * igt@kms_chamelium_color_pipeline@plane-ctm3x4:
    - shard-rkl:          [SKIP][387] ([i915#14544] / [i915#16471]) -> [SKIP][388] ([i915#16471])
   [387]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html
   [388]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html

  * igt@kms_chamelium_edid@dp-edid-change-during-suspend:
    - shard-rkl:          [SKIP][389] ([i915#11151] / [i915#7828]) -> [SKIP][390] ([i915#11151] / [i915#14544] / [i915#7828])
   [389]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-7/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html
   [390]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html

  * igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats:
    - shard-rkl:          [SKIP][391] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][392] ([i915#11151] / [i915#7828]) +1 other test skip
   [391]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats.html
   [392]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-2/igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats.html

  * igt@kms_content_protection@atomic-hdcp14:
    - shard-rkl:          [SKIP][393] ([i915#14544] / [i915#15865]) -> [SKIP][394] ([i915#15865])
   [393]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_content_protection@atomic-hdcp14.html
   [394]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@kms_content_protection@atomic-hdcp14.html

  * igt@kms_content_protection@dp-mst-type-0-hdcp14:
    - shard-rkl:          [SKIP][395] ([i915#15330]) -> [SKIP][396] ([i915#14544] / [i915#15330])
   [395]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-8/igt@kms_content_protection@dp-mst-type-0-hdcp14.html
   [396]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_content_protection@dp-mst-type-0-hdcp14.html

  * igt@kms_cursor_crc@cursor-random-max-size:
    - shard-rkl:          [SKIP][397] ([i915#14544] / [i915#3555]) -> [SKIP][398] ([i915#3555]) +1 other test skip
   [397]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_cursor_crc@cursor-random-max-size.html
   [398]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@kms_cursor_crc@cursor-random-max-size.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-varying-size:
    - shard-rkl:          [SKIP][399] ([i915#14544]) -> [SKIP][400] +28 other tests skip
   [399]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html
   [400]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html

  * igt@kms_dsc@dsc-with-formats-ultrajoiner:
    - shard-rkl:          [SKIP][401] ([i915#16361]) -> [SKIP][402] ([i915#14544] / [i915#16361])
   [401]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-5/igt@kms_dsc@dsc-with-formats-ultrajoiner.html
   [402]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_dsc@dsc-with-formats-ultrajoiner.html

  * igt@kms_feature_discovery@display-3x:
    - shard-rkl:          [SKIP][403] ([i915#14544] / [i915#16081]) -> [SKIP][404] ([i915#16081])
   [403]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_feature_discovery@display-3x.html
   [404]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@kms_feature_discovery@display-3x.html

  * igt@kms_flip@2x-flip-vs-panning:
    - shard-rkl:          [SKIP][405] ([i915#14544] / [i915#9934]) -> [SKIP][406] ([i915#9934]) +3 other tests skip
   [405]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_flip@2x-flip-vs-panning.html
   [406]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-4/igt@kms_flip@2x-flip-vs-panning.html

  * igt@kms_flip@2x-plain-flip-interruptible:
    - shard-rkl:          [SKIP][407] ([i915#9934]) -> [SKIP][408] ([i915#14544] / [i915#9934]) +1 other test skip
   [407]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-3/igt@kms_flip@2x-plain-flip-interruptible.html
   [408]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_flip@2x-plain-flip-interruptible.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-rkl:          [ABORT][409] ([i915#15132]) -> [INCOMPLETE][410] ([i915#16276] / [i915#6113]) +1 other test incomplete
   [409]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-1/igt@kms_flip@flip-vs-suspend.html
   [410]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling:
    - shard-rkl:          [SKIP][411] ([i915#15643]) -> [SKIP][412] ([i915#14544] / [i915#15643])
   [411]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-5/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html
   [412]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling:
    - shard-rkl:          [SKIP][413] ([i915#14544] / [i915#15643]) -> [SKIP][414] ([i915#15643])
   [413]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html
   [414]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt:
    - shard-dg1:          [SKIP][415] ([i915#4423]) -> [SKIP][416] +2 other tests skip
   [415]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg1-12/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt.html
   [416]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-18/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-pwrite:
    - shard-dg1:          [SKIP][417] ([i915#15989] / [i915#4423]) -> [SKIP][418] ([i915#15989])
   [417]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg1-12/igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-pwrite.html
   [418]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-13/igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt:
    - shard-rkl:          [SKIP][419] -> [SKIP][420] ([i915#14544]) +21 other tests skip
   [419]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html
   [420]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-pri-shrfb-draw-render:
    - shard-dg1:          [SKIP][421] ([i915#15102] / [i915#4423]) -> [SKIP][422] ([i915#15102])
   [421]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-pri-shrfb-draw-render.html
   [422]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-13/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@hdr-1p-primscrn-cur-indfb-draw-mmap-cpu:
    - shard-dg1:          [SKIP][423] ([i915#15989]) -> [SKIP][424] ([i915#15989] / [i915#4423])
   [423]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg1-13/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-cur-indfb-draw-mmap-cpu.html
   [424]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-12/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-cur-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move:
    - shard-rkl:          [SKIP][425] ([i915#14544] / [i915#15102]) -> [SKIP][426] ([i915#15102]) +10 other tests skip
   [425]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move.html
   [426]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt:
    - shard-rkl:          [SKIP][427] ([i915#15102]) -> [SKIP][428] ([i915#14544] / [i915#15102]) +7 other tests skip
   [427]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt.html
   [428]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-wc:
    - shard-dg1:          [SKIP][429] ([i915#15990] / [i915#8708]) -> [SKIP][430] ([i915#15990] / [i915#4423] / [i915#8708])
   [429]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg1-17/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-wc.html
   [430]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-13/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-rkl:          [SKIP][431] ([i915#1825]) -> [SKIP][432] ([i915#14544] / [i915#1825]) +1 other test skip
   [431]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-7/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt.html
   [432]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-rkl:          [SKIP][433] ([i915#14544] / [i915#1825]) -> [SKIP][434] ([i915#1825]) +3 other tests skip
   [433]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc.html
   [434]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_hdr@bpc-switch-suspend:
    - shard-rkl:          [INCOMPLETE][435] ([i915#15436]) -> [SKIP][436] ([i915#16644] / [i915#3555] / [i915#8228])
   [435]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_hdr@bpc-switch-suspend.html
   [436]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-2/igt@kms_hdr@bpc-switch-suspend.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-dg1:          [SKIP][437] ([i915#1187] / [i915#12713]) -> [SKIP][438] ([i915#12713])
   [437]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-dg1-13/igt@kms_hdr@brightness-with-hdr.html
   [438]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-dg1-12/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_joiner@basic-force-big-joiner:
    - shard-rkl:          [SKIP][439] ([i915#15459]) -> [SKIP][440] ([i915#14544] / [i915#15459])
   [439]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-3/igt@kms_joiner@basic-force-big-joiner.html
   [440]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_joiner@basic-force-big-joiner.html

  * igt@kms_panel_fitting@legacy:
    - shard-rkl:          [SKIP][441] ([i915#14544] / [i915#6301]) -> [SKIP][442] ([i915#6301])
   [441]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_panel_fitting@legacy.html
   [442]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-8/igt@kms_panel_fitting@legacy.html

  * igt@kms_plane@pixel-format-yf-tiled-modifier:
    - shard-rkl:          [SKIP][443] ([i915#15709]) -> [SKIP][444] ([i915#14544] / [i915#15709]) +3 other tests skip
   [443]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-3/igt@kms_plane@pixel-format-yf-tiled-modifier.html
   [444]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_plane@pixel-format-yf-tiled-modifier.html

  * igt@kms_plane@pixel-format-yf-tiled-modifier-source-clamping:
    - shard-rkl:          [SKIP][445] ([i915#14544] / [i915#15709]) -> [SKIP][446] ([i915#15709])
   [445]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_plane@pixel-format-yf-tiled-modifier-source-clamping.html
   [446]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@kms_plane@pixel-format-yf-tiled-modifier-source-clamping.html

  * igt@kms_plane_multiple@2x-tiling-yf:
    - shard-rkl:          [SKIP][447] ([i915#13958]) -> [SKIP][448] ([i915#13958] / [i915#14544])
   [447]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-5/igt@kms_plane_multiple@2x-tiling-yf.html
   [448]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_plane_multiple@2x-tiling-yf.html

  * igt@kms_pm_dc@dc9-dpms:
    - shard-tglu:         [SKIP][449] ([i915#15128]) -> [SKIP][450] ([i915#15739])
   [449]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-tglu-6/igt@kms_pm_dc@dc9-dpms.html
   [450]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-8/igt@kms_pm_dc@dc9-dpms.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-rkl:          [SKIP][451] ([i915#3828]) -> [SKIP][452] ([i915#9340])
   [451]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-2/igt@kms_pm_lpsp@kms-lpsp.html
   [452]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-4/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf:
    - shard-rkl:          [SKIP][453] ([i915#11520] / [i915#14544]) -> [SKIP][454] ([i915#11520]) +2 other tests skip
   [453]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf.html
   [454]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-7/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area:
    - shard-rkl:          [SKIP][455] ([i915#11520]) -> [SKIP][456] ([i915#11520] / [i915#14544]) +1 other test skip
   [455]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-5/igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area.html
   [456]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - shard-rkl:          [SKIP][457] ([i915#9683]) -> [SKIP][458] ([i915#14544] / [i915#9683])
   [457]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-4/igt@kms_psr2_su@frontbuffer-xrgb8888.html
   [458]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_psr2_su@frontbuffer-xrgb8888.html

  * igt@kms_psr@fbc-psr2-sprite-render:
    - shard-rkl:          [SKIP][459] ([i915#1072] / [i915#9732]) -> [SKIP][460] ([i915#1072] / [i915#14544] / [i915#9732]) +4 other tests skip
   [459]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-4/igt@kms_psr@fbc-psr2-sprite-render.html
   [460]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_psr@fbc-psr2-sprite-render.html

  * igt@kms_psr@psr2-cursor-plane-move:
    - shard-rkl:          [SKIP][461] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][462] ([i915#1072] / [i915#9732]) +4 other tests skip
   [461]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_psr@psr2-cursor-plane-move.html
   [462]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-5/igt@kms_psr@psr2-cursor-plane-move.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-rkl:          [SKIP][463] ([i915#14544] / [i915#5289]) -> [SKIP][464] ([i915#5289])
   [463]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
   [464]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-4/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_vrr@flip-basic-fastset:
    - shard-rkl:          [SKIP][465] ([i915#9906]) -> [SKIP][466] ([i915#14544] / [i915#9906])
   [465]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-4/igt@kms_vrr@flip-basic-fastset.html
   [466]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_vrr@flip-basic-fastset.html

  * igt@kms_vrr@flipline:
    - shard-rkl:          [SKIP][467] ([i915#15243] / [i915#3555]) -> [SKIP][468] ([i915#14544] / [i915#15243] / [i915#3555])
   [467]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-8/igt@kms_vrr@flipline.html
   [468]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-6/igt@kms_vrr@flipline.html

  * igt@kms_vrr@max-min:
    - shard-rkl:          [SKIP][469] ([i915#14544] / [i915#9906]) -> [SKIP][470] ([i915#9906])
   [469]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-rkl-6/igt@kms_vrr@max-min.html
   [470]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-rkl-2/igt@kms_vrr@max-min.html

  * igt@perf_pmu@module-unload:
    - shard-tglu:         [ABORT][471] ([i915#13029] / [i915#15778]) -> [ABORT][472] ([i915#15778])
   [471]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19004/shard-tglu-9/igt@perf_pmu@module-unload.html
   [472]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15686/shard-tglu-4/igt@perf_pmu@module-unload.html

  
  [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
  [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
  [i915#10553]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10553
  [i915#10647]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10647
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078
  [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
  [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
  [i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
  [i915#118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/118
  [i915#1187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1187
  [i915#11920]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11920
  [i915#12169]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12169
  [i915#12178]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12178
  [i915#12276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12276
  [i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
  [i915#12343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12343
  [i915#12358]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12358
  [i915#12454]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12454
  [i915#12469]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12469
  [i915#12712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12712
  [i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
  [i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
  [i915#12756]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12756
  [i915#12761]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12761
  [i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805
  [i915#12964]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12964
  [i915#13029]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13029
  [i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046
  [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
  [i915#13179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13179
  [i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
  [i915#13363]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13363
  [i915#13390]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13390
  [i915#13398]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13398
  [i915#13409]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13409
  [i915#13476]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13476
  [i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
  [i915#13691]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13691
  [i915#13717]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13717
  [i915#13748]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13748
  [i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749
  [i915#13790]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13790
  [i915#13809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13809
  [i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
  [i915#14073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14073
  [i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098
  [i915#14152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14152
  [i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544
  [i915#14694]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14694
  [i915#14702]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14702
  [i915#14712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14712
  [i915#14888]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14888
  [i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073
  [i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102
  [i915#15106]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15106
  [i915#15128]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15128
  [i915#15131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15131
  [i915#15132]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15132
  [i915#15243]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15243
  [i915#15329]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15329
  [i915#15330]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15330
  [i915#15436]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15436
  [i915#15454]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15454
  [i915#15459]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15459
  [i915#15492]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15492
  [i915#15582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15582
  [i915#15643]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15643
  [i915#15662]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15662
  [i915#15678]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15678
  [i915#15709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15709
  [i915#15733]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15733
  [i915#15739]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15739
  [i915#15778]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15778
  [i915#15804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15804
  [i915#15815]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15815
  [i915#15865]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15865
  [i915#15949]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15949
  [i915#15989]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15989
  [i915#15990]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15990
  [i915#15991]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15991
  [i915#15999]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15999
  [i915#16056]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16056
  [i915#16079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16079
  [i915#16081]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16081
  [i915#16109]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16109
  [i915#16182]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16182
  [i915#16184]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16184
  [i915#16193]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16193
  [i915#16276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16276
  [i915#16348]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16348
  [i915#16361]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16361
  [i915#16396]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16396
  [i915#16471]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16471
  [i915#16508]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16508
  [i915#16593]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16593
  [i915#16594]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16594
  [i915#16600]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16600
  [i915#16644]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16644
  [i915#16680]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16680
  [i915#16789]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16789
  [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
  [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
  [i915#2436]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2436
  [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
  [i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658
  [i915#2681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2681
  [i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
  [i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
  [i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
  [i915#3323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3323
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
  [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
  [i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828
  [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
  [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
  [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
  [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
  [i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
  [i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
  [i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839
  [i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
  [i915#5107]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5107
  [i915#5138]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5138
  [i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
  [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
  [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
  [i915#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439
  [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
  [i915#6113]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6113
  [i915#6187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6187
  [i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
  [i915#6335]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6335
  [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
  [i915#7276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7276
  [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
  [i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707
  [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
  [i915#7862]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7862
  [i915#7984]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7984
  [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
  [i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
  [i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
  [i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
  [i915#8430]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8430
  [i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516
  [i915#8562]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8562
  [i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623
  [i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
  [i915#8814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8814
  [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
  [i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340
  [i915#9531]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9531
  [i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
  [i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
  [i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
  [i915#9723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9723
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
  [i915#9809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9809
  [i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
  [i915#9878]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9878
  [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
  [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934


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

  * CI: CI-20190529 -> None
  * IGT: IGT_9057 -> IGTPW_15686
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_19004: ceef0899403ceea5643d80a02bfdf9587f3845b8 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_15686: 15686
  IGT_9057: 8f7d5198bdb1c5af7c97b967a0bcbe77b653e8a0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

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

* RE: [PATCH 1/1] tests/intel/xe_exec_capture: Add coredump decode validation subtests
  2026-08-16 18:09 ` [PATCH 1/1] " Jan Maslak
@ 2026-10-14 15:09   ` Cavitt, Jonathan
  2026-10-22 13:23     ` Rodrigo Vivi
  0 siblings, 1 reply; 8+ messages in thread
From: Cavitt, Jonathan @ 2026-10-14 15:09 UTC (permalink / raw)
  To: Maslak, Jan, igt-dev@lists.freedesktop.org, Dong, Zhanjun,
	Vivi, Rodrigo
  Cc: Brost, Matthew, Maslak, Jan, Cavitt, Jonathan

-----Original Message-----
From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Jan Maslak
Sent: Sunday, August 16, 2026 11:09 AM
To: igt-dev@lists.freedesktop.org
Cc: Brost, Matthew <matthew.brost@intel.com>; Maslak, Jan <jan.maslak@intel.com>
Subject: [PATCH 1/1] tests/intel/xe_exec_capture: Add coredump decode validation subtests
> 
> Add decode-data and decode-data-large subtests that create dumpable VM
> buffers with deterministic contents, hang an engine, and validate the
> resulting devcoredump.
> 
> Decode every ASCII85 blob and verify its decoded size matches the
> advertised length. For test-created VM blobs, also verify the decoded
> contents. The large variant crosses the kernel coredump chunking
> threshold and legacy rendering limit.
> 
> Signed-off-by: Jan Maslak <jan.maslak@intel.com>

I don't see anything wrong with this patch that warrants immediate attention.
I mean, could some of the ASCII decoding and payload/blob parsing code
be separated out into a separate lib file?  Sure.  But I don't think that's strictly
necessary for this patch.
There's also the minor concern of what happens if the devcoredump file is empty,
but I'm going to work under the assumption that an empty devcoredump file is
impossible (I.E. the file would just not open), and as such adding extra handling
for that case is unnecessary.
And, of course, it's good that the new tests have already been validated locally.

Of course, I'm not exactly an expert on devcoredump protocol, so I'd recommend
getting a second/third opinion on this before merging.  I'm tagging Zhanjun to
handle that, but maybe Rodrigo could also help here.
I'll give this my RB if they don't have any revision notes.
-Jonathan Cavitt

> ---
>  tests/intel/xe_exec_capture.c | 549 +++++++++++++++++++++++++++++++++-
>  1 file changed, 548 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/intel/xe_exec_capture.c b/tests/intel/xe_exec_capture.c
> index 6e454cfff3..2d726cabf9 100644
> --- a/tests/intel/xe_exec_capture.c
> +++ b/tests/intel/xe_exec_capture.c
> @@ -17,10 +17,13 @@
>  #include <inttypes.h>
>  #include <regex.h>
>  #include <stdio.h>
> +#include <stdlib.h>
>  #include <string.h>
> +#include <sys/mman.h>
>  
>  #include "igt.h"
>  #include "igt_device.h"
> +#include "igt_os.h"
>  #include "igt_sriov_device.h"
>  #include "igt_sysfs.h"
>  #include "lib/igt_syncobj.h"
> @@ -82,6 +85,43 @@
>  #define INDEX_VM_LENGTH			2
>  #define INDEX_VM_SIZE			3
>  
> +/*
> + * Binary sections of the dump are encoded with the kernel's
> + * include/linux/ascii85.h: a zero dword becomes a single 'z', every other
> + * dword becomes 5 characters in the '!'..'u' range.
> + */
> +#define ASCII85_ZERO			'z'
> +#define ASCII85_MIN			'!'
> +#define ASCII85_MAX			'u'
> +#define ASCII85_GROUP_LEN		5
> +
> +#define LENGTH_SUFFIX			"].length:"
> +#define DATA_SUFFIX			"].data:"
> +#define ERROR_SUFFIX			"].error:"
> +#define MAX_BLOB_NAME_LEN		64
> +
> +#define CAPTURE_SPIN_ADDRESS		0x1a0000ull
> +#define CAPTURE_PAYLOAD_ADDRESS		0x100000000ull
> +
> +/* Largest dump size the kernel could render before it learned to chunk (VLK-71080) */
> +#define DEVCOREDUMP_LEGACY_MAX_SIZE	((uint64_t)INT_MAX)
> +
> +/*
> + * The test payloads contain no zero dwords, so their ASCII85 size is exactly
> + * 5/4 of their binary size. The decoder still supports zero dwords.
> + */
> +#define ASCII85_ENCODED_SIZE(bytes)	((bytes) / 4 * 5)
> +
> +/* Small, but already far past any line-oriented parser */
> +#define DECODE_PAYLOAD_SIZE		SZ_2M
> +#define DECODE_PAYLOAD_COUNT		2
> +
> +#define LARGE_PAYLOAD_SIZE		SZ_64M
> +/* One extra buffer makes the encoded payload exceed the legacy cap */
> +#define LARGE_PAYLOAD_COUNT		\
> +	((int)(DEVCOREDUMP_LEGACY_MAX_SIZE / \
> +	       ASCII85_ENCODED_SIZE(LARGE_PAYLOAD_SIZE)) + 1)
> +
>  static u64
>  xe_sysfs_get_job_timeout_ms(int fd, struct drm_xe_engine_class_instance *eci)
>  {
> @@ -224,6 +264,323 @@ static bool rm_devcoredump(char *path)
>  	return false;
>  }
>  
> +static bool devcoredump_exists(char *path)
> +{
> +	return access_devcoredump(path, NULL, NULL) != 0;
> +}
> +
> +/**
> + * struct payload_bo - A buffer object the test fills with known dword values
> + * @handle: GEM handle
> + * @addr: GPU virtual address the buffer is bound at, which is also the name the
> + *	  dump gives it, i.e. "[<addr>].data:"
> + * @size: buffer size in bytes
> + * @payload_index: zero-based payload index, used to generate this buffer's
> + *		   dword values
> + * @seen: set once the dump has been found to carry this buffer intact
> + */
> +struct payload_bo {
> +	uint32_t handle;
> +	uint64_t addr;
> +	uint64_t size;
> +	uint32_t payload_index;
> +	bool seen;
> +};
> +
> +/* Keep each payload's dword values distinct and non-zero. */
> +#define PAYLOAD_INDEX_STRIDE		0x04000000u
> +
> +/**
> + * payload_dword - Return the expected dword at a payload offset
> + * @payload_index: zero-based payload index
> + * @dword_index: dword offset in the payload
> + *
> + * Returns: expected dword value
> + */
> +static uint32_t payload_dword(uint32_t payload_index, uint64_t dword_index)
> +{
> +	return (payload_index + 1) * PAYLOAD_INDEX_STRIDE + (uint32_t)dword_index;
> +}
> +
> +/**
> + * struct ascii85_decoder - Position within one encoded blob
> + * @pos: next character to consume
> + * @bad: set once a group is found that no encoder could have produced
> + * @truncated: set when the blob ends part way through a group
> + */
> +struct ascii85_decoder {
> +	const char *pos;
> +	bool bad;
> +	bool truncated;
> +};
> +
> +/**
> + * ascii85_next_dword - Decode the next dword of a blob
> + * @dec: decoder positioned at the start of a group
> + * @out: filled with the decoded value
> + *
> + * Returns: false at the end of the blob, on the first malformed group or on a
> + * group cut short, the last two reported through @dec->bad and @dec->truncated.
> + */
> +static bool ascii85_next_dword(struct ascii85_decoder *dec, uint32_t *out)
> +{
> +	uint64_t acc = 0;
> +	int i;
> +
> +	if (!*dec->pos || *dec->pos == '\n')
> +		return false;
> +
> +	/* A zero dword is abbreviated to one character */
> +	if (*dec->pos == ASCII85_ZERO) {
> +		dec->pos++;
> +		*out = 0;
> +		return true;
> +	}
> +
> +	/* Otherwise five base-85 digits, most significant first */
> +	for (i = 0; i < ASCII85_GROUP_LEN; i++) {
> +		if (!dec->pos[i] || dec->pos[i] == '\n') {
> +			dec->truncated = true;
> +			return false;
> +		}
> +		if (dec->pos[i] < ASCII85_MIN || dec->pos[i] > ASCII85_MAX) {
> +			dec->bad = true;
> +			return false;
> +		}
> +		acc = acc * 85 + (dec->pos[i] - ASCII85_MIN);
> +	}
> +
> +	/* 85^5 exceeds 2^32, so not every group is encodable */
> +	if (acc > UINT32_MAX) {
> +		dec->bad = true;
> +		return false;
> +	}
> +
> +	dec->pos += ASCII85_GROUP_LEN;
> +	*out = acc;
> +
> +	return true;
> +}
> +
> +/**
> + * parse_blob_field - Split a "[<name>]<suffix> <value>" devcoredump line
> + * @line: line to match, e.g. "[4e4800000].length: 0x4000000"
> + * @suffix: LENGTH_SUFFIX, DATA_SUFFIX or ERROR_SUFFIX, matched literally so that
> + *	    "].replay_length:" does not look like "].length:"
> + * @name: filled with the bracketed name on success
> + * @name_size: size of @name
> + * @value: set to the first character of the value on success
> + *
> + * Returns: true when @line carries @suffix, false otherwise.
> + */
> +static bool
> +parse_blob_field(const char *line, const char *suffix, char *name, size_t name_size,
> +		 const char **value)
> +{
> +	const char *open = strchr(line, '[');
> +	const char *close;
> +	size_t len;
> +
> +	if (!open)
> +		return false;
> +
> +	open++;
> +	close = strchr(open, ']');
> +	if (!close || strncmp(close, suffix, strlen(suffix)))
> +		return false;
> +
> +	len = close - open;
> +	if (len >= name_size)
> +		return false;
> +
> +	memcpy(name, open, len);
> +	name[len] = '\0';
> +
> +	*value = close + strlen(suffix);
> +	while (**value == ' ' || **value == '\t')
> +		(*value)++;
> +
> +	return true;
> +}
> +
> +/**
> + * payload_by_name - Find the payload a blob name refers to
> + * @name: bracketed blob name, e.g. "4e4800000" or "HWSP"
> + * @payloads: buffers the test bound before hanging, or NULL
> + * @n_payloads: number of entries in @payloads
> + *
> + * Returns: the matching payload, or NULL when @name is not one of them. The
> + * dump also uses labels such as "HWSP" and "CTB" for driver-owned sections;
> + * names that are not entirely hexadecimal never match, which keeps "CTB" from
> + * resolving as the address 0xc.
> + */
> +static struct payload_bo *
> +payload_by_name(const char *name, struct payload_bo *payloads, int n_payloads)
> +{
> +	uint64_t addr;
> +	char *end;
> +	int i;
> +
> +	if (!payloads)
> +		return NULL;
> +
> +	addr = strtoull(name, &end, 16);
> +	if (end == name || *end)
> +		return NULL;
> +
> +	for (i = 0; i < n_payloads; i++)
> +		if (payloads[i].addr == addr)
> +			return &payloads[i];
> +
> +	return NULL;
> +}
> +
> +/**
> + * check_blob - Validate one ".length"/".data" pair of a devcoredump
> + * @name: bracketed blob name, a hex VMA address for VM state sections
> + * @length: byte count advertised by the ".length" line
> + * @data: encoded payload of the ".data" line
> + * @payloads: buffers the test bound before hanging, or NULL
> + * @n_payloads: number of entries in @payloads
> + *
> + * Asserts that the blob is valid ASCII85 and decodes to exactly @length bytes.
> + * Test-created payloads are also checked against their expected contents.
> + */
> +static void
> +check_blob(const char *name, uint64_t length, const char *data,
> +	   struct payload_bo *payloads, int n_payloads)
> +{
> +	struct ascii85_decoder dec = { .pos = data };
> +	struct payload_bo *expected_payload;
> +	uint64_t expected_dwords = 0;
> +	uint64_t dwords = 0;
> +	uint32_t val;
> +
> +	expected_payload = payload_by_name(name, payloads, n_payloads);
> +	if (expected_payload) {
> +		igt_assert_f(length == expected_payload->size,
> +			     "[%s]: .length reports 0x%" PRIx64
> +			     " bytes, bound VMA is 0x%" PRIx64 " bytes\n",
> +			     name, length, expected_payload->size);
> +		expected_dwords = expected_payload->size / sizeof(uint32_t);
> +	}
> +
> +	/*
> +	 * Decode every blob for structural validation. Only test-created payloads
> +	 * need the additional content comparison.
> +	 */
> +	while (ascii85_next_dword(&dec, &val)) {
> +		if (expected_payload) {
> +			igt_assert_f(dwords < expected_dwords,
> +				     "[%s]: .data contains more dwords than the bound payload\n",
> +				     name);
> +			igt_assert_f(val == payload_dword(expected_payload->payload_index,
> +							  dwords),
> +				     "[%s]: decoded dword %" PRIu64
> +				     " differs from the content written to the buffer\n",
> +				     name, dwords);
> +		}
> +		dwords++;
> +	}
> +
> +	igt_assert_f(!dec.truncated,
> +		     "[%s]: .data ends mid-ASCII85 group after %" PRIu64 " of %" PRIu64
> +		     " dwords, the dump was cut short\n",
> +		     name, dwords, length / sizeof(uint32_t));
> +
> +	igt_assert_f(!dec.bad,
> +		     "[%s]: .data is not valid ASCII85 at dword %" PRIu64
> +		     " of %" PRIu64 " announced by .length\n",
> +		     name, dwords, length / sizeof(uint32_t));
> +
> +	igt_assert_f(dwords * sizeof(uint32_t) == length,
> +		     "[%s]: .length reports 0x%" PRIx64 " bytes but .data decodes to"
> +		     " 0x%" PRIx64 " bytes\n",
> +		     name, length, dwords * sizeof(uint32_t));
> +
> +	if (!expected_payload)
> +		return;
> +
> +	expected_payload->seen = true;
> +	igt_debug("Cross-validated 0x%" PRIx64 " bytes of VMA [%s]\n", length, name);
> +}
> +
> +/**
> + * validate_devcoredump - Check every ASCII85 blob of a devcoredump
> + * @path: path of the devcoredump data file
> + * @payloads: buffers the test bound before hanging, or NULL
> + * @n_payloads: number of entries in @payloads
> + *
> + * Walks the whole dump, checks each blob's decoded size, and verifies that all
> + * test-created payloads are present with the expected contents.
> + */
> +static void
> +validate_devcoredump(const char *path, struct payload_bo *payloads, int n_payloads)
> +{
> +	char pending_name[MAX_BLOB_NAME_LEN] = {0};
> +	char name[MAX_BLOB_NAME_LEN];
> +	uint64_t pending_length = 0;
> +	bool have_pending = false;
> +	bool read_error;
> +	size_t line_size = 0;
> +	char *line = NULL;
> +	const char *value;
> +	int n_blobs = 0, read_errno, i;
> +	FILE *f;
> +
> +	f = fopen(path, "r");
> +	igt_assert_f(f, "Failed to open %s, errno=%d\n", path, errno);
> +
> +	/* .data lines can be megabytes long, so let getline() grow the buffer. */
> +	while (getline(&line, &line_size, f) > 0) {
> +		if (parse_blob_field(line, LENGTH_SUFFIX, name, sizeof(name), &value)) {
> +			pending_length = strtoull(value, NULL, 0);
> +			memcpy(pending_name, name, strlen(name) + 1);
> +			have_pending = true;
> +			continue;
> +		}
> +
> +		if (parse_blob_field(line, ERROR_SUFFIX, name, sizeof(name), &value)) {
> +			if (have_pending && !strcmp(name, pending_name))
> +				have_pending = false;
> +
> +			igt_assert_f(!payload_by_name(name, payloads, n_payloads),
> +				     "[%s]: kernel could not snapshot the buffer: %s",
> +				     name, value);
> +			continue;
> +		}
> +
> +		if (!parse_blob_field(line, DATA_SUFFIX, name, sizeof(name), &value))
> +			continue;
> +
> +		igt_assert_f(have_pending && !strcmp(name, pending_name),
> +			     "[%s].data is not preceded by a matching .length line\n",
> +			     name);
> +
> +		have_pending = false;
> +		n_blobs++;
> +		check_blob(name, pending_length, value, payloads, n_payloads);
> +	}
> +
> +	read_error = ferror(f);
> +	read_errno = read_error ? errno : 0;
> +	free(line);
> +	fclose(f);
> +
> +	igt_assert_f(!read_error, "Failed to read %s, errno=%d\n", path, read_errno);
> +	igt_assert_f(!have_pending,
> +		     "[%s].length has no matching .data or .error line\n",
> +		     pending_name);
> +
> +	igt_assert_f(n_blobs, "No ASCII85 blob found in %s\n", path);
> +	igt_debug("Validated %d ASCII85 blobs\n", n_blobs);
> +
> +	for (i = 0; i < n_payloads; i++)
> +		igt_assert_f(payloads[i].seen,
> +			     "VMA 0x%" PRIx64 " missing from the devcoredump VM state\n",
> +			     payloads[i].addr);
> +}
> +
>  static char
>  *get_coredump_item(regex_t *regex, char **lines, const char *tag, int tag_index, int target_index)
>  {
> @@ -392,6 +749,8 @@ static void test_card(int fd)
>  		check_item_u64(&regex, lines, "length:", addr,
>  			       addr + BATCH_DW_COUNT * sizeof(u32), INDEX_VALUE, INDEX_KEY);
>  
> +		validate_devcoredump(path, NULL, 0);
> +
>  		/* clear devcoredump */
>  		rm_devcoredump(path);
>  		sleep(1);
> @@ -404,10 +763,183 @@ static void test_card(int fd)
>  	regfree(&regex);
>  }
>  
> +/**
> + * hang_with_payloads - Hang @eci with dumpable buffers of known content
> + * @fd: xe device file descriptor
> + * @eci: engine to hang
> + * @payloads: buffers to create, fill and bind; handles are returned to the
> + *	      caller, which owns them
> + * @n_payloads: number of entries in @payloads
> + *
> + * Submits a batch that spins forever, so the job timeout fires and the driver
> + * writes a devcoredump. The payloads share the address space of that batch and
> + * are bound DUMPABLE, which is what tells the driver to copy their contents
> + * into the dump, giving us blobs whose expected bytes are known exactly.
> + */
> +static void
> +hang_with_payloads(int fd, struct drm_xe_engine_class_instance *eci,
> +		   struct payload_bo *payloads, int n_payloads)
> +{
> +	struct drm_xe_sync sync = {
> +		.type = DRM_XE_SYNC_TYPE_SYNCOBJ,
> +		.flags = DRM_XE_SYNC_FLAG_SIGNAL,
> +	};
> +	struct drm_xe_exec exec = {
> +		.num_batch_buffer = 1,
> +		.num_syncs = 1,
> +		.syncs = to_user_pointer(&sync),
> +	};
> +	struct xe_spin_opts spin_opts = { .addr = CAPTURE_SPIN_ADDRESS };
> +	uint64_t spin_size = xe_bb_size(fd, sizeof(struct xe_spin));
> +	uint32_t vm = xe_vm_create(fd, 0, 0);
> +	uint32_t spin_bo, exec_queue, bind_syncobj, exec_syncobj;
> +	struct xe_spin *spin;
> +	int i;
> +
> +	spin_bo = xe_bo_create(fd, vm, spin_size, vram_if_possible(fd, eci->gt_id),
> +			       DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM);
> +	spin = xe_bo_map(fd, spin_bo, spin_size);
> +
> +	bind_syncobj = syncobj_create(fd, 0);
> +	sync.handle = bind_syncobj;
> +
> +	__xe_vm_bind_assert(fd, vm, 0, spin_bo, 0, CAPTURE_SPIN_ADDRESS, spin_size,
> +			    DRM_XE_VM_BIND_OP_MAP, DRM_XE_VM_BIND_FLAG_DUMPABLE,
> +			    &sync, 1, 0, 0);
> +	igt_assert(syncobj_wait(fd, &bind_syncobj, 1, INT64_MAX, 0, NULL));
> +
> +	for (i = 0; i < n_payloads; i++) {
> +		uint32_t *map;
> +		uint64_t j;
> +
> +		/* Use system memory so the large capture does not require large VRAM. */
> +		payloads[i].handle = xe_bo_create(fd, vm, payloads[i].size,
> +						  system_memory(fd), 0);
> +		map = xe_bo_map(fd, payloads[i].handle, payloads[i].size);
> +		for (j = 0; j < payloads[i].size / sizeof(*map); j++)
> +			map[j] = payload_dword(payloads[i].payload_index, j);
> +		munmap(map, payloads[i].size);
> +
> +		syncobj_reset(fd, &bind_syncobj, 1);
> +		__xe_vm_bind_assert(fd, vm, 0, payloads[i].handle, 0, payloads[i].addr,
> +				    payloads[i].size, DRM_XE_VM_BIND_OP_MAP,
> +				    DRM_XE_VM_BIND_FLAG_DUMPABLE, &sync, 1, 0, 0);
> +		igt_assert(syncobj_wait(fd, &bind_syncobj, 1, INT64_MAX, 0, NULL));
> +	}
> +
> +	exec_queue = xe_exec_queue_create(fd, vm, eci, 0);
> +	exec_syncobj = syncobj_create(fd, 0);
> +
> +	xe_spin_init(spin, &spin_opts);
> +
> +	sync.handle = exec_syncobj;
> +	exec.exec_queue_id = exec_queue;
> +	exec.address = CAPTURE_SPIN_ADDRESS;
> +	xe_exec(fd, &exec);
> +
> +	xe_spin_wait_started(spin);
> +
> +	/* The job timeout resets the queue, which is what creates the dump */
> +	igt_assert(syncobj_wait(fd, &exec_syncobj, 1, INT64_MAX, 0, NULL));
> +
> +	syncobj_destroy(fd, exec_syncobj);
> +	syncobj_destroy(fd, bind_syncobj);
> +	xe_exec_queue_destroy(fd, exec_queue);
> +	munmap(spin, spin_size);
> +	gem_close(fd, spin_bo);
> +	xe_vm_destroy(fd, vm);
> +}
> +
> +/**
> + * SUBTEST: decode-data
> + * Description: Create payloads with known contents, hang an engine, and
> + * 		verify the resulting coredump's blob lengths and payload
> + * 		contents before removing it
> + *
> + * SUBTEST: decode-data-large
> + * Description: Same as decode-data, but with enough data to exercise kernel's
> + * 		coredump chunking and the legacy size limit
> + */
> +static void
> +test_capture_payload(int fd, struct drm_xe_engine_class_instance *eci,
> +		     int n_payloads, uint64_t payload_size)
> +{
> +	char path[MAX_SYSFS_PATH_LEN];
> +	struct payload_bo *payloads;
> +	int i;
> +
> +	/* Every buffer needs its own slice of the 32-bit value space */
> +	igt_assert(payload_size / sizeof(uint32_t) <= PAYLOAD_INDEX_STRIDE &&
> +		   n_payloads <= UINT32_MAX / PAYLOAD_INDEX_STRIDE);
> +
> +	payloads = calloc(n_payloads, sizeof(*payloads));
> +	igt_assert(payloads);
> +
> +	for (i = 0; i < n_payloads; i++) {
> +		payloads[i].addr = CAPTURE_PAYLOAD_ADDRESS + i * payload_size;
> +		payloads[i].size = payload_size;
> +		payloads[i].payload_index = i;
> +	}
> +
> +	get_devcoredump_path(igt_device_get_card_index(fd), path);
> +	rm_devcoredump(path);
> +
> +	/* Wait for the previous coredump to disappear before creating another. */
> +	igt_assert_f(igt_wait(!devcoredump_exists(path), 5000, 100),
> +		     "Devcoredump not removed, errno=%d.\n", errno);
> +
> +	hang_with_payloads(fd, eci, payloads, n_payloads);
> +
> +	/*
> +	 * Close our BO handles; the snapshot holds BO references until it copies
> +	 * their contents into kernel-owned buffers for the coredump.
> +	 */
> +	for (i = 0; i < n_payloads; i++)
> +		gem_close(fd, payloads[i].handle);
> +
> +	igt_assert_f(igt_wait(devcoredump_exists(path), 5000, 100),
> +		     "Devcoredump not created, a previous dump may still be held\n");
> +
> +	validate_devcoredump(path, payloads, n_payloads);
> +
> +	free(payloads);
> +
> +	rm_devcoredump(path);
> +
> +	/* Wait for the dump to disappear so its large buffers can be released. */
> +	igt_assert_f(igt_wait(!devcoredump_exists(path), 5000, 100),
> +		     "Devcoredump not removed, errno=%d.\n", errno);
> +}
> +
> +/**
> + * require_capture_memory - Skip unless the machine can hold the whole capture
> + * @n_payloads: number of buffers the subtest binds
> + * @payload_size: size of each buffer
> + *
> + * Upper bound on the footprint: the payloads, the snapshot copy the kernel
> + * takes of them, the chunk the kernel renders and the longest line getline()
> + * has to buffer. Not all of them peak at the same instant. The rendering buffer
> + * is sized for the unfixed kernel, which is the one this has to survive.
> + */
> +static void require_capture_memory(int n_payloads, uint64_t payload_size)
> +{
> +	uint64_t payload = (uint64_t)n_payloads * payload_size;
> +	uint64_t encoded = ASCII85_ENCODED_SIZE(payload);
> +	uint64_t rendered = encoded < DEVCOREDUMP_LEGACY_MAX_SIZE ?
> +			    encoded : DEVCOREDUMP_LEGACY_MAX_SIZE;
> +
> +	igt_require_memory(1, 2 * payload + rendered +
> +			   ASCII85_ENCODED_SIZE(payload_size), CHECK_RAM);
> +}
> +
>  int igt_main()
>  {
>  	int xe;
> -	struct drm_xe_engine_class_instance *hwe;
> +	/*
> +	 * The payload tests exercise VM capture and need one engine to trigger it.
> +	 * The reset subtest separately iterates over every available engine.
> +	 */
> +	struct drm_xe_engine_class_instance *hwe, *hang_hwe = NULL;
>  	u64 timeouts[DRM_XE_ENGINE_CLASS_VM_BIND] = {0};
>  
>  	igt_fixture() {
> @@ -416,6 +948,8 @@ int igt_main()
>  			/* Skip kernel only classes */
>  			if (hwe->engine_class >= DRM_XE_ENGINE_CLASS_VM_BIND)
>  				continue;
> +			if (!hang_hwe)
> +				hang_hwe = hwe;
>  			/* Skip classes already set */
>  			if (timeouts[hwe->engine_class])
>  				continue;
> @@ -433,6 +967,19 @@ int igt_main()
>  	igt_subtest("reset")
>  		test_card(xe);
>  
> +	igt_subtest("decode-data") {
> +		igt_require(hang_hwe);
> +		test_capture_payload(xe, hang_hwe, DECODE_PAYLOAD_COUNT,
> +				     DECODE_PAYLOAD_SIZE);
> +	}
> +
> +	igt_subtest("decode-data-large") {
> +		igt_require(hang_hwe);
> +		require_capture_memory(LARGE_PAYLOAD_COUNT, LARGE_PAYLOAD_SIZE);
> +		test_capture_payload(xe, hang_hwe, LARGE_PAYLOAD_COUNT,
> +				     LARGE_PAYLOAD_SIZE);
> +	}
> +
>  	igt_fixture() {
>  		xe_for_each_engine(xe, hwe) {
>  			u64 store, timeout;
> -- 
> 2.43.0
> 
> 

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

* Re: [PATCH 1/1] tests/intel/xe_exec_capture: Add coredump decode validation subtests
  2026-10-14 15:09   ` Cavitt, Jonathan
@ 2026-10-22 13:23     ` Rodrigo Vivi
  0 siblings, 0 replies; 8+ messages in thread
From: Rodrigo Vivi @ 2026-10-22 13:23 UTC (permalink / raw)
  To: Cavitt, Jonathan
  Cc: Maslak, Jan, igt-dev@lists.freedesktop.org, Dong, Zhanjun,
	Brost, Matthew

On Wed, Oct 14, 2026 at 03:09:18PM +0000, Cavitt, Jonathan wrote:
> -----Original Message-----
> From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Jan Maslak
> Sent: Sunday, August 16, 2026 11:09 AM
> To: igt-dev@lists.freedesktop.org
> Cc: Brost, Matthew <matthew.brost@intel.com>; Maslak, Jan <jan.maslak@intel.com>
> Subject: [PATCH 1/1] tests/intel/xe_exec_capture: Add coredump decode validation subtests
> > 
> > Add decode-data and decode-data-large subtests that create dumpable VM
> > buffers with deterministic contents, hang an engine, and validate the
> > resulting devcoredump.
> > 
> > Decode every ASCII85 blob and verify its decoded size matches the
> > advertised length. For test-created VM blobs, also verify the decoded
> > contents. The large variant crosses the kernel coredump chunking
> > threshold and legacy rendering limit.
> > 
> > Signed-off-by: Jan Maslak <jan.maslak@intel.com>
> 
> I don't see anything wrong with this patch that warrants immediate attention.
> I mean, could some of the ASCII decoding and payload/blob parsing code
> be separated out into a separate lib file?  Sure.  But I don't think that's strictly
> necessary for this patch.
> There's also the minor concern of what happens if the devcoredump file is empty,
> but I'm going to work under the assumption that an empty devcoredump file is
> impossible (I.E. the file would just not open), and as such adding extra handling
> for that case is unnecessary.
> And, of course, it's good that the new tests have already been validated locally.
> 
> Of course, I'm not exactly an expert on devcoredump protocol, so I'd recommend
> getting a second/third opinion on this before merging.  I'm tagging Zhanjun to
> handle that, but maybe Rodrigo could also help here.
> I'll give this my RB if they don't have any revision notes.

it is a good test and it already checks for ram space before running, the
only blocker is that it is not handling the new zstd compression recently
merged.

It needs some refactor and re-test on drm-tip.

> -Jonathan Cavitt
> 
> > ---
> >  tests/intel/xe_exec_capture.c | 549 +++++++++++++++++++++++++++++++++-
> >  1 file changed, 548 insertions(+), 1 deletion(-)
> > 
> > diff --git a/tests/intel/xe_exec_capture.c b/tests/intel/xe_exec_capture.c
> > index 6e454cfff3..2d726cabf9 100644
> > --- a/tests/intel/xe_exec_capture.c
> > +++ b/tests/intel/xe_exec_capture.c
> > @@ -17,10 +17,13 @@
> >  #include <inttypes.h>
> >  #include <regex.h>
> >  #include <stdio.h>
> > +#include <stdlib.h>
> >  #include <string.h>
> > +#include <sys/mman.h>
> >  
> >  #include "igt.h"
> >  #include "igt_device.h"
> > +#include "igt_os.h"
> >  #include "igt_sriov_device.h"
> >  #include "igt_sysfs.h"
> >  #include "lib/igt_syncobj.h"
> > @@ -82,6 +85,43 @@
> >  #define INDEX_VM_LENGTH			2
> >  #define INDEX_VM_SIZE			3
> >  
> > +/*
> > + * Binary sections of the dump are encoded with the kernel's
> > + * include/linux/ascii85.h: a zero dword becomes a single 'z', every other
> > + * dword becomes 5 characters in the '!'..'u' range.
> > + */
> > +#define ASCII85_ZERO			'z'
> > +#define ASCII85_MIN			'!'
> > +#define ASCII85_MAX			'u'
> > +#define ASCII85_GROUP_LEN		5
> > +
> > +#define LENGTH_SUFFIX			"].length:"
> > +#define DATA_SUFFIX			"].data:"
> > +#define ERROR_SUFFIX			"].error:"
> > +#define MAX_BLOB_NAME_LEN		64
> > +
> > +#define CAPTURE_SPIN_ADDRESS		0x1a0000ull
> > +#define CAPTURE_PAYLOAD_ADDRESS		0x100000000ull
> > +
> > +/* Largest dump size the kernel could render before it learned to chunk (VLK-71080) */
> > +#define DEVCOREDUMP_LEGACY_MAX_SIZE	((uint64_t)INT_MAX)
> > +
> > +/*
> > + * The test payloads contain no zero dwords, so their ASCII85 size is exactly
> > + * 5/4 of their binary size. The decoder still supports zero dwords.
> > + */
> > +#define ASCII85_ENCODED_SIZE(bytes)	((bytes) / 4 * 5)
> > +
> > +/* Small, but already far past any line-oriented parser */
> > +#define DECODE_PAYLOAD_SIZE		SZ_2M
> > +#define DECODE_PAYLOAD_COUNT		2
> > +
> > +#define LARGE_PAYLOAD_SIZE		SZ_64M
> > +/* One extra buffer makes the encoded payload exceed the legacy cap */
> > +#define LARGE_PAYLOAD_COUNT		\
> > +	((int)(DEVCOREDUMP_LEGACY_MAX_SIZE / \
> > +	       ASCII85_ENCODED_SIZE(LARGE_PAYLOAD_SIZE)) + 1)
> > +
> >  static u64
> >  xe_sysfs_get_job_timeout_ms(int fd, struct drm_xe_engine_class_instance *eci)
> >  {
> > @@ -224,6 +264,323 @@ static bool rm_devcoredump(char *path)
> >  	return false;
> >  }
> >  
> > +static bool devcoredump_exists(char *path)
> > +{
> > +	return access_devcoredump(path, NULL, NULL) != 0;
> > +}
> > +
> > +/**
> > + * struct payload_bo - A buffer object the test fills with known dword values
> > + * @handle: GEM handle
> > + * @addr: GPU virtual address the buffer is bound at, which is also the name the
> > + *	  dump gives it, i.e. "[<addr>].data:"
> > + * @size: buffer size in bytes
> > + * @payload_index: zero-based payload index, used to generate this buffer's
> > + *		   dword values
> > + * @seen: set once the dump has been found to carry this buffer intact
> > + */
> > +struct payload_bo {
> > +	uint32_t handle;
> > +	uint64_t addr;
> > +	uint64_t size;
> > +	uint32_t payload_index;
> > +	bool seen;
> > +};
> > +
> > +/* Keep each payload's dword values distinct and non-zero. */
> > +#define PAYLOAD_INDEX_STRIDE		0x04000000u
> > +
> > +/**
> > + * payload_dword - Return the expected dword at a payload offset
> > + * @payload_index: zero-based payload index
> > + * @dword_index: dword offset in the payload
> > + *
> > + * Returns: expected dword value
> > + */
> > +static uint32_t payload_dword(uint32_t payload_index, uint64_t dword_index)
> > +{
> > +	return (payload_index + 1) * PAYLOAD_INDEX_STRIDE + (uint32_t)dword_index;
> > +}
> > +
> > +/**
> > + * struct ascii85_decoder - Position within one encoded blob
> > + * @pos: next character to consume
> > + * @bad: set once a group is found that no encoder could have produced
> > + * @truncated: set when the blob ends part way through a group
> > + */
> > +struct ascii85_decoder {
> > +	const char *pos;
> > +	bool bad;
> > +	bool truncated;
> > +};
> > +
> > +/**
> > + * ascii85_next_dword - Decode the next dword of a blob
> > + * @dec: decoder positioned at the start of a group
> > + * @out: filled with the decoded value
> > + *
> > + * Returns: false at the end of the blob, on the first malformed group or on a
> > + * group cut short, the last two reported through @dec->bad and @dec->truncated.
> > + */
> > +static bool ascii85_next_dword(struct ascii85_decoder *dec, uint32_t *out)
> > +{
> > +	uint64_t acc = 0;
> > +	int i;
> > +
> > +	if (!*dec->pos || *dec->pos == '\n')
> > +		return false;
> > +
> > +	/* A zero dword is abbreviated to one character */
> > +	if (*dec->pos == ASCII85_ZERO) {
> > +		dec->pos++;
> > +		*out = 0;
> > +		return true;
> > +	}
> > +
> > +	/* Otherwise five base-85 digits, most significant first */
> > +	for (i = 0; i < ASCII85_GROUP_LEN; i++) {
> > +		if (!dec->pos[i] || dec->pos[i] == '\n') {
> > +			dec->truncated = true;
> > +			return false;
> > +		}
> > +		if (dec->pos[i] < ASCII85_MIN || dec->pos[i] > ASCII85_MAX) {
> > +			dec->bad = true;
> > +			return false;
> > +		}
> > +		acc = acc * 85 + (dec->pos[i] - ASCII85_MIN);
> > +	}
> > +
> > +	/* 85^5 exceeds 2^32, so not every group is encodable */
> > +	if (acc > UINT32_MAX) {
> > +		dec->bad = true;
> > +		return false;
> > +	}
> > +
> > +	dec->pos += ASCII85_GROUP_LEN;
> > +	*out = acc;
> > +
> > +	return true;
> > +}
> > +
> > +/**
> > + * parse_blob_field - Split a "[<name>]<suffix> <value>" devcoredump line
> > + * @line: line to match, e.g. "[4e4800000].length: 0x4000000"
> > + * @suffix: LENGTH_SUFFIX, DATA_SUFFIX or ERROR_SUFFIX, matched literally so that
> > + *	    "].replay_length:" does not look like "].length:"
> > + * @name: filled with the bracketed name on success
> > + * @name_size: size of @name
> > + * @value: set to the first character of the value on success
> > + *
> > + * Returns: true when @line carries @suffix, false otherwise.
> > + */
> > +static bool
> > +parse_blob_field(const char *line, const char *suffix, char *name, size_t name_size,
> > +		 const char **value)
> > +{
> > +	const char *open = strchr(line, '[');
> > +	const char *close;
> > +	size_t len;
> > +
> > +	if (!open)
> > +		return false;
> > +
> > +	open++;
> > +	close = strchr(open, ']');
> > +	if (!close || strncmp(close, suffix, strlen(suffix)))
> > +		return false;
> > +
> > +	len = close - open;
> > +	if (len >= name_size)
> > +		return false;
> > +
> > +	memcpy(name, open, len);
> > +	name[len] = '\0';
> > +
> > +	*value = close + strlen(suffix);
> > +	while (**value == ' ' || **value == '\t')
> > +		(*value)++;
> > +
> > +	return true;
> > +}
> > +
> > +/**
> > + * payload_by_name - Find the payload a blob name refers to
> > + * @name: bracketed blob name, e.g. "4e4800000" or "HWSP"
> > + * @payloads: buffers the test bound before hanging, or NULL
> > + * @n_payloads: number of entries in @payloads
> > + *
> > + * Returns: the matching payload, or NULL when @name is not one of them. The
> > + * dump also uses labels such as "HWSP" and "CTB" for driver-owned sections;
> > + * names that are not entirely hexadecimal never match, which keeps "CTB" from
> > + * resolving as the address 0xc.
> > + */
> > +static struct payload_bo *
> > +payload_by_name(const char *name, struct payload_bo *payloads, int n_payloads)
> > +{
> > +	uint64_t addr;
> > +	char *end;
> > +	int i;
> > +
> > +	if (!payloads)
> > +		return NULL;
> > +
> > +	addr = strtoull(name, &end, 16);
> > +	if (end == name || *end)
> > +		return NULL;
> > +
> > +	for (i = 0; i < n_payloads; i++)
> > +		if (payloads[i].addr == addr)
> > +			return &payloads[i];
> > +
> > +	return NULL;
> > +}
> > +
> > +/**
> > + * check_blob - Validate one ".length"/".data" pair of a devcoredump
> > + * @name: bracketed blob name, a hex VMA address for VM state sections
> > + * @length: byte count advertised by the ".length" line
> > + * @data: encoded payload of the ".data" line
> > + * @payloads: buffers the test bound before hanging, or NULL
> > + * @n_payloads: number of entries in @payloads
> > + *
> > + * Asserts that the blob is valid ASCII85 and decodes to exactly @length bytes.
> > + * Test-created payloads are also checked against their expected contents.
> > + */
> > +static void
> > +check_blob(const char *name, uint64_t length, const char *data,
> > +	   struct payload_bo *payloads, int n_payloads)
> > +{
> > +	struct ascii85_decoder dec = { .pos = data };
> > +	struct payload_bo *expected_payload;
> > +	uint64_t expected_dwords = 0;
> > +	uint64_t dwords = 0;
> > +	uint32_t val;
> > +
> > +	expected_payload = payload_by_name(name, payloads, n_payloads);
> > +	if (expected_payload) {
> > +		igt_assert_f(length == expected_payload->size,
> > +			     "[%s]: .length reports 0x%" PRIx64
> > +			     " bytes, bound VMA is 0x%" PRIx64 " bytes\n",
> > +			     name, length, expected_payload->size);
> > +		expected_dwords = expected_payload->size / sizeof(uint32_t);
> > +	}
> > +
> > +	/*
> > +	 * Decode every blob for structural validation. Only test-created payloads
> > +	 * need the additional content comparison.
> > +	 */
> > +	while (ascii85_next_dword(&dec, &val)) {
> > +		if (expected_payload) {
> > +			igt_assert_f(dwords < expected_dwords,
> > +				     "[%s]: .data contains more dwords than the bound payload\n",
> > +				     name);
> > +			igt_assert_f(val == payload_dword(expected_payload->payload_index,
> > +							  dwords),
> > +				     "[%s]: decoded dword %" PRIu64
> > +				     " differs from the content written to the buffer\n",
> > +				     name, dwords);
> > +		}
> > +		dwords++;
> > +	}
> > +
> > +	igt_assert_f(!dec.truncated,
> > +		     "[%s]: .data ends mid-ASCII85 group after %" PRIu64 " of %" PRIu64
> > +		     " dwords, the dump was cut short\n",
> > +		     name, dwords, length / sizeof(uint32_t));
> > +
> > +	igt_assert_f(!dec.bad,
> > +		     "[%s]: .data is not valid ASCII85 at dword %" PRIu64
> > +		     " of %" PRIu64 " announced by .length\n",
> > +		     name, dwords, length / sizeof(uint32_t));
> > +
> > +	igt_assert_f(dwords * sizeof(uint32_t) == length,
> > +		     "[%s]: .length reports 0x%" PRIx64 " bytes but .data decodes to"
> > +		     " 0x%" PRIx64 " bytes\n",
> > +		     name, length, dwords * sizeof(uint32_t));
> > +
> > +	if (!expected_payload)
> > +		return;
> > +
> > +	expected_payload->seen = true;
> > +	igt_debug("Cross-validated 0x%" PRIx64 " bytes of VMA [%s]\n", length, name);
> > +}
> > +
> > +/**
> > + * validate_devcoredump - Check every ASCII85 blob of a devcoredump
> > + * @path: path of the devcoredump data file
> > + * @payloads: buffers the test bound before hanging, or NULL
> > + * @n_payloads: number of entries in @payloads
> > + *
> > + * Walks the whole dump, checks each blob's decoded size, and verifies that all
> > + * test-created payloads are present with the expected contents.
> > + */
> > +static void
> > +validate_devcoredump(const char *path, struct payload_bo *payloads, int n_payloads)
> > +{
> > +	char pending_name[MAX_BLOB_NAME_LEN] = {0};
> > +	char name[MAX_BLOB_NAME_LEN];
> > +	uint64_t pending_length = 0;
> > +	bool have_pending = false;
> > +	bool read_error;
> > +	size_t line_size = 0;
> > +	char *line = NULL;
> > +	const char *value;
> > +	int n_blobs = 0, read_errno, i;
> > +	FILE *f;
> > +
> > +	f = fopen(path, "r");
> > +	igt_assert_f(f, "Failed to open %s, errno=%d\n", path, errno);
> > +
> > +	/* .data lines can be megabytes long, so let getline() grow the buffer. */
> > +	while (getline(&line, &line_size, f) > 0) {
> > +		if (parse_blob_field(line, LENGTH_SUFFIX, name, sizeof(name), &value)) {
> > +			pending_length = strtoull(value, NULL, 0);
> > +			memcpy(pending_name, name, strlen(name) + 1);
> > +			have_pending = true;
> > +			continue;
> > +		}
> > +
> > +		if (parse_blob_field(line, ERROR_SUFFIX, name, sizeof(name), &value)) {
> > +			if (have_pending && !strcmp(name, pending_name))
> > +				have_pending = false;
> > +
> > +			igt_assert_f(!payload_by_name(name, payloads, n_payloads),
> > +				     "[%s]: kernel could not snapshot the buffer: %s",
> > +				     name, value);
> > +			continue;
> > +		}
> > +
> > +		if (!parse_blob_field(line, DATA_SUFFIX, name, sizeof(name), &value))
> > +			continue;
> > +
> > +		igt_assert_f(have_pending && !strcmp(name, pending_name),
> > +			     "[%s].data is not preceded by a matching .length line\n",
> > +			     name);
> > +
> > +		have_pending = false;
> > +		n_blobs++;
> > +		check_blob(name, pending_length, value, payloads, n_payloads);
> > +	}
> > +
> > +	read_error = ferror(f);
> > +	read_errno = read_error ? errno : 0;
> > +	free(line);
> > +	fclose(f);
> > +
> > +	igt_assert_f(!read_error, "Failed to read %s, errno=%d\n", path, read_errno);
> > +	igt_assert_f(!have_pending,
> > +		     "[%s].length has no matching .data or .error line\n",
> > +		     pending_name);
> > +
> > +	igt_assert_f(n_blobs, "No ASCII85 blob found in %s\n", path);
> > +	igt_debug("Validated %d ASCII85 blobs\n", n_blobs);
> > +
> > +	for (i = 0; i < n_payloads; i++)
> > +		igt_assert_f(payloads[i].seen,
> > +			     "VMA 0x%" PRIx64 " missing from the devcoredump VM state\n",
> > +			     payloads[i].addr);
> > +}
> > +
> >  static char
> >  *get_coredump_item(regex_t *regex, char **lines, const char *tag, int tag_index, int target_index)
> >  {
> > @@ -392,6 +749,8 @@ static void test_card(int fd)
> >  		check_item_u64(&regex, lines, "length:", addr,
> >  			       addr + BATCH_DW_COUNT * sizeof(u32), INDEX_VALUE, INDEX_KEY);
> >  
> > +		validate_devcoredump(path, NULL, 0);
> > +
> >  		/* clear devcoredump */
> >  		rm_devcoredump(path);
> >  		sleep(1);
> > @@ -404,10 +763,183 @@ static void test_card(int fd)
> >  	regfree(&regex);
> >  }
> >  
> > +/**
> > + * hang_with_payloads - Hang @eci with dumpable buffers of known content
> > + * @fd: xe device file descriptor
> > + * @eci: engine to hang
> > + * @payloads: buffers to create, fill and bind; handles are returned to the
> > + *	      caller, which owns them
> > + * @n_payloads: number of entries in @payloads
> > + *
> > + * Submits a batch that spins forever, so the job timeout fires and the driver
> > + * writes a devcoredump. The payloads share the address space of that batch and
> > + * are bound DUMPABLE, which is what tells the driver to copy their contents
> > + * into the dump, giving us blobs whose expected bytes are known exactly.
> > + */
> > +static void
> > +hang_with_payloads(int fd, struct drm_xe_engine_class_instance *eci,
> > +		   struct payload_bo *payloads, int n_payloads)
> > +{
> > +	struct drm_xe_sync sync = {
> > +		.type = DRM_XE_SYNC_TYPE_SYNCOBJ,
> > +		.flags = DRM_XE_SYNC_FLAG_SIGNAL,
> > +	};
> > +	struct drm_xe_exec exec = {
> > +		.num_batch_buffer = 1,
> > +		.num_syncs = 1,
> > +		.syncs = to_user_pointer(&sync),
> > +	};
> > +	struct xe_spin_opts spin_opts = { .addr = CAPTURE_SPIN_ADDRESS };
> > +	uint64_t spin_size = xe_bb_size(fd, sizeof(struct xe_spin));
> > +	uint32_t vm = xe_vm_create(fd, 0, 0);
> > +	uint32_t spin_bo, exec_queue, bind_syncobj, exec_syncobj;
> > +	struct xe_spin *spin;
> > +	int i;
> > +
> > +	spin_bo = xe_bo_create(fd, vm, spin_size, vram_if_possible(fd, eci->gt_id),
> > +			       DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM);
> > +	spin = xe_bo_map(fd, spin_bo, spin_size);
> > +
> > +	bind_syncobj = syncobj_create(fd, 0);
> > +	sync.handle = bind_syncobj;
> > +
> > +	__xe_vm_bind_assert(fd, vm, 0, spin_bo, 0, CAPTURE_SPIN_ADDRESS, spin_size,
> > +			    DRM_XE_VM_BIND_OP_MAP, DRM_XE_VM_BIND_FLAG_DUMPABLE,
> > +			    &sync, 1, 0, 0);
> > +	igt_assert(syncobj_wait(fd, &bind_syncobj, 1, INT64_MAX, 0, NULL));
> > +
> > +	for (i = 0; i < n_payloads; i++) {
> > +		uint32_t *map;
> > +		uint64_t j;
> > +
> > +		/* Use system memory so the large capture does not require large VRAM. */
> > +		payloads[i].handle = xe_bo_create(fd, vm, payloads[i].size,
> > +						  system_memory(fd), 0);
> > +		map = xe_bo_map(fd, payloads[i].handle, payloads[i].size);
> > +		for (j = 0; j < payloads[i].size / sizeof(*map); j++)
> > +			map[j] = payload_dword(payloads[i].payload_index, j);
> > +		munmap(map, payloads[i].size);
> > +
> > +		syncobj_reset(fd, &bind_syncobj, 1);
> > +		__xe_vm_bind_assert(fd, vm, 0, payloads[i].handle, 0, payloads[i].addr,
> > +				    payloads[i].size, DRM_XE_VM_BIND_OP_MAP,
> > +				    DRM_XE_VM_BIND_FLAG_DUMPABLE, &sync, 1, 0, 0);
> > +		igt_assert(syncobj_wait(fd, &bind_syncobj, 1, INT64_MAX, 0, NULL));
> > +	}
> > +
> > +	exec_queue = xe_exec_queue_create(fd, vm, eci, 0);
> > +	exec_syncobj = syncobj_create(fd, 0);
> > +
> > +	xe_spin_init(spin, &spin_opts);
> > +
> > +	sync.handle = exec_syncobj;
> > +	exec.exec_queue_id = exec_queue;
> > +	exec.address = CAPTURE_SPIN_ADDRESS;
> > +	xe_exec(fd, &exec);
> > +
> > +	xe_spin_wait_started(spin);
> > +
> > +	/* The job timeout resets the queue, which is what creates the dump */
> > +	igt_assert(syncobj_wait(fd, &exec_syncobj, 1, INT64_MAX, 0, NULL));
> > +
> > +	syncobj_destroy(fd, exec_syncobj);
> > +	syncobj_destroy(fd, bind_syncobj);
> > +	xe_exec_queue_destroy(fd, exec_queue);
> > +	munmap(spin, spin_size);
> > +	gem_close(fd, spin_bo);
> > +	xe_vm_destroy(fd, vm);
> > +}
> > +
> > +/**
> > + * SUBTEST: decode-data
> > + * Description: Create payloads with known contents, hang an engine, and
> > + * 		verify the resulting coredump's blob lengths and payload
> > + * 		contents before removing it
> > + *
> > + * SUBTEST: decode-data-large
> > + * Description: Same as decode-data, but with enough data to exercise kernel's
> > + * 		coredump chunking and the legacy size limit
> > + */
> > +static void
> > +test_capture_payload(int fd, struct drm_xe_engine_class_instance *eci,
> > +		     int n_payloads, uint64_t payload_size)
> > +{
> > +	char path[MAX_SYSFS_PATH_LEN];
> > +	struct payload_bo *payloads;
> > +	int i;
> > +
> > +	/* Every buffer needs its own slice of the 32-bit value space */
> > +	igt_assert(payload_size / sizeof(uint32_t) <= PAYLOAD_INDEX_STRIDE &&
> > +		   n_payloads <= UINT32_MAX / PAYLOAD_INDEX_STRIDE);
> > +
> > +	payloads = calloc(n_payloads, sizeof(*payloads));
> > +	igt_assert(payloads);
> > +
> > +	for (i = 0; i < n_payloads; i++) {
> > +		payloads[i].addr = CAPTURE_PAYLOAD_ADDRESS + i * payload_size;
> > +		payloads[i].size = payload_size;
> > +		payloads[i].payload_index = i;
> > +	}
> > +
> > +	get_devcoredump_path(igt_device_get_card_index(fd), path);
> > +	rm_devcoredump(path);
> > +
> > +	/* Wait for the previous coredump to disappear before creating another. */
> > +	igt_assert_f(igt_wait(!devcoredump_exists(path), 5000, 100),
> > +		     "Devcoredump not removed, errno=%d.\n", errno);
> > +
> > +	hang_with_payloads(fd, eci, payloads, n_payloads);
> > +
> > +	/*
> > +	 * Close our BO handles; the snapshot holds BO references until it copies
> > +	 * their contents into kernel-owned buffers for the coredump.
> > +	 */
> > +	for (i = 0; i < n_payloads; i++)
> > +		gem_close(fd, payloads[i].handle);
> > +
> > +	igt_assert_f(igt_wait(devcoredump_exists(path), 5000, 100),
> > +		     "Devcoredump not created, a previous dump may still be held\n");
> > +
> > +	validate_devcoredump(path, payloads, n_payloads);
> > +
> > +	free(payloads);
> > +
> > +	rm_devcoredump(path);
> > +
> > +	/* Wait for the dump to disappear so its large buffers can be released. */
> > +	igt_assert_f(igt_wait(!devcoredump_exists(path), 5000, 100),
> > +		     "Devcoredump not removed, errno=%d.\n", errno);
> > +}
> > +
> > +/**
> > + * require_capture_memory - Skip unless the machine can hold the whole capture
> > + * @n_payloads: number of buffers the subtest binds
> > + * @payload_size: size of each buffer
> > + *
> > + * Upper bound on the footprint: the payloads, the snapshot copy the kernel
> > + * takes of them, the chunk the kernel renders and the longest line getline()
> > + * has to buffer. Not all of them peak at the same instant. The rendering buffer
> > + * is sized for the unfixed kernel, which is the one this has to survive.
> > + */
> > +static void require_capture_memory(int n_payloads, uint64_t payload_size)
> > +{
> > +	uint64_t payload = (uint64_t)n_payloads * payload_size;
> > +	uint64_t encoded = ASCII85_ENCODED_SIZE(payload);
> > +	uint64_t rendered = encoded < DEVCOREDUMP_LEGACY_MAX_SIZE ?
> > +			    encoded : DEVCOREDUMP_LEGACY_MAX_SIZE;
> > +
> > +	igt_require_memory(1, 2 * payload + rendered +
> > +			   ASCII85_ENCODED_SIZE(payload_size), CHECK_RAM);
> > +}
> > +
> >  int igt_main()
> >  {
> >  	int xe;
> > -	struct drm_xe_engine_class_instance *hwe;
> > +	/*
> > +	 * The payload tests exercise VM capture and need one engine to trigger it.
> > +	 * The reset subtest separately iterates over every available engine.
> > +	 */
> > +	struct drm_xe_engine_class_instance *hwe, *hang_hwe = NULL;
> >  	u64 timeouts[DRM_XE_ENGINE_CLASS_VM_BIND] = {0};
> >  
> >  	igt_fixture() {
> > @@ -416,6 +948,8 @@ int igt_main()
> >  			/* Skip kernel only classes */
> >  			if (hwe->engine_class >= DRM_XE_ENGINE_CLASS_VM_BIND)
> >  				continue;
> > +			if (!hang_hwe)
> > +				hang_hwe = hwe;
> >  			/* Skip classes already set */
> >  			if (timeouts[hwe->engine_class])
> >  				continue;
> > @@ -433,6 +967,19 @@ int igt_main()
> >  	igt_subtest("reset")
> >  		test_card(xe);
> >  
> > +	igt_subtest("decode-data") {
> > +		igt_require(hang_hwe);
> > +		test_capture_payload(xe, hang_hwe, DECODE_PAYLOAD_COUNT,
> > +				     DECODE_PAYLOAD_SIZE);
> > +	}
> > +
> > +	igt_subtest("decode-data-large") {
> > +		igt_require(hang_hwe);
> > +		require_capture_memory(LARGE_PAYLOAD_COUNT, LARGE_PAYLOAD_SIZE);
> > +		test_capture_payload(xe, hang_hwe, LARGE_PAYLOAD_COUNT,
> > +				     LARGE_PAYLOAD_SIZE);
> > +	}
> > +
> >  	igt_fixture() {
> >  		xe_for_each_engine(xe, hwe) {
> >  			u64 store, timeout;
> > -- 
> > 2.43.0
> > 
> > 

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

end of thread, other threads:[~2026-10-22 13:24 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-16 18:09 [PATCH 0/1] tests/intel/xe_exec_capture: Add coredump decode validation subtests Jan Maslak
2026-08-16 18:09 ` [PATCH 1/1] " Jan Maslak
2026-10-14 15:09   ` Cavitt, Jonathan
2026-10-22 13:23     ` Rodrigo Vivi
2026-08-16 18:43 ` ✓ Xe.CI.BAT: success for " Patchwork
2026-08-16 19:00 ` ✓ i915.CI.BAT: " Patchwork
2026-08-16 20:04 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-08-17 21:26 ` ✗ i915.CI.Full: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox