* [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates
@ 2025-11-25 10:22 Marcin Bernatowicz
2025-11-25 10:23 ` [PATCH i-g-t v2 01/10] lib/igt_sysfs_choice: Add helpers for sysfs enumerated choice attributes Marcin Bernatowicz
` (13 more replies)
0 siblings, 14 replies; 26+ messages in thread
From: Marcin Bernatowicz @ 2025-11-25 10:22 UTC (permalink / raw)
To: igt-dev
Cc: adam.miszczak, jakub1.kolakowski, lukasz.laguna, michal.wajdeczko,
Marcin Bernatowicz
This v2 series introduces a generic helper for sysfs "choice" attributes
and wires Xe SR-IOV scheduling helpers and tests to the SR-IOV admin
sysfs interface.
Patches 1–2 add igt_sysfs_choice and unit tests for parsing and
formatting enumerated sysfs values such as sched_priority.
Patches 3–4 convert the existing sched_priority helpers in
xe_sriov_provisioning into thin wrappers around igt_sysfs_choice.
Patch 5 adds a small PF/VF sysfs path helper used by the SR-IOV code.
Patch 6 exposes SR-IOV admin sysfs accessors for execution quantum,
preemption timeout, scheduling priority, VF stop and restoring defaults,
following recent kernel changes:
Link: https://lore.kernel.org/intel-xe/20251030222348.186658-1-michal.wajdeczko@intel.com/
Patches 7–10 update the xe_sriov_scheduling and xe_pmu tests to prefer
the admin interface, improve cleanup, and add coverage for SR-IOV
admin sysfs scheduling attributes in xe_sriov_admin_profile.
v2:
- Added generic igt_sysfs_choice helper and unit tests.
- Reworked sched_priority helpers to use igt_sysfs_choice wrappers.
- Introduced igt_sriov_func_str() PF/VF sysfs path helper.
- Extended SR-IOV admin helpers with scheduling accessors.
- Updated xe_sriov_scheduling and xe_pmu to prefer SR-IOV admin sysfs.
- Added xe_sriov_admin_profile tests for admin sysfs scheduling
attributes (defaults, write->readback, bulk updates).
Marcin Bernatowicz (10):
lib/igt_sysfs_choice: Add helpers for sysfs enumerated choice
attributes
lib/tests/igt_sysfs_choice: Add test coverage
lib/xe/xe_sriov_provisioning: Add string conversion helpers for
scheduling priority
lib/xe/xe_sriov_provisioning: Add sched priority mask to string helper
lib/igt_sriov_device: Add helper for PF/VF sysfs path formatting
lib/xe/xe_sriov_admin: Add SR-IOV admin sysfs accessors
tests/intel/xe_sriov_scheduling: Avoid assert on scheduling params
restore in cleanup
tests/intel/xe_sriov_scheduling: Prefer SR-IOV admin sysfs accessors
tests/intel/xe_pmu: Prefer SR-IOV admin sysfs accessors
tests/intel/xe_sriov_admin_profile: Add SR-IOV admin sysfs scheduling
attributes tests
lib/igt_sriov_device.c | 19 +
lib/igt_sriov_device.h | 1 +
lib/igt_sysfs_choice.c | 429 ++++++++++++++++++
lib/igt_sysfs_choice.h | 52 +++
lib/meson.build | 2 +
lib/tests/igt_sysfs_choice.c | 387 +++++++++++++++++
lib/tests/meson.build | 1 +
lib/xe/xe_sriov_admin.c | 623 +++++++++++++++++++++++++++
lib/xe/xe_sriov_admin.h | 60 +++
lib/xe/xe_sriov_provisioning.c | 90 ++++
lib/xe/xe_sriov_provisioning.h | 15 +
tests/intel/xe_pmu.c | 43 +-
tests/intel/xe_sriov_admin_profile.c | 414 ++++++++++++++++++
tests/intel/xe_sriov_scheduling.c | 43 +-
tests/meson.build | 1 +
15 files changed, 2147 insertions(+), 33 deletions(-)
create mode 100644 lib/igt_sysfs_choice.c
create mode 100644 lib/igt_sysfs_choice.h
create mode 100644 lib/tests/igt_sysfs_choice.c
create mode 100644 lib/xe/xe_sriov_admin.c
create mode 100644 lib/xe/xe_sriov_admin.h
create mode 100644 tests/intel/xe_sriov_admin_profile.c
--
2.43.0
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH i-g-t v2 01/10] lib/igt_sysfs_choice: Add helpers for sysfs enumerated choice attributes
2025-11-25 10:22 [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates Marcin Bernatowicz
@ 2025-11-25 10:23 ` Marcin Bernatowicz
2026-01-15 7:24 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 02/10] lib/tests/igt_sysfs_choice: Add test coverage Marcin Bernatowicz
` (12 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Marcin Bernatowicz @ 2025-11-25 10:23 UTC (permalink / raw)
To: igt-dev
Cc: adam.miszczak, jakub1.kolakowski, lukasz.laguna, michal.wajdeczko,
Marcin Bernatowicz, Kamil Konieczny
Introduce igt_sysfs_choice, a lightweight, fixed-size, no-malloc helper
for parsing and formatting sysfs "choice" attributes of the form:
"low [normal] high\n"
The helper provides parsing, lookup, formatting, mask conversion, and
intersection utilities for consistent handling of enumerated sysfs values.
Suggested-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Cc: Lukasz Laguna <lukasz.laguna@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
lib/igt_sysfs_choice.c | 429 +++++++++++++++++++++++++++++++++++++++++
lib/igt_sysfs_choice.h | 52 +++++
lib/meson.build | 1 +
3 files changed, 482 insertions(+)
create mode 100644 lib/igt_sysfs_choice.c
create mode 100644 lib/igt_sysfs_choice.h
diff --git a/lib/igt_sysfs_choice.c b/lib/igt_sysfs_choice.c
new file mode 100644
index 000000000..c6de62587
--- /dev/null
+++ b/lib/igt_sysfs_choice.c
@@ -0,0 +1,429 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+#include "igt_sysfs_choice.h"
+#include <ctype.h>
+#include <errno.h>
+#include "igt_core.h"
+#include "igt_sysfs.h"
+
+#define IGT_SYSFS_CHOICE_MAX_LEN 256
+#define IGT_SYSFS_CHOICE_MAX_TOKENS 16
+
+/**
+ * igt_sysfs_choice_parse() - parse sysfs enumerated choice buffer
+ * @buf: NUL-terminated buffer with sysfs contents
+ * @choice: output descriptor, must be non-NULL (can be zeroed)
+ *
+ * Parses a sysfs enumerated choice buffer, e.g.:
+ *
+ * "low [normal] high\n"
+ *
+ * into a token list and the index of the selected token.
+ *
+ * Parsing rules:
+ * - tokens are separated by ASCII whitespace
+ * - exactly one token must be wrapped in '[' and ']'
+ * - surrounding '[' and ']' are stripped from the selected token
+ * - empty tokens are treated as malformed input
+ *
+ * On entry, any previous contents of @choice are freed.
+ *
+ * Returns:
+ * 0 on success,
+ * -EINVAL malformed format (no tokens, no selected token, multiple
+ * selected tokens, unterminated '[' or ']'),
+ * -E2BIG on too many tokens or too small choice buffer size.
+ */
+int igt_sysfs_choice_parse(const char *buf, struct igt_sysfs_choice *choice)
+{
+ char *p, *tok_start;
+ bool selected_seen = false;
+ size_t num_tokens = 0;
+ int n, selected = -1;
+ bool is_selected;
+
+ igt_assert(buf && choice);
+
+ memset(choice, 0, sizeof(*choice));
+ n = snprintf(choice->buf, sizeof(choice->buf), "%s", buf);
+ if (igt_debug_on(n < 0))
+ return -EINVAL;
+ if (igt_debug_on((size_t)n >= sizeof(choice->buf)))
+ return -E2BIG;
+
+ choice->num_tokens = 0;
+ choice->selected = -1;
+ p = choice->buf;
+
+ while (*p) {
+ /* skip leading whitespace */
+ while (*p && isspace((unsigned char)*p))
+ p++;
+ if (!*p)
+ break;
+
+ is_selected = false;
+ tok_start = p;
+
+ if (*p == '[') {
+ is_selected = true;
+ p++;
+ tok_start = p;
+
+ if (selected_seen) {
+ igt_debug("choice-parse: multiple [selected] tokens: \"%s\"\n",
+ choice->buf);
+ return -EINVAL;
+ }
+ selected_seen = true;
+ }
+
+ /* walk until ']' or whitespace */
+ while (*p && !isspace((unsigned char)*p) && *p != ']')
+ p++;
+
+ if (is_selected) {
+ if (*p != ']') {
+ igt_debug("choice-parse: unterminated '[' in: \"%s\"\n",
+ choice->buf);
+ return -EINVAL;
+ }
+ }
+
+ /* terminate token */
+ if (*p) {
+ *p = '\0';
+ p++;
+ }
+
+ if (!*tok_start) {
+ igt_debug("choice-parse: empty token in: \"%s\"\n",
+ choice->buf);
+ return -EINVAL;
+ }
+
+ if (num_tokens >= IGT_SYSFS_CHOICE_MAX_TOKENS) {
+ igt_debug("choice-parse: too many tokens (>%d) in: \"%s\"\n",
+ IGT_SYSFS_CHOICE_MAX_TOKENS, choice->buf);
+ return -E2BIG;
+ }
+
+ choice->tokens[num_tokens] = tok_start;
+ if (is_selected)
+ selected = (int)num_tokens;
+
+ num_tokens++;
+ }
+
+ if (!num_tokens) {
+ igt_debug("choice-parse: no tokens in string: \"%s\"\n",
+ choice->buf);
+ return -EINVAL;
+ }
+
+ if (selected < 0) {
+ igt_debug("choice-parse: missing selected token ([...]) in: \"%s\"\n",
+ choice->buf);
+ return -EINVAL;
+ }
+
+ choice->num_tokens = num_tokens;
+ choice->selected = selected;
+
+ return 0;
+}
+
+/**
+ * igt_sysfs_choice_read() - read and parse a sysfs enumerated choice attribute
+ * @dirfd: directory file descriptor of the sysfs node
+ * @attr: attribute name relative to @dirfd
+ * @choice: output descriptor, must be non-NULL
+ *
+ * Reads the given sysfs attribute into a temporary buffer and parses it.
+ *
+ * Returns:
+ * 0 on success,
+ * negative errno-style value on read or parse error.
+ */
+int igt_sysfs_choice_read(int dirfd, const char *attr,
+ struct igt_sysfs_choice *choice)
+{
+ char buf[IGT_SYSFS_CHOICE_MAX_LEN];
+ int len;
+
+ len = igt_sysfs_read(dirfd, attr, buf, sizeof(buf) - 1);
+ if (len < 0)
+ return len;
+
+ buf[len] = '\0';
+
+ return igt_sysfs_choice_parse(buf, choice);
+}
+
+/**
+ * igt_sysfs_choice_selected - Return selected token string
+ * @choice: Parsed choice
+ *
+ * Returns:
+ * Pointer to the selected token string, or NULL if no valid selection.
+ */
+const char *igt_sysfs_choice_selected(const struct igt_sysfs_choice *choice)
+{
+ if (!choice || choice->selected < 0 ||
+ (size_t)choice->selected >= choice->num_tokens)
+ return NULL;
+
+ return choice->tokens[choice->selected];
+}
+
+/**
+ * igt_sysfs_choice_to_string - Render a parsed choice into string
+ * @choice: Parsed choice (tokens[] + selected index)
+ * @buf: Output buffer for formatted string
+ * @buf_sz: Size of @buf in bytes
+ *
+ * Formats the given @choice into the string:
+ *
+ * "low [normal] high"
+ *
+ * Tokens are emitted in the order stored in @choice->tokens. The
+ * selected token (choice->selected) is wrapped in '[' and ']'.
+ *
+ * Returns:
+ * @buf on success, or NULL if @buf_sz is too small or arguments are invalid.
+ */
+const char *igt_sysfs_choice_to_string(const struct igt_sysfs_choice *choice,
+ char *buf, size_t buf_sz)
+{
+ bool first = true;
+ size_t pos = 0;
+ int n;
+
+ if (!choice || !buf || !buf_sz)
+ return NULL;
+
+ for (size_t i = 0; i < choice->num_tokens; i++) {
+ const char *name = choice->tokens[i];
+ bool is_selected = (choice->selected == (int)i);
+
+ if (!name)
+ continue;
+
+ n = snprintf(buf + pos, buf_sz - pos,
+ "%s%s%s%s",
+ first ? "" : " ",
+ is_selected ? "[" : "",
+ name,
+ is_selected ? "]" : "");
+
+ if (n < 0 || (size_t)n >= buf_sz - pos)
+ return NULL;
+
+ pos += (size_t)n;
+ first = false;
+ }
+
+ return buf;
+}
+
+/**
+ * igt_sysfs_choice_find() - find token index by name
+ * @choice: parsed choice struct
+ * @token: token to look for (plain name, without '[' / ']')
+ *
+ * Performs a case-sensitive comparison of @token against entries in
+ * @choice->tokens.
+ *
+ * Returns:
+ * index in [0..choice->num_tokens-1] on match,
+ * -1 if @token is not present or @choice/@token is NULL.
+ */
+int igt_sysfs_choice_find(const struct igt_sysfs_choice *choice,
+ const char *token)
+{
+ if (!choice || !token)
+ return -1;
+
+ for (size_t i = 0; i < choice->num_tokens; i++)
+ if (!strcmp(choice->tokens[i], token))
+ return (int)i;
+
+ return -1;
+}
+
+/**
+ * igt_sysfs_choice_to_mask() - map parsed tokens to bitmask + selection
+ * @choice: parsed choice struct
+ * @names: array of known token names
+ * @names_sz: number of elements in @names
+ * @mask: output bitmask of supported names (BIT(i) => names[i] supported)
+ * @selected_idx: output index of selected token in @names, or -1 if selected
+ * token is not among @names
+ *
+ * Builds a bitmask of known tokens present in @choice and identifies the
+ * selected token, if it matches one of @names.
+ *
+ * Unknown tokens do not cause an error; they are ignored and not
+ * reflected in @mask. This keeps the API "loose": tests can still
+ * validate required choices while tolerating additional values.
+ *
+ * Returns:
+ * 0 on success,
+ * -EINVAL on bad input parameters.
+ */
+int igt_sysfs_choice_to_mask(const struct igt_sysfs_choice *choice,
+ const char * const *names, size_t names_sz,
+ unsigned int *mask, int *selected_idx)
+{
+ unsigned int m = 0;
+ int sel = -1, idx;
+
+ if (!choice || !names || !mask)
+ return -EINVAL;
+
+ for (size_t i = 0; i < names_sz; i++) {
+ const char *name = names[i];
+
+ if (!name)
+ continue;
+
+ idx = igt_sysfs_choice_find(choice, name);
+ if (idx >= 0) {
+ m |= 1u << i;
+ if (idx == choice->selected)
+ sel = (int)i;
+ }
+ }
+
+ *mask = m;
+ if (selected_idx)
+ *selected_idx = sel;
+
+ return 0;
+}
+
+/**
+ * igt_sysfs_choice_format_mask - Format a bitmask as a space-separated list of names
+ * @buf: Output buffer
+ * @buf_sz: Size of @buf in bytes
+ * @names: Array of token names indexed by bit position (0 -> names[0], etc.)
+ * @names_len: Number of elements in @names
+ * @mask: Bitmask of available tokens (BIT(i) => include names[i])
+ * @selected_idx: Index to highlight with brackets, or <0 for none
+ *
+ * Builds a space-separated list of all bits set in @mask, mapping bit positions
+ * to names in @names. If @selected_idx >= 0 and that bit is set, the token is
+ * wrapped in brackets, e.g. "low [normal] high".
+ *
+ * Unknown / missing names[i] expand as "?".
+ * Empty mask results in an empty string.
+ *
+ * Returns: @buf on success, or NULL on invalid arguments.
+ */
+const char *igt_sysfs_choice_format_mask(char *buf, size_t buf_sz,
+ const char * const *names,
+ size_t names_len,
+ unsigned int mask,
+ int selected_idx)
+{
+ char *p = buf;
+ size_t n = buf_sz;
+ bool first = true;
+ size_t idx = 0;
+
+ if (!buf || !buf_sz || !names || !names_len)
+ return NULL;
+
+ while (mask && idx < names_len) {
+ if (mask & 1u) {
+ const char *name = names[idx] ?: "?";
+ bool highlight = ((int)idx == selected_idx);
+ int written;
+
+ written = snprintf(p, n, "%s%s%s%s",
+ first ? "" : " ",
+ highlight ? "[" : "",
+ name,
+ highlight ? "]" : "");
+ if (igt_warn_on(written < 0 || written >= (int)n)) {
+ buf[buf_sz - 1] = '\0';
+ break;
+ }
+
+ p += written;
+ n = buf_sz - (p - buf);
+ first = false;
+ }
+
+ mask >>= 1;
+ idx++;
+ }
+
+ if (first)
+ buf[0] = '\0';
+
+ return buf;
+}
+
+/**
+ * igt_sysfs_choice_intersect - Restrict a choice set to tokens common with another
+ * @dst: Choice to be updated in place
+ * @other: Choice providing the allowed tokens
+ *
+ * Computes the intersection of the token sets in @dst and @other.
+ * The resulting @dst contains only tokens that appear in both choices,
+ * preserving their original order from @dst.
+ *
+ * If the previously selected token in @dst is still present after
+ * intersection, its index is updated accordingly. If it is not present,
+ * @dst->selected is set to -1.
+ *
+ * Returns:
+ * * 0 - success
+ * * -EINVAL - invalid arguments
+ * * -ENOENT - no common tokens
+ */
+int igt_sysfs_choice_intersect(struct igt_sysfs_choice *dst,
+ const struct igt_sysfs_choice *other)
+{
+ char *new_tokens[IGT_SYSFS_CHOICE_MAX_TOKENS];
+ const char *selected_name;
+ int new_selected = -1;
+ size_t new_n = 0;
+
+ if (!dst || !other)
+ return -EINVAL;
+
+ selected_name = (dst->selected >= 0 && dst->selected < dst->num_tokens) ?
+ dst->tokens[dst->selected] : NULL;
+
+ for (size_t i = 0; i < dst->num_tokens; i++) {
+ char *tok = dst->tokens[i];
+
+ if (igt_sysfs_choice_find(other, tok) < 0)
+ continue;
+
+ new_tokens[new_n] = tok;
+
+ if (selected_name && !strcmp(tok, selected_name))
+ new_selected = (int)new_n;
+
+ new_n++;
+ }
+
+ if (!new_n) {
+ dst->num_tokens = 0;
+ dst->selected = -1;
+ return -ENOENT;
+ }
+
+ for (size_t i = 0; i < new_n; i++)
+ dst->tokens[i] = new_tokens[i];
+
+ dst->num_tokens = new_n;
+ dst->selected = new_selected;
+
+ return 0;
+}
diff --git a/lib/igt_sysfs_choice.h b/lib/igt_sysfs_choice.h
new file mode 100644
index 000000000..a8a7e813a
--- /dev/null
+++ b/lib/igt_sysfs_choice.h
@@ -0,0 +1,52 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+#ifndef __IGT_SYSFS_CHOICE_H__
+#define __IGT_SYSFS_CHOICE_H__
+
+#include <stddef.h>
+#include <stdbool.h>
+
+#define IGT_SYSFS_CHOICE_MAX_LEN 256
+#define IGT_SYSFS_CHOICE_MAX_TOKENS 16
+
+/**
+ * struct igt_sysfs_choice - parsed sysfs enumerated choice attribute
+ * @tokens: array of token strings
+ * @num_tokens: number of entries in @tokens
+ * @selected: index of the active token in @tokens, or -1 if invalid
+ *
+ * This struct represents a sysfs enumerated choice attribute, for example:
+ *
+ * "low [normal] high\n"
+ *
+ * After parsing, @tokens point to "low", "normal", "high" and
+ * @selected will be 1 (the index of "normal").
+ */
+struct igt_sysfs_choice {
+ char buf[IGT_SYSFS_CHOICE_MAX_LEN];
+ char *tokens[IGT_SYSFS_CHOICE_MAX_TOKENS];
+ size_t num_tokens;
+ int selected; /* index into tokens[], or -1 */
+};
+
+int igt_sysfs_choice_parse(const char *buf, struct igt_sysfs_choice *choice);
+int igt_sysfs_choice_read(int dirfd, const char *attr,
+ struct igt_sysfs_choice *choice);
+const char *igt_sysfs_choice_selected(const struct igt_sysfs_choice *choice);
+const char *igt_sysfs_choice_to_string(const struct igt_sysfs_choice *choice,
+ char *buf, size_t buf_sz);
+int igt_sysfs_choice_find(const struct igt_sysfs_choice *choice,
+ const char *token);
+int igt_sysfs_choice_to_mask(const struct igt_sysfs_choice *choice,
+ const char *const *names, size_t names_sz,
+ unsigned int *mask, int *selected_idx);
+const char *igt_sysfs_choice_format_mask(char *buf, size_t buf_sz,
+ const char *const *names,
+ size_t names_sz, unsigned int mask,
+ int selected_idx);
+int igt_sysfs_choice_intersect(struct igt_sysfs_choice *dst,
+ const struct igt_sysfs_choice *other);
+
+#endif /* __IGT_SYSFS_CHOICE_H__ */
diff --git a/lib/meson.build b/lib/meson.build
index 707ce6ff9..604ffd782 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -44,6 +44,7 @@ lib_sources = [
'igt_stats.c',
'igt_syncobj.c',
'igt_sysfs.c',
+ 'igt_sysfs_choice.c',
'igt_sysrq.c',
'igt_taints.c',
'igt_thread.c',
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH i-g-t v2 02/10] lib/tests/igt_sysfs_choice: Add test coverage
2025-11-25 10:22 [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates Marcin Bernatowicz
2025-11-25 10:23 ` [PATCH i-g-t v2 01/10] lib/igt_sysfs_choice: Add helpers for sysfs enumerated choice attributes Marcin Bernatowicz
@ 2025-11-25 10:23 ` Marcin Bernatowicz
2026-01-15 10:31 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 03/10] lib/xe/xe_sriov_provisioning: Add string conversion helpers for scheduling priority Marcin Bernatowicz
` (11 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Marcin Bernatowicz @ 2025-11-25 10:23 UTC (permalink / raw)
To: igt-dev
Cc: adam.miszczak, jakub1.kolakowski, lukasz.laguna, michal.wajdeczko,
Marcin Bernatowicz, Kamil Konieczny
Add unit tests exercising parsing, selection rules, intersection,
round-trip formatting, and mask conversion for igt_sysfs_choice.
Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Cc: Lukasz Laguna <lukasz.laguna@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
lib/tests/igt_sysfs_choice.c | 387 +++++++++++++++++++++++++++++++++++
lib/tests/meson.build | 1 +
2 files changed, 388 insertions(+)
create mode 100644 lib/tests/igt_sysfs_choice.c
diff --git a/lib/tests/igt_sysfs_choice.c b/lib/tests/igt_sysfs_choice.c
new file mode 100644
index 000000000..05b10c0d0
--- /dev/null
+++ b/lib/tests/igt_sysfs_choice.c
@@ -0,0 +1,387 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+#include <errno.h>
+#include "drmtest.h"
+#include "igt_core.h"
+#include "igt_sysfs_choice.h"
+
+static void assert_token(const struct igt_sysfs_choice *c,
+ size_t idx, const char *expected)
+{
+ igt_assert_f(idx < c->num_tokens,
+ "token index %zu out of range (num_tokens=%zu)\n",
+ idx, c->num_tokens);
+ igt_assert(c->tokens[idx]);
+ igt_assert_f(!strcmp(c->tokens[idx], expected),
+ "token[%zu] mismatch: got='%s' expected='%s'\n",
+ idx, c->tokens[idx], expected);
+}
+
+static void parse_ok(const char *str, struct igt_sysfs_choice *choice)
+{
+ int ret;
+
+ ret = igt_sysfs_choice_parse(str, choice);
+ igt_assert_f(ret == 0, "parse(\"%s\") failed: %d\n", str, ret);
+}
+
+static void test_parse_basic_first_selected(void)
+{
+ struct igt_sysfs_choice c;
+
+ parse_ok("[low] normal high\n", &c);
+
+ igt_assert_eq(c.num_tokens, 3);
+ assert_token(&c, 0, "low");
+ assert_token(&c, 1, "normal");
+ assert_token(&c, 2, "high");
+
+ igt_assert_eq(c.selected, 0);
+}
+
+static void test_parse_middle_selected_whitespace(void)
+{
+ struct igt_sysfs_choice c;
+
+ parse_ok(" low [normal] high \n", &c);
+
+ igt_assert_eq(c.num_tokens, 3);
+ assert_token(&c, 0, "low");
+ assert_token(&c, 1, "normal");
+ assert_token(&c, 2, "high");
+
+ igt_assert_eq(c.selected, 1);
+}
+
+static void test_parse_single_token(void)
+{
+ struct igt_sysfs_choice c;
+
+ parse_ok("[only]\n", &c);
+
+ igt_assert_eq(c.num_tokens, 1);
+ assert_token(&c, 0, "only");
+ igt_assert_eq(c.selected, 0);
+}
+
+static void test_parse_error_missing_selected(void)
+{
+ struct igt_sysfs_choice c;
+ int ret;
+
+ ret = igt_sysfs_choice_parse("low normal high\n", &c);
+ igt_assert_eq(ret, -EINVAL);
+}
+
+static void test_parse_error_multiple_selected(void)
+{
+ struct igt_sysfs_choice c;
+ int ret;
+
+ ret = igt_sysfs_choice_parse("[low] [normal] high\n", &c);
+ igt_assert_eq(ret, -EINVAL);
+
+ ret = igt_sysfs_choice_parse("low [normal] [high]\n", &c);
+ igt_assert_eq(ret, -EINVAL);
+}
+
+static void test_parse_error_unterminated_bracket(void)
+{
+ struct igt_sysfs_choice c;
+ int ret;
+
+ ret = igt_sysfs_choice_parse("[low normal high\n", &c);
+ igt_assert_eq(ret, -EINVAL);
+
+ ret = igt_sysfs_choice_parse("low [normal high]\n", &c);
+ igt_assert_eq(ret, -EINVAL);
+}
+
+static void test_parse_error_too_many_tokens(void)
+{
+ struct igt_sysfs_choice c;
+ char buf[512];
+ size_t i;
+ int len = 0;
+ int ret;
+
+ /*
+ * Build a line with (IGT_SYSFS_CHOICE_MAX_TOKENS + 1) tokens:
+ * "[t0] t1 t2 ... tN"
+ */
+ len += snprintf(buf + len, sizeof(buf) - len, "[t0]");
+ for (i = 1; i < IGT_SYSFS_CHOICE_MAX_TOKENS + 1 && len < (int)sizeof(buf); i++)
+ len += snprintf(buf + len, sizeof(buf) - len, " t%zu", i);
+ len += snprintf(buf + len, sizeof(buf) - len, "\n");
+
+ ret = igt_sysfs_choice_parse(buf, &c);
+ igt_assert_eq(ret, -E2BIG);
+}
+
+static void test_selected_basic(void)
+{
+ struct igt_sysfs_choice c;
+ const char *sel;
+
+ /* selected at position 0 */
+ parse_ok("[low] normal high\n", &c);
+ sel = igt_sysfs_choice_selected(&c);
+ igt_assert(sel);
+ igt_assert(!strcmp(sel, "low"));
+
+ /* selected at position 1 */
+ parse_ok("low [normal] high\n", &c);
+ sel = igt_sysfs_choice_selected(&c);
+ igt_assert(sel);
+ igt_assert(!strcmp(sel, "normal"));
+
+ /* selected at position 2 */
+ parse_ok("low normal [high]\n", &c);
+ sel = igt_sysfs_choice_selected(&c);
+ igt_assert(sel);
+ igt_assert(!strcmp(sel, "high"));
+}
+
+static void test_selected_invalid_index(void)
+{
+ struct igt_sysfs_choice c;
+ const char *sel;
+
+ /* selected = -1 */
+ parse_ok("[only]\n", &c);
+ c.selected = -1;
+ sel = igt_sysfs_choice_selected(&c);
+ igt_assert(!sel);
+
+ /* selected >= num_tokens */
+ parse_ok("[only]\n", &c);
+ c.selected = 999;
+ sel = igt_sysfs_choice_selected(&c);
+ igt_assert(!sel);
+
+ /* empty choice */
+ memset(&c, 0, sizeof(c));
+ sel = igt_sysfs_choice_selected(&c);
+ igt_assert(!sel);
+}
+
+static void test_to_string_roundtrip(void)
+{
+ struct igt_sysfs_choice c1, c2;
+ char out[IGT_SYSFS_CHOICE_MAX_LEN];
+ const char *s;
+
+ parse_ok(" low [normal] high \n", &c1);
+
+ s = igt_sysfs_choice_to_string(&c1, out, sizeof(out));
+ igt_assert(s == out);
+
+ /*
+ * Expect canonical format: tokens separated by single spaces,
+ * one [selected], no trailing newline.
+ */
+ igt_assert_f(!strcmp(out, "low [normal] high"),
+ "to_string produced '%s'\n", out);
+
+ /* Parse again and ensure we get the same structure. */
+ parse_ok(out, &c2);
+
+ igt_assert_eq(c2.num_tokens, 3);
+ assert_token(&c2, 0, "low");
+ assert_token(&c2, 1, "normal");
+ assert_token(&c2, 2, "high");
+ igt_assert_eq(c2.selected, 1);
+}
+
+static void test_find_basic(void)
+{
+ struct igt_sysfs_choice c;
+ int idx;
+
+ parse_ok("[low] normal high\n", &c);
+
+ idx = igt_sysfs_choice_find(&c, "low");
+ igt_assert_eq(idx, 0);
+
+ idx = igt_sysfs_choice_find(&c, "normal");
+ igt_assert_eq(idx, 1);
+
+ idx = igt_sysfs_choice_find(&c, "high");
+ igt_assert_eq(idx, 2);
+
+ idx = igt_sysfs_choice_find(&c, "ultra");
+ igt_assert_lt(idx, 0);
+}
+
+static const char *const prio_names[] = {
+ "low",
+ "normal",
+ "high",
+};
+
+static void test_to_mask_basic(void)
+{
+ struct igt_sysfs_choice c;
+ unsigned int mask = 0;
+ int selected_idx = -1;
+ int ret;
+
+ parse_ok("[low] normal high\n", &c);
+
+ ret = igt_sysfs_choice_to_mask(&c, prio_names, ARRAY_SIZE(prio_names),
+ &mask, &selected_idx);
+ igt_assert_eq(ret, 0);
+
+ /* low | normal | high -> bits 0,1,2 set */
+ igt_assert_eq(mask, (1u << 0) | (1u << 1) | (1u << 2));
+ igt_assert_eq(selected_idx, 0);
+}
+
+static void test_to_mask_ignores_unknown(void)
+{
+ struct igt_sysfs_choice c;
+ unsigned int mask = 0;
+ int selected_idx = -1;
+ int ret;
+
+ parse_ok("[low] normal extra\n", &c);
+
+ ret = igt_sysfs_choice_to_mask(&c, prio_names, ARRAY_SIZE(prio_names),
+ &mask, &selected_idx);
+ igt_assert_eq(ret, 0);
+
+ /* "extra" is ignored, only low + normal mapped */
+ igt_assert_eq(mask, (1u << 0) | (1u << 1));
+ igt_assert_eq(selected_idx, 0);
+}
+
+static void test_to_mask_selected_unknown(void)
+{
+ struct igt_sysfs_choice c;
+ unsigned int mask = 0;
+ int selected_idx = 123;
+ int ret;
+
+ parse_ok("low normal [extra]\n", &c);
+
+ ret = igt_sysfs_choice_to_mask(&c, prio_names, ARRAY_SIZE(prio_names),
+ &mask, &selected_idx);
+ igt_assert_eq(ret, 0);
+
+ igt_assert_eq(mask, (1u << 0) | (1u << 1)); /* low + normal */
+ igt_assert_eq(selected_idx, -1);
+}
+
+static void test_format_mask_basic(void)
+{
+ char buf[128];
+ const char *s;
+
+ /* mask for low + normal + high, selected = normal (1) */
+ s = igt_sysfs_choice_format_mask(buf, sizeof(buf),
+ prio_names, ARRAY_SIZE(prio_names),
+ (1u << 0) | (1u << 1) | (1u << 2),
+ 1);
+ igt_assert(s == buf);
+ igt_assert_f(!strcmp(buf, "low [normal] high"),
+ "format_mask produced '%s'\n", buf);
+}
+
+static void test_format_mask_empty(void)
+{
+ char buf[128];
+ const char *s;
+
+ s = igt_sysfs_choice_format_mask(buf, sizeof(buf),
+ prio_names, ARRAY_SIZE(prio_names),
+ 0, -1);
+ igt_assert(s == buf);
+ igt_assert_eq(buf[0], '\0');
+}
+
+static void test_format_mask_unknown_bit(void)
+{
+ char buf[128];
+ const char *s;
+
+ s = igt_sysfs_choice_format_mask(buf, sizeof(buf),
+ prio_names, ARRAY_SIZE(prio_names),
+ (1u << 0) | (1u << 3),
+ 0);
+ igt_assert(s == buf);
+ igt_assert_f(!strcmp(buf, "[low]"),
+ "format_mask produced '%s'\n", buf);
+}
+
+static void test_intersect_basic(void)
+{
+ struct igt_sysfs_choice a, b;
+ int ret;
+
+ parse_ok("[low] normal high\n", &a);
+ parse_ok("low [normal] ultra\n", &b);
+
+ ret = igt_sysfs_choice_intersect(&a, &b);
+ igt_assert_eq(ret, 0);
+
+ igt_assert_eq(a.num_tokens, 2);
+ assert_token(&a, 0, "low");
+ assert_token(&a, 1, "normal");
+
+ /* semantics: selected remains the original selected token if still common */
+ igt_assert_eq(a.selected, 0);
+}
+
+static void test_intersect_single_common(void)
+{
+ struct igt_sysfs_choice a, b;
+ int ret;
+
+ parse_ok("low [normal] high\n", &a);
+ parse_ok("[normal] ultra\n", &b);
+
+ ret = igt_sysfs_choice_intersect(&a, &b);
+ igt_assert_eq(ret, 0);
+
+ igt_assert_eq(a.num_tokens, 1);
+ assert_token(&a, 0, "normal");
+ igt_assert_eq(a.selected, 0);
+}
+
+static void test_intersect_no_common(void)
+{
+ struct igt_sysfs_choice a, b;
+ int ret;
+
+ parse_ok("[low] normal\n", &a);
+ parse_ok("[high] ultra\n", &b);
+
+ ret = igt_sysfs_choice_intersect(&a, &b);
+ igt_assert_eq(ret, -ENOENT);
+}
+
+igt_simple_main
+{
+ test_parse_basic_first_selected();
+ test_parse_middle_selected_whitespace();
+ test_parse_single_token();
+ test_parse_error_missing_selected();
+ test_parse_error_multiple_selected();
+ test_parse_error_unterminated_bracket();
+ test_parse_error_too_many_tokens();
+ test_selected_basic();
+ test_selected_invalid_index();
+ test_to_string_roundtrip();
+ test_find_basic();
+ test_to_mask_basic();
+ test_to_mask_ignores_unknown();
+ test_to_mask_selected_unknown();
+ test_format_mask_basic();
+ test_format_mask_empty();
+ test_format_mask_unknown_bit();
+ test_intersect_basic();
+ test_intersect_single_common();
+ test_intersect_no_common();
+}
diff --git a/lib/tests/meson.build b/lib/tests/meson.build
index 1ce19f63c..124a9ecae 100644
--- a/lib/tests/meson.build
+++ b/lib/tests/meson.build
@@ -23,6 +23,7 @@ lib_tests = [
'igt_simulation',
'igt_stats',
'igt_subtest_group',
+ 'igt_sysfs_choice',
'igt_thread',
'igt_types',
'i915_perf_data_alignment',
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH i-g-t v2 03/10] lib/xe/xe_sriov_provisioning: Add string conversion helpers for scheduling priority
2025-11-25 10:22 [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates Marcin Bernatowicz
2025-11-25 10:23 ` [PATCH i-g-t v2 01/10] lib/igt_sysfs_choice: Add helpers for sysfs enumerated choice attributes Marcin Bernatowicz
2025-11-25 10:23 ` [PATCH i-g-t v2 02/10] lib/tests/igt_sysfs_choice: Add test coverage Marcin Bernatowicz
@ 2025-11-25 10:23 ` Marcin Bernatowicz
2026-01-15 7:48 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 04/10] lib/xe/xe_sriov_provisioning: Add sched priority mask to string helper Marcin Bernatowicz
` (10 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Marcin Bernatowicz @ 2025-11-25 10:23 UTC (permalink / raw)
To: igt-dev
Cc: adam.miszczak, jakub1.kolakowski, lukasz.laguna, michal.wajdeczko,
Marcin Bernatowicz
Introduce helper functions to convert between xe_sriov_sched_priority
enum values and their string representations.
Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
Cc: Lukasz Laguna <lukasz.laguna@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
lib/xe/xe_sriov_provisioning.c | 58 ++++++++++++++++++++++++++++++++++
lib/xe/xe_sriov_provisioning.h | 2 ++
2 files changed, 60 insertions(+)
diff --git a/lib/xe/xe_sriov_provisioning.c b/lib/xe/xe_sriov_provisioning.c
index 116cd3255..c2a1db4bc 100644
--- a/lib/xe/xe_sriov_provisioning.c
+++ b/lib/xe/xe_sriov_provisioning.c
@@ -5,6 +5,7 @@
#include <errno.h>
+#include "drmtest.h"
#include "igt_core.h"
#include "igt_debugfs.h"
#include "igt_sriov_device.h"
@@ -599,6 +600,63 @@ void xe_sriov_set_sched_if_idle(int pf, unsigned int gt_num, bool value)
igt_fail_on(__xe_sriov_set_sched_if_idle(pf, gt_num, value));
}
+static const char * const xe_sriov_sched_priority_str[] = {
+ [XE_SRIOV_SCHED_PRIORITY_LOW] = "low",
+ [XE_SRIOV_SCHED_PRIORITY_NORMAL] = "normal",
+ [XE_SRIOV_SCHED_PRIORITY_HIGH] = "high",
+};
+
+_Static_assert(ARRAY_SIZE(xe_sriov_sched_priority_str) == (XE_SRIOV_SCHED_PRIORITY_HIGH + 1),
+ "sched priority table must cover 0..HIGH");
+
+/**
+ * xe_sriov_sched_priority_to_string - Convert scheduling priority enum to string
+ * @prio: SR-IOV scheduling priority value
+ *
+ * Converts an enumeration value of type &enum xe_sriov_sched_priority
+ * into its corresponding string representation.
+ *
+ * Return: A pointer to a constant string literal ("low", "normal", or "high"),
+ * or %NULL if the value is invalid or unrecognized.
+ */
+const char *xe_sriov_sched_priority_to_string(enum xe_sriov_sched_priority prio)
+{
+ switch (prio) {
+ case XE_SRIOV_SCHED_PRIORITY_LOW:
+ case XE_SRIOV_SCHED_PRIORITY_NORMAL:
+ case XE_SRIOV_SCHED_PRIORITY_HIGH:
+ return xe_sriov_sched_priority_str[prio];
+ }
+
+ return NULL;
+}
+
+/**
+ * xe_sriov_sched_priority_from_string - Parse scheduling priority from string
+ * @s: NUL-terminated string to parse
+ * @prio: Output pointer to store parsed enum value
+ *
+ * Parses a string representing a scheduling priority ("low", "normal", "high")
+ * into the corresponding &enum xe_sriov_sched_priority value.
+ *
+ * Return: 0 on success, -EINVAL if the string is invalid or unrecognized.
+ */
+int xe_sriov_sched_priority_from_string(const char *s,
+ enum xe_sriov_sched_priority *prio)
+{
+ igt_assert(s && prio);
+
+ for (size_t i = 0; i < ARRAY_SIZE(xe_sriov_sched_priority_str); i++) {
+ const char *name = xe_sriov_sched_priority_str[i];
+
+ if (name && !strcmp(s, name)) {
+ *prio = (enum xe_sriov_sched_priority)i;
+ return 0;
+ }
+ }
+ return -EINVAL;
+}
+
/**
* __xe_sriov_get_sched_priority - Get the scheduling priority for a given VF
* @pf: PF device file descriptor
diff --git a/lib/xe/xe_sriov_provisioning.h b/lib/xe/xe_sriov_provisioning.h
index ab5347fd6..c9b321d58 100644
--- a/lib/xe/xe_sriov_provisioning.h
+++ b/lib/xe/xe_sriov_provisioning.h
@@ -136,6 +136,8 @@ int __xe_sriov_set_engine_reset(int pf, unsigned int gt_num, bool value);
void xe_sriov_set_engine_reset(int pf, unsigned int gt_num, bool value);
int __xe_sriov_set_sched_if_idle(int pf, unsigned int gt_num, bool value);
void xe_sriov_set_sched_if_idle(int pf, unsigned int gt_num, bool value);
+const char *xe_sriov_sched_priority_to_string(enum xe_sriov_sched_priority value);
+int xe_sriov_sched_priority_from_string(const char *s, enum xe_sriov_sched_priority *value);
int __xe_sriov_get_sched_priority(int pf, unsigned int vf_num,
unsigned int gt_num,
enum xe_sriov_sched_priority *value);
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH i-g-t v2 04/10] lib/xe/xe_sriov_provisioning: Add sched priority mask to string helper
2025-11-25 10:22 [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates Marcin Bernatowicz
` (2 preceding siblings ...)
2025-11-25 10:23 ` [PATCH i-g-t v2 03/10] lib/xe/xe_sriov_provisioning: Add string conversion helpers for scheduling priority Marcin Bernatowicz
@ 2025-11-25 10:23 ` Marcin Bernatowicz
2026-01-15 8:04 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 05/10] lib/igt_sriov_device: Add helper for PF/VF sysfs path formatting Marcin Bernatowicz
` (9 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Marcin Bernatowicz @ 2025-11-25 10:23 UTC (permalink / raw)
To: igt-dev
Cc: adam.miszczak, jakub1.kolakowski, lukasz.laguna, michal.wajdeczko,
Marcin Bernatowicz
Introduce xe_sriov_sched_priority_mask_to_string() to format a
scheduling priority bitmask as a space-separated list of priority names.
Introduce xe_sriov_sched_priority_choice_to_mask() to convert an
igt_sysfs_choice into a bitmask and a selected priority index.
Both helpers are thin wrappers around the generic igt_sysfs_choice
functions.
Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
Cc: Lukasz Laguna <lukasz.laguna@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
v2:
- Use BIT() macro for sched priority masks and drop static asserts
(Michal).
- Converted both helpers to thin wrappers around newly introduced
generic igt_sysfs_choice helpers (Michal),
avoiding the need to export the static array of priority names.
---
---
lib/xe/xe_sriov_provisioning.c | 32 ++++++++++++++++++++++++++++++++
lib/xe/xe_sriov_provisioning.h | 13 +++++++++++++
2 files changed, 45 insertions(+)
diff --git a/lib/xe/xe_sriov_provisioning.c b/lib/xe/xe_sriov_provisioning.c
index c2a1db4bc..929863059 100644
--- a/lib/xe/xe_sriov_provisioning.c
+++ b/lib/xe/xe_sriov_provisioning.c
@@ -9,6 +9,8 @@
#include "igt_core.h"
#include "igt_debugfs.h"
#include "igt_sriov_device.h"
+#include "igt_sysfs.h"
+#include "igt_sysfs_choice.h"
#include "intel_chipset.h"
#include "linux_scaffold.h"
#include "xe/xe_query.h"
@@ -657,6 +659,36 @@ int xe_sriov_sched_priority_from_string(const char *s,
return -EINVAL;
}
+/**
+ * xe_sriov_sched_priority_mask_to_string - Format priority mask as text
+ * @mask: Priority bitmask.
+ * @selected_idx: Index to highlight with brackets, or <0 for none.
+ * @buf: Output buffer.
+ * @buf_sz: Size of @buf.
+ *
+ * Converts @mask to a space-separated string of priority names. If @selected_idx
+ * is >= 0 and present in @mask, that priority is wrapped in brackets, e.g.
+ * "low [normal] high". An empty @mask results in an empty string.
+ *
+ * Returns: @buf.
+ */
+const char *xe_sriov_sched_priority_mask_to_string(unsigned int mask, int selected_idx,
+ char *buf, size_t buf_sz)
+{
+ return igt_sysfs_choice_format_mask(buf, buf_sz,
+ xe_sriov_sched_priority_str,
+ ARRAY_SIZE(xe_sriov_sched_priority_str),
+ mask, selected_idx);
+}
+
+int xe_sriov_sched_priority_choice_to_mask(const struct igt_sysfs_choice *choice,
+ unsigned int *mask, int *selected_idx)
+{
+ return igt_sysfs_choice_to_mask(choice, xe_sriov_sched_priority_str,
+ ARRAY_SIZE(xe_sriov_sched_priority_str),
+ mask, selected_idx);
+}
+
/**
* __xe_sriov_get_sched_priority - Get the scheduling priority for a given VF
* @pf: PF device file descriptor
diff --git a/lib/xe/xe_sriov_provisioning.h b/lib/xe/xe_sriov_provisioning.h
index c9b321d58..c4a11e4c0 100644
--- a/lib/xe/xe_sriov_provisioning.h
+++ b/lib/xe/xe_sriov_provisioning.h
@@ -9,6 +9,7 @@
#include <stdint.h>
struct xe_mmio;
+struct igt_sysfs_choice;
/**
* enum xe_sriov_shared_res - Shared resource types
@@ -75,6 +76,14 @@ enum xe_sriov_sched_priority {
XE_SRIOV_SCHED_PRIORITY_HIGH
};
+#define XE_SRIOV_SCHED_PRIORITY_MASK_LOW BIT(XE_SRIOV_SCHED_PRIORITY_LOW)
+#define XE_SRIOV_SCHED_PRIORITY_MASK_NORMAL BIT(XE_SRIOV_SCHED_PRIORITY_NORMAL)
+#define XE_SRIOV_SCHED_PRIORITY_MASK_HIGH BIT(XE_SRIOV_SCHED_PRIORITY_HIGH)
+#define XE_SRIOV_SCHED_PRIORITY_MASK_ALL \
+ (XE_SRIOV_SCHED_PRIORITY_MASK_LOW | \
+ XE_SRIOV_SCHED_PRIORITY_MASK_NORMAL | \
+ XE_SRIOV_SCHED_PRIORITY_MASK_HIGH)
+
/**
* struct xe_sriov_provisioned_range - Provisioned range for a Virtual Function (VF)
* @vf_id: The ID of the VF
@@ -138,6 +147,10 @@ int __xe_sriov_set_sched_if_idle(int pf, unsigned int gt_num, bool value);
void xe_sriov_set_sched_if_idle(int pf, unsigned int gt_num, bool value);
const char *xe_sriov_sched_priority_to_string(enum xe_sriov_sched_priority value);
int xe_sriov_sched_priority_from_string(const char *s, enum xe_sriov_sched_priority *value);
+const char *xe_sriov_sched_priority_mask_to_string(unsigned int mask, int selected_idx,
+ char *buf, size_t buf_sz);
+int xe_sriov_sched_priority_choice_to_mask(const struct igt_sysfs_choice *choice,
+ unsigned int *mask, int *selected_idx);
int __xe_sriov_get_sched_priority(int pf, unsigned int vf_num,
unsigned int gt_num,
enum xe_sriov_sched_priority *value);
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH i-g-t v2 05/10] lib/igt_sriov_device: Add helper for PF/VF sysfs path formatting
2025-11-25 10:22 [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates Marcin Bernatowicz
` (3 preceding siblings ...)
2025-11-25 10:23 ` [PATCH i-g-t v2 04/10] lib/xe/xe_sriov_provisioning: Add sched priority mask to string helper Marcin Bernatowicz
@ 2025-11-25 10:23 ` Marcin Bernatowicz
2026-01-15 8:10 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 06/10] lib/xe/xe_sriov_admin: Add SR-IOV admin sysfs accessors Marcin Bernatowicz
` (8 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Marcin Bernatowicz @ 2025-11-25 10:23 UTC (permalink / raw)
To: igt-dev
Cc: adam.miszczak, jakub1.kolakowski, lukasz.laguna, michal.wajdeczko,
Marcin Bernatowicz
Add igt_sriov_func_str() — a small utility that returns "pf" for
function 0 and "vf%u" for any VF index. This helper allows callers
to build SR-IOV sysfs paths without duplicating PF/VF conditional
logic.
Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
Cc: Lukasz Laguna <lukasz.laguna@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
lib/igt_sriov_device.c | 19 +++++++++++++++++++
lib/igt_sriov_device.h | 1 +
2 files changed, 20 insertions(+)
diff --git a/lib/igt_sriov_device.c b/lib/igt_sriov_device.c
index ffa996d6b..788ffbfa1 100644
--- a/lib/igt_sriov_device.c
+++ b/lib/igt_sriov_device.c
@@ -42,6 +42,25 @@ bool igt_sriov_is_pf(int device)
return value > 0;
}
+/**
+ * igt_sriov_func_str - Return "pf" or "vf%u" label for a function number
+ * @vf_num: 0 for PF, >0 for VF index
+ *
+ * Helper for constructing SR-IOV sysfs paths.
+ *
+ * Returns: "pf" for @vf_num == 0, otherwise "vf%u".
+ */
+const char *igt_sriov_func_str(unsigned int vf_num)
+{
+ static __thread char buf[16];
+
+ if (vf_num == 0)
+ return "pf";
+
+ snprintf(buf, sizeof(buf), "vf%u", vf_num);
+ return buf;
+}
+
static bool __pf_attr_get_u32(int pf, const char *attr, uint32_t *value)
{
int sysfs;
diff --git a/lib/igt_sriov_device.h b/lib/igt_sriov_device.h
index 930e97982..84d29b1bb 100644
--- a/lib/igt_sriov_device.h
+++ b/lib/igt_sriov_device.h
@@ -34,6 +34,7 @@ int igt_sriov_device_sysfs_open(int pf, unsigned int vf_num);
bool igt_sriov_device_reset_exists(int pf, unsigned int vf_num);
bool igt_sriov_device_reset(int pf, unsigned int vf_num);
bool intel_is_vf_device(int device);
+const char *igt_sriov_func_str(unsigned int vf_num);
/**
* __is_valid_range - Helper to check VF range is valid
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH i-g-t v2 06/10] lib/xe/xe_sriov_admin: Add SR-IOV admin sysfs accessors
2025-11-25 10:22 [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates Marcin Bernatowicz
` (4 preceding siblings ...)
2025-11-25 10:23 ` [PATCH i-g-t v2 05/10] lib/igt_sriov_device: Add helper for PF/VF sysfs path formatting Marcin Bernatowicz
@ 2025-11-25 10:23 ` Marcin Bernatowicz
2026-01-15 8:24 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 07/10] tests/intel/xe_sriov_scheduling: Avoid assert on scheduling params restore in cleanup Marcin Bernatowicz
` (7 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Marcin Bernatowicz @ 2025-11-25 10:23 UTC (permalink / raw)
To: igt-dev
Cc: adam.miszczak, jakub1.kolakowski, lukasz.laguna, michal.wajdeczko,
Marcin Bernatowicz
Reflect recent kernel changes and expose SR-IOV admin sysfs helpers for
scheduling control. Add per-VF and bulk accessors for execution quantum,
preemption timeout, scheduling priority, VF stop and restoring defaults.
Link: https://lore.kernel.org/intel-xe/20251030222348.186658-1-michal.wajdeczko@intel.com/
Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
Cc: Lukasz Laguna <lukasz.laguna@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
lib/meson.build | 1 +
lib/xe/xe_sriov_admin.c | 623 ++++++++++++++++++++++++++++++++++++++++
lib/xe/xe_sriov_admin.h | 60 ++++
3 files changed, 684 insertions(+)
create mode 100644 lib/xe/xe_sriov_admin.c
create mode 100644 lib/xe/xe_sriov_admin.h
diff --git a/lib/meson.build b/lib/meson.build
index 604ffd782..3dec593b3 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -126,6 +126,7 @@ lib_sources = [
'xe/xe_mmio.c',
'xe/xe_query.c',
'xe/xe_spin.c',
+ 'xe/xe_sriov_admin.c',
'xe/xe_sriov_debugfs.c',
'xe/xe_sriov_provisioning.c',
'xe/xe_util.c',
diff --git a/lib/xe/xe_sriov_admin.c b/lib/xe/xe_sriov_admin.c
new file mode 100644
index 000000000..489dbec5c
--- /dev/null
+++ b/lib/xe/xe_sriov_admin.c
@@ -0,0 +1,623 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright(c) 2025 Intel Corporation. All rights reserved.
+ */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include "igt.h"
+#include "igt_sriov_device.h"
+#include "igt_sysfs.h"
+#include "igt_sysfs_choice.h"
+#include "xe_sriov_admin.h"
+
+static const char SRIOV_ADMIN[] = "device/sriov_admin";
+
+static int fmt_profile_rel_path(char *buf, size_t sz, unsigned int vf_num,
+ const char *attr)
+{
+ igt_assert(buf && attr && sz);
+
+ return snprintf(buf, sz, "%s/%s/%s", SRIOV_ADMIN, igt_sriov_func_str(vf_num), attr);
+}
+
+static int fmt_bulk_rel_path(char *buf, size_t sz, const char *attr)
+{
+ igt_assert(buf && attr && sz);
+
+ return snprintf(buf, sz, "%s/.bulk_profile/%s", SRIOV_ADMIN, attr);
+}
+
+static int ret_from_printf(int ret)
+{
+ return ret > 0 ? 0 : ret;
+}
+
+static int ret_from_scanf_items(int ret, int want_items)
+{
+ /* igt_sysfs_scanf: returns number of assigned items, or <0 on -errno */
+ if (ret < 0)
+ return ret;
+ return (ret == want_items) ? 0 : -EIO;
+}
+
+/**
+ * xe_sriov_admin_is_present - Check if SR-IOV admin sysfs interface is available
+ * @pf_fd: PF device file descriptor.
+ *
+ * Returns: true if the PF exposes the SR-IOV admin tree, false otherwise.
+ */
+bool xe_sriov_admin_is_present(int pf_fd)
+{
+ int sysfs;
+ bool ret;
+
+ sysfs = igt_sysfs_open(pf_fd);
+ if (sysfs < 0)
+ return -1;
+
+ ret = igt_sysfs_has_attr(sysfs, SRIOV_ADMIN);
+ close(sysfs);
+ return ret;
+}
+
+/**
+ * __xe_sriov_profile_set_exec_quantum_ms - Set execution quantum for a VF
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ * @eq_ms: Execution quantum in milliseconds.
+ *
+ * Writes the new execution quantum to sysfs.
+ *
+ * Returns: 0 on success or negative errno on error.
+ */
+int __xe_sriov_profile_set_exec_quantum_ms(int pf_fd, unsigned int vf_num,
+ uint32_t eq_ms)
+{
+ char path[PATH_MAX];
+ int sysfs;
+ bool ret;
+
+ sysfs = igt_sysfs_open(pf_fd);
+ if (sysfs < 0)
+ return -1;
+
+ fmt_profile_rel_path(path, sizeof(path), vf_num, "profile/exec_quantum_ms");
+
+ ret = igt_sysfs_printf(sysfs, path, "%u", eq_ms);
+
+ close(sysfs);
+
+ return ret_from_printf(ret);
+}
+
+/**
+ * xe_sriov_profile_set_exec_quantum_ms - Assert wrapper for setting VF execution quantum
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ * @eq_ms: Execution quantum in milliseconds.
+ *
+ * Calls __xe_sriov_profile_set_exec_quantum_ms() and asserts on error.
+ */
+void xe_sriov_profile_set_exec_quantum_ms(int pf_fd, unsigned int vf_num, uint32_t eq_ms)
+{
+ igt_assert_eq(0, __xe_sriov_profile_set_exec_quantum_ms(pf_fd, vf_num,
+ eq_ms));
+}
+
+/**
+ * __xe_sriov_profile_get_exec_quantum_ms - Read execution quantum for a VF
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ * @eq_ms: Output pointer for the execution quantum (ms).
+ *
+ * Reads current VF execution quantum from sysfs.
+ *
+ * Returns: 0 on success or negative errno on error.
+ */
+int __xe_sriov_profile_get_exec_quantum_ms(int pf_fd, unsigned int vf_num, uint32_t *eq_ms)
+{
+ char path[PATH_MAX];
+ unsigned int val = 0;
+ int sysfs, ret;
+
+ sysfs = igt_sysfs_open(pf_fd);
+ if (sysfs < 0)
+ return sysfs;
+
+ fmt_profile_rel_path(path, sizeof(path), vf_num, "profile/exec_quantum_ms");
+ ret = igt_sysfs_scanf(sysfs, path, "%u", &val);
+ close(sysfs);
+
+ ret = ret_from_scanf_items(ret, 1);
+ if (ret)
+ return ret;
+
+ *eq_ms = val;
+ return 0;
+}
+
+/**
+ * xe_sriov_profile_get_exec_quantum_ms - Assert wrapper for reading VF execution quantum
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ *
+ * Returns: execution quantum (ms); asserts on error.
+ */
+uint32_t xe_sriov_profile_get_exec_quantum_ms(int pf_fd, unsigned int vf_num)
+{
+ uint32_t v = 0;
+
+ igt_assert_eq(0,
+ __xe_sriov_profile_get_exec_quantum_ms(pf_fd, vf_num, &v));
+ return v;
+}
+
+/**
+ * __xe_sriov_profile_set_preempt_timeout_us - Set preemption timeout for a VF
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ * @pt_us: Preemption timeout in microseconds.
+ *
+ * Returns: 0 on success or negative errno on error.
+ */
+int __xe_sriov_profile_set_preempt_timeout_us(int pf_fd, unsigned int vf_num, uint32_t pt_us)
+{
+ char path[PATH_MAX];
+ int sysfs, ret;
+
+ sysfs = igt_sysfs_open(pf_fd);
+ if (sysfs < 0)
+ return sysfs;
+
+ fmt_profile_rel_path(path, sizeof(path), vf_num, "profile/preempt_timeout_us");
+ ret = igt_sysfs_printf(sysfs, path, "%u", pt_us);
+ close(sysfs);
+ return ret_from_printf(ret);
+}
+
+/**
+ * xe_sriov_profile_set_preempt_timeout_us - Assert wrapper for setting VF preemption timeout
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ * @pt_us: Preemption timeout in microseconds.
+ */
+void xe_sriov_profile_set_preempt_timeout_us(int pf_fd, unsigned int vf_num, uint32_t pt_us)
+{
+ igt_assert_eq(0, __xe_sriov_profile_set_preempt_timeout_us(pf_fd, vf_num, pt_us));
+}
+
+/**
+ * __xe_sriov_profile_get_preempt_timeout_us - Read preemption timeout for a VF
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ * @pt_us: Output pointer for preemption timeout (µs).
+ *
+ * Returns: 0 on success or negative errno on error.
+ */
+int __xe_sriov_profile_get_preempt_timeout_us(int pf_fd, unsigned int vf_num,
+ uint32_t *pt_us)
+{
+ char path[PATH_MAX];
+ unsigned int val = 0;
+ int sysfs, ret;
+
+ sysfs = igt_sysfs_open(pf_fd);
+ if (sysfs < 0)
+ return sysfs;
+
+ fmt_profile_rel_path(path, sizeof(path), vf_num,
+ "profile/preempt_timeout_us");
+ ret = igt_sysfs_scanf(sysfs, path, "%u", &val);
+ close(sysfs);
+
+ ret = ret_from_scanf_items(ret, 1);
+ if (ret)
+ return ret;
+ *pt_us = val;
+ return 0;
+}
+
+/**
+ * xe_sriov_profile_get_preempt_timeout_us - Assert wrapper for reading VF preemption timeout
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ *
+ * Returns: preemption timeout (µs); asserts on error.
+ */
+uint32_t xe_sriov_profile_get_preempt_timeout_us(int pf_fd, unsigned int vf_num)
+{
+ uint32_t v = 0;
+
+ igt_assert_eq(0, __xe_sriov_profile_get_preempt_timeout_us(pf_fd, vf_num, &v));
+ return v;
+}
+
+/**
+ * __xe_sriov_profile_set_sched_priority_string - Set VF priority from string
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ * @prio: String value ("low", "normal", "high").
+ *
+ * Returns: 0 on success or negative errno on error.
+ */
+int __xe_sriov_profile_set_sched_priority_string(int pf_fd, unsigned int vf_num,
+ const char *prio)
+{
+ char path[PATH_MAX];
+ int sysfs, ret;
+
+ if (!prio)
+ return -EINVAL;
+
+ sysfs = igt_sysfs_open(pf_fd);
+ if (sysfs < 0)
+ return sysfs;
+
+ fmt_profile_rel_path(path, sizeof(path), vf_num,
+ "profile/sched_priority");
+ ret = igt_sysfs_printf(sysfs, path, "%s", prio);
+ close(sysfs);
+ return ret_from_printf(ret);
+}
+
+/**
+ * __xe_sriov_profile_set_sched_priority - Set VF scheduling priority
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ * @prio: Priority enum value.
+ *
+ * Returns: 0 on success or negative errno on error.
+ */
+int __xe_sriov_profile_set_sched_priority(int pf_fd, unsigned int vf_num,
+ enum xe_sriov_sched_priority prio)
+{
+ const char *p = xe_sriov_sched_priority_to_string(prio);
+
+ return __xe_sriov_profile_set_sched_priority_string(pf_fd, vf_num, p);
+}
+
+/**
+ * xe_sriov_profile_set_sched_priority - Assert wrapper for setting VF priority
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ * @prio: Priority enum value.
+ */
+void xe_sriov_profile_set_sched_priority(int pf_fd, unsigned int vf_num,
+ enum xe_sriov_sched_priority prio)
+{
+ igt_assert_eq(0, __xe_sriov_profile_set_sched_priority(pf_fd, vf_num, prio));
+}
+
+/**
+ * __xe_sriov_profile_get_sched_priority_choice - Read sched_priority tokens
+ * @pf_fd: PF device file descriptor
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ * @choice: Output choice structure with parsed tokens and selected index
+ *
+ * Reads the sched_priority sysfs attribute for the given PF/VF and parses it
+ * into an igt_sysfs_choice.
+ *
+ * Returns: 0 on success or a negative errno code.
+ */
+int __xe_sriov_profile_get_sched_priority_choice(int pf_fd, unsigned int vf_num,
+ struct igt_sysfs_choice *choice)
+{
+ char path[PATH_MAX];
+ int sysfs, ret;
+
+ sysfs = igt_sysfs_open(pf_fd);
+ if (sysfs < 0)
+ return sysfs;
+
+ fmt_profile_rel_path(path, sizeof(path), vf_num, "profile/sched_priority");
+ ret = igt_sysfs_choice_read(sysfs, path, choice);
+ close(sysfs);
+
+ return ret;
+}
+
+/**
+ * __xe_sriov_profile_get_sched_priority - Read VF scheduling priority + mask
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ * @prio: Output pointer for the effective priority.
+ * @prio_mask: Output mask of allowed priorities.
+ *
+ * Returns: 0 on success or negative errno on error.
+ */
+int __xe_sriov_profile_get_sched_priority(int pf_fd, unsigned int vf_num,
+ enum xe_sriov_sched_priority *prio,
+ unsigned int *prio_mask)
+{
+ struct igt_sysfs_choice prio_ch = {};
+ int ret;
+
+ ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf_num, &prio_ch);
+ if (ret)
+ return ret;
+
+ ret = xe_sriov_sched_priority_from_string(prio_ch.tokens[prio_ch.selected], prio);
+ if (igt_debug_on_f(ret, "unknown selected value '%s' (err=%d)\n",
+ prio_ch.tokens[prio_ch.selected], ret))
+ return ret;
+
+ if (prio_mask) {
+ ret = xe_sriov_sched_priority_choice_to_mask(&prio_ch, prio_mask, NULL);
+ if (igt_debug_on_f(ret, "mask conversion failed (err=%d)\n", ret))
+ return ret;
+ }
+
+ return 0;
+}
+
+/**
+ * xe_sriov_profile_get_sched_priority - Assert wrapper for reading VF priority
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ * @prio_mask: Output mask of supported priorities.
+ *
+ * Returns: effective priority; asserts on error.
+ */
+enum xe_sriov_sched_priority
+xe_sriov_profile_get_sched_priority(int pf_fd, unsigned int vf_num,
+ unsigned int *prio_mask)
+{
+ enum xe_sriov_sched_priority cur_prio;
+
+ igt_assert_eq(0,
+ __xe_sriov_profile_get_sched_priority(pf_fd, vf_num, &cur_prio, prio_mask));
+
+ return cur_prio;
+}
+
+/**
+ * __xe_sriov_bulk_set_exec_quantum_ms - Set execution quantum for PF and all VFs
+ * @pf_fd: PF device file descriptor.
+ * @eq_ms: Execution quantum in milliseconds.
+ *
+ * Applies the value to PF and all VFs.
+ *
+ * Returns: 0 on success or negative errno on error.
+ */
+int __xe_sriov_bulk_set_exec_quantum_ms(int pf_fd, uint32_t eq_ms)
+{
+ char path[PATH_MAX];
+ int sysfs, ret;
+
+ sysfs = igt_sysfs_open(pf_fd);
+ if (sysfs < 0)
+ return sysfs;
+
+ fmt_bulk_rel_path(path, sizeof(path), "exec_quantum_ms");
+ ret = igt_sysfs_printf(sysfs, path, "%u", eq_ms);
+ close(sysfs);
+ return ret_from_printf(ret);
+}
+
+/**
+ * xe_sriov_bulk_set_exec_quantum_ms - Assert wrapper for bulk execution quantum update
+ * @pf_fd: PF device file descriptor.
+ * @eq_ms: Execution quantum in milliseconds.
+ */
+void xe_sriov_bulk_set_exec_quantum_ms(int pf_fd, uint32_t eq_ms)
+{
+ igt_assert_eq(0, __xe_sriov_bulk_set_exec_quantum_ms(pf_fd, eq_ms));
+}
+
+/**
+ * __xe_sriov_bulk_set_preempt_timeout_us - Set preemption timeout for PF and all VFs
+ * @pf_fd: PF device file descriptor.
+ * @pt_us: Preemption timeout in microseconds.
+ *
+ * Applies the value to PF and all VFs.
+ *
+ * Returns: 0 on success or negative errno on error.
+ */
+int __xe_sriov_bulk_set_preempt_timeout_us(int pf_fd, uint32_t pt_us)
+{
+ char path[PATH_MAX];
+ int sysfs, ret;
+
+ sysfs = igt_sysfs_open(pf_fd);
+ if (sysfs < 0)
+ return sysfs;
+
+ fmt_bulk_rel_path(path, sizeof(path), "preempt_timeout_us");
+ ret = igt_sysfs_printf(sysfs, path, "%u", pt_us);
+ close(sysfs);
+ return ret_from_printf(ret);
+}
+
+/**
+ * xe_sriov_bulk_set_preempt_timeout_us - Assert wrapper for bulk preemption timeout update
+ * @pf_fd: PF device file descriptor.
+ * @pt_us: Preemption timeout in microseconds.
+ */
+void xe_sriov_bulk_set_preempt_timeout_us(int pf_fd, uint32_t pt_us)
+{
+ igt_assert_eq(0, __xe_sriov_bulk_set_preempt_timeout_us(pf_fd, pt_us));
+}
+
+/**
+ * __xe_sriov_bulk_set_sched_priority_string - Set scheduling priority for PF and all VFs
+ * @pf_fd: PF device file descriptor.
+ * @prio: String priority ("low", "normal", "high").
+ *
+ * Returns: 0 on success or negative errno on error.
+ */
+int __xe_sriov_bulk_set_sched_priority_string(int pf_fd, const char *prio)
+{
+ char path[PATH_MAX];
+ int sysfs, ret;
+
+ sysfs = igt_sysfs_open(pf_fd);
+ if (sysfs < 0)
+ return sysfs;
+
+ fmt_bulk_rel_path(path, sizeof(path), "sched_priority");
+ ret = igt_sysfs_printf(sysfs, path, "%s", prio);
+ close(sysfs);
+ return ret_from_printf(ret);
+}
+
+/**
+ * xe_sriov_bulk_set_sched_priority_string - Assert wrapper for bulk priority update
+ * @pf_fd: PF device file descriptor.
+ * @prio: String priority.
+ */
+void xe_sriov_bulk_set_sched_priority_string(int pf_fd, const char *prio)
+{
+ igt_assert_eq(0, __xe_sriov_bulk_set_sched_priority_string(pf_fd, prio));
+}
+
+/**
+ * __xe_sriov_bulk_set_sched_priority - Set numeric priority for PF and all VFs
+ * @pf_fd: PF device file descriptor.
+ * @prio: Enum priority value.
+ *
+ * Returns: 0 on success or negative errno on error.
+ */
+int __xe_sriov_bulk_set_sched_priority(int pf_fd,
+ enum xe_sriov_sched_priority prio)
+{
+ const char *s = xe_sriov_sched_priority_to_string(prio);
+
+ if (!s)
+ return -EINVAL;
+ return __xe_sriov_bulk_set_sched_priority_string(pf_fd, s);
+}
+
+/**
+ * xe_sriov_bulk_set_sched_priority - Assert wrapper for bulk priority update
+ * @pf_fd: PF device file descriptor.
+ * @prio: Enum priority value.
+ */
+void xe_sriov_bulk_set_sched_priority(int pf_fd,
+ enum xe_sriov_sched_priority prio)
+{
+ igt_assert_eq(0, __xe_sriov_bulk_set_sched_priority(pf_fd, prio));
+}
+
+/**
+ * __xe_sriov_vf_stop - Issue stop command for a VF
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index.
+ *
+ * Triggers VF stop via sysfs.
+ *
+ * Returns: 0 on success or negative errno on error.
+ */
+int __xe_sriov_vf_stop(int pf_fd, unsigned int vf_num)
+{
+ char path[PATH_MAX];
+ int sysfs, ret;
+
+ sysfs = igt_sysfs_open(pf_fd);
+ if (sysfs < 0)
+ return sysfs;
+
+ fmt_profile_rel_path(path, sizeof(path), vf_num, "stop");
+ ret = igt_sysfs_printf(sysfs, path, "%u", 1u);
+ close(sysfs);
+ return ret_from_printf(ret);
+}
+
+/**
+ * xe_sriov_vf_stop - Assert wrapper for VF stop command
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index.
+ */
+void xe_sriov_vf_stop(int pf_fd, unsigned int vf_num)
+{
+ igt_assert_eq(0, __xe_sriov_vf_stop(pf_fd, vf_num));
+}
+
+/**
+ * __xe_sriov_profile_restore_defaults - Restore scheduling defaults for a VF
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ *
+ * Resets execution quantum, preemption timeout, and priority to driver defaults.
+ *
+ * Returns: 0 on success or negative errno on error.
+ */
+int __xe_sriov_profile_restore_defaults(int pf_fd, unsigned int vf_num)
+{
+ int ret_eq, ret_pt, ret_prio;
+ int ret = 0;
+
+ ret_eq = __xe_sriov_profile_set_exec_quantum_ms(pf_fd, vf_num, 0);
+ igt_warn_on(ret_eq);
+ if (!ret)
+ ret = ret_eq;
+
+ ret_pt = __xe_sriov_profile_set_preempt_timeout_us(pf_fd, vf_num, 0);
+ igt_warn_on(ret_pt);
+ if (!ret)
+ ret = ret_pt;
+
+ ret_prio = __xe_sriov_profile_set_sched_priority(pf_fd, vf_num,
+ XE_SRIOV_SCHED_PRIORITY_LOW);
+ igt_warn_on(ret_prio);
+ if (!ret)
+ ret = ret_prio;
+
+ return ret;
+}
+
+/**
+ * xe_sriov_profile_restore_defaults - Assert wrapper restoring VF defaults
+ * @pf_fd: PF device file descriptor.
+ * @vf_num: VF index (0 for PF, >0 for VFs).
+ */
+void xe_sriov_profile_restore_defaults(int pf_fd, unsigned int vf_num)
+{
+ igt_assert_eq(0, __xe_sriov_profile_restore_defaults(pf_fd, vf_num));
+}
+
+/**
+ * __xe_sriov_bulk_restore_defaults - Restore scheduling defaults for PF and all VFs
+ * @pf_fd: PF device file descriptor.
+ *
+ * Resets PF and all VFs to driver default scheduling parameters.
+ *
+ * Returns: 0 on success or negative errno on error.
+ */
+int __xe_sriov_bulk_restore_defaults(int pf_fd)
+{
+ int ret_eq, ret_pt, ret_prio;
+ int ret = 0;
+
+ ret_eq = __xe_sriov_bulk_set_exec_quantum_ms(pf_fd, 0);
+ igt_warn_on(ret_eq);
+ if (!ret)
+ ret = ret_eq;
+
+ ret_pt = __xe_sriov_bulk_set_preempt_timeout_us(pf_fd, 0);
+ igt_warn_on(ret_pt);
+ if (!ret)
+ ret = ret_pt;
+
+ ret_prio = __xe_sriov_bulk_set_sched_priority(pf_fd,
+ XE_SRIOV_SCHED_PRIORITY_LOW);
+ igt_warn_on(ret_prio);
+ if (!ret)
+ ret = ret_prio;
+
+ return ret;
+}
+
+/**
+ * xe_sriov_bulk_restore_defaults - Assert wrapper for restoring defaults on PF and all VFs
+ * @pf_fd: PF device file descriptor.
+ */
+void xe_sriov_bulk_restore_defaults(int pf_fd)
+{
+ igt_assert_eq(0, __xe_sriov_bulk_restore_defaults(pf_fd));
+}
diff --git a/lib/xe/xe_sriov_admin.h b/lib/xe/xe_sriov_admin.h
new file mode 100644
index 000000000..6dfd0f7d4
--- /dev/null
+++ b/lib/xe/xe_sriov_admin.h
@@ -0,0 +1,60 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright(c) 2025 Intel Corporation. All rights reserved.
+ */
+
+#ifndef __XE_SRIOV_ADMIN_H__
+#define __XE_SRIOV_ADMIN_H__
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <stddef.h>
+#include "xe_sriov_provisioning.h" /* for enum xe_sriov_sched_priority */
+
+struct igt_sysfs_choice;
+
+bool xe_sriov_admin_is_present(int pf_fd);
+
+int __xe_sriov_profile_set_exec_quantum_ms(int pf_fd, unsigned int vf_num, uint32_t eq_ms);
+void xe_sriov_profile_set_exec_quantum_ms(int pf_fd, unsigned int vf_num, uint32_t eq_ms);
+int __xe_sriov_profile_get_exec_quantum_ms(int pf_fd, unsigned int vf_num, uint32_t *eq_ms);
+uint32_t xe_sriov_profile_get_exec_quantum_ms(int pf_fd, unsigned int vf_num);
+int __xe_sriov_profile_set_preempt_timeout_us(int pf_fd, unsigned int vf_num, uint32_t pt_us);
+void xe_sriov_profile_set_preempt_timeout_us(int pf_fd, unsigned int vf_num, uint32_t pt_us);
+int __xe_sriov_profile_get_preempt_timeout_us(int pf_fd, unsigned int vf_num, uint32_t *pt_us);
+uint32_t xe_sriov_profile_get_preempt_timeout_us(int pf_fd, unsigned int vf_num);
+int __xe_sriov_profile_set_sched_priority_string(int pf_fd, unsigned int vf_num,
+ const char *prio);
+int __xe_sriov_profile_get_sched_priority_choice(int pf_fd, unsigned int vf_num,
+ struct igt_sysfs_choice *choice);
+int __xe_sriov_profile_set_sched_priority(int pf_fd, unsigned int vf_num,
+ enum xe_sriov_sched_priority prio);
+void xe_sriov_profile_set_sched_priority(int pf_fd, unsigned int vf_num,
+ enum xe_sriov_sched_priority prio);
+int __xe_sriov_profile_get_sched_priority(int pf_fd, unsigned int vf_num,
+ enum xe_sriov_sched_priority *prio,
+ unsigned int *prio_mask);
+enum xe_sriov_sched_priority
+xe_sriov_profile_get_sched_priority(int pf_fd, unsigned int vf_num,
+ unsigned int *prio_mask);
+
+int __xe_sriov_bulk_set_exec_quantum_ms(int pf_fd, uint32_t eq_ms);
+void xe_sriov_bulk_set_exec_quantum_ms(int pf_fd, uint32_t eq_ms);
+int __xe_sriov_bulk_set_preempt_timeout_us(int pf_fd, uint32_t pt_us);
+void xe_sriov_bulk_set_preempt_timeout_us(int pf_fd, uint32_t pt_us);
+int __xe_sriov_bulk_set_sched_priority_string(int pf_fd, const char *prio);
+void xe_sriov_bulk_set_sched_priority_string(int pf_fd, const char *prio);
+int __xe_sriov_bulk_set_sched_priority(int pf_fd,
+ enum xe_sriov_sched_priority prio);
+void xe_sriov_bulk_set_sched_priority(int pf_fd,
+ enum xe_sriov_sched_priority prio);
+
+int __xe_sriov_vf_stop(int pf_fd, unsigned int vf_num);
+void xe_sriov_vf_stop(int pf_fd, unsigned int vf_num);
+
+int __xe_sriov_profile_restore_defaults(int pf_fd, unsigned int vf_num);
+void xe_sriov_profile_restore_defaults(int pf_fd, unsigned int vf_num);
+int __xe_sriov_bulk_restore_defaults(int pf_fd);
+void xe_sriov_bulk_restore_defaults(int pf_fd);
+
+#endif /* __XE_SRIOV_ADMIN_H__ */
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH i-g-t v2 07/10] tests/intel/xe_sriov_scheduling: Avoid assert on scheduling params restore in cleanup
2025-11-25 10:22 [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates Marcin Bernatowicz
` (5 preceding siblings ...)
2025-11-25 10:23 ` [PATCH i-g-t v2 06/10] lib/xe/xe_sriov_admin: Add SR-IOV admin sysfs accessors Marcin Bernatowicz
@ 2025-11-25 10:23 ` Marcin Bernatowicz
2026-01-15 8:25 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 08/10] tests/intel/xe_sriov_scheduling: Prefer SR-IOV admin sysfs accessors Marcin Bernatowicz
` (6 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Marcin Bernatowicz @ 2025-11-25 10:23 UTC (permalink / raw)
To: igt-dev
Cc: adam.miszczak, jakub1.kolakowski, lukasz.laguna, michal.wajdeczko,
Marcin Bernatowicz
Add __set_vfs_scheduling_params() that returns error instead of asserting.
Use the non-asserting helper in cleanup paths to ensure VFs are properly
disabled before aborting.
Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
Cc: Lukasz Laguna <lukasz.laguna@intel.com>
---
tests/intel/xe_sriov_scheduling.c | 41 ++++++++++++++++++++++++-------
1 file changed, 32 insertions(+), 9 deletions(-)
diff --git a/tests/intel/xe_sriov_scheduling.c b/tests/intel/xe_sriov_scheduling.c
index 5e8c87755..3a0c0d438 100644
--- a/tests/intel/xe_sriov_scheduling.c
+++ b/tests/intel/xe_sriov_scheduling.c
@@ -371,17 +371,36 @@ struct vf_sched_params {
uint32_t preempt_timeout_us;
};
-static void set_vfs_scheduling_params(int pf_fd, int num_vfs,
- const struct vf_sched_params *p)
+static int __set_vfs_scheduling_params(int pf_fd, int num_vfs,
+ const struct vf_sched_params *p)
{
unsigned int gt;
+ int vf, ret;
xe_for_each_gt(pf_fd, gt) {
- for (int vf = 0; vf <= num_vfs; ++vf) {
- xe_sriov_set_exec_quantum_ms(pf_fd, vf, gt, p->exec_quantum_ms);
- xe_sriov_set_preempt_timeout_us(pf_fd, vf, gt, p->preempt_timeout_us);
+ for (vf = 0; vf <= num_vfs; ++vf) {
+ ret = __xe_sriov_set_exec_quantum_ms(pf_fd, vf, gt,
+ p->exec_quantum_ms);
+ if (igt_warn_on_f(ret,
+ "Failed to set exec_quantum_ms=%u (VF%d GT%u): %d\n",
+ p->exec_quantum_ms, vf, gt, ret))
+ return ret;
+
+ ret = __xe_sriov_set_preempt_timeout_us(pf_fd, vf, gt,
+ p->preempt_timeout_us);
+ if (igt_warn_on_f(ret,
+ "Failed to set preempt_timeout_us=%u (VF%d GT%u): %d\n",
+ p->preempt_timeout_us, vf, gt, ret))
+ return ret;
}
}
+ return 0;
+}
+
+static void set_vfs_scheduling_params(int pf_fd, int num_vfs,
+ const struct vf_sched_params *p)
+{
+ igt_assert_eq(0, __set_vfs_scheduling_params(pf_fd, num_vfs, p));
}
static bool check_within_epsilon(const double x, const double ref, const double tol)
@@ -729,7 +748,7 @@ static void throughput_ratio(int pf_fd, int num_vfs, const struct subm_opts *opt
/* cleanup */
subm_set_fini(set);
- set_vfs_scheduling_params(pf_fd, num_vfs, &(struct vf_sched_params){});
+ __set_vfs_scheduling_params(pf_fd, num_vfs, &(struct vf_sched_params){});
xe_sriov_disable_vfs_restore_auto_provisioning(pf_fd);
}
@@ -815,7 +834,7 @@ static void nonpreempt_engine_resets(int pf_fd, int num_vfs,
/* cleanup */
subm_set_fini(set);
- set_vfs_scheduling_params(pf_fd, num_vfs, &(struct vf_sched_params){});
+ __set_vfs_scheduling_params(pf_fd, num_vfs, &(struct vf_sched_params){});
xe_sriov_disable_vfs_restore_auto_provisioning(pf_fd);
}
@@ -923,8 +942,10 @@ igt_main_args("", long_opts, help_str, subm_opts_handler, NULL)
}
igt_fixture {
- set_vfs_scheduling_params(pf_fd, igt_sriov_get_total_vfs(pf_fd),
- &(struct vf_sched_params){});
+ int ret;
+
+ ret = __set_vfs_scheduling_params(pf_fd, igt_sriov_get_total_vfs(pf_fd),
+ &(struct vf_sched_params){});
xe_sriov_disable_vfs_restore_auto_provisioning(pf_fd);
/* abort to avoid execution of next tests with enabled VFs */
igt_abort_on_f(igt_sriov_get_enabled_vfs(pf_fd) > 0,
@@ -933,6 +954,8 @@ igt_main_args("", long_opts, help_str, subm_opts_handler, NULL)
igt_sriov_disable_driver_autoprobe(pf_fd);
igt_abort_on_f(autoprobe != igt_sriov_is_driver_autoprobe_enabled(pf_fd),
"Failed to restore sriov_drivers_autoprobe value\n");
+ igt_abort_on_f(ret,
+ "Failed to restore scheduling params\n");
drm_close_driver(pf_fd);
}
}
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH i-g-t v2 08/10] tests/intel/xe_sriov_scheduling: Prefer SR-IOV admin sysfs accessors
2025-11-25 10:22 [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates Marcin Bernatowicz
` (6 preceding siblings ...)
2025-11-25 10:23 ` [PATCH i-g-t v2 07/10] tests/intel/xe_sriov_scheduling: Avoid assert on scheduling params restore in cleanup Marcin Bernatowicz
@ 2025-11-25 10:23 ` Marcin Bernatowicz
2026-01-15 8:25 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 09/10] tests/intel/xe_pmu: " Marcin Bernatowicz
` (5 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Marcin Bernatowicz @ 2025-11-25 10:23 UTC (permalink / raw)
To: igt-dev
Cc: adam.miszczak, jakub1.kolakowski, lukasz.laguna, michal.wajdeczko,
Marcin Bernatowicz
Use SR-IOV admin sysfs setters for scheduling parameters,
skip if sriov_admin sysfs not available.
Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
Cc: Lukasz Laguna <lukasz.laguna@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
v2: Switch to SR-IOV sysfs setters (Michal)
---
---
tests/intel/xe_sriov_scheduling.c | 38 ++++++++++++++-----------------
1 file changed, 17 insertions(+), 21 deletions(-)
diff --git a/tests/intel/xe_sriov_scheduling.c b/tests/intel/xe_sriov_scheduling.c
index 3a0c0d438..491d2eb0a 100644
--- a/tests/intel/xe_sriov_scheduling.c
+++ b/tests/intel/xe_sriov_scheduling.c
@@ -9,6 +9,7 @@
#include "xe_drm.h"
#include "xe/xe_ioctl.h"
#include "xe/xe_spin.h"
+#include "xe/xe_sriov_admin.h"
#include "xe/xe_sriov_provisioning.h"
/**
@@ -374,27 +375,21 @@ struct vf_sched_params {
static int __set_vfs_scheduling_params(int pf_fd, int num_vfs,
const struct vf_sched_params *p)
{
- unsigned int gt;
- int vf, ret;
-
- xe_for_each_gt(pf_fd, gt) {
- for (vf = 0; vf <= num_vfs; ++vf) {
- ret = __xe_sriov_set_exec_quantum_ms(pf_fd, vf, gt,
- p->exec_quantum_ms);
- if (igt_warn_on_f(ret,
- "Failed to set exec_quantum_ms=%u (VF%d GT%u): %d\n",
- p->exec_quantum_ms, vf, gt, ret))
- return ret;
-
- ret = __xe_sriov_set_preempt_timeout_us(pf_fd, vf, gt,
- p->preempt_timeout_us);
- if (igt_warn_on_f(ret,
- "Failed to set preempt_timeout_us=%u (VF%d GT%u): %d\n",
- p->preempt_timeout_us, vf, gt, ret))
- return ret;
- }
- }
- return 0;
+ int ret = 0;
+
+ ret = __xe_sriov_bulk_set_exec_quantum_ms(pf_fd, p->exec_quantum_ms);
+ if (igt_warn_on_f(ret,
+ "Failed to bulk set exec quantum=%u: %d\n",
+ p->exec_quantum_ms, ret))
+ return ret;
+
+ ret = __xe_sriov_bulk_set_preempt_timeout_us(pf_fd, p->preempt_timeout_us);
+ if (igt_warn_on_f(ret,
+ "Failed to bulk set preempt timeout=%u: %d\n",
+ p->preempt_timeout_us, ret))
+ return ret;
+
+ return ret;
}
static void set_vfs_scheduling_params(int pf_fd, int num_vfs,
@@ -912,6 +907,7 @@ igt_main_args("", long_opts, help_str, subm_opts_handler, NULL)
pf_fd = drm_open_driver(DRIVER_XE);
igt_require(igt_sriov_is_pf(pf_fd));
igt_require(igt_sriov_get_enabled_vfs(pf_fd) == 0);
+ igt_require(xe_sriov_admin_is_present(pf_fd));
autoprobe = igt_sriov_is_driver_autoprobe_enabled(pf_fd);
xe_sriov_require_default_scheduling_attributes(pf_fd);
}
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH i-g-t v2 09/10] tests/intel/xe_pmu: Prefer SR-IOV admin sysfs accessors
2025-11-25 10:22 [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates Marcin Bernatowicz
` (7 preceding siblings ...)
2025-11-25 10:23 ` [PATCH i-g-t v2 08/10] tests/intel/xe_sriov_scheduling: Prefer SR-IOV admin sysfs accessors Marcin Bernatowicz
@ 2025-11-25 10:23 ` Marcin Bernatowicz
2026-01-15 8:27 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 10/10] tests/intel/xe_sriov_admin_profile: Add SR-IOV admin sysfs scheduling attributes tests Marcin Bernatowicz
` (4 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Marcin Bernatowicz @ 2025-11-25 10:23 UTC (permalink / raw)
To: igt-dev
Cc: adam.miszczak, jakub1.kolakowski, lukasz.laguna, michal.wajdeczko,
Marcin Bernatowicz, Jonathan Cavitt, Kamil Konieczny
Switch xe_pmu scheduling configuration to the SR-IOV admin sysfs
setters for exec_quantum_ms, preempt_timeout_us and sched_priority,
skipping the test if sriov_admin is not available.
Also adopts the “Tie preempt timeout to exec quantum” change using the
new sriov_admin interface.
Link: https://lore.kernel.org/igt-dev/20251107151251.6323-2-jonathan.cavitt@intel.com/
Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
Cc: Jonathan Cavitt <jonathan.cavitt@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Cc: Lukasz Laguna <lukasz.laguna@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
tests/intel/xe_pmu.c | 43 ++++++++++++++++++++++---------------------
1 file changed, 22 insertions(+), 21 deletions(-)
diff --git a/tests/intel/xe_pmu.c b/tests/intel/xe_pmu.c
index 6e91b752a..f8f66ce56 100644
--- a/tests/intel/xe_pmu.c
+++ b/tests/intel/xe_pmu.c
@@ -102,6 +102,7 @@
#include "xe/xe_gt.h"
#include "xe/xe_ioctl.h"
#include "xe/xe_spin.h"
+#include "xe/xe_sriov_admin.h"
#include "xe/xe_sriov_provisioning.h"
#define SLEEP_DURATION 2 /* in seconds */
@@ -693,7 +694,7 @@ static void engine_activity_all_fn(int fd, struct drm_xe_engine_class_instance *
}
static void engine_activity_fn(int fd, struct drm_xe_engine_class_instance *eci,
- int function, bool sched_if_idle)
+ int function, enum xe_sriov_sched_priority prio)
{
uint64_t config, engine_active_ticks, engine_total_ticks, before[2], after[2];
double busy_percent, exec_quantum_ratio;
@@ -701,6 +702,9 @@ static void engine_activity_fn(int fd, struct drm_xe_engine_class_instance *eci,
int pmu_fd[2], fn_fd;
uint32_t vm;
+ if (prio != xe_sriov_profile_get_sched_priority(fd, 0, NULL))
+ xe_sriov_bulk_set_sched_priority(fd, prio);
+
if (function > 0) {
fn_fd = igt_sriov_open_vf_drm_device(fd, function);
igt_assert_fd(fn_fd);
@@ -748,7 +752,7 @@ static void engine_activity_fn(int fd, struct drm_xe_engine_class_instance *eci,
if (function > 0)
close(fn_fd);
- if (sched_if_idle)
+ if (prio == XE_SRIOV_SCHED_PRIORITY_NORMAL)
assert_within_epsilon(engine_active_ticks, engine_total_ticks, tolerance);
else
assert_within_epsilon(busy_percent, exec_quantum_ratio, tolerance);
@@ -973,10 +977,12 @@ static void test_gt_frequency(int fd, struct drm_xe_engine_class_instance *eci)
static unsigned int enable_and_provision_vfs(int fd)
{
- unsigned int gt, num_vfs;
- int pf_exec_quantum = 64, vf_exec_quantum = 32, vf;
+ unsigned int num_vfs, vf;
+ uint32_t pf_exec_quantum_ms = 64, vf_exec_quantum_ms = 32;
+ uint32_t pf_preempt_timeout_us = 64000, vf_preempt_timeout_us = 32000;
igt_require(igt_sriov_is_pf(fd));
+ igt_require(xe_sriov_admin_is_present(fd));
igt_require(igt_sriov_get_enabled_vfs(fd) == 0);
xe_sriov_require_default_scheduling_attributes(fd);
autoprobe = igt_sriov_is_driver_autoprobe_enabled(fd);
@@ -988,37 +994,33 @@ static unsigned int enable_and_provision_vfs(int fd)
igt_require(num_vfs == 2);
/* Set 32ms for VF execution quantum and 64ms for PF execution quantum */
- xe_for_each_gt(fd, gt) {
- xe_sriov_set_sched_if_idle(fd, gt, 0);
- for (int fn = 0; fn <= num_vfs; fn++)
- xe_sriov_set_exec_quantum_ms(fd, fn, gt, fn ? vf_exec_quantum :
- pf_exec_quantum);
- }
+ xe_sriov_bulk_set_exec_quantum_ms(fd, vf_exec_quantum_ms);
+ xe_sriov_bulk_set_preempt_timeout_us(fd, vf_preempt_timeout_us);
+ xe_sriov_bulk_set_sched_priority(fd, XE_SRIOV_SCHED_PRIORITY_LOW);
+ xe_sriov_profile_set_exec_quantum_ms(fd, 0, pf_exec_quantum_ms);
+ xe_sriov_profile_set_preempt_timeout_us(fd, 0,
+ pf_preempt_timeout_us);
/* probe VFs */
igt_sriov_enable_driver_autoprobe(fd);
for (vf = 1; vf <= num_vfs; vf++)
igt_sriov_bind_vf_drm_driver(fd, vf);
- total_exec_quantum = pf_exec_quantum + (num_vfs * vf_exec_quantum);
+ total_exec_quantum = pf_exec_quantum_ms + (num_vfs * vf_exec_quantum_ms);
return num_vfs;
}
static void unprovision_and_disable_vfs(int fd)
{
- unsigned int gt, num_vfs = igt_sriov_get_enabled_vfs(fd);
-
- xe_for_each_gt(fd, gt) {
- xe_sriov_set_sched_if_idle(fd, gt, 0);
- for (int fn = 0; fn <= num_vfs; fn++)
- xe_sriov_set_exec_quantum_ms(fd, fn, gt, 0);
- }
+ int ret;
+ ret = __xe_sriov_bulk_restore_defaults(fd);
xe_sriov_disable_vfs_restore_auto_provisioning(fd);
/* abort to avoid execution of next tests with enabled VFs */
igt_abort_on_f(igt_sriov_get_enabled_vfs(fd) > 0,
"Failed to disable VF(s)");
+ igt_abort_on_f(ret, "Failed to restore scheduling params\n");
autoprobe ? igt_sriov_enable_driver_autoprobe(fd) :
igt_sriov_disable_driver_autoprobe(fd);
@@ -1188,13 +1190,12 @@ igt_main
igt_describe("Validate per-function engine activity");
test_each_engine("fn-engine-activity-load", fd, eci)
for (int fn = 0; fn < num_fns; fn++)
- engine_activity_fn(fd, eci, fn, false);
+ engine_activity_fn(fd, eci, fn, XE_SRIOV_SCHED_PRIORITY_LOW);
igt_describe("Validate per-function engine activity when sched-if-idle is set");
test_each_engine("fn-engine-activity-sched-if-idle", fd, eci) {
- xe_sriov_set_sched_if_idle(fd, eci->gt_id, 1);
for (int fn = 0; fn < num_fns; fn++)
- engine_activity_fn(fd, eci, fn, true);
+ engine_activity_fn(fd, eci, fn, XE_SRIOV_SCHED_PRIORITY_NORMAL);
}
igt_fixture
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH i-g-t v2 10/10] tests/intel/xe_sriov_admin_profile: Add SR-IOV admin sysfs scheduling attributes tests
2025-11-25 10:22 [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates Marcin Bernatowicz
` (8 preceding siblings ...)
2025-11-25 10:23 ` [PATCH i-g-t v2 09/10] tests/intel/xe_pmu: " Marcin Bernatowicz
@ 2025-11-25 10:23 ` Marcin Bernatowicz
2026-01-15 10:05 ` Laguna, Lukasz
2026-01-15 10:10 ` Laguna, Lukasz
2025-11-25 17:27 ` ✓ i915.CI.BAT: success for Xe SR-IOV admin scheduling helpers and test updates (rev2) Patchwork
` (3 subsequent siblings)
13 siblings, 2 replies; 26+ messages in thread
From: Marcin Bernatowicz @ 2025-11-25 10:23 UTC (permalink / raw)
To: igt-dev
Cc: adam.miszczak, jakub1.kolakowski, lukasz.laguna, michal.wajdeczko,
Marcin Bernatowicz, Kamil Konieczny
Add tests that exercise SR-IOV admin sysfs attributes for PF/VF functions
with VFs disabled, covering default values, write -> readback behavior, and
bulk updates for exec_quantum_ms, preempt_timeout_us, and sched_priority.
Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Cc: Lukasz Laguna <lukasz.laguna@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
tests/intel/xe_sriov_admin_profile.c | 414 +++++++++++++++++++++++++++
tests/meson.build | 1 +
2 files changed, 415 insertions(+)
create mode 100644 tests/intel/xe_sriov_admin_profile.c
diff --git a/tests/intel/xe_sriov_admin_profile.c b/tests/intel/xe_sriov_admin_profile.c
new file mode 100644
index 000000000..6f4ed31b1
--- /dev/null
+++ b/tests/intel/xe_sriov_admin_profile.c
@@ -0,0 +1,414 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+#include "igt.h"
+#include "igt_sriov_device.h"
+#include "igt_sysfs.h"
+#include "igt_sysfs_choice.h"
+#include "xe_drm.h"
+#include "xe/xe_sriov_admin.h"
+
+/**
+ * TEST: Tests for SR-IOV admin sysfs.
+ * Category: Core
+ * Mega feature: SR-IOV
+ * Sub-category: sysfs
+ * Functionality: SR-IOV admin sysfs
+ * Description: Verify behavior of exposed SR-IOV admin sysfs attributes.
+ */
+
+/**
+ * SUBTEST: default-sched-attributes-vfs-disabled
+ * Description:
+ * Verify default scheduling attributes under sriov_admin
+ * with VFs disabled.
+ */
+static void default_sched_attributes(int pf_fd, int vf_num)
+{
+ igt_dynamic_f("%s-default-exec-quantum", igt_sriov_func_str(vf_num)) {
+ igt_assert_eq(0, xe_sriov_profile_get_exec_quantum_ms(pf_fd, vf_num));
+ }
+
+ igt_dynamic_f("%s-default-preempt-timeout", igt_sriov_func_str(vf_num)) {
+ igt_assert_eq(0, xe_sriov_profile_get_preempt_timeout_us(pf_fd, vf_num));
+ }
+
+ igt_dynamic_f("%s-default-sched-priority", igt_sriov_func_str(vf_num)) {
+ enum xe_sriov_sched_priority prio;
+ unsigned int prio_mask;
+ char mask_str[64];
+
+ prio = xe_sriov_profile_get_sched_priority(pf_fd, vf_num, &prio_mask);
+ igt_debug("PRIO=%s\n",
+ xe_sriov_sched_priority_mask_to_string(prio_mask, prio, mask_str,
+ sizeof(mask_str)));
+ igt_assert_eq(XE_SRIOV_SCHED_PRIORITY_LOW, prio);
+ }
+}
+
+/**
+ * SUBTEST: exec-quantum-write-readback-vfs-disabled
+ * Description:
+ * Verify write -> readback of exec_quantum_ms under sriov_admin
+ * for PF and all VFs with VFs disabled.
+ */
+static void exec_quantum_write_readback(int pf_fd, unsigned int vf_num,
+ uint32_t eq_ms)
+{
+ int ret_read, ret_restore;
+ uint32_t read_val;
+
+ igt_require(xe_sriov_profile_get_exec_quantum_ms(pf_fd, vf_num) == 0);
+
+ xe_sriov_profile_set_exec_quantum_ms(pf_fd, vf_num, eq_ms);
+
+ ret_read = __xe_sriov_profile_get_exec_quantum_ms(pf_fd, vf_num, &read_val);
+
+ ret_restore = __xe_sriov_profile_set_exec_quantum_ms(pf_fd, vf_num, 0);
+
+ igt_assert_eq(ret_read, 0);
+ igt_assert_eq(read_val, eq_ms);
+ igt_fail_on(ret_restore);
+}
+
+/**
+ * SUBTEST: preempt-timeout-write-readback-vfs-disabled
+ * Description:
+ * Verify write -> readback of preempt_timeout_us under sriov_admin
+ * for PF and all VFs with VFs disabled.
+ */
+static void preempt_timeout_write_readback(int pf_fd, unsigned int vf_num,
+ uint32_t pt_us)
+{
+ int ret_read, ret_restore;
+ uint32_t read_val;
+
+ igt_require(xe_sriov_profile_get_preempt_timeout_us(pf_fd, vf_num) == 0);
+
+ xe_sriov_profile_set_preempt_timeout_us(pf_fd, vf_num, pt_us);
+
+ ret_read = __xe_sriov_profile_get_preempt_timeout_us(pf_fd, vf_num, &read_val);
+
+ ret_restore = __xe_sriov_profile_set_preempt_timeout_us(pf_fd, vf_num, 0);
+
+ igt_assert_eq(ret_read, 0);
+ igt_assert_eq(read_val, pt_us);
+ igt_fail_on(ret_restore);
+}
+
+/**
+ * SUBTEST: sched-priority-write-readback-vfs-disabled
+ * Description:
+ * Verify write -> readback of sched_priority under sriov_admin
+ * for PF and all VFs with VFs disabled.
+ */
+static void sched_priority_write_readback(int pf_fd, unsigned int vf_num)
+{
+ struct igt_sysfs_choice prio, now;
+ enum xe_sriov_sched_priority prio_enum;
+ int ret;
+
+ ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf_num, &prio);
+ igt_assert_eq(ret, 0);
+
+ for (size_t n = prio.num_tokens; n-- > 0; ) {
+ igt_warn_on_f(xe_sriov_sched_priority_from_string(prio.tokens[n],
+ &prio_enum),
+ "Unrecognized sched_priority value '%s'\n",
+ prio.tokens[n]);
+ igt_debug("Setting priority string '%s'\n", prio.tokens[n]);
+ ret = __xe_sriov_profile_set_sched_priority_string(pf_fd, vf_num,
+ prio.tokens[n]);
+
+ /* Not settable on VF */
+ if (igt_debug_on(vf_num && (ret == -EPERM || ret == -EACCES)))
+ break;
+
+ igt_assert_eq(ret, 0);
+ ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf_num, &now);
+ igt_assert_f(!strcmp(now.tokens[now.selected], prio.tokens[n]),
+ "'%s' != '%s'", now.tokens[now.selected],
+ prio.tokens[n]);
+ igt_assert_eq(now.selected, n);
+ }
+ __xe_sriov_profile_set_sched_priority_string(pf_fd, vf_num,
+ prio.tokens[prio.selected]);
+}
+
+/**
+ * SUBTEST: bulk-exec-quantum-vfs-disabled
+ * Description:
+ * Verify that bulk setting exec_quantum_ms under sriov_admin applies
+ * the expected value to the PF and all VFs when VFs are disabled.
+ */
+static void bulk_set_exec_quantum(int pf_fd, unsigned int total_vfs, uint32_t eq_ms)
+{
+ uint32_t read_val;
+ unsigned int id;
+ int fails = 0;
+
+ xe_sriov_bulk_set_exec_quantum_ms(pf_fd, eq_ms);
+
+ for (id = 0; id <= total_vfs; ++id) {
+ int ret = __xe_sriov_profile_get_exec_quantum_ms(pf_fd, id,
+ &read_val);
+
+ if (ret) {
+ igt_debug("%s: failed to read exec_quantum_ms, ret=%d\n",
+ igt_sriov_func_str(id), ret);
+ fails++;
+ continue;
+ }
+
+ if (read_val != eq_ms) {
+ igt_debug("%s: exec_quantum_ms=%u, expected=%u\n",
+ igt_sriov_func_str(id), read_val, eq_ms);
+ fails++;
+ }
+ }
+
+ xe_sriov_bulk_set_exec_quantum_ms(pf_fd, 0);
+ igt_fail_on(fails);
+}
+
+/**
+ * SUBTEST: bulk-preempt-timeout-vfs-disabled
+ * Description:
+ * Verify that bulk setting preempt_timeout_us under sriov_admin applies
+ * the expected value to the PF and all VFs when VFs are disabled.
+ */
+static void bulk_set_preempt_timeout(int pf_fd, unsigned int total_vfs, uint32_t pt_us)
+{
+ uint32_t read_val;
+ unsigned int id;
+ int fails = 0;
+
+ xe_sriov_bulk_set_preempt_timeout_us(pf_fd, pt_us);
+
+ for (id = 0; id <= total_vfs; ++id) {
+ int ret = __xe_sriov_profile_get_preempt_timeout_us(pf_fd, id,
+ &read_val);
+
+ if (ret) {
+ igt_debug("%s: failed to read preempt_timeout_us, ret=%d\n",
+ igt_sriov_func_str(id), ret);
+ fails++;
+ continue;
+ }
+
+ if (read_val != pt_us) {
+ igt_debug("%s: preempt_timeout_us=%u, expected=%u\n",
+ igt_sriov_func_str(id), read_val, pt_us);
+ fails++;
+ }
+ }
+
+ xe_sriov_bulk_set_preempt_timeout_us(pf_fd, 0);
+ igt_fail_on(fails);
+}
+
+static void build_common_sched_priority_choice(int pf_fd, int num_vfs,
+ struct igt_sysfs_choice *common)
+{
+ int ret;
+
+ /* Start from PF */
+ ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, 0, common);
+ igt_require_f(ret == 0,
+ "Failed to read PF sched_priority (ret=%d)\n", ret);
+
+ igt_require_f(common->num_tokens > 0,
+ "PF sched_priority exposes no tokens\n");
+
+ /* Intersect with every VF 1..num_vfs */
+ for (int vf = 1; vf <= num_vfs; vf++) {
+ struct igt_sysfs_choice prio = {};
+
+ ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf, &prio);
+ igt_require_f(ret == 0,
+ "Failed to read VF%u sched_priority (ret=%d)\n",
+ vf, ret);
+
+ ret = igt_sysfs_choice_intersect(common, &prio);
+ igt_require_f(ret == 0,
+ "No common sched_priority between PF and VF%u\n",
+ vf);
+ }
+
+ igt_require_f(common->num_tokens > 0,
+ "No common sched_priority across PF and all VFs\n");
+
+ if (common->selected < 0) {
+ igt_debug("Common sched_priority has no selected token, "
+ "defaulting to tokens[0]=\"%s\"\n",
+ common->tokens[0]);
+ common->selected = 0;
+ }
+}
+
+/**
+ * SUBTEST: bulk-sched-priority-vfs-disabled
+ * Description: Verify bulk sched_priority modification with VFs disabled.
+ */
+static void bulk_set_sched_priority(int pf_fd, unsigned int total_vfs, const char *prio_str)
+{
+ struct igt_sysfs_choice read_val;
+ const char *selected;
+ unsigned int id;
+ int fails = 0;
+
+ xe_sriov_bulk_set_sched_priority_string(pf_fd, prio_str);
+
+ for (id = 0; id <= total_vfs; ++id) {
+ int ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, id,
+ &read_val);
+
+ if (ret) {
+ igt_debug("%s: failed to read sched_priority, ret=%d\n",
+ igt_sriov_func_str(id), ret);
+ fails++;
+ continue;
+ }
+
+ selected = igt_sysfs_choice_selected(&read_val);
+ if (!selected || strncmp(selected, prio_str, strlen(prio_str))) {
+ igt_debug("%s: sched_priority='%s', expected='%s'\n",
+ igt_sriov_func_str(id), selected ?: "NULL", prio_str);
+ fails++;
+ }
+ }
+
+ igt_fail_on(fails);
+}
+
+/**
+ * SUBTEST: sched-priority-vf-write-denied
+ * Description:
+ * Verify that sched_priority cannot be modified on a VF.
+ * A write attempt must fail with -EPERM or -EACCES and the
+ * current priority selection must remain unchanged.
+ */
+static void sched_priority_vf_write_denied(int pf_fd, unsigned int vf_num)
+{
+ struct igt_sysfs_choice before, after;
+ const char *new_token;
+ int ret;
+
+ igt_require(vf_num > 0);
+
+ ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf_num, &before);
+ igt_require(ret == 0);
+ igt_require(before.num_tokens > 0);
+
+ new_token = before.tokens[(before.selected + 1) % before.num_tokens];
+
+ ret = __xe_sriov_profile_set_sched_priority_string(pf_fd, vf_num, new_token);
+ igt_assert_f(ret == -EPERM || ret == -EACCES,
+ "Expected -EPERM/-EACCES when writing VF sched_priority "
+ "(token='%s'), got %d\n", new_token, ret);
+
+ ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf_num, &after);
+ igt_assert_eq(ret, 0);
+
+ igt_assert_eq(after.selected, before.selected);
+ igt_assert(!strcmp(igt_sysfs_choice_selected(&before),
+ igt_sysfs_choice_selected(&after)));
+}
+
+igt_main
+{
+ unsigned int total_vfs;
+ int pf_fd;
+
+ igt_fixture {
+ pf_fd = drm_open_driver(DRIVER_XE);
+ igt_require(igt_sriov_is_pf(pf_fd));
+ igt_require(igt_sriov_get_enabled_vfs(pf_fd) == 0);
+ igt_require(xe_sriov_admin_is_present(pf_fd));
+ total_vfs = igt_sriov_get_total_vfs(pf_fd);
+ }
+
+ igt_subtest_with_dynamic("default-sched-attributes-vfs-disabled") {
+ for (unsigned int id = 0; id <= total_vfs; ++id)
+ default_sched_attributes(pf_fd, id);
+ }
+
+ igt_subtest_with_dynamic("exec-quantum-write-readback-vfs-disabled") {
+ uint32_t eq_ms = 10;
+
+ for (unsigned int id = 0; id <= total_vfs; ++id) {
+ igt_dynamic_f("%s-eq_ms-%u", igt_sriov_func_str(id), eq_ms) {
+ exec_quantum_write_readback(pf_fd, id, eq_ms);
+ }
+ }
+ }
+
+ igt_subtest_with_dynamic("preempt-timeout-write-readback-vfs-disabled") {
+ uint32_t pt_us = 20000;
+
+ for (unsigned int id = 0; id <= total_vfs; ++id) {
+ igt_dynamic_f("%s-pt_us-%u", igt_sriov_func_str(id), pt_us) {
+ preempt_timeout_write_readback(pf_fd, id, pt_us);
+ }
+ }
+ }
+
+ igt_subtest_with_dynamic("sched-priority-write-readback-vfs-disabled") {
+ for (unsigned int id = 0; id <= total_vfs; ++id) {
+ igt_dynamic_f("%s", igt_sriov_func_str(id)) {
+ sched_priority_write_readback(pf_fd, id);
+ }
+ }
+ }
+
+ igt_subtest_with_dynamic("sched-priority-vf-write-denied") {
+ for_each_sriov_num_vfs(pf_fd, vf_num) {
+ igt_dynamic_f("%s", igt_sriov_func_str(vf_num)) {
+ sched_priority_vf_write_denied(pf_fd, vf_num);
+ }
+ }
+ }
+
+ igt_subtest("bulk-exec-quantum-vfs-disabled") {
+ const uint32_t eq_ms = 10;
+
+ bulk_set_exec_quantum(pf_fd, total_vfs, eq_ms);
+ }
+
+ igt_subtest("bulk-preempt-timeout-vfs-disabled") {
+ uint32_t pt_us = 10000;
+
+ bulk_set_preempt_timeout(pf_fd, total_vfs, pt_us);
+ }
+
+ igt_subtest_group {
+ struct igt_sysfs_choice prio = {};
+
+ igt_fixture {
+ build_common_sched_priority_choice(pf_fd, total_vfs,
+ &prio);
+ }
+
+ igt_subtest_with_dynamic_f("bulk-sched-priority-vfs-disabled") {
+ for (size_t i = prio.num_tokens; i-- > 0; ) {
+ const char *prio_str = prio.tokens[i];
+
+ igt_dynamic_f("%s", prio_str)
+ bulk_set_sched_priority(pf_fd, 0, prio_str);
+ }
+ }
+ }
+
+ igt_fixture {
+ int ret;
+
+ ret = __xe_sriov_bulk_restore_defaults(pf_fd);
+ igt_sriov_disable_vfs(pf_fd);
+ /* abort to avoid execution of next tests with enabled VFs */
+ igt_abort_on_f(igt_sriov_get_enabled_vfs(pf_fd) > 0,
+ "Failed to disable VF(s)");
+ igt_abort_on_f(ret, "Failed to restore default profile values\n");
+ drm_close_driver(pf_fd);
+ }
+}
diff --git a/tests/meson.build b/tests/meson.build
index ecc0f4c7f..6516a0a9a 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -327,6 +327,7 @@ intel_xe_progs = [
'xe_vm',
'xe_waitfence',
'xe_spin_batch',
+ 'xe_sriov_admin_profile',
'xe_sriov_auto_provisioning',
'xe_sriov_flr',
'xe_sriov_scheduling',
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* ✓ i915.CI.BAT: success for Xe SR-IOV admin scheduling helpers and test updates (rev2)
2025-11-25 10:22 [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates Marcin Bernatowicz
` (9 preceding siblings ...)
2025-11-25 10:23 ` [PATCH i-g-t v2 10/10] tests/intel/xe_sriov_admin_profile: Add SR-IOV admin sysfs scheduling attributes tests Marcin Bernatowicz
@ 2025-11-25 17:27 ` Patchwork
2025-11-25 17:50 ` ✓ Xe.CI.BAT: " Patchwork
` (2 subsequent siblings)
13 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2025-11-25 17:27 UTC (permalink / raw)
To: Marcin Bernatowicz; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 2900 bytes --]
== Series Details ==
Series: Xe SR-IOV admin scheduling helpers and test updates (rev2)
URL : https://patchwork.freedesktop.org/series/157591/
State : success
== Summary ==
CI Bug Log - changes from IGT_8637 -> IGTPW_14111
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/index.html
Participating hosts (44 -> 43)
------------------------------
Missing (1): bat-adls-6
Known issues
------------
Here are the changes found in IGTPW_14111 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live@workarounds:
- bat-arls-5: [PASS][1] -> [DMESG-FAIL][2] ([i915#12061]) +1 other test dmesg-fail
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8637/bat-arls-5/igt@i915_selftest@live@workarounds.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/bat-arls-5/igt@i915_selftest@live@workarounds.html
- bat-mtlp-9: [PASS][3] -> [DMESG-FAIL][4] ([i915#12061]) +1 other test dmesg-fail
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8637/bat-mtlp-9/igt@i915_selftest@live@workarounds.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/bat-mtlp-9/igt@i915_selftest@live@workarounds.html
#### Possible fixes ####
* igt@i915_selftest@live@workarounds:
- bat-mtlp-6: [DMESG-FAIL][5] ([i915#12061]) -> [PASS][6] +1 other test pass
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8637/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
* igt@kms_flip@basic-flip-vs-wf_vblank:
- bat-adlp-9: [FAIL][7] ([i915#15318]) -> [PASS][8] +1 other test pass
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8637/bat-adlp-9/igt@kms_flip@basic-flip-vs-wf_vblank.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/bat-adlp-9/igt@kms_flip@basic-flip-vs-wf_vblank.html
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#15318]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15318
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_8637 -> IGTPW_14111
* Linux: CI_DRM_17580 -> CI_DRM_17585
CI-20190529: 20190529
CI_DRM_17580: c701e79730169fab373fba7e759497d755fac592 @ git://anongit.freedesktop.org/gfx-ci/linux
CI_DRM_17585: d9ba358798b03eaf5d1a49598b568c635ec4a192 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_14111: cbe794bfcf0b4706c91015270a43dc660c79e3e0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_8637: 730ee3dfb26f8d7891fc240b0132a08c5bc7b949 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/index.html
[-- Attachment #2: Type: text/html, Size: 3722 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* ✓ Xe.CI.BAT: success for Xe SR-IOV admin scheduling helpers and test updates (rev2)
2025-11-25 10:22 [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates Marcin Bernatowicz
` (10 preceding siblings ...)
2025-11-25 17:27 ` ✓ i915.CI.BAT: success for Xe SR-IOV admin scheduling helpers and test updates (rev2) Patchwork
@ 2025-11-25 17:50 ` Patchwork
2025-11-25 20:25 ` ✗ Xe.CI.Full: failure " Patchwork
2025-11-26 6:39 ` ✗ i915.CI.Full: " Patchwork
13 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2025-11-25 17:50 UTC (permalink / raw)
To: Marcin Bernatowicz; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 5638 bytes --]
== Series Details ==
Series: Xe SR-IOV admin scheduling helpers and test updates (rev2)
URL : https://patchwork.freedesktop.org/series/157591/
State : success
== Summary ==
CI Bug Log - changes from XEIGT_8637_BAT -> XEIGTPW_14111_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (12 -> 12)
------------------------------
Additional (1): bat-dg2-oem2
Missing (1): bat-pvc-2
Known issues
------------
Here are the changes found in XEIGTPW_14111_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-dg2-oem2: NOTRUN -> [SKIP][1] ([Intel XE#623])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/bat-dg2-oem2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_dsc@dsc-basic:
- bat-dg2-oem2: NOTRUN -> [SKIP][2] ([Intel XE#455])
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/bat-dg2-oem2/igt@kms_dsc@dsc-basic.html
* igt@kms_flip@basic-plain-flip@a-edp1:
- bat-adlp-7: [PASS][3] -> [DMESG-WARN][4] ([Intel XE#4543]) +1 other test dmesg-warn
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/bat-adlp-7/igt@kms_flip@basic-plain-flip@a-edp1.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/bat-adlp-7/igt@kms_flip@basic-plain-flip@a-edp1.html
* igt@kms_psr@psr-cursor-plane-move:
- bat-dg2-oem2: NOTRUN -> [SKIP][5] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929]) +2 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/bat-dg2-oem2/igt@kms_psr@psr-cursor-plane-move.html
* igt@sriov_basic@enable-vfs-autoprobe-off:
- bat-dg2-oem2: NOTRUN -> [SKIP][6] ([Intel XE#1091] / [Intel XE#2849]) +1 other test skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/bat-dg2-oem2/igt@sriov_basic@enable-vfs-autoprobe-off.html
* igt@xe_exec_fault_mode@twice-bindexecqueue-userptr:
- bat-dg2-oem2: NOTRUN -> [SKIP][7] ([Intel XE#288]) +32 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/bat-dg2-oem2/igt@xe_exec_fault_mode@twice-bindexecqueue-userptr.html
* igt@xe_huc_copy@huc_copy:
- bat-dg2-oem2: NOTRUN -> [SKIP][8] ([Intel XE#255])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/bat-dg2-oem2/igt@xe_huc_copy@huc_copy.html
* igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit:
- bat-dg2-oem2: NOTRUN -> [SKIP][9] ([Intel XE#2229])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/bat-dg2-oem2/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
* igt@xe_pat@pat-index-xe2:
- bat-dg2-oem2: NOTRUN -> [SKIP][10] ([Intel XE#977])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/bat-dg2-oem2/igt@xe_pat@pat-index-xe2.html
* igt@xe_pat@pat-index-xehpc:
- bat-dg2-oem2: NOTRUN -> [SKIP][11] ([Intel XE#2838] / [Intel XE#979])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/bat-dg2-oem2/igt@xe_pat@pat-index-xehpc.html
* igt@xe_pat@pat-index-xelpg:
- bat-dg2-oem2: NOTRUN -> [SKIP][12] ([Intel XE#979])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/bat-dg2-oem2/igt@xe_pat@pat-index-xelpg.html
* igt@xe_sriov_flr@flr-vf1-clear:
- bat-dg2-oem2: NOTRUN -> [SKIP][13] ([Intel XE#3342])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/bat-dg2-oem2/igt@xe_sriov_flr@flr-vf1-clear.html
* igt@xe_waitfence@abstime:
- bat-dg2-oem2: NOTRUN -> [TIMEOUT][14] ([Intel XE#6506])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/bat-dg2-oem2/igt@xe_waitfence@abstime.html
[Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
[Intel XE#255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/255
[Intel XE#2838]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2838
[Intel XE#2849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2849
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#3342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3342
[Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#623]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/623
[Intel XE#6506]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6506
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977
[Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
Build changes
-------------
* IGT: IGT_8637 -> IGTPW_14111
* Linux: xe-4141-c701e79730169fab373fba7e759497d755fac592 -> xe-4144-0a21e96e0b6840d2a4e0b45a957679eeddeb4362
IGTPW_14111: cbe794bfcf0b4706c91015270a43dc660c79e3e0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_8637: 730ee3dfb26f8d7891fc240b0132a08c5bc7b949 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-4141-c701e79730169fab373fba7e759497d755fac592: c701e79730169fab373fba7e759497d755fac592
xe-4144-0a21e96e0b6840d2a4e0b45a957679eeddeb4362: 0a21e96e0b6840d2a4e0b45a957679eeddeb4362
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/index.html
[-- Attachment #2: Type: text/html, Size: 6561 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* ✗ Xe.CI.Full: failure for Xe SR-IOV admin scheduling helpers and test updates (rev2)
2025-11-25 10:22 [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates Marcin Bernatowicz
` (11 preceding siblings ...)
2025-11-25 17:50 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-11-25 20:25 ` Patchwork
2025-11-26 6:39 ` ✗ i915.CI.Full: " Patchwork
13 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2025-11-25 20:25 UTC (permalink / raw)
To: Marcin Bernatowicz; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 105858 bytes --]
== Series Details ==
Series: Xe SR-IOV admin scheduling helpers and test updates (rev2)
URL : https://patchwork.freedesktop.org/series/157591/
State : failure
== Summary ==
CI Bug Log - changes from XEIGT_8637_FULL -> XEIGTPW_14111_FULL
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with XEIGTPW_14111_FULL absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in XEIGTPW_14111_FULL, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (4 -> 3)
------------------------------
Missing (1): shard-adlp
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in XEIGTPW_14111_FULL:
### IGT changes ###
#### Possible regressions ####
* igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [FAIL][1] +1 other test fail
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-5/igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-b-edp-1.html
* igt@kms_color@ctm-red-to-blue@pipe-c-hdmi-a-3:
- shard-bmg: NOTRUN -> [DMESG-WARN][2] +1 other test dmesg-warn
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@kms_color@ctm-red-to-blue@pipe-c-hdmi-a-3.html
* igt@kms_content_protection@dp-mst-suspend-resume:
- shard-bmg: NOTRUN -> [SKIP][3]
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-8/igt@kms_content_protection@dp-mst-suspend-resume.html
- shard-dg2-set2: NOTRUN -> [SKIP][4] +4 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@kms_content_protection@dp-mst-suspend-resume.html
* igt@xe_exec_threads@threads-bal-mixed-fd-userptr-invalidate:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][5]
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@xe_exec_threads@threads-bal-mixed-fd-userptr-invalidate.html
* {igt@xe_sriov_admin_profile@sched-priority-vf-write-denied} (NEW):
- shard-lnl: NOTRUN -> [SKIP][6] +2 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@xe_sriov_admin_profile@sched-priority-vf-write-denied.html
New tests
---------
New tests have been introduced between XEIGT_8637_FULL and XEIGTPW_14111_FULL:
### New IGT tests (109) ###
* igt@xe_sriov_admin_profile@bulk-exec-quantum-vfs-disabled:
- Statuses : 1 pass(s) 1 skip(s)
- Exec time: [0.0, 0.03] s
* igt@xe_sriov_admin_profile@bulk-preempt-timeout-vfs-disabled:
- Statuses :
- Exec time: [None] s
* igt@xe_sriov_admin_profile@bulk-sched-priority-vfs-disabled:
- Statuses : 1 pass(s) 2 skip(s)
- Exec time: [0.0, 0.00] s
* igt@xe_sriov_admin_profile@bulk-sched-priority-vfs-disabled@low:
- Statuses : 1 pass(s)
- Exec time: [0.00] s
* igt@xe_sriov_admin_profile@bulk-sched-priority-vfs-disabled@normal:
- Statuses : 1 pass(s)
- Exec time: [0.00] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled:
- Statuses : 1 pass(s) 2 skip(s)
- Exec time: [0.0, 0.02] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@pf-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@pf-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@pf-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf1-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf1-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf1-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf10-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf10-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf10-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf11-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf11-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf11-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf12-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf12-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf12-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf13-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf13-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf13-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf14-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf14-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf14-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf15-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf15-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf15-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf16-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf16-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf16-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf17-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf17-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf17-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf18-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf18-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf18-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf19-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf19-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf19-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf2-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf2-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf2-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf20-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf20-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf20-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf21-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf21-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf21-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf22-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf22-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf22-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf23-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf23-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf23-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf24-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf24-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf24-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf3-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf3-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf3-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf4-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf4-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf4-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf5-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf5-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf5-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf6-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf6-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf6-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf7-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf7-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf7-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf8-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf8-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf8-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf9-default-exec-quantum:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf9-default-preempt-timeout:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@default-sched-attributes-vfs-disabled@vf9-default-sched-priority:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@exec-quantum-write-readback-vfs-disabled:
- Statuses :
- Exec time: [None] s
* igt@xe_sriov_admin_profile@preempt-timeout-write-readback-vfs-disabled:
- Statuses :
- Exec time: [None] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied:
- Statuses : 1 pass(s) 2 skip(s)
- Exec time: [0.0, 0.02] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf1:
- Statuses : 1 pass(s)
- Exec time: [0.00] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf10:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf11:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf12:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf13:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf14:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf15:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf16:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf17:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf18:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf19:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf2:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf20:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf21:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf22:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf23:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf24:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf3:
- Statuses : 1 pass(s)
- Exec time: [0.00] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf4:
- Statuses : 1 pass(s)
- Exec time: [0.00] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf5:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf6:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf7:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf8:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-vf-write-denied@vf9:
- Statuses : 1 pass(s)
- Exec time: [0.0] s
* igt@xe_sriov_admin_profile@sched-priority-write-readback-vfs-disabled:
- Statuses :
- Exec time: [None] s
Known issues
------------
Here are the changes found in XEIGTPW_14111_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@intel_hwmon@hwmon-write:
- shard-lnl: NOTRUN -> [SKIP][7] ([Intel XE#1125])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@intel_hwmon@hwmon-write.html
* igt@kms_async_flips@async-flip-suspend-resume@pipe-a-edp-1:
- shard-lnl: NOTRUN -> [FAIL][8] ([Intel XE#6676]) +3 other tests fail
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@kms_async_flips@async-flip-suspend-resume@pipe-a-edp-1.html
* igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic:
- shard-lnl: NOTRUN -> [FAIL][9] ([Intel XE#6054] / [Intel XE#6676])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic.html
* igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1:
- shard-lnl: NOTRUN -> [FAIL][10] ([Intel XE#6054])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1.html
* igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-c-edp-1:
- shard-lnl: NOTRUN -> [FAIL][11] ([Intel XE#5993]) +1 other test fail
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-5/igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-c-edp-1.html
* igt@kms_async_flips@test-cursor:
- shard-lnl: NOTRUN -> [SKIP][12] ([Intel XE#664])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@kms_async_flips@test-cursor.html
* igt@kms_big_fb@4-tiled-64bpp-rotate-270:
- shard-bmg: NOTRUN -> [SKIP][13] ([Intel XE#2327]) +3 other tests skip
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@kms_big_fb@4-tiled-64bpp-rotate-270.html
* igt@kms_big_fb@linear-16bpp-rotate-90:
- shard-dg2-set2: NOTRUN -> [SKIP][14] ([Intel XE#316]) +3 other tests skip
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-466/igt@kms_big_fb@linear-16bpp-rotate-90.html
- shard-lnl: NOTRUN -> [SKIP][15] ([Intel XE#1407]) +5 other tests skip
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-5/igt@kms_big_fb@linear-16bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-16bpp-rotate-0:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#1124]) +7 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-7/igt@kms_big_fb@y-tiled-16bpp-rotate-0.html
- shard-dg2-set2: NOTRUN -> [SKIP][17] ([Intel XE#1124]) +8 other tests skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@kms_big_fb@y-tiled-16bpp-rotate-0.html
* igt@kms_big_fb@y-tiled-addfb-size-overflow:
- shard-bmg: NOTRUN -> [SKIP][18] ([Intel XE#610])
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
- shard-dg2-set2: NOTRUN -> [SKIP][19] ([Intel XE#610])
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-432/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-180:
- shard-lnl: NOTRUN -> [SKIP][20] ([Intel XE#1124]) +1 other test skip
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@kms_big_fb@yf-tiled-16bpp-rotate-180.html
* igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p:
- shard-bmg: NOTRUN -> [SKIP][21] ([Intel XE#2314] / [Intel XE#2894]) +2 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html
* igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p:
- shard-lnl: NOTRUN -> [SKIP][22] ([Intel XE#2191])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-4/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html
* igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p:
- shard-dg2-set2: NOTRUN -> [SKIP][23] ([Intel XE#2191])
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-432/igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p.html
- shard-lnl: NOTRUN -> [SKIP][24] ([Intel XE#1512])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p.html
* igt@kms_bw@linear-tiling-1-displays-2160x1440p:
- shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#367])
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-5/igt@kms_bw@linear-tiling-1-displays-2160x1440p.html
* igt@kms_bw@linear-tiling-3-displays-2160x1440p:
- shard-lnl: NOTRUN -> [SKIP][26] ([Intel XE#367])
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@kms_bw@linear-tiling-3-displays-2160x1440p.html
* igt@kms_bw@linear-tiling-4-displays-2160x1440p:
- shard-dg2-set2: NOTRUN -> [SKIP][27] ([Intel XE#367]) +1 other test skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-434/igt@kms_bw@linear-tiling-4-displays-2160x1440p.html
* igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs@pipe-c-edp-1:
- shard-lnl: NOTRUN -> [SKIP][28] ([Intel XE#2669]) +7 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs@pipe-c-edp-1.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs:
- shard-lnl: NOTRUN -> [SKIP][29] ([Intel XE#2887]) +14 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs:
- shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#3432]) +1 other test skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
- shard-lnl: NOTRUN -> [SKIP][31] ([Intel XE#3432]) +2 other tests skip
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-a-hdmi-a-3:
- shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#2652] / [Intel XE#787]) +4 other tests skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-a-hdmi-a-3.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs:
- shard-dg2-set2: NOTRUN -> [SKIP][33] ([Intel XE#2907])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-466/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc:
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#2887]) +19 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4:
- shard-dg2-set2: NOTRUN -> [SKIP][35] ([Intel XE#455] / [Intel XE#787]) +35 other tests skip
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-432/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][36] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345] / [Intel XE#6168])
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-dp-4:
- shard-dg2-set2: NOTRUN -> [DMESG-WARN][37] ([Intel XE#1727] / [Intel XE#3113])
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-dp-4.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][38] ([Intel XE#4345] / [Intel XE#6168])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-6.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][39] ([Intel XE#2705] / [Intel XE#4212] / [Intel XE#4345])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
- shard-dg2-set2: [PASS][40] -> [INCOMPLETE][41] ([Intel XE#2705] / [Intel XE#4212] / [Intel XE#4345])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-b-dp-4:
- shard-dg2-set2: [PASS][42] -> [INCOMPLETE][43] ([Intel XE#2705] / [Intel XE#4212])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-b-dp-4.html
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-b-dp-4.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-dp-4:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][44] ([Intel XE#2705] / [Intel XE#4212])
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-dp-4.html
* igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-b-dp-4:
- shard-dg2-set2: NOTRUN -> [SKIP][45] ([Intel XE#787]) +125 other tests skip
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-464/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-b-dp-4.html
* igt@kms_chamelium_color@ctm-limited-range:
- shard-dg2-set2: NOTRUN -> [SKIP][46] ([Intel XE#306]) +1 other test skip
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-464/igt@kms_chamelium_color@ctm-limited-range.html
* igt@kms_chamelium_color@ctm-negative:
- shard-lnl: NOTRUN -> [SKIP][47] ([Intel XE#306]) +1 other test skip
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@kms_chamelium_color@ctm-negative.html
- shard-bmg: NOTRUN -> [SKIP][48] ([Intel XE#2325]) +1 other test skip
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-7/igt@kms_chamelium_color@ctm-negative.html
* igt@kms_chamelium_frames@hdmi-aspect-ratio:
- shard-bmg: NOTRUN -> [SKIP][49] ([Intel XE#2252]) +11 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@kms_chamelium_frames@hdmi-aspect-ratio.html
* igt@kms_chamelium_hpd@hdmi-hpd-storm:
- shard-dg2-set2: NOTRUN -> [SKIP][50] ([Intel XE#373]) +8 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-466/igt@kms_chamelium_hpd@hdmi-hpd-storm.html
* igt@kms_chamelium_hpd@vga-hpd-enable-disable-mode:
- shard-lnl: NOTRUN -> [SKIP][51] ([Intel XE#373]) +12 other tests skip
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-4/igt@kms_chamelium_hpd@vga-hpd-enable-disable-mode.html
* igt@kms_content_protection@content-type-change:
- shard-bmg: NOTRUN -> [SKIP][52] ([Intel XE#2341]) +3 other tests skip
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-5/igt@kms_content_protection@content-type-change.html
* igt@kms_content_protection@dp-mst-type-0:
- shard-bmg: NOTRUN -> [SKIP][53] ([Intel XE#2390])
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@kms_content_protection@dp-mst-type-0.html
- shard-dg2-set2: NOTRUN -> [SKIP][54] ([Intel XE#307])
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-432/igt@kms_content_protection@dp-mst-type-0.html
* igt@kms_content_protection@dp-mst-type-1:
- shard-lnl: NOTRUN -> [SKIP][55] ([Intel XE#307]) +1 other test skip
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@kms_content_protection@dp-mst-type-1.html
* igt@kms_content_protection@lic-type-0:
- shard-lnl: NOTRUN -> [SKIP][56] ([Intel XE#3278]) +2 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@kms_content_protection@lic-type-0.html
* igt@kms_content_protection@mei-interface:
- shard-lnl: NOTRUN -> [SKIP][57] ([Intel XE#1468])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-4/igt@kms_content_protection@mei-interface.html
* igt@kms_content_protection@srm@pipe-a-dp-4:
- shard-dg2-set2: NOTRUN -> [FAIL][58] ([Intel XE#1178]) +1 other test fail
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-466/igt@kms_content_protection@srm@pipe-a-dp-4.html
* igt@kms_cursor_crc@cursor-offscreen-512x512:
- shard-dg2-set2: NOTRUN -> [SKIP][59] ([Intel XE#308]) +2 other tests skip
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-464/igt@kms_cursor_crc@cursor-offscreen-512x512.html
- shard-lnl: NOTRUN -> [SKIP][60] ([Intel XE#2321]) +2 other tests skip
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-8/igt@kms_cursor_crc@cursor-offscreen-512x512.html
* igt@kms_cursor_crc@cursor-random-512x170:
- shard-bmg: NOTRUN -> [SKIP][61] ([Intel XE#2321]) +2 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@kms_cursor_crc@cursor-random-512x170.html
* igt@kms_cursor_crc@cursor-rapid-movement-64x21:
- shard-lnl: NOTRUN -> [SKIP][62] ([Intel XE#1424]) +1 other test skip
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@kms_cursor_crc@cursor-rapid-movement-64x21.html
* igt@kms_cursor_crc@cursor-rapid-movement-max-size:
- shard-bmg: NOTRUN -> [SKIP][63] ([Intel XE#2320]) +1 other test skip
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-3/igt@kms_cursor_crc@cursor-rapid-movement-max-size.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:
- shard-bmg: NOTRUN -> [SKIP][64] ([Intel XE#2291]) +1 other test skip
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
- shard-lnl: NOTRUN -> [SKIP][65] ([Intel XE#309]) +4 other tests skip
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
- shard-dg2-set2: NOTRUN -> [SKIP][66] ([Intel XE#323])
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-434/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
- shard-lnl: NOTRUN -> [SKIP][67] ([Intel XE#323])
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
- shard-bmg: NOTRUN -> [SKIP][68] ([Intel XE#2286])
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
* igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
- shard-bmg: NOTRUN -> [SKIP][69] ([Intel XE#1508])
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-3:
- shard-bmg: NOTRUN -> [SKIP][70] ([Intel XE#1340])
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-7/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-3.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [SKIP][71] ([Intel XE#4494] / [i915#3804])
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-433/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-6.html
* igt@kms_dp_link_training@uhbr-mst:
- shard-lnl: NOTRUN -> [SKIP][72] ([Intel XE#4354]) +1 other test skip
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@kms_dp_link_training@uhbr-mst.html
- shard-bmg: NOTRUN -> [SKIP][73] ([Intel XE#4354])
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@kms_dp_link_training@uhbr-mst.html
- shard-dg2-set2: NOTRUN -> [SKIP][74] ([Intel XE#4356])
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-432/igt@kms_dp_link_training@uhbr-mst.html
* igt@kms_dp_linktrain_fallback@dp-fallback:
- shard-bmg: NOTRUN -> [SKIP][75] ([Intel XE#4294])
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@kms_dp_linktrain_fallback@dp-fallback.html
- shard-lnl: NOTRUN -> [SKIP][76] ([Intel XE#4294])
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@kms_dp_linktrain_fallback@dp-fallback.html
* igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats:
- shard-lnl: NOTRUN -> [SKIP][77] ([Intel XE#4422])
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-4/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats.html
* igt@kms_fbcon_fbt@fbc:
- shard-bmg: NOTRUN -> [SKIP][78] ([Intel XE#4156])
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-7/igt@kms_fbcon_fbt@fbc.html
* igt@kms_feature_discovery@psr2:
- shard-bmg: NOTRUN -> [SKIP][79] ([Intel XE#2374])
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-7/igt@kms_feature_discovery@psr2.html
- shard-dg2-set2: NOTRUN -> [SKIP][80] ([Intel XE#1135])
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-433/igt@kms_feature_discovery@psr2.html
* igt@kms_flip@2x-absolute-wf_vblank:
- shard-bmg: NOTRUN -> [SKIP][81] ([Intel XE#2316]) +2 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@kms_flip@2x-absolute-wf_vblank.html
* igt@kms_flip@2x-flip-vs-expired-vblank:
- shard-lnl: NOTRUN -> [SKIP][82] ([Intel XE#1421]) +11 other tests skip
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-4/igt@kms_flip@2x-flip-vs-expired-vblank.html
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible:
- shard-bmg: [PASS][83] -> [SKIP][84] ([Intel XE#2316])
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-1/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible.html
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible.html
* igt@kms_flip@flip-vs-suspend-interruptible@c-dp4:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][85] ([Intel XE#2049] / [Intel XE#2597])
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-436/igt@kms_flip@flip-vs-suspend-interruptible@c-dp4.html
* igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][86] ([Intel XE#1397]) +1 other test skip
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-5/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling:
- shard-lnl: NOTRUN -> [SKIP][87] ([Intel XE#1401] / [Intel XE#1745]) +2 other tests skip
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-4/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][88] ([Intel XE#1401]) +2 other tests skip
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-4/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-bmg: NOTRUN -> [SKIP][89] ([Intel XE#2293]) +3 other tests skip
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-8/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
- shard-bmg: NOTRUN -> [SKIP][90] ([Intel XE#2293] / [Intel XE#2380]) +3 other tests skip
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling:
- shard-lnl: NOTRUN -> [SKIP][91] ([Intel XE#1397] / [Intel XE#1745]) +1 other test skip
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling.html
* igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-3-linear-to-x:
- shard-bmg: [PASS][92] -> [ABORT][93] ([Intel XE#3970]) +1 other test abort
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-8/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-3-linear-to-x.html
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-1/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-3-linear-to-x.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-render:
- shard-lnl: NOTRUN -> [SKIP][94] ([Intel XE#651]) +10 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][95] ([Intel XE#2311]) +33 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen:
- shard-dg2-set2: NOTRUN -> [SKIP][96] ([Intel XE#651]) +25 other tests skip
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][97] ([Intel XE#4141]) +15 other tests skip
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-tiling-y:
- shard-dg2-set2: NOTRUN -> [SKIP][98] ([Intel XE#658])
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-436/igt@kms_frontbuffer_tracking@fbc-tiling-y.html
- shard-bmg: NOTRUN -> [SKIP][99] ([Intel XE#2352])
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-tiling-y.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-shrfb-draw-render:
- shard-dg2-set2: NOTRUN -> [SKIP][100] ([Intel XE#6312]) +1 other test skip
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-434/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-shrfb-draw-render.html
- shard-lnl: NOTRUN -> [SKIP][101] ([Intel XE#6312])
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y:
- shard-lnl: NOTRUN -> [SKIP][102] ([Intel XE#1469])
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][103] ([Intel XE#2312]) +15 other tests skip
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render:
- shard-lnl: NOTRUN -> [SKIP][104] ([Intel XE#656]) +41 other tests skip
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary:
- shard-bmg: NOTRUN -> [SKIP][105] ([Intel XE#2313]) +23 other tests skip
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-8/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
- shard-dg2-set2: NOTRUN -> [SKIP][106] ([Intel XE#653]) +26 other tests skip
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html
* igt@kms_hdmi_inject@inject-audio:
- shard-lnl: NOTRUN -> [SKIP][107] ([Intel XE#1470] / [Intel XE#2853])
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-5/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_hdr@brightness-with-hdr:
- shard-bmg: NOTRUN -> [SKIP][108] ([Intel XE#3544])
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_joiner@basic-ultra-joiner:
- shard-bmg: NOTRUN -> [SKIP][109] ([Intel XE#2927]) +1 other test skip
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@kms_joiner@basic-ultra-joiner.html
- shard-lnl: NOTRUN -> [SKIP][110] ([Intel XE#2925] / [Intel XE#2927])
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-8/igt@kms_joiner@basic-ultra-joiner.html
* igt@kms_joiner@invalid-modeset-force-ultra-joiner:
- shard-bmg: NOTRUN -> [SKIP][111] ([Intel XE#2934])
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
* igt@kms_joiner@invalid-modeset-ultra-joiner:
- shard-dg2-set2: NOTRUN -> [SKIP][112] ([Intel XE#2925] / [Intel XE#2927]) +1 other test skip
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@kms_joiner@invalid-modeset-ultra-joiner.html
* igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
- shard-bmg: NOTRUN -> [SKIP][113] ([Intel XE#4090])
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
- shard-dg2-set2: NOTRUN -> [SKIP][114] ([Intel XE#2925]) +2 other tests skip
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-433/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
- shard-lnl: NOTRUN -> [SKIP][115] ([Intel XE#2925]) +1 other test skip
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
* igt@kms_panel_fitting@legacy:
- shard-bmg: NOTRUN -> [SKIP][116] ([Intel XE#2486])
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-3/igt@kms_panel_fitting@legacy.html
* igt@kms_plane_lowres@tiling-y:
- shard-bmg: NOTRUN -> [SKIP][117] ([Intel XE#2393])
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@kms_plane_lowres@tiling-y.html
* igt@kms_plane_multiple@2x-tiling-none:
- shard-lnl: NOTRUN -> [SKIP][118] ([Intel XE#4596]) +2 other tests skip
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-8/igt@kms_plane_multiple@2x-tiling-none.html
* igt@kms_plane_multiple@2x-tiling-x:
- shard-bmg: NOTRUN -> [SKIP][119] ([Intel XE#4596])
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@kms_plane_multiple@2x-tiling-x.html
* igt@kms_plane_multiple@2x-tiling-yf:
- shard-dg2-set2: NOTRUN -> [SKIP][120] ([Intel XE#5021])
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@kms_plane_multiple@2x-tiling-yf.html
* igt@kms_plane_scaling@intel-max-src-size:
- shard-lnl: NOTRUN -> [SKIP][121] ([Intel XE#3307])
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@kms_plane_scaling@intel-max-src-size.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25:
- shard-lnl: NOTRUN -> [SKIP][122] ([Intel XE#2763]) +15 other tests skip
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-a:
- shard-bmg: NOTRUN -> [SKIP][123] ([Intel XE#2763]) +9 other tests skip
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-7/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-a.html
* igt@kms_pm_dc@dc5-psr:
- shard-bmg: NOTRUN -> [SKIP][124] ([Intel XE#2392])
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@kms_pm_dc@dc5-psr.html
- shard-dg2-set2: NOTRUN -> [SKIP][125] ([Intel XE#1129])
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-433/igt@kms_pm_dc@dc5-psr.html
* igt@kms_pm_dc@deep-pkgc:
- shard-bmg: NOTRUN -> [SKIP][126] ([Intel XE#2505])
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@kms_pm_dc@deep-pkgc.html
* igt@kms_pm_rpm@dpms-non-lpsp:
- shard-lnl: NOTRUN -> [SKIP][127] ([Intel XE#1439] / [Intel XE#3141])
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@kms_pm_rpm@dpms-non-lpsp.html
* igt@kms_pm_rpm@system-suspend-modeset:
- shard-lnl: [PASS][128] -> [ABORT][129] ([Intel XE#6675]) +1 other test abort
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-5/igt@kms_pm_rpm@system-suspend-modeset.html
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-8/igt@kms_pm_rpm@system-suspend-modeset.html
* igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area:
- shard-dg2-set2: NOTRUN -> [SKIP][130] ([Intel XE#1406] / [Intel XE#1489]) +10 other tests skip
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-466/igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area.html
- shard-lnl: NOTRUN -> [SKIP][131] ([Intel XE#1406] / [Intel XE#2893]) +6 other tests skip
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-5/igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area:
- shard-lnl: NOTRUN -> [SKIP][132] ([Intel XE#1406] / [Intel XE#2893] / [Intel XE#4608]) +2 other tests skip
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][133] ([Intel XE#1406] / [Intel XE#4608]) +5 other tests skip
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area@pipe-b-edp-1.html
* igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf:
- shard-bmg: NOTRUN -> [SKIP][134] ([Intel XE#1406] / [Intel XE#1489]) +8 other tests skip
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-1/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-bmg: NOTRUN -> [SKIP][135] ([Intel XE#1406] / [Intel XE#2387])
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-5/igt@kms_psr2_su@page_flip-xrgb8888.html
- shard-dg2-set2: NOTRUN -> [SKIP][136] ([Intel XE#1122] / [Intel XE#1406])
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-436/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@fbc-psr2-basic:
- shard-bmg: NOTRUN -> [SKIP][137] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850]) +15 other tests skip
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-3/igt@kms_psr@fbc-psr2-basic.html
* igt@kms_psr@fbc-psr2-basic@edp-1:
- shard-lnl: NOTRUN -> [SKIP][138] ([Intel XE#1406] / [Intel XE#4609]) +2 other tests skip
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@kms_psr@fbc-psr2-basic@edp-1.html
* igt@kms_psr@fbc-psr2-sprite-plane-move:
- shard-dg2-set2: NOTRUN -> [SKIP][139] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929]) +13 other tests skip
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@kms_psr@fbc-psr2-sprite-plane-move.html
* igt@kms_psr@pr-primary-blt:
- shard-lnl: NOTRUN -> [SKIP][140] ([Intel XE#1406]) +7 other tests skip
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@kms_psr@pr-primary-blt.html
* igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
- shard-bmg: NOTRUN -> [SKIP][141] ([Intel XE#1406] / [Intel XE#2414])
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
- shard-dg2-set2: NOTRUN -> [SKIP][142] ([Intel XE#1406] / [Intel XE#2939])
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-466/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
* igt@kms_rotation_crc@primary-4-tiled-reflect-x-0:
- shard-lnl: NOTRUN -> [SKIP][143] ([Intel XE#3414] / [Intel XE#3904]) +3 other tests skip
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@kms_rotation_crc@primary-4-tiled-reflect-x-0.html
* igt@kms_rotation_crc@primary-rotation-90:
- shard-bmg: NOTRUN -> [SKIP][144] ([Intel XE#3414] / [Intel XE#3904]) +3 other tests skip
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-8/igt@kms_rotation_crc@primary-rotation-90.html
- shard-dg2-set2: NOTRUN -> [SKIP][145] ([Intel XE#3414]) +3 other tests skip
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@kms_rotation_crc@primary-rotation-90.html
* igt@kms_rotation_crc@primary-x-tiled-reflect-x-0:
- shard-lnl: NOTRUN -> [FAIL][146] ([Intel XE#4689])
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@kms_rotation_crc@primary-x-tiled-reflect-x-0.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
- shard-bmg: NOTRUN -> [SKIP][147] ([Intel XE#2330])
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
- shard-dg2-set2: NOTRUN -> [SKIP][148] ([Intel XE#1127])
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-436/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
* igt@kms_scaling_modes@scaling-mode-full-aspect:
- shard-bmg: NOTRUN -> [SKIP][149] ([Intel XE#2413])
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-7/igt@kms_scaling_modes@scaling-mode-full-aspect.html
* igt@kms_setmode@invalid-clone-single-crtc-stealing:
- shard-lnl: NOTRUN -> [SKIP][150] ([Intel XE#1435])
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
* igt@kms_sharpness_filter@invalid-filter-with-scaling-mode:
- shard-bmg: NOTRUN -> [SKIP][151] ([Intel XE#6503]) +2 other tests skip
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@kms_sharpness_filter@invalid-filter-with-scaling-mode.html
* igt@kms_vrr@flipline:
- shard-dg2-set2: NOTRUN -> [SKIP][152] ([Intel XE#455]) +20 other tests skip
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-434/igt@kms_vrr@flipline.html
- shard-bmg: NOTRUN -> [SKIP][153] ([Intel XE#1499])
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@kms_vrr@flipline.html
* igt@xe_compute_preempt@compute-preempt-many:
- shard-dg2-set2: NOTRUN -> [SKIP][154] ([Intel XE#6360]) +2 other tests skip
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-432/igt@xe_compute_preempt@compute-preempt-many.html
* igt@xe_compute_preempt@compute-preempt-many-vram:
- shard-lnl: NOTRUN -> [SKIP][155] ([Intel XE#5191])
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-8/igt@xe_compute_preempt@compute-preempt-many-vram.html
* igt@xe_copy_basic@mem-copy-linear-0x3fff:
- shard-dg2-set2: NOTRUN -> [SKIP][156] ([Intel XE#1123]) +1 other test skip
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@xe_copy_basic@mem-copy-linear-0x3fff.html
* igt@xe_copy_basic@mem-matrix-copy-2x2:
- shard-dg2-set2: NOTRUN -> [SKIP][157] ([Intel XE#5300])
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-432/igt@xe_copy_basic@mem-matrix-copy-2x2.html
* igt@xe_copy_basic@mem-set-linear-0xfffe:
- shard-dg2-set2: NOTRUN -> [SKIP][158] ([Intel XE#1126])
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-464/igt@xe_copy_basic@mem-set-linear-0xfffe.html
* igt@xe_eu_stall@invalid-event-report-count:
- shard-dg2-set2: NOTRUN -> [SKIP][159] ([Intel XE#5626]) +2 other tests skip
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-432/igt@xe_eu_stall@invalid-event-report-count.html
* igt@xe_eudebug@basic-connect:
- shard-lnl: NOTRUN -> [SKIP][160] ([Intel XE#4837]) +10 other tests skip
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@xe_eudebug@basic-connect.html
* igt@xe_eudebug_online@set-breakpoint-sigint-debugger:
- shard-bmg: NOTRUN -> [SKIP][161] ([Intel XE#4837]) +13 other tests skip
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-8/igt@xe_eudebug_online@set-breakpoint-sigint-debugger.html
* igt@xe_eudebug_online@writes-caching-sram-bb-vram-target-sram:
- shard-dg2-set2: NOTRUN -> [SKIP][162] ([Intel XE#4837]) +12 other tests skip
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-432/igt@xe_eudebug_online@writes-caching-sram-bb-vram-target-sram.html
* igt@xe_evict@evict-beng-threads-large-multi-vm:
- shard-lnl: NOTRUN -> [SKIP][163] ([Intel XE#688]) +9 other tests skip
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@xe_evict@evict-beng-threads-large-multi-vm.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate:
- shard-bmg: NOTRUN -> [SKIP][164] ([Intel XE#2322]) +9 other tests skip
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate.html
* igt@xe_exec_basic@multigpu-once-userptr:
- shard-lnl: NOTRUN -> [SKIP][165] ([Intel XE#1392]) +7 other tests skip
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@xe_exec_basic@multigpu-once-userptr.html
* igt@xe_exec_fault_mode@many-execqueues-basic-imm:
- shard-dg2-set2: NOTRUN -> [SKIP][166] ([Intel XE#288]) +23 other tests skip
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-433/igt@xe_exec_fault_mode@many-execqueues-basic-imm.html
* igt@xe_exec_mix_modes@exec-simple-batch-store-dma-fence:
- shard-dg2-set2: NOTRUN -> [SKIP][167] ([Intel XE#2360])
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-464/igt@xe_exec_mix_modes@exec-simple-batch-store-dma-fence.html
* igt@xe_exec_system_allocator@many-64k-mmap-huge-nomemset:
- shard-lnl: NOTRUN -> [SKIP][168] ([Intel XE#5007]) +2 other tests skip
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@xe_exec_system_allocator@many-64k-mmap-huge-nomemset.html
* igt@xe_exec_system_allocator@many-64k-mmap-new-huge:
- shard-bmg: NOTRUN -> [SKIP][169] ([Intel XE#5007])
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@xe_exec_system_allocator@many-64k-mmap-new-huge.html
* igt@xe_exec_system_allocator@many-large-malloc-prefetch-madvise:
- shard-lnl: NOTRUN -> [WARN][170] ([Intel XE#5786]) +2 other tests warn
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@xe_exec_system_allocator@many-large-malloc-prefetch-madvise.html
* igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma:
- shard-lnl: NOTRUN -> [FAIL][171] ([Intel XE#5625])
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-new-huge:
- shard-bmg: NOTRUN -> [SKIP][172] ([Intel XE#4943]) +24 other tests skip
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-8/igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-new-huge.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-large-mmap-new-huge-nomemset:
- shard-lnl: NOTRUN -> [SKIP][173] ([Intel XE#4943]) +23 other tests skip
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-8/igt@xe_exec_system_allocator@threads-shared-vm-many-large-mmap-new-huge-nomemset.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-stride-new-race-nomemset:
- shard-dg2-set2: NOTRUN -> [SKIP][174] ([Intel XE#4915]) +395 other tests skip
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-464/igt@xe_exec_system_allocator@threads-shared-vm-many-stride-new-race-nomemset.html
* igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add:
- shard-dg2-set2: NOTRUN -> [SKIP][175] ([Intel XE#6281])
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add.html
* igt@xe_fault_injection@probe-fail-guc-xe_guc_mmio_send_recv:
- shard-dg2-set2: [PASS][176] -> [DMESG-WARN][177] ([Intel XE#5893])
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-464/igt@xe_fault_injection@probe-fail-guc-xe_guc_mmio_send_recv.html
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@xe_fault_injection@probe-fail-guc-xe_guc_mmio_send_recv.html
* igt@xe_huc_copy@huc_copy:
- shard-dg2-set2: NOTRUN -> [SKIP][178] ([Intel XE#255])
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@xe_huc_copy@huc_copy.html
* igt@xe_live_ktest@xe_eudebug:
- shard-bmg: NOTRUN -> [SKIP][179] ([Intel XE#2833])
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@xe_live_ktest@xe_eudebug.html
- shard-lnl: NOTRUN -> [SKIP][180] ([Intel XE#2833])
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@xe_live_ktest@xe_eudebug.html
* igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit:
- shard-dg2-set2: NOTRUN -> [SKIP][181] ([Intel XE#2229])
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-464/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
- shard-lnl: NOTRUN -> [SKIP][182] ([Intel XE#2229])
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-8/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
* igt@xe_mmap@pci-membarrier:
- shard-lnl: NOTRUN -> [SKIP][183] ([Intel XE#5100])
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@xe_mmap@pci-membarrier.html
* igt@xe_mmap@small-bar:
- shard-bmg: NOTRUN -> [SKIP][184] ([Intel XE#586])
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@xe_mmap@small-bar.html
* igt@xe_noexec_ping_pong@basic:
- shard-lnl: NOTRUN -> [SKIP][185] ([Intel XE#6259])
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-4/igt@xe_noexec_ping_pong@basic.html
* igt@xe_oa@mmio-triggered-reports-read:
- shard-dg2-set2: NOTRUN -> [SKIP][186] ([Intel XE#6032])
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-436/igt@xe_oa@mmio-triggered-reports-read.html
* igt@xe_oa@non-privileged-map-oa-buffer:
- shard-dg2-set2: NOTRUN -> [SKIP][187] ([Intel XE#3573]) +8 other tests skip
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-464/igt@xe_oa@non-privileged-map-oa-buffer.html
* igt@xe_oa@non-zero-reason-all:
- shard-dg2-set2: NOTRUN -> [SKIP][188] ([Intel XE#6377])
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-436/igt@xe_oa@non-zero-reason-all.html
* igt@xe_oa@oa-tlb-invalidate:
- shard-bmg: NOTRUN -> [SKIP][189] ([Intel XE#2248])
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@xe_oa@oa-tlb-invalidate.html
* igt@xe_pat@display-vs-wb-transient:
- shard-dg2-set2: NOTRUN -> [SKIP][190] ([Intel XE#1337])
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-434/igt@xe_pat@display-vs-wb-transient.html
* igt@xe_pat@pat-index-xe2:
- shard-dg2-set2: NOTRUN -> [SKIP][191] ([Intel XE#977])
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@xe_pat@pat-index-xe2.html
* igt@xe_pat@pat-index-xehpc:
- shard-dg2-set2: NOTRUN -> [SKIP][192] ([Intel XE#2838] / [Intel XE#979])
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@xe_pat@pat-index-xehpc.html
- shard-lnl: NOTRUN -> [SKIP][193] ([Intel XE#1420] / [Intel XE#2838])
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-4/igt@xe_pat@pat-index-xehpc.html
* igt@xe_peer2peer@write:
- shard-bmg: NOTRUN -> [SKIP][194] ([Intel XE#2427])
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@xe_peer2peer@write.html
* igt@xe_pm@d3cold-i2c:
- shard-dg2-set2: NOTRUN -> [SKIP][195] ([Intel XE#5694])
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-434/igt@xe_pm@d3cold-i2c.html
- shard-bmg: NOTRUN -> [SKIP][196] ([Intel XE#5694])
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@xe_pm@d3cold-i2c.html
* igt@xe_pm@d3hot-mmap-vram:
- shard-lnl: NOTRUN -> [SKIP][197] ([Intel XE#1948])
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@xe_pm@d3hot-mmap-vram.html
* igt@xe_pm@s2idle-basic:
- shard-dg2-set2: NOTRUN -> [ABORT][198] ([Intel XE#6675]) +12 other tests abort
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-433/igt@xe_pm@s2idle-basic.html
- shard-lnl: NOTRUN -> [ABORT][199] ([Intel XE#6675]) +12 other tests abort
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@xe_pm@s2idle-basic.html
* igt@xe_pm@s2idle-basic-exec:
- shard-bmg: NOTRUN -> [ABORT][200] ([Intel XE#6675]) +16 other tests abort
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-7/igt@xe_pm@s2idle-basic-exec.html
* igt@xe_pm@s2idle-d3cold-basic-exec:
- shard-bmg: NOTRUN -> [SKIP][201] ([Intel XE#2284])
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@xe_pm@s2idle-d3cold-basic-exec.html
- shard-lnl: NOTRUN -> [SKIP][202] ([Intel XE#2284] / [Intel XE#366])
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@xe_pm@s2idle-d3cold-basic-exec.html
* igt@xe_pm@s3-multiple-execs:
- shard-lnl: NOTRUN -> [SKIP][203] ([Intel XE#584]) +1 other test skip
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@xe_pm@s3-multiple-execs.html
* igt@xe_pmu@engine-activity-accuracy-90:
- shard-lnl: NOTRUN -> [FAIL][204] ([Intel XE#6251]) +3 other tests fail
[204]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@xe_pmu@engine-activity-accuracy-90.html
* igt@xe_pxp@pxp-stale-bo-exec-post-suspend:
- shard-bmg: NOTRUN -> [SKIP][205] ([Intel XE#4733])
[205]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@xe_pxp@pxp-stale-bo-exec-post-suspend.html
- shard-dg2-set2: NOTRUN -> [SKIP][206] ([Intel XE#4733]) +1 other test skip
[206]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-436/igt@xe_pxp@pxp-stale-bo-exec-post-suspend.html
* igt@xe_query@multigpu-query-invalid-extension:
- shard-bmg: NOTRUN -> [SKIP][207] ([Intel XE#944]) +3 other tests skip
[207]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@xe_query@multigpu-query-invalid-extension.html
* igt@xe_query@multigpu-query-invalid-size:
- shard-lnl: NOTRUN -> [SKIP][208] ([Intel XE#944]) +2 other tests skip
[208]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@xe_query@multigpu-query-invalid-size.html
* igt@xe_query@multigpu-query-uc-fw-version-huc:
- shard-dg2-set2: NOTRUN -> [SKIP][209] ([Intel XE#944]) +2 other tests skip
[209]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-464/igt@xe_query@multigpu-query-uc-fw-version-huc.html
* igt@xe_sriov_auto_provisioning@selfconfig-reprovision-reduce-numvfs:
- shard-dg2-set2: NOTRUN -> [SKIP][210] ([Intel XE#4130])
[210]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-436/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-reduce-numvfs.html
* igt@xe_sriov_flr@flr-each-isolation:
- shard-dg2-set2: NOTRUN -> [SKIP][211] ([Intel XE#3342])
[211]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-433/igt@xe_sriov_flr@flr-each-isolation.html
- shard-lnl: NOTRUN -> [SKIP][212] ([Intel XE#3342])
[212]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@xe_sriov_flr@flr-each-isolation.html
* igt@xe_sriov_flr@flr-vfs-parallel:
- shard-dg2-set2: NOTRUN -> [SKIP][213] ([Intel XE#4273]) +1 other test skip
[213]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-466/igt@xe_sriov_flr@flr-vfs-parallel.html
- shard-lnl: NOTRUN -> [SKIP][214] ([Intel XE#4273]) +1 other test skip
[214]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-5/igt@xe_sriov_flr@flr-vfs-parallel.html
* igt@xe_sriov_scheduling@equal-throughput:
- shard-dg2-set2: NOTRUN -> [SKIP][215] ([Intel XE#4351])
[215]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@xe_sriov_scheduling@equal-throughput.html
* igt@xe_sriov_vram@vf-access-after-resize-up:
- shard-dg2-set2: NOTRUN -> [SKIP][216] ([Intel XE#6318])
[216]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-463/igt@xe_sriov_vram@vf-access-after-resize-up.html
- shard-lnl: NOTRUN -> [SKIP][217] ([Intel XE#6376])
[217]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@xe_sriov_vram@vf-access-after-resize-up.html
* igt@xe_survivability@runtime-survivability:
- shard-dg2-set2: NOTRUN -> [SKIP][218] ([Intel XE#6529])
[218]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@xe_survivability@runtime-survivability.html
#### Possible fixes ####
* igt@kms_pm_dc@dc5-dpms:
- shard-lnl: [FAIL][219] ([Intel XE#718]) -> [PASS][220]
[219]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-1/igt@kms_pm_dc@dc5-dpms.html
[220]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@kms_pm_dc@dc5-dpms.html
* igt@xe_module_load@load:
- shard-lnl: ([PASS][221], [PASS][222], [PASS][223], [PASS][224], [PASS][225], [PASS][226], [PASS][227], [PASS][228], [PASS][229], [PASS][230], [PASS][231], [PASS][232], [PASS][233], [PASS][234], [PASS][235], [PASS][236], [PASS][237], [PASS][238], [PASS][239], [PASS][240], [SKIP][241], [PASS][242], [PASS][243], [PASS][244], [PASS][245], [PASS][246]) ([Intel XE#378]) -> ([PASS][247], [PASS][248], [PASS][249], [PASS][250], [PASS][251], [PASS][252], [PASS][253], [PASS][254], [PASS][255], [PASS][256], [PASS][257], [PASS][258], [PASS][259], [PASS][260], [PASS][261], [PASS][262], [PASS][263], [PASS][264], [PASS][265], [PASS][266], [PASS][267], [PASS][268], [PASS][269], [PASS][270], [PASS][271])
[221]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-2/igt@xe_module_load@load.html
[222]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-2/igt@xe_module_load@load.html
[223]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-2/igt@xe_module_load@load.html
[224]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-4/igt@xe_module_load@load.html
[225]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-4/igt@xe_module_load@load.html
[226]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-4/igt@xe_module_load@load.html
[227]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-3/igt@xe_module_load@load.html
[228]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-4/igt@xe_module_load@load.html
[229]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-3/igt@xe_module_load@load.html
[230]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-3/igt@xe_module_load@load.html
[231]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-8/igt@xe_module_load@load.html
[232]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-7/igt@xe_module_load@load.html
[233]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-7/igt@xe_module_load@load.html
[234]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-8/igt@xe_module_load@load.html
[235]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-7/igt@xe_module_load@load.html
[236]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-8/igt@xe_module_load@load.html
[237]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-8/igt@xe_module_load@load.html
[238]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-5/igt@xe_module_load@load.html
[239]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-5/igt@xe_module_load@load.html
[240]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-5/igt@xe_module_load@load.html
[241]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-5/igt@xe_module_load@load.html
[242]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-5/igt@xe_module_load@load.html
[243]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-5/igt@xe_module_load@load.html
[244]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-1/igt@xe_module_load@load.html
[245]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-1/igt@xe_module_load@load.html
[246]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-1/igt@xe_module_load@load.html
[247]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@xe_module_load@load.html
[248]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@xe_module_load@load.html
[249]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@xe_module_load@load.html
[250]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@xe_module_load@load.html
[251]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@xe_module_load@load.html
[252]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-5/igt@xe_module_load@load.html
[253]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@xe_module_load@load.html
[254]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-5/igt@xe_module_load@load.html
[255]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@xe_module_load@load.html
[256]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@xe_module_load@load.html
[257]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@xe_module_load@load.html
[258]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@xe_module_load@load.html
[259]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-8/igt@xe_module_load@load.html
[260]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-2/igt@xe_module_load@load.html
[261]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-3/igt@xe_module_load@load.html
[262]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-8/igt@xe_module_load@load.html
[263]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@xe_module_load@load.html
[264]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-5/igt@xe_module_load@load.html
[265]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-8/igt@xe_module_load@load.html
[266]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-8/igt@xe_module_load@load.html
[267]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-4/igt@xe_module_load@load.html
[268]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-7/igt@xe_module_load@load.html
[269]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-4/igt@xe_module_load@load.html
[270]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-1/igt@xe_module_load@load.html
[271]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-4/igt@xe_module_load@load.html
- shard-bmg: ([PASS][272], [PASS][273], [PASS][274], [PASS][275], [PASS][276], [PASS][277], [PASS][278], [PASS][279], [SKIP][280], [PASS][281], [PASS][282], [PASS][283], [PASS][284], [PASS][285], [PASS][286], [PASS][287], [PASS][288], [PASS][289], [PASS][290], [PASS][291], [PASS][292], [PASS][293], [PASS][294], [PASS][295]) ([Intel XE#2457]) -> ([PASS][296], [PASS][297], [PASS][298], [PASS][299], [PASS][300], [PASS][301], [PASS][302], [PASS][303], [PASS][304], [PASS][305], [PASS][306], [PASS][307], [PASS][308], [PASS][309], [PASS][310], [PASS][311], [PASS][312], [PASS][313], [PASS][314], [PASS][315], [PASS][316], [PASS][317], [PASS][318], [PASS][319], [PASS][320])
[272]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-8/igt@xe_module_load@load.html
[273]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-8/igt@xe_module_load@load.html
[274]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-8/igt@xe_module_load@load.html
[275]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-1/igt@xe_module_load@load.html
[276]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-1/igt@xe_module_load@load.html
[277]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-1/igt@xe_module_load@load.html
[278]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-7/igt@xe_module_load@load.html
[279]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-7/igt@xe_module_load@load.html
[280]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-7/igt@xe_module_load@load.html
[281]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-6/igt@xe_module_load@load.html
[282]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-6/igt@xe_module_load@load.html
[283]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-6/igt@xe_module_load@load.html
[284]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-7/igt@xe_module_load@load.html
[285]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-7/igt@xe_module_load@load.html
[286]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-3/igt@xe_module_load@load.html
[287]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-3/igt@xe_module_load@load.html
[288]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-3/igt@xe_module_load@load.html
[289]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-5/igt@xe_module_load@load.html
[290]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-2/igt@xe_module_load@load.html
[291]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-2/igt@xe_module_load@load.html
[292]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-5/igt@xe_module_load@load.html
[293]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-2/igt@xe_module_load@load.html
[294]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-5/igt@xe_module_load@load.html
[295]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-2/igt@xe_module_load@load.html
[296]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-7/igt@xe_module_load@load.html
[297]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-3/igt@xe_module_load@load.html
[298]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-7/igt@xe_module_load@load.html
[299]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-3/igt@xe_module_load@load.html
[300]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-3/igt@xe_module_load@load.html
[301]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@xe_module_load@load.html
[302]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@xe_module_load@load.html
[303]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-7/igt@xe_module_load@load.html
[304]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-7/igt@xe_module_load@load.html
[305]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-1/igt@xe_module_load@load.html
[306]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-1/igt@xe_module_load@load.html
[307]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-1/igt@xe_module_load@load.html
[308]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@xe_module_load@load.html
[309]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@xe_module_load@load.html
[310]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-8/igt@xe_module_load@load.html
[311]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-4/igt@xe_module_load@load.html
[312]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@xe_module_load@load.html
[313]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-8/igt@xe_module_load@load.html
[314]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-8/igt@xe_module_load@load.html
[315]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-2/igt@xe_module_load@load.html
[316]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@xe_module_load@load.html
[317]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-5/igt@xe_module_load@load.html
[318]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-5/igt@xe_module_load@load.html
[319]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@xe_module_load@load.html
[320]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@xe_module_load@load.html
- shard-dg2-set2: ([PASS][321], [SKIP][322], [PASS][323], [PASS][324], [PASS][325], [PASS][326], [PASS][327], [PASS][328], [PASS][329], [PASS][330], [PASS][331], [PASS][332], [PASS][333], [PASS][334], [PASS][335], [PASS][336], [PASS][337], [PASS][338], [PASS][339], [PASS][340], [PASS][341], [PASS][342], [PASS][343], [PASS][344], [PASS][345]) ([Intel XE#378]) -> ([PASS][346], [PASS][347], [PASS][348], [PASS][349], [PASS][350], [PASS][351], [PASS][352], [PASS][353], [PASS][354], [PASS][355], [PASS][356], [PASS][357], [PASS][358], [PASS][359], [PASS][360], [PASS][361], [PASS][362], [PASS][363], [PASS][364], [PASS][365], [PASS][366], [PASS][367], [PASS][368], [PASS][369], [PASS][370])
[321]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-466/igt@xe_module_load@load.html
[322]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-466/igt@xe_module_load@load.html
[323]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-466/igt@xe_module_load@load.html
[324]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-466/igt@xe_module_load@load.html
[325]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-435/igt@xe_module_load@load.html
[326]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-435/igt@xe_module_load@load.html
[327]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-435/igt@xe_module_load@load.html
[328]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-463/igt@xe_module_load@load.html
[329]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-463/igt@xe_module_load@load.html
[330]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-463/igt@xe_module_load@load.html
[331]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-434/igt@xe_module_load@load.html
[332]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-434/igt@xe_module_load@load.html
[333]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-464/igt@xe_module_load@load.html
[334]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-464/igt@xe_module_load@load.html
[335]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-464/igt@xe_module_load@load.html
[336]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-432/igt@xe_module_load@load.html
[337]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-432/igt@xe_module_load@load.html
[338]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-432/igt@xe_module_load@load.html
[339]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-433/igt@xe_module_load@load.html
[340]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-433/igt@xe_module_load@load.html
[341]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-433/igt@xe_module_load@load.html
[342]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-436/igt@xe_module_load@load.html
[343]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-436/igt@xe_module_load@load.html
[344]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-436/igt@xe_module_load@load.html
[345]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-436/igt@xe_module_load@load.html
[346]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-464/igt@xe_module_load@load.html
[347]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-432/igt@xe_module_load@load.html
[348]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-436/igt@xe_module_load@load.html
[349]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-432/igt@xe_module_load@load.html
[350]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-434/igt@xe_module_load@load.html
[351]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-463/igt@xe_module_load@load.html
[352]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-436/igt@xe_module_load@load.html
[353]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-433/igt@xe_module_load@load.html
[354]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-432/igt@xe_module_load@load.html
[355]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-464/igt@xe_module_load@load.html
[356]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-432/igt@xe_module_load@load.html
[357]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-432/igt@xe_module_load@load.html
[358]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-464/igt@xe_module_load@load.html
[359]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-433/igt@xe_module_load@load.html
[360]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@xe_module_load@load.html
[361]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-434/igt@xe_module_load@load.html
[362]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-434/igt@xe_module_load@load.html
[363]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-433/igt@xe_module_load@load.html
[364]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@xe_module_load@load.html
[365]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@xe_module_load@load.html
[366]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-433/igt@xe_module_load@load.html
[367]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-464/igt@xe_module_load@load.html
[368]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-435/igt@xe_module_load@load.html
[369]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-464/igt@xe_module_load@load.html
[370]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-466/igt@xe_module_load@load.html
* igt@xe_pm@s3-mocs:
- shard-dg2-set2: [ABORT][371] ([Intel XE#6675]) -> [PASS][372]
[371]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-dg2-432/igt@xe_pm@s3-mocs.html
[372]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-dg2-434/igt@xe_pm@s3-mocs.html
#### Warnings ####
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-render:
- shard-bmg: [SKIP][373] ([Intel XE#2311]) -> [SKIP][374] ([Intel XE#2312]) +1 other test skip
[373]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-render.html
[374]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render:
- shard-bmg: [SKIP][375] ([Intel XE#2312]) -> [SKIP][376] ([Intel XE#4141])
[375]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html
[376]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-fullscreen:
- shard-bmg: [SKIP][377] ([Intel XE#4141]) -> [SKIP][378] ([Intel XE#2312])
[377]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-fullscreen.html
[378]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt:
- shard-bmg: [SKIP][379] ([Intel XE#2313]) -> [SKIP][380] ([Intel XE#2312]) +2 other tests skip
[379]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html
[380]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render:
- shard-bmg: [SKIP][381] ([Intel XE#2312]) -> [SKIP][382] ([Intel XE#2313]) +1 other test skip
[381]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-bmg-2/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render.html
[382]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_psr@fbc-psr-suspend@edp-1:
- shard-lnl: [ABORT][383] ([Intel XE#2625]) -> [ABORT][384] ([Intel XE#2625] / [Intel XE#6675]) +1 other test abort
[383]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8637/shard-lnl-7/igt@kms_psr@fbc-psr-suspend@edp-1.html
[384]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/shard-lnl-5/igt@kms_psr@fbc-psr-suspend@edp-1.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1122]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1122
[Intel XE#1123]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1123
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1125]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1125
[Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126
[Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
[Intel XE#1129]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1129
[Intel XE#1135]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1135
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1337]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1337
[Intel XE#1340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1340
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397
[Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
[Intel XE#1468]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1468
[Intel XE#1469]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1469
[Intel XE#1470]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1470
[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#1512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1512
[Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#1948]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1948
[Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
[Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
[Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2248]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2248
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2286]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2286
[Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
[Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
[Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
[Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
[Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
[Intel XE#2352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2352
[Intel XE#2360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2360
[Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374
[Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
[Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
[Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
[Intel XE#2392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2392
[Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
[Intel XE#2413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2413
[Intel XE#2414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2414
[Intel XE#2427]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2427
[Intel XE#2457]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2457
[Intel XE#2486]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2486
[Intel XE#2505]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2505
[Intel XE#255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/255
[Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
[Intel XE#2625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2625
[Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
[Intel XE#2669]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2669
[Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
[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#2838]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2838
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2853]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2853
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
[Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
[Intel XE#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
[Intel XE#2925]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2925
[Intel XE#2927]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2927
[Intel XE#2934]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2934
[Intel XE#2939]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2939
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
[Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
[Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
[Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
[Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
[Intel XE#3278]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3278
[Intel XE#3307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3307
[Intel XE#3342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3342
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
[Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/378
[Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
[Intel XE#3970]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3970
[Intel XE#4090]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4090
[Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4156]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4156
[Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
[Intel XE#4273]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4273
[Intel XE#4294]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4294
[Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
[Intel XE#4351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4351
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4356
[Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
[Intel XE#4494]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4494
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
[Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
[Intel XE#4609]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4609
[Intel XE#4689]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4689
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
[Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
[Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
[Intel XE#5007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5007
[Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
[Intel XE#5100]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5100
[Intel XE#5191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5191
[Intel XE#5300]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5300
[Intel XE#5625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5625
[Intel XE#5626]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5626
[Intel XE#5694]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5694
[Intel XE#5786]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5786
[Intel XE#584]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/584
[Intel XE#586]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/586
[Intel XE#5893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5893
[Intel XE#5993]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5993
[Intel XE#6032]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6032
[Intel XE#6054]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6054
[Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
[Intel XE#6168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6168
[Intel XE#6251]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6251
[Intel XE#6259]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6259
[Intel XE#6281]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6281
[Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
[Intel XE#6318]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6318
[Intel XE#6360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6360
[Intel XE#6376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6376
[Intel XE#6377]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6377
[Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#6529]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6529
[Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/658
[Intel XE#664]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/664
[Intel XE#6675]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6675
[Intel XE#6676]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6676
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
[Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977
[Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
[i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804
Build changes
-------------
* IGT: IGT_8637 -> IGTPW_14111
* Linux: xe-4141-c701e79730169fab373fba7e759497d755fac592 -> xe-4144-0a21e96e0b6840d2a4e0b45a957679eeddeb4362
IGTPW_14111: cbe794bfcf0b4706c91015270a43dc660c79e3e0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_8637: 730ee3dfb26f8d7891fc240b0132a08c5bc7b949 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-4141-c701e79730169fab373fba7e759497d755fac592: c701e79730169fab373fba7e759497d755fac592
xe-4144-0a21e96e0b6840d2a4e0b45a957679eeddeb4362: 0a21e96e0b6840d2a4e0b45a957679eeddeb4362
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14111/index.html
[-- Attachment #2: Type: text/html, Size: 121941 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* ✗ i915.CI.Full: failure for Xe SR-IOV admin scheduling helpers and test updates (rev2)
2025-11-25 10:22 [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates Marcin Bernatowicz
` (12 preceding siblings ...)
2025-11-25 20:25 ` ✗ Xe.CI.Full: failure " Patchwork
@ 2025-11-26 6:39 ` Patchwork
13 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2025-11-26 6:39 UTC (permalink / raw)
To: Marcin Bernatowicz; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 150812 bytes --]
== Series Details ==
Series: Xe SR-IOV admin scheduling helpers and test updates (rev2)
URL : https://patchwork.freedesktop.org/series/157591/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_17585_full -> IGTPW_14111_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_14111_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_14111_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_14111/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_14111_full:
### IGT changes ###
#### Possible regressions ####
* igt@i915_module_load@reload-with-fault-injection:
- shard-dg1: NOTRUN -> [ABORT][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-13/igt@i915_module_load@reload-with-fault-injection.html
* igt@kms_content_protection@suspend-resume:
- shard-rkl: NOTRUN -> [SKIP][2]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_content_protection@suspend-resume.html
- shard-dg1: NOTRUN -> [SKIP][3]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-16/igt@kms_content_protection@suspend-resume.html
- shard-mtlp: NOTRUN -> [SKIP][4]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-4/igt@kms_content_protection@suspend-resume.html
- shard-dg2: NOTRUN -> [SKIP][5]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-8/igt@kms_content_protection@suspend-resume.html
Known issues
------------
Here are the changes found in IGTPW_14111_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@api_intel_bb@blit-reloc-purge-cache:
- shard-dg1: NOTRUN -> [SKIP][6] ([i915#8411])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-14/igt@api_intel_bb@blit-reloc-purge-cache.html
- shard-mtlp: NOTRUN -> [SKIP][7] ([i915#8411])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@api_intel_bb@blit-reloc-purge-cache.html
- shard-dg2: NOTRUN -> [SKIP][8] ([i915#8411])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@api_intel_bb@blit-reloc-purge-cache.html
* igt@api_intel_bb@crc32:
- shard-rkl: NOTRUN -> [SKIP][9] ([i915#6230])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@api_intel_bb@crc32.html
- shard-tglu: NOTRUN -> [SKIP][10] ([i915#6230])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-3/igt@api_intel_bb@crc32.html
* igt@device_reset@unbind-reset-rebind:
- shard-dg1: NOTRUN -> [ABORT][11] ([i915#11814] / [i915#11815])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-12/igt@device_reset@unbind-reset-rebind.html
* igt@drm_buddy@drm_buddy:
- shard-dg1: NOTRUN -> [DMESG-WARN][12] ([i915#15095]) +1 other test dmesg-warn
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-18/igt@drm_buddy@drm_buddy.html
- shard-snb: NOTRUN -> [DMESG-WARN][13] ([i915#15095]) +1 other test dmesg-warn
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-snb7/igt@drm_buddy@drm_buddy.html
- shard-tglu: NOTRUN -> [DMESG-WARN][14] ([i915#15095]) +1 other test dmesg-warn
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-6/igt@drm_buddy@drm_buddy.html
- shard-mtlp: NOTRUN -> [DMESG-WARN][15] ([i915#15095]) +1 other test dmesg-warn
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-8/igt@drm_buddy@drm_buddy.html
- shard-dg2: NOTRUN -> [DMESG-WARN][16] ([i915#15095]) +1 other test dmesg-warn
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-7/igt@drm_buddy@drm_buddy.html
* igt@drm_buddy@drm_buddy@drm_test_buddy_fragmentation_performance:
- shard-rkl: NOTRUN -> [DMESG-WARN][17] ([i915#15095]) +1 other test dmesg-warn
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-2/igt@drm_buddy@drm_buddy@drm_test_buddy_fragmentation_performance.html
* igt@gem_basic@multigpu-create-close:
- shard-rkl: NOTRUN -> [SKIP][18] ([i915#7697]) +2 other tests skip
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-2/igt@gem_basic@multigpu-create-close.html
- shard-dg1: NOTRUN -> [SKIP][19] ([i915#7697]) +2 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@gem_basic@multigpu-create-close.html
* igt@gem_caching@writes:
- shard-mtlp: NOTRUN -> [SKIP][20] ([i915#4873])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@gem_caching@writes.html
* igt@gem_ccs@block-copy-compressed:
- shard-mtlp: NOTRUN -> [SKIP][21] ([i915#3555] / [i915#9323]) +1 other test skip
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-4/igt@gem_ccs@block-copy-compressed.html
* igt@gem_ccs@block-multicopy-inplace:
- shard-rkl: NOTRUN -> [SKIP][22] ([i915#3555] / [i915#9323])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-2/igt@gem_ccs@block-multicopy-inplace.html
- shard-dg1: NOTRUN -> [SKIP][23] ([i915#3555] / [i915#9323])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-18/igt@gem_ccs@block-multicopy-inplace.html
- shard-tglu: NOTRUN -> [SKIP][24] ([i915#3555] / [i915#9323])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-6/igt@gem_ccs@block-multicopy-inplace.html
* igt@gem_close_race@multigpu-basic-process:
- shard-tglu: NOTRUN -> [SKIP][25] ([i915#7697]) +2 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-7/igt@gem_close_race@multigpu-basic-process.html
- shard-mtlp: NOTRUN -> [SKIP][26] ([i915#7697]) +1 other test skip
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-3/igt@gem_close_race@multigpu-basic-process.html
* igt@gem_close_race@multigpu-basic-threads:
- shard-dg2: NOTRUN -> [SKIP][27] ([i915#7697]) +2 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-6/igt@gem_close_race@multigpu-basic-threads.html
* igt@gem_create@create-ext-cpu-access-big:
- shard-tglu: NOTRUN -> [SKIP][28] ([i915#6335])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-4/igt@gem_create@create-ext-cpu-access-big.html
- shard-mtlp: NOTRUN -> [SKIP][29] ([i915#6335])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-7/igt@gem_create@create-ext-cpu-access-big.html
- shard-rkl: NOTRUN -> [SKIP][30] ([i915#14544] / [i915#6335])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@gem_create@create-ext-cpu-access-big.html
* igt@gem_ctx_persistence@heartbeat-hang:
- shard-dg1: NOTRUN -> [SKIP][31] ([i915#8555])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@gem_ctx_persistence@heartbeat-hang.html
- shard-mtlp: NOTRUN -> [SKIP][32] ([i915#8555]) +1 other test skip
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-8/igt@gem_ctx_persistence@heartbeat-hang.html
* igt@gem_ctx_persistence@smoketest:
- shard-snb: NOTRUN -> [SKIP][33] ([i915#1099]) +7 other tests skip
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-snb4/igt@gem_ctx_persistence@smoketest.html
* igt@gem_eio@hibernate:
- shard-dg1: NOTRUN -> [ABORT][34] ([i915#15317] / [i915#7975])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-16/igt@gem_eio@hibernate.html
- shard-tglu: NOTRUN -> [ABORT][35] ([i915#15317] / [i915#7975])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-4/igt@gem_eio@hibernate.html
- shard-dg2: NOTRUN -> [ABORT][36] ([i915#15317] / [i915#7975])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-8/igt@gem_eio@hibernate.html
- shard-rkl: NOTRUN -> [ABORT][37] ([i915#15317] / [i915#7975])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-8/igt@gem_eio@hibernate.html
* igt@gem_eio@in-flight-suspend:
- shard-glk: NOTRUN -> [INCOMPLETE][38] ([i915#13390])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk6/igt@gem_eio@in-flight-suspend.html
* igt@gem_exec_balancer@invalid-bonds:
- shard-dg1: NOTRUN -> [SKIP][39] ([i915#4036])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@gem_exec_balancer@invalid-bonds.html
- shard-mtlp: NOTRUN -> [SKIP][40] ([i915#4036])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-5/igt@gem_exec_balancer@invalid-bonds.html
* igt@gem_exec_balancer@parallel:
- shard-rkl: NOTRUN -> [SKIP][41] ([i915#14544] / [i915#4525])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@gem_exec_balancer@parallel.html
- shard-tglu: NOTRUN -> [SKIP][42] ([i915#4525]) +2 other tests skip
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-4/igt@gem_exec_balancer@parallel.html
* igt@gem_exec_balancer@parallel-keep-in-fence:
- shard-rkl: NOTRUN -> [SKIP][43] ([i915#4525]) +1 other test skip
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-7/igt@gem_exec_balancer@parallel-keep-in-fence.html
* igt@gem_exec_capture@capture-invisible:
- shard-tglu: NOTRUN -> [SKIP][44] ([i915#6334]) +1 other test skip
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-8/igt@gem_exec_capture@capture-invisible.html
* igt@gem_exec_capture@capture-invisible@smem0:
- shard-mtlp: NOTRUN -> [SKIP][45] ([i915#6334]) +1 other test skip
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@gem_exec_capture@capture-invisible@smem0.html
* igt@gem_exec_capture@capture@vecs0-lmem0:
- shard-dg2: NOTRUN -> [FAIL][46] ([i915#11965]) +4 other tests fail
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-6/igt@gem_exec_capture@capture@vecs0-lmem0.html
- shard-dg1: NOTRUN -> [FAIL][47] ([i915#11965]) +2 other tests fail
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@gem_exec_capture@capture@vecs0-lmem0.html
* igt@gem_exec_fence@submit:
- shard-dg1: NOTRUN -> [SKIP][48] ([i915#4812]) +1 other test skip
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-14/igt@gem_exec_fence@submit.html
- shard-dg2: NOTRUN -> [SKIP][49] ([i915#4812])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@gem_exec_fence@submit.html
* igt@gem_exec_flush@basic-batch-kernel-default-cmd:
- shard-mtlp: NOTRUN -> [SKIP][50] ([i915#3711])
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-5/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html
* igt@gem_exec_flush@basic-uc-set-default:
- shard-dg2: NOTRUN -> [SKIP][51] ([i915#3539])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@gem_exec_flush@basic-uc-set-default.html
- shard-dg1: NOTRUN -> [SKIP][52] ([i915#3539])
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-15/igt@gem_exec_flush@basic-uc-set-default.html
* igt@gem_exec_flush@basic-wb-prw-default:
- shard-dg2: NOTRUN -> [SKIP][53] ([i915#3539] / [i915#4852]) +2 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-8/igt@gem_exec_flush@basic-wb-prw-default.html
* igt@gem_exec_flush@basic-wb-rw-before-default:
- shard-dg1: NOTRUN -> [SKIP][54] ([i915#3539] / [i915#4852]) +1 other test skip
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-15/igt@gem_exec_flush@basic-wb-rw-before-default.html
* igt@gem_exec_reloc@basic-gtt-cpu-noreloc:
- shard-mtlp: NOTRUN -> [SKIP][55] ([i915#3281]) +13 other tests skip
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-5/igt@gem_exec_reloc@basic-gtt-cpu-noreloc.html
* igt@gem_exec_reloc@basic-gtt-wc-noreloc:
- shard-rkl: NOTRUN -> [SKIP][56] ([i915#3281]) +10 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-7/igt@gem_exec_reloc@basic-gtt-wc-noreloc.html
* igt@gem_exec_reloc@basic-wc:
- shard-rkl: NOTRUN -> [SKIP][57] ([i915#14544] / [i915#3281]) +2 other tests skip
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@gem_exec_reloc@basic-wc.html
* igt@gem_exec_reloc@basic-wc-read:
- shard-dg1: NOTRUN -> [SKIP][58] ([i915#3281]) +12 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-16/igt@gem_exec_reloc@basic-wc-read.html
* igt@gem_exec_reloc@basic-write-gtt:
- shard-dg2: NOTRUN -> [SKIP][59] ([i915#3281]) +13 other tests skip
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-3/igt@gem_exec_reloc@basic-write-gtt.html
* igt@gem_exec_schedule@preempt-queue:
- shard-mtlp: NOTRUN -> [SKIP][60] ([i915#4537] / [i915#4812])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-4/igt@gem_exec_schedule@preempt-queue.html
- shard-dg2: NOTRUN -> [SKIP][61] ([i915#4537] / [i915#4812])
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-8/igt@gem_exec_schedule@preempt-queue.html
* igt@gem_exec_schedule@thriceslice:
- shard-snb: NOTRUN -> [SKIP][62] +558 other tests skip
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-snb6/igt@gem_exec_schedule@thriceslice.html
* igt@gem_exec_suspend@basic-s3:
- shard-rkl: [PASS][63] -> [ABORT][64] ([i915#15317]) +1 other test abort
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-2/igt@gem_exec_suspend@basic-s3.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-2/igt@gem_exec_suspend@basic-s3.html
* igt@gem_exec_suspend@basic-s3-devices:
- shard-dg2: NOTRUN -> [ABORT][65] ([i915#15317]) +16 other tests abort
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@gem_exec_suspend@basic-s3-devices.html
* igt@gem_exec_suspend@basic-s4-devices:
- shard-glk: NOTRUN -> [ABORT][66] ([i915#15317]) +4 other tests abort
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk5/igt@gem_exec_suspend@basic-s4-devices.html
* igt@gem_exec_suspend@basic-s4-devices@smem:
- shard-dg1: [PASS][67] -> [ABORT][68] ([i915#15317] / [i915#7975])
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-dg1-18/igt@gem_exec_suspend@basic-s4-devices@smem.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-12/igt@gem_exec_suspend@basic-s4-devices@smem.html
* igt@gem_fence_thrash@bo-write-verify-y:
- shard-dg2: NOTRUN -> [SKIP][69] ([i915#4860]) +1 other test skip
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-6/igt@gem_fence_thrash@bo-write-verify-y.html
- shard-dg1: NOTRUN -> [SKIP][70] ([i915#4860]) +1 other test skip
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@gem_fence_thrash@bo-write-verify-y.html
- shard-mtlp: NOTRUN -> [SKIP][71] ([i915#4860]) +1 other test skip
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-5/igt@gem_fence_thrash@bo-write-verify-y.html
* igt@gem_huc_copy@huc-copy:
- shard-rkl: NOTRUN -> [SKIP][72] ([i915#2190])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@gem_huc_copy@huc-copy.html
- shard-tglu: NOTRUN -> [SKIP][73] ([i915#2190])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-9/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@heavy-verify-multi:
- shard-mtlp: NOTRUN -> [SKIP][74] ([i915#4613]) +3 other tests skip
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@gem_lmem_swapping@heavy-verify-multi.html
* igt@gem_lmem_swapping@heavy-verify-random-ccs:
- shard-rkl: NOTRUN -> [SKIP][75] ([i915#14544] / [i915#4613]) +1 other test skip
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@gem_lmem_swapping@heavy-verify-random-ccs.html
* igt@gem_lmem_swapping@heavy-verify-random-ccs@lmem0:
- shard-dg1: NOTRUN -> [SKIP][76] ([i915#4565]) +2 other tests skip
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-17/igt@gem_lmem_swapping@heavy-verify-random-ccs@lmem0.html
* igt@gem_lmem_swapping@parallel-random-verify:
- shard-tglu-1: NOTRUN -> [SKIP][77] ([i915#4613]) +1 other test skip
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-1/igt@gem_lmem_swapping@parallel-random-verify.html
* igt@gem_lmem_swapping@parallel-random-verify-ccs:
- shard-rkl: NOTRUN -> [SKIP][78] ([i915#4613]) +6 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@gem_lmem_swapping@parallel-random-verify-ccs.html
- shard-dg1: NOTRUN -> [SKIP][79] ([i915#12193]) +2 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-16/igt@gem_lmem_swapping@parallel-random-verify-ccs.html
- shard-glk: NOTRUN -> [SKIP][80] ([i915#4613]) +2 other tests skip
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk1/igt@gem_lmem_swapping@parallel-random-verify-ccs.html
* igt@gem_lmem_swapping@verify-random-ccs:
- shard-tglu: NOTRUN -> [SKIP][81] ([i915#4613]) +6 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-5/igt@gem_lmem_swapping@verify-random-ccs.html
* igt@gem_mmap@short-mmap:
- shard-mtlp: NOTRUN -> [SKIP][82] ([i915#4083]) +7 other tests skip
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@gem_mmap@short-mmap.html
* igt@gem_mmap_gtt@cpuset-medium-copy:
- shard-mtlp: NOTRUN -> [SKIP][83] ([i915#4077]) +18 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-8/igt@gem_mmap_gtt@cpuset-medium-copy.html
* igt@gem_mmap_gtt@medium-copy-odd:
- shard-dg1: NOTRUN -> [SKIP][84] ([i915#4077]) +17 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@gem_mmap_gtt@medium-copy-odd.html
* igt@gem_mmap_wc@write-cpu-read-wc-unflushed:
- shard-dg1: NOTRUN -> [SKIP][85] ([i915#4083]) +9 other tests skip
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-13/igt@gem_mmap_wc@write-cpu-read-wc-unflushed.html
* igt@gem_mmap_wc@write-prefaulted:
- shard-dg2: NOTRUN -> [SKIP][86] ([i915#4083]) +8 other tests skip
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-3/igt@gem_mmap_wc@write-prefaulted.html
* igt@gem_partial_pwrite_pread@reads:
- shard-dg2: NOTRUN -> [SKIP][87] ([i915#3282]) +7 other tests skip
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-7/igt@gem_partial_pwrite_pread@reads.html
* igt@gem_partial_pwrite_pread@reads-display:
- shard-mtlp: NOTRUN -> [SKIP][88] ([i915#3282]) +4 other tests skip
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@gem_partial_pwrite_pread@reads-display.html
* igt@gem_pread@exhaustion:
- shard-dg1: NOTRUN -> [SKIP][89] ([i915#3282]) +7 other tests skip
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-13/igt@gem_pread@exhaustion.html
- shard-snb: NOTRUN -> [WARN][90] ([i915#2658])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-snb1/igt@gem_pread@exhaustion.html
- shard-tglu: NOTRUN -> [WARN][91] ([i915#2658])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-6/igt@gem_pread@exhaustion.html
* igt@gem_pxp@hw-rejects-pxp-buffer:
- shard-rkl: NOTRUN -> [SKIP][92] ([i915#13717])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@gem_pxp@hw-rejects-pxp-buffer.html
- shard-tglu: NOTRUN -> [SKIP][93] ([i915#13398]) +1 other test skip
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-8/igt@gem_pxp@hw-rejects-pxp-buffer.html
- shard-mtlp: NOTRUN -> [SKIP][94] ([i915#13398])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@gem_pxp@hw-rejects-pxp-buffer.html
* igt@gem_pxp@protected-raw-src-copy-not-readible:
- shard-dg2: NOTRUN -> [SKIP][95] ([i915#4270]) +2 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@gem_pxp@protected-raw-src-copy-not-readible.html
* igt@gem_pxp@verify-pxp-key-change-after-suspend-resume:
- shard-dg1: NOTRUN -> [SKIP][96] ([i915#4270]) +2 other tests skip
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@gem_pxp@verify-pxp-key-change-after-suspend-resume.html
* igt@gem_render_copy@linear-to-vebox-yf-tiled:
- shard-dg2: NOTRUN -> [SKIP][97] ([i915#5190] / [i915#8428]) +6 other tests skip
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-3/igt@gem_render_copy@linear-to-vebox-yf-tiled.html
* igt@gem_render_copy@y-tiled-ccs-to-yf-tiled-mc-ccs:
- shard-mtlp: NOTRUN -> [SKIP][98] ([i915#8428]) +6 other tests skip
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-8/igt@gem_render_copy@y-tiled-ccs-to-yf-tiled-mc-ccs.html
* igt@gem_set_tiling_vs_blt@tiled-to-tiled:
- shard-dg2: NOTRUN -> [SKIP][99] ([i915#4079]) +4 other tests skip
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html
- shard-rkl: NOTRUN -> [SKIP][100] ([i915#8411]) +1 other test skip
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html
* igt@gem_set_tiling_vs_gtt:
- shard-dg1: NOTRUN -> [SKIP][101] ([i915#4079]) +3 other tests skip
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-12/igt@gem_set_tiling_vs_gtt.html
* igt@gem_softpin@noreloc-s3:
- shard-glk: [PASS][102] -> [ABORT][103] ([i915#15317]) +3 other tests abort
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-glk1/igt@gem_softpin@noreloc-s3.html
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk5/igt@gem_softpin@noreloc-s3.html
* igt@gem_tiled_partial_pwrite_pread@writes:
- shard-dg2: NOTRUN -> [SKIP][104] ([i915#4077]) +9 other tests skip
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-8/igt@gem_tiled_partial_pwrite_pread@writes.html
- shard-rkl: NOTRUN -> [SKIP][105] ([i915#3282]) +7 other tests skip
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-8/igt@gem_tiled_partial_pwrite_pread@writes.html
* igt@gem_tiled_pread_basic:
- shard-mtlp: NOTRUN -> [SKIP][106] ([i915#4079]) +3 other tests skip
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-8/igt@gem_tiled_pread_basic.html
* igt@gem_userptr_blits@create-destroy-unsync:
- shard-dg2: NOTRUN -> [SKIP][107] ([i915#3297]) +2 other tests skip
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@gem_userptr_blits@create-destroy-unsync.html
* igt@gem_userptr_blits@dmabuf-sync:
- shard-tglu: NOTRUN -> [SKIP][108] ([i915#3297] / [i915#3323])
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-7/igt@gem_userptr_blits@dmabuf-sync.html
- shard-glk: NOTRUN -> [SKIP][109] ([i915#3323])
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk5/igt@gem_userptr_blits@dmabuf-sync.html
- shard-mtlp: NOTRUN -> [SKIP][110] ([i915#3297]) +3 other tests skip
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@gem_userptr_blits@dmabuf-sync.html
- shard-rkl: NOTRUN -> [SKIP][111] ([i915#3297] / [i915#3323])
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@gem_userptr_blits@dmabuf-sync.html
* igt@gem_userptr_blits@map-fixed-invalidate-overlap:
- shard-dg1: NOTRUN -> [SKIP][112] ([i915#3297] / [i915#4880]) +1 other test skip
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-14/igt@gem_userptr_blits@map-fixed-invalidate-overlap.html
* igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
- shard-dg2: NOTRUN -> [SKIP][113] ([i915#3297] / [i915#4880])
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
* igt@gem_userptr_blits@relocations:
- shard-rkl: NOTRUN -> [SKIP][114] ([i915#3281] / [i915#3297])
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@gem_userptr_blits@relocations.html
* igt@gem_userptr_blits@unsync-overlap:
- shard-rkl: NOTRUN -> [SKIP][115] ([i915#14544] / [i915#3297])
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@gem_userptr_blits@unsync-overlap.html
* igt@gem_userptr_blits@unsync-unmap-after-close:
- shard-rkl: NOTRUN -> [SKIP][116] ([i915#3297])
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@gem_userptr_blits@unsync-unmap-after-close.html
- shard-dg1: NOTRUN -> [SKIP][117] ([i915#3297]) +2 other tests skip
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-14/igt@gem_userptr_blits@unsync-unmap-after-close.html
- shard-tglu: NOTRUN -> [SKIP][118] ([i915#3297]) +1 other test skip
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-7/igt@gem_userptr_blits@unsync-unmap-after-close.html
* igt@gem_workarounds@suspend-resume-context:
- shard-mtlp: [PASS][119] -> [ABORT][120] ([i915#15317]) +1 other test abort
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-mtlp-3/igt@gem_workarounds@suspend-resume-context.html
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-7/igt@gem_workarounds@suspend-resume-context.html
* igt@gen3_render_tiledy_blits:
- shard-mtlp: NOTRUN -> [SKIP][121] +22 other tests skip
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-3/igt@gen3_render_tiledy_blits.html
* igt@gen7_exec_parse@bitmasks:
- shard-dg2: NOTRUN -> [SKIP][122] +15 other tests skip
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-11/igt@gen7_exec_parse@bitmasks.html
* igt@gen9_exec_parse@bb-chained:
- shard-rkl: NOTRUN -> [SKIP][123] ([i915#2527]) +4 other tests skip
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@gen9_exec_parse@bb-chained.html
* igt@gen9_exec_parse@bb-large:
- shard-dg1: NOTRUN -> [SKIP][124] ([i915#2527]) +1 other test skip
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-13/igt@gen9_exec_parse@bb-large.html
- shard-tglu: NOTRUN -> [SKIP][125] ([i915#2527] / [i915#2856]) +4 other tests skip
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-9/igt@gen9_exec_parse@bb-large.html
- shard-mtlp: NOTRUN -> [SKIP][126] ([i915#2856]) +2 other tests skip
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-4/igt@gen9_exec_parse@bb-large.html
* igt@gen9_exec_parse@unaligned-access:
- shard-dg2: NOTRUN -> [SKIP][127] ([i915#2856]) +2 other tests skip
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-6/igt@gen9_exec_parse@unaligned-access.html
* igt@i915_drm_fdinfo@all-busy-check-all:
- shard-mtlp: NOTRUN -> [SKIP][128] ([i915#14123])
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-4/igt@i915_drm_fdinfo@all-busy-check-all.html
- shard-dg1: NOTRUN -> [SKIP][129] ([i915#14123])
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-13/igt@i915_drm_fdinfo@all-busy-check-all.html
* igt@i915_drm_fdinfo@all-busy-idle-check-all:
- shard-dg2: NOTRUN -> [SKIP][130] ([i915#14123]) +1 other test skip
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-3/igt@i915_drm_fdinfo@all-busy-idle-check-all.html
* igt@i915_drm_fdinfo@busy-idle-check-all@ccs0:
- shard-dg2: NOTRUN -> [SKIP][131] ([i915#11527]) +7 other tests skip
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-7/igt@i915_drm_fdinfo@busy-idle-check-all@ccs0.html
* igt@i915_drm_fdinfo@busy-idle-check-all@rcs0:
- shard-mtlp: NOTRUN -> [SKIP][132] ([i915#11527]) +6 other tests skip
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-8/igt@i915_drm_fdinfo@busy-idle-check-all@rcs0.html
* igt@i915_drm_fdinfo@busy-idle-check-all@vcs1:
- shard-dg1: NOTRUN -> [SKIP][133] ([i915#11527]) +5 other tests skip
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-18/igt@i915_drm_fdinfo@busy-idle-check-all@vcs1.html
* igt@i915_drm_fdinfo@virtual-busy:
- shard-dg1: NOTRUN -> [SKIP][134] ([i915#14118])
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-16/igt@i915_drm_fdinfo@virtual-busy.html
- shard-mtlp: NOTRUN -> [SKIP][135] ([i915#14118])
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-4/igt@i915_drm_fdinfo@virtual-busy.html
* igt@i915_drm_fdinfo@virtual-busy-hang-all:
- shard-dg2: NOTRUN -> [SKIP][136] ([i915#14118]) +1 other test skip
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@i915_drm_fdinfo@virtual-busy-hang-all.html
* igt@i915_fb_tiling@basic-x-tiling:
- shard-dg2: NOTRUN -> [SKIP][137] ([i915#13786])
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-7/igt@i915_fb_tiling@basic-x-tiling.html
* igt@i915_module_load@reload-no-display:
- shard-dg2: NOTRUN -> [DMESG-WARN][138] ([i915#13029] / [i915#14545])
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-7/igt@i915_module_load@reload-no-display.html
- shard-dg1: NOTRUN -> [DMESG-WARN][139] ([i915#13029] / [i915#14545])
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-18/igt@i915_module_load@reload-no-display.html
- shard-snb: NOTRUN -> [DMESG-WARN][140] ([i915#14545])
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-snb7/igt@i915_module_load@reload-no-display.html
* igt@i915_pm_freq_api@freq-reset-multiple:
- shard-rkl: NOTRUN -> [SKIP][141] ([i915#14544] / [i915#8399])
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@i915_pm_freq_api@freq-reset-multiple.html
* igt@i915_pm_freq_api@freq-suspend:
- shard-rkl: NOTRUN -> [SKIP][142] ([i915#8399]) +1 other test skip
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@i915_pm_freq_api@freq-suspend.html
- shard-tglu: NOTRUN -> [SKIP][143] ([i915#8399]) +1 other test skip
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-3/igt@i915_pm_freq_api@freq-suspend.html
* igt@i915_pm_rpm@system-suspend:
- shard-dg1: NOTRUN -> [ABORT][144] ([i915#15317]) +12 other tests abort
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-15/igt@i915_pm_rpm@system-suspend.html
- shard-glk: NOTRUN -> [INCOMPLETE][145] ([i915#13356])
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk6/igt@i915_pm_rpm@system-suspend.html
* igt@i915_pm_rps@min-max-config-idle:
- shard-dg2: NOTRUN -> [SKIP][146] ([i915#11681] / [i915#6621])
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@i915_pm_rps@min-max-config-idle.html
- shard-dg1: NOTRUN -> [SKIP][147] ([i915#11681] / [i915#6621])
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-14/igt@i915_pm_rps@min-max-config-idle.html
* igt@i915_pm_rps@thresholds-park:
- shard-dg2: NOTRUN -> [SKIP][148] ([i915#11681])
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-5/igt@i915_pm_rps@thresholds-park.html
- shard-dg1: NOTRUN -> [SKIP][149] ([i915#11681]) +1 other test skip
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-16/igt@i915_pm_rps@thresholds-park.html
- shard-mtlp: NOTRUN -> [SKIP][150] ([i915#11681])
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-6/igt@i915_pm_rps@thresholds-park.html
* igt@i915_pm_sseu@full-enable:
- shard-dg2: NOTRUN -> [SKIP][151] ([i915#4387])
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@i915_pm_sseu@full-enable.html
- shard-rkl: NOTRUN -> [SKIP][152] ([i915#4387])
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@i915_pm_sseu@full-enable.html
- shard-dg1: NOTRUN -> [SKIP][153] ([i915#4387])
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-14/igt@i915_pm_sseu@full-enable.html
- shard-tglu: NOTRUN -> [SKIP][154] ([i915#4387])
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-7/igt@i915_pm_sseu@full-enable.html
* igt@i915_query@test-query-geometry-subslices:
- shard-rkl: NOTRUN -> [SKIP][155] ([i915#5723])
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@i915_query@test-query-geometry-subslices.html
- shard-dg1: NOTRUN -> [SKIP][156] ([i915#5723])
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-13/igt@i915_query@test-query-geometry-subslices.html
- shard-tglu: NOTRUN -> [SKIP][157] ([i915#5723])
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-6/igt@i915_query@test-query-geometry-subslices.html
* igt@i915_suspend@basic-s3-without-i915:
- shard-glk: NOTRUN -> [INCOMPLETE][158] ([i915#4817])
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk1/igt@i915_suspend@basic-s3-without-i915.html
- shard-mtlp: NOTRUN -> [SKIP][159] ([i915#6645])
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-5/igt@i915_suspend@basic-s3-without-i915.html
* igt@i915_suspend@debugfs-reader:
- shard-rkl: NOTRUN -> [ABORT][160] ([i915#15317]) +10 other tests abort
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@i915_suspend@debugfs-reader.html
* igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling:
- shard-mtlp: NOTRUN -> [SKIP][161] ([i915#4212]) +4 other tests skip
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-7/igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling.html
* igt@kms_addfb_basic@bo-too-small-due-to-tiling:
- shard-dg1: NOTRUN -> [SKIP][162] ([i915#4212]) +3 other tests skip
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-17/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html
* igt@kms_addfb_basic@clobberred-modifier:
- shard-dg2: NOTRUN -> [SKIP][163] ([i915#4212]) +1 other test skip
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-6/igt@kms_addfb_basic@clobberred-modifier.html
* igt@kms_async_flips@basic-modeset-with-all-modifiers-formats@pipe-a-edp-1-4-yuyv:
- shard-mtlp: NOTRUN -> [FAIL][164] ([i915#15313]) +36 other tests fail
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_async_flips@basic-modeset-with-all-modifiers-formats@pipe-a-edp-1-4-yuyv.html
* igt@kms_async_flips@test-cursor:
- shard-mtlp: NOTRUN -> [SKIP][165] ([i915#10333])
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-4/igt@kms_async_flips@test-cursor.html
* igt@kms_atomic@plane-primary-overlay-mutable-zpos:
- shard-mtlp: NOTRUN -> [SKIP][166] ([i915#3555])
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
- shard-dg2: NOTRUN -> [SKIP][167] ([i915#9531])
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
- shard-rkl: NOTRUN -> [SKIP][168] ([i915#9531])
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
- shard-dg1: NOTRUN -> [SKIP][169] ([i915#9531])
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-12/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
- shard-tglu: NOTRUN -> [SKIP][170] ([i915#9531])
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-8/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
- shard-tglu: [PASS][171] -> [FAIL][172] ([i915#14857]) +1 other test fail
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-tglu-4/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-4/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
* igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
- shard-rkl: NOTRUN -> [SKIP][173] ([i915#1769] / [i915#3555])
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html
- shard-snb: NOTRUN -> [SKIP][174] ([i915#1769])
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-snb6/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html
- shard-tglu: NOTRUN -> [SKIP][175] ([i915#1769] / [i915#3555])
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-3/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html
* igt@kms_big_fb@4-tiled-addfb-size-overflow:
- shard-dg1: NOTRUN -> [SKIP][176] ([i915#4423] / [i915#5286])
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-12/igt@kms_big_fb@4-tiled-addfb-size-overflow.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-rkl: NOTRUN -> [SKIP][177] ([i915#5286]) +8 other tests skip
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
- shard-dg1: NOTRUN -> [SKIP][178] ([i915#4538] / [i915#5286]) +7 other tests skip
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
- shard-tglu: NOTRUN -> [SKIP][179] ([i915#5286]) +10 other tests skip
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-2/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
- shard-tglu-1: NOTRUN -> [SKIP][180] ([i915#5286]) +1 other test skip
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-1/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
* igt@kms_big_fb@x-tiled-64bpp-rotate-270:
- shard-dg1: NOTRUN -> [SKIP][181] ([i915#3638]) +4 other tests skip
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-14/igt@kms_big_fb@x-tiled-64bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-8bpp-rotate-270:
- shard-rkl: NOTRUN -> [SKIP][182] ([i915#3638]) +5 other tests skip
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
- shard-dg2: NOTRUN -> [SKIP][183] ([i915#4538] / [i915#5190]) +11 other tests skip
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-11/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@yf-tiled-addfb-size-overflow:
- shard-dg2: NOTRUN -> [SKIP][184] ([i915#5190]) +1 other test skip
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html
- shard-mtlp: NOTRUN -> [SKIP][185] ([i915#6187])
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180:
- shard-dg1: NOTRUN -> [SKIP][186] ([i915#4538]) +6 other tests skip
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-18/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180.html
* igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs:
- shard-tglu: NOTRUN -> [SKIP][187] ([i915#12313]) +3 other tests skip
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-3/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html
* igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4:
- shard-dg1: NOTRUN -> [SKIP][188] ([i915#6095]) +148 other tests skip
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-15/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4.html
* igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][189] ([i915#10307] / [i915#10434] / [i915#6095]) +2 other tests skip
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-1.html
* igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs:
- shard-dg2: NOTRUN -> [SKIP][190] ([i915#12313]) +1 other test skip
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
- shard-rkl: NOTRUN -> [SKIP][191] ([i915#12313]) +1 other test skip
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
- shard-mtlp: NOTRUN -> [SKIP][192] ([i915#12313])
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][193] ([i915#14544] / [i915#6095]) +6 other tests skip
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-c-dp-3:
- shard-dg2: NOTRUN -> [INCOMPLETE][194] ([i915#12796])
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-11/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-c-dp-3.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][195] ([i915#14098] / [i915#14544] / [i915#6095]) +4 other tests skip
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs@pipe-a-edp-1:
- shard-mtlp: NOTRUN -> [ABORT][196] ([i915#15317]) +20 other tests abort
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs@pipe-a-edp-1.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-1:
- shard-tglu-1: NOTRUN -> [SKIP][197] ([i915#6095]) +9 other tests skip
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-1.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-ccs:
- shard-glk10: NOTRUN -> [ABORT][198] ([i915#15317]) +4 other tests abort
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk10/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-b-hdmi-a-1:
- shard-glk10: NOTRUN -> [INCOMPLETE][199] ([i915#12796])
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk10/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-b-hdmi-a-1.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-1:
- shard-tglu: [PASS][200] -> [ABORT][201] ([i915#15317])
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-tglu-6/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-1.html
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-8/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-1.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][202] ([i915#6095]) +21 other tests skip
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-3.html
* igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs:
- shard-rkl: NOTRUN -> [SKIP][203] ([i915#14098] / [i915#6095]) +57 other tests skip
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-1:
- shard-tglu: NOTRUN -> [SKIP][204] ([i915#6095]) +124 other tests skip
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-3/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-1.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs:
- shard-rkl: NOTRUN -> [SKIP][205] ([i915#12313] / [i915#14544])
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html
- shard-dg1: NOTRUN -> [SKIP][206] ([i915#12313]) +1 other test skip
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-18/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][207] ([i915#10307] / [i915#6095]) +109 other tests skip
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-7/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-b-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][208] ([i915#6095]) +74 other tests skip
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-b-edp-1.html
* igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][209] ([i915#6095]) +72 other tests skip
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-tglu: NOTRUN -> [SKIP][210] ([i915#3742]) +1 other test skip
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-5/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_cdclk@plane-scaling:
- shard-rkl: NOTRUN -> [SKIP][211] ([i915#3742])
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_cdclk@plane-scaling.html
- shard-dg1: NOTRUN -> [SKIP][212] ([i915#3742])
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-16/igt@kms_cdclk@plane-scaling.html
* igt@kms_cdclk@plane-scaling@pipe-b-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][213] ([i915#13783]) +4 other tests skip
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-8/igt@kms_cdclk@plane-scaling@pipe-b-hdmi-a-3.html
* igt@kms_cdclk@plane-scaling@pipe-c-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][214] ([i915#13783]) +4 other tests skip
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-4/igt@kms_cdclk@plane-scaling@pipe-c-edp-1.html
* igt@kms_chamelium_audio@dp-audio:
- shard-tglu: NOTRUN -> [SKIP][215] ([i915#11151] / [i915#7828]) +17 other tests skip
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-4/igt@kms_chamelium_audio@dp-audio.html
* igt@kms_chamelium_audio@hdmi-audio-edid:
- shard-dg1: NOTRUN -> [SKIP][216] ([i915#11151] / [i915#7828]) +15 other tests skip
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-12/igt@kms_chamelium_audio@hdmi-audio-edid.html
* igt@kms_chamelium_color@ctm-green-to-red:
- shard-rkl: NOTRUN -> [SKIP][217] ([i915#14544]) +5 other tests skip
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_chamelium_color@ctm-green-to-red.html
* igt@kms_chamelium_edid@dp-edid-read:
- shard-tglu-1: NOTRUN -> [SKIP][218] ([i915#11151] / [i915#7828]) +1 other test skip
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-1/igt@kms_chamelium_edid@dp-edid-read.html
* igt@kms_chamelium_edid@dp-edid-stress-resolution-non-4k:
- shard-dg2: NOTRUN -> [SKIP][219] ([i915#11151] / [i915#7828]) +9 other tests skip
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-8/igt@kms_chamelium_edid@dp-edid-stress-resolution-non-4k.html
* igt@kms_chamelium_frames@dp-crc-fast:
- shard-glk10: NOTRUN -> [SKIP][220] +58 other tests skip
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk10/igt@kms_chamelium_frames@dp-crc-fast.html
* igt@kms_chamelium_hpd@hdmi-hpd-enable-disable-mode:
- shard-mtlp: NOTRUN -> [SKIP][221] ([i915#11151] / [i915#7828]) +9 other tests skip
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-4/igt@kms_chamelium_hpd@hdmi-hpd-enable-disable-mode.html
* igt@kms_chamelium_hpd@vga-hpd-fast:
- shard-rkl: NOTRUN -> [SKIP][222] ([i915#11151] / [i915#7828]) +13 other tests skip
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-7/igt@kms_chamelium_hpd@vga-hpd-fast.html
* igt@kms_chamelium_hpd@vga-hpd-for-each-pipe:
- shard-rkl: NOTRUN -> [SKIP][223] ([i915#11151] / [i915#14544] / [i915#7828]) +3 other tests skip
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_chamelium_hpd@vga-hpd-for-each-pipe.html
* igt@kms_chamelium_sharpness_filter@filter-basic:
- shard-dg2: NOTRUN -> [SKIP][224] ([i915#15238])
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-6/igt@kms_chamelium_sharpness_filter@filter-basic.html
- shard-dg1: NOTRUN -> [SKIP][225] ([i915#15238])
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@kms_chamelium_sharpness_filter@filter-basic.html
* igt@kms_content_protection@dp-mst-type-1:
- shard-mtlp: NOTRUN -> [SKIP][226] ([i915#3299])
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-4/igt@kms_content_protection@dp-mst-type-1.html
* igt@kms_content_protection@legacy@pipe-a-dp-3:
- shard-dg2: NOTRUN -> [FAIL][227] ([i915#7173])
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-11/igt@kms_content_protection@legacy@pipe-a-dp-3.html
* igt@kms_content_protection@lic-type-0:
- shard-rkl: NOTRUN -> [SKIP][228] ([i915#9424])
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_content_protection@lic-type-0.html
* igt@kms_content_protection@mei-interface:
- shard-mtlp: NOTRUN -> [SKIP][229] ([i915#8063] / [i915#9433])
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-5/igt@kms_content_protection@mei-interface.html
* igt@kms_content_protection@type1:
- shard-dg2: NOTRUN -> [SKIP][230] ([i915#7118] / [i915#9424])
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@kms_content_protection@type1.html
- shard-rkl: NOTRUN -> [SKIP][231] ([i915#7118] / [i915#9424]) +1 other test skip
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_content_protection@type1.html
- shard-dg1: NOTRUN -> [SKIP][232] ([i915#7116] / [i915#9424]) +1 other test skip
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-14/igt@kms_content_protection@type1.html
- shard-tglu: NOTRUN -> [SKIP][233] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424])
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-7/igt@kms_content_protection@type1.html
* igt@kms_cursor_crc@cursor-offscreen-128x42:
- shard-mtlp: NOTRUN -> [SKIP][234] ([i915#8814]) +1 other test skip
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-6/igt@kms_cursor_crc@cursor-offscreen-128x42.html
* igt@kms_cursor_crc@cursor-offscreen-512x512:
- shard-rkl: NOTRUN -> [SKIP][235] ([i915#13049] / [i915#14544])
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_cursor_crc@cursor-offscreen-512x512.html
* igt@kms_cursor_crc@cursor-onscreen-128x42@pipe-a-hdmi-a-1:
- shard-tglu-1: NOTRUN -> [FAIL][236] ([i915#13566]) +1 other test fail
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-1/igt@kms_cursor_crc@cursor-onscreen-128x42@pipe-a-hdmi-a-1.html
* igt@kms_cursor_crc@cursor-onscreen-32x32:
- shard-rkl: NOTRUN -> [SKIP][237] ([i915#3555]) +6 other tests skip
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_cursor_crc@cursor-onscreen-32x32.html
* igt@kms_cursor_crc@cursor-random-128x42:
- shard-tglu: [PASS][238] -> [FAIL][239] ([i915#13566]) +1 other test fail
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-tglu-3/igt@kms_cursor_crc@cursor-random-128x42.html
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-10/igt@kms_cursor_crc@cursor-random-128x42.html
* igt@kms_cursor_crc@cursor-random-256x85:
- shard-rkl: NOTRUN -> [FAIL][240] ([i915#13566]) +2 other tests fail
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-7/igt@kms_cursor_crc@cursor-random-256x85.html
- shard-tglu: NOTRUN -> [FAIL][241] ([i915#13566]) +1 other test fail
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-2/igt@kms_cursor_crc@cursor-random-256x85.html
* igt@kms_cursor_crc@cursor-random-32x10:
- shard-tglu: NOTRUN -> [SKIP][242] ([i915#3555]) +9 other tests skip
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-6/igt@kms_cursor_crc@cursor-random-32x10.html
* igt@kms_cursor_crc@cursor-random-512x170:
- shard-rkl: NOTRUN -> [SKIP][243] ([i915#13049]) +2 other tests skip
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-2/igt@kms_cursor_crc@cursor-random-512x170.html
- shard-dg1: NOTRUN -> [SKIP][244] ([i915#13049]) +2 other tests skip
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@kms_cursor_crc@cursor-random-512x170.html
* igt@kms_cursor_crc@cursor-random-64x21:
- shard-rkl: [PASS][245] -> [FAIL][246] ([i915#13566]) +2 other tests fail
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_cursor_crc@cursor-random-64x21.html
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_cursor_crc@cursor-random-64x21.html
* igt@kms_cursor_crc@cursor-random-max-size:
- shard-glk: NOTRUN -> [SKIP][247] +239 other tests skip
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk5/igt@kms_cursor_crc@cursor-random-max-size.html
- shard-mtlp: NOTRUN -> [SKIP][248] ([i915#3555] / [i915#8814]) +1 other test skip
[248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_cursor_crc@cursor-random-max-size.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x170:
- shard-tglu: NOTRUN -> [SKIP][249] ([i915#13049]) +3 other tests skip
[249]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-9/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x512:
- shard-mtlp: NOTRUN -> [SKIP][250] ([i915#13049]) +2 other tests skip
[250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
- shard-dg2: NOTRUN -> [SKIP][251] ([i915#13049])
[251]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
* igt@kms_cursor_crc@cursor-sliding-32x10:
- shard-dg2: NOTRUN -> [SKIP][252] ([i915#3555]) +7 other tests skip
[252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-3/igt@kms_cursor_crc@cursor-sliding-32x10.html
- shard-tglu-1: NOTRUN -> [SKIP][253] ([i915#3555]) +1 other test skip
[253]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-1/igt@kms_cursor_crc@cursor-sliding-32x10.html
* igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
- shard-mtlp: NOTRUN -> [SKIP][254] ([i915#9809]) +4 other tests skip
[254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- shard-mtlp: NOTRUN -> [SKIP][255] ([i915#4213]) +1 other test skip
[255]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size:
- shard-rkl: NOTRUN -> [SKIP][256] ([i915#4103]) +1 other test skip
[256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html
- shard-dg1: NOTRUN -> [SKIP][257] ([i915#4103] / [i915#4213]) +2 other tests skip
[257]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-12/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size:
- shard-dg2: NOTRUN -> [SKIP][258] ([i915#13046] / [i915#5354]) +4 other tests skip
[258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-3/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html
* igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot:
- shard-rkl: NOTRUN -> [SKIP][259] ([i915#9067])
[259]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
- shard-tglu: NOTRUN -> [SKIP][260] ([i915#9067])
[260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-3/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
- shard-tglu: NOTRUN -> [SKIP][261] ([i915#4103]) +2 other tests skip
[261]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-10/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
- shard-dg2: NOTRUN -> [SKIP][262] ([i915#4103] / [i915#4213]) +2 other tests skip
[262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-3/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
- shard-rkl: NOTRUN -> [SKIP][263] ([i915#14544] / [i915#4103])
[263]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1:
- shard-rkl: NOTRUN -> [SKIP][264] ([i915#3804])
[264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html
* igt@kms_dp_link_training@non-uhbr-mst:
- shard-mtlp: NOTRUN -> [SKIP][265] ([i915#13749])
[265]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-5/igt@kms_dp_link_training@non-uhbr-mst.html
* igt@kms_dp_link_training@non-uhbr-sst:
- shard-rkl: NOTRUN -> [SKIP][266] ([i915#13749])
[266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_dp_link_training@non-uhbr-sst.html
- shard-tglu: NOTRUN -> [SKIP][267] ([i915#13749])
[267]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-7/igt@kms_dp_link_training@non-uhbr-sst.html
* igt@kms_draw_crc@draw-method-mmap-gtt:
- shard-dg1: NOTRUN -> [SKIP][268] ([i915#8812])
[268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-18/igt@kms_draw_crc@draw-method-mmap-gtt.html
- shard-dg2: NOTRUN -> [SKIP][269] ([i915#8812])
[269]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-3/igt@kms_draw_crc@draw-method-mmap-gtt.html
* igt@kms_dsc@dsc-fractional-bpp:
- shard-rkl: NOTRUN -> [SKIP][270] ([i915#3840])
[270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_dsc@dsc-fractional-bpp.html
- shard-dg1: NOTRUN -> [SKIP][271] ([i915#3840])
[271]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-12/igt@kms_dsc@dsc-fractional-bpp.html
- shard-tglu: NOTRUN -> [SKIP][272] ([i915#3840])
[272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-8/igt@kms_dsc@dsc-fractional-bpp.html
- shard-mtlp: NOTRUN -> [SKIP][273] ([i915#3840] / [i915#9688])
[273]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_dsc@dsc-fractional-bpp.html
* igt@kms_dsc@dsc-with-bpc-formats:
- shard-rkl: NOTRUN -> [SKIP][274] ([i915#3555] / [i915#3840])
[274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_dsc@dsc-with-bpc-formats.html
- shard-tglu: NOTRUN -> [SKIP][275] ([i915#3555] / [i915#3840])
[275]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-3/igt@kms_dsc@dsc-with-bpc-formats.html
* igt@kms_dsc@dsc-with-formats:
- shard-dg1: NOTRUN -> [SKIP][276] ([i915#3555] / [i915#3840])
[276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@kms_dsc@dsc-with-formats.html
* igt@kms_dsc@dsc-with-output-formats-with-bpc:
- shard-mtlp: NOTRUN -> [SKIP][277] ([i915#3555] / [i915#3840] / [i915#9053])
[277]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-3/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
- shard-dg2: NOTRUN -> [SKIP][278] ([i915#3840] / [i915#9053])
[278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-7/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
- shard-rkl: NOTRUN -> [SKIP][279] ([i915#3840] / [i915#9053])
[279]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
- shard-dg1: NOTRUN -> [SKIP][280] ([i915#3840] / [i915#9053])
[280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-13/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
- shard-tglu: NOTRUN -> [SKIP][281] ([i915#3840] / [i915#9053])
[281]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-6/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-tglu-1: NOTRUN -> [ABORT][282] ([i915#15317])
[282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-1/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_feature_discovery@psr2:
- shard-dg1: NOTRUN -> [SKIP][283] ([i915#658])
[283]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-17/igt@kms_feature_discovery@psr2.html
- shard-tglu: NOTRUN -> [SKIP][284] ([i915#658])
[284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-4/igt@kms_feature_discovery@psr2.html
- shard-rkl: NOTRUN -> [SKIP][285] ([i915#14544] / [i915#658])
[285]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_feature_discovery@psr2.html
* igt@kms_flip@2x-blocking-absolute-wf_vblank:
- shard-tglu: NOTRUN -> [SKIP][286] ([i915#3637] / [i915#9934]) +12 other tests skip
[286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-8/igt@kms_flip@2x-blocking-absolute-wf_vblank.html
- shard-mtlp: NOTRUN -> [SKIP][287] ([i915#3637] / [i915#9934]) +8 other tests skip
[287]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_flip@2x-blocking-absolute-wf_vblank.html
* igt@kms_flip@2x-dpms-vs-vblank-race-interruptible:
- shard-tglu-1: NOTRUN -> [SKIP][288] ([i915#3637] / [i915#9934])
[288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-1/igt@kms_flip@2x-dpms-vs-vblank-race-interruptible.html
* igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible:
- shard-rkl: NOTRUN -> [SKIP][289] ([i915#9934]) +7 other tests skip
[289]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html
* igt@kms_flip@2x-flip-vs-modeset-vs-hang:
- shard-dg2: NOTRUN -> [SKIP][290] ([i915#9934]) +9 other tests skip
[290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-7/igt@kms_flip@2x-flip-vs-modeset-vs-hang.html
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset:
- shard-rkl: NOTRUN -> [SKIP][291] ([i915#14544] / [i915#9934]) +1 other test skip
[291]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html
- shard-dg1: NOTRUN -> [SKIP][292] ([i915#9934]) +9 other tests skip
[292]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-17/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling:
- shard-dg2: NOTRUN -> [SKIP][293] ([i915#2672] / [i915#3555]) +3 other tests skip
[293]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-6/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
- shard-dg1: NOTRUN -> [SKIP][294] ([i915#2587] / [i915#2672] / [i915#3555]) +1 other test skip
[294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-17/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
- shard-tglu: NOTRUN -> [SKIP][295] ([i915#2587] / [i915#2672] / [i915#3555]) +2 other tests skip
[295]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-4/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
- shard-rkl: NOTRUN -> [SKIP][296] ([i915#14544] / [i915#2672] / [i915#3555])
[296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode:
- shard-rkl: NOTRUN -> [SKIP][297] ([i915#14544] / [i915#2672])
[297]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling:
- shard-dg2: NOTRUN -> [SKIP][298] ([i915#2672] / [i915#3555] / [i915#5190]) +1 other test skip
[298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][299] ([i915#2672]) +5 other tests skip
[299]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-valid-mode:
- shard-tglu: NOTRUN -> [SKIP][300] ([i915#2587] / [i915#2672]) +8 other tests skip
[300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-5/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling:
- shard-tglu: NOTRUN -> [SKIP][301] ([i915#2672] / [i915#3555]) +5 other tests skip
[301]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-2/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling.html
- shard-mtlp: NOTRUN -> [SKIP][302] ([i915#3555] / [i915#8810] / [i915#8813])
[302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode:
- shard-dg1: NOTRUN -> [SKIP][303] ([i915#2587] / [i915#2672]) +7 other tests skip
[303]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-18/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling:
- shard-mtlp: NOTRUN -> [SKIP][304] ([i915#3555] / [i915#8813])
[304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][305] ([i915#8810] / [i915#8813]) +1 other test skip
[305]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][306] ([i915#2672] / [i915#8813]) +3 other tests skip
[306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling:
- shard-dg1: NOTRUN -> [SKIP][307] ([i915#2672] / [i915#3555]) +5 other tests skip
[307]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-18/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling:
- shard-rkl: NOTRUN -> [SKIP][308] ([i915#2672] / [i915#3555]) +7 other tests skip
[308]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-7/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-valid-mode:
- shard-rkl: NOTRUN -> [SKIP][309] ([i915#2672]) +7 other tests skip
[309]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-7/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling:
- shard-mtlp: NOTRUN -> [SKIP][310] ([i915#2672] / [i915#3555] / [i915#8813]) +11 other tests skip
[310]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-5/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-gtt:
- shard-mtlp: NOTRUN -> [SKIP][311] ([i915#8708]) +10 other tests skip
[311]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbc-2p-rte:
- shard-dg2: NOTRUN -> [SKIP][312] ([i915#5354]) +37 other tests skip
[312]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-2p-rte.html
* igt@kms_frontbuffer_tracking@fbc-tiling-4:
- shard-rkl: NOTRUN -> [SKIP][313] ([i915#5439])
[313]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-8/igt@kms_frontbuffer_tracking@fbc-tiling-4.html
- shard-dg1: NOTRUN -> [SKIP][314] ([i915#5439])
[314]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-16/igt@kms_frontbuffer_tracking@fbc-tiling-4.html
- shard-tglu: NOTRUN -> [SKIP][315] ([i915#5439]) +1 other test skip
[315]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-4/igt@kms_frontbuffer_tracking@fbc-tiling-4.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-cpu:
- shard-dg1: NOTRUN -> [SKIP][316] ([i915#15102] / [i915#4423])
[316]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-gtt:
- shard-mtlp: NOTRUN -> [SKIP][317] ([i915#15104]) +1 other test skip
[317]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-gtt.html
- shard-dg2: NOTRUN -> [SKIP][318] ([i915#15104]) +1 other test skip
[318]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-pwrite:
- shard-dg2: NOTRUN -> [SKIP][319] ([i915#15102]) +4 other tests skip
[319]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-pwrite.html
- shard-rkl: NOTRUN -> [SKIP][320] ([i915#15102]) +4 other tests skip
[320]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-pwrite.html
- shard-dg1: NOTRUN -> [SKIP][321] ([i915#15102]) +3 other tests skip
[321]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-14/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt:
- shard-rkl: NOTRUN -> [SKIP][322] +19 other tests skip
[322]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-dg2: NOTRUN -> [SKIP][323] ([i915#8708]) +20 other tests skip
[323]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu:
- shard-rkl: NOTRUN -> [SKIP][324] ([i915#1825]) +49 other tests skip
[324]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu.html
- shard-dg1: NOTRUN -> [SKIP][325] +55 other tests skip
[325]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-15/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render:
- shard-rkl: NOTRUN -> [SKIP][326] ([i915#14544] / [i915#1825]) +2 other tests skip
[326]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-blt:
- shard-mtlp: NOTRUN -> [SKIP][327] ([i915#1825]) +37 other tests skip
[327]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@pipe-fbc-rte:
- shard-tglu-1: NOTRUN -> [SKIP][328] ([i915#9766])
[328]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-1/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html
- shard-dg2: NOTRUN -> [SKIP][329] ([i915#9766])
[329]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-3/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html
* igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-wc:
- shard-rkl: NOTRUN -> [SKIP][330] ([i915#14544] / [i915#15102])
[330]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-wc.html
- shard-dg1: NOTRUN -> [SKIP][331] ([i915#15104]) +1 other test skip
[331]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-17/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt:
- shard-rkl: NOTRUN -> [SKIP][332] ([i915#14544] / [i915#15102] / [i915#3023]) +2 other tests skip
[332]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/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-gtt:
- shard-rkl: NOTRUN -> [SKIP][333] ([i915#15102] / [i915#3023]) +25 other tests skip
[333]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html
- shard-dg1: NOTRUN -> [SKIP][334] ([i915#8708]) +22 other tests skip
[334]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-14/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-pgflip-blt:
- shard-tglu-1: NOTRUN -> [SKIP][335] ([i915#15102]) +6 other tests skip
[335]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-onoff:
- shard-dg2: NOTRUN -> [SKIP][336] ([i915#15102] / [i915#3458]) +18 other tests skip
[336]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc:
- shard-tglu: NOTRUN -> [SKIP][337] +88 other tests skip
[337]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-3/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-cpu:
- shard-dg1: NOTRUN -> [SKIP][338] ([i915#15102] / [i915#3458]) +21 other tests skip
[338]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@psr-shrfb-scaledprimary:
- shard-tglu: NOTRUN -> [SKIP][339] ([i915#15102]) +36 other tests skip
[339]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-9/igt@kms_frontbuffer_tracking@psr-shrfb-scaledprimary.html
* igt@kms_hdr@bpc-switch:
- shard-rkl: [PASS][340] -> [SKIP][341] ([i915#3555] / [i915#8228])
[340]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_hdr@bpc-switch.html
[341]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_hdr@bpc-switch.html
* igt@kms_hdr@bpc-switch-suspend:
- shard-tglu: NOTRUN -> [SKIP][342] ([i915#3555] / [i915#8228]) +2 other tests skip
[342]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-7/igt@kms_hdr@bpc-switch-suspend.html
* igt@kms_hdr@static-toggle:
- shard-rkl: NOTRUN -> [SKIP][343] ([i915#3555] / [i915#8228]) +3 other tests skip
[343]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-2/igt@kms_hdr@static-toggle.html
- shard-dg1: NOTRUN -> [SKIP][344] ([i915#3555] / [i915#8228]) +3 other tests skip
[344]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@kms_hdr@static-toggle.html
* igt@kms_hdr@static-toggle-dpms:
- shard-mtlp: NOTRUN -> [SKIP][345] ([i915#12713] / [i915#3555] / [i915#8228]) +1 other test skip
[345]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-5/igt@kms_hdr@static-toggle-dpms.html
- shard-dg2: NOTRUN -> [SKIP][346] ([i915#3555] / [i915#8228]) +2 other tests skip
[346]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-6/igt@kms_hdr@static-toggle-dpms.html
* igt@kms_joiner@basic-big-joiner:
- shard-rkl: NOTRUN -> [SKIP][347] ([i915#10656])
[347]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-7/igt@kms_joiner@basic-big-joiner.html
- shard-dg1: NOTRUN -> [SKIP][348] ([i915#10656])
[348]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-15/igt@kms_joiner@basic-big-joiner.html
- shard-tglu: NOTRUN -> [SKIP][349] ([i915#10656])
[349]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-9/igt@kms_joiner@basic-big-joiner.html
- shard-mtlp: NOTRUN -> [SKIP][350] ([i915#10656])
[350]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-3/igt@kms_joiner@basic-big-joiner.html
* igt@kms_joiner@basic-max-non-joiner:
- shard-tglu: NOTRUN -> [SKIP][351] ([i915#15283])
[351]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-4/igt@kms_joiner@basic-max-non-joiner.html
- shard-mtlp: NOTRUN -> [SKIP][352] ([i915#15283])
[352]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-7/igt@kms_joiner@basic-max-non-joiner.html
- shard-rkl: NOTRUN -> [SKIP][353] ([i915#14544] / [i915#15283])
[353]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_joiner@basic-max-non-joiner.html
- shard-dg1: NOTRUN -> [SKIP][354] ([i915#15283])
[354]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-17/igt@kms_joiner@basic-max-non-joiner.html
* igt@kms_joiner@basic-ultra-joiner:
- shard-rkl: NOTRUN -> [SKIP][355] ([i915#12339])
[355]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_joiner@basic-ultra-joiner.html
- shard-dg1: NOTRUN -> [SKIP][356] ([i915#12339]) +1 other test skip
[356]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@kms_joiner@basic-ultra-joiner.html
- shard-tglu: NOTRUN -> [SKIP][357] ([i915#12339])
[357]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-2/igt@kms_joiner@basic-ultra-joiner.html
- shard-mtlp: NOTRUN -> [SKIP][358] ([i915#12339])
[358]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-5/igt@kms_joiner@basic-ultra-joiner.html
* igt@kms_joiner@invalid-modeset-ultra-joiner:
- shard-dg2: NOTRUN -> [SKIP][359] ([i915#12339]) +1 other test skip
[359]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-3/igt@kms_joiner@invalid-modeset-ultra-joiner.html
- shard-tglu-1: NOTRUN -> [SKIP][360] ([i915#12339])
[360]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-1/igt@kms_joiner@invalid-modeset-ultra-joiner.html
* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-mtlp: NOTRUN -> [SKIP][361] ([i915#4816])
[361]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-6/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
* igt@kms_pipe_stress@stress-xrgb8888-4tiled:
- shard-rkl: NOTRUN -> [SKIP][362] ([i915#14712])
[362]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-8/igt@kms_pipe_stress@stress-xrgb8888-4tiled.html
- shard-dg1: NOTRUN -> [SKIP][363] ([i915#14712])
[363]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-16/igt@kms_pipe_stress@stress-xrgb8888-4tiled.html
- shard-tglu: NOTRUN -> [SKIP][364] ([i915#14712])
[364]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-8/igt@kms_pipe_stress@stress-xrgb8888-4tiled.html
* igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b:
- shard-glk10: NOTRUN -> [INCOMPLETE][365] ([i915#13026])
[365]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk10/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b.html
* igt@kms_plane_alpha_blend@constant-alpha-max:
- shard-glk10: NOTRUN -> [FAIL][366] ([i915#10647] / [i915#12169])
[366]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk10/igt@kms_plane_alpha_blend@constant-alpha-max.html
* igt@kms_plane_alpha_blend@constant-alpha-max@pipe-c-hdmi-a-1:
- shard-glk10: NOTRUN -> [FAIL][367] ([i915#10647]) +1 other test fail
[367]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk10/igt@kms_plane_alpha_blend@constant-alpha-max@pipe-c-hdmi-a-1.html
* igt@kms_plane_lowres@tiling-y:
- shard-mtlp: NOTRUN -> [SKIP][368] ([i915#3555] / [i915#8821]) +1 other test skip
[368]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_plane_lowres@tiling-y.html
- shard-dg2: NOTRUN -> [SKIP][369] ([i915#8821])
[369]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@kms_plane_lowres@tiling-y.html
* igt@kms_plane_lowres@tiling-yf:
- shard-dg2: NOTRUN -> [SKIP][370] ([i915#3555] / [i915#8821])
[370]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@kms_plane_lowres@tiling-yf.html
* igt@kms_plane_scaling@intel-max-src-size:
- shard-rkl: [PASS][371] -> [SKIP][372] ([i915#6953])
[371]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-1/igt@kms_plane_scaling@intel-max-src-size.html
[372]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_plane_scaling@intel-max-src-size.html
* igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c:
- shard-tglu: NOTRUN -> [SKIP][373] ([i915#12247]) +9 other tests skip
[373]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-5/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c.html
* igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b:
- shard-rkl: NOTRUN -> [SKIP][374] ([i915#12247]) +6 other tests skip
[374]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b.html
- shard-dg1: NOTRUN -> [SKIP][375] ([i915#12247]) +3 other tests skip
[375]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-12/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75:
- shard-mtlp: NOTRUN -> [SKIP][376] ([i915#12247] / [i915#6953])
[376]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-8/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75:
- shard-mtlp: NOTRUN -> [SKIP][377] ([i915#12247] / [i915#3555] / [i915#6953])
[377]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-7/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a:
- shard-mtlp: NOTRUN -> [SKIP][378] ([i915#12247]) +9 other tests skip
[378]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-7/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a.html
* igt@kms_pm_backlight@fade-with-dpms:
- shard-rkl: NOTRUN -> [SKIP][379] ([i915#5354]) +1 other test skip
[379]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_pm_backlight@fade-with-dpms.html
- shard-dg1: NOTRUN -> [SKIP][380] ([i915#5354]) +1 other test skip
[380]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@kms_pm_backlight@fade-with-dpms.html
- shard-tglu: NOTRUN -> [SKIP][381] ([i915#9812]) +1 other test skip
[381]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-2/igt@kms_pm_backlight@fade-with-dpms.html
* igt@kms_pm_dc@dc6-psr:
- shard-dg2: NOTRUN -> [SKIP][382] ([i915#9685]) +1 other test skip
[382]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-7/igt@kms_pm_dc@dc6-psr.html
* igt@kms_pm_rpm@modeset-lpsp:
- shard-dg2: NOTRUN -> [SKIP][383] ([i915#15073])
[383]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-6/igt@kms_pm_rpm@modeset-lpsp.html
- shard-dg1: NOTRUN -> [SKIP][384] ([i915#15073]) +1 other test skip
[384]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@kms_pm_rpm@modeset-lpsp.html
* igt@kms_pm_rpm@modeset-lpsp-stress:
- shard-rkl: [PASS][385] -> [SKIP][386] ([i915#14544] / [i915#15073])
[385]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-8/igt@kms_pm_rpm@modeset-lpsp-stress.html
[386]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_pm_rpm@modeset-lpsp-stress.html
* igt@kms_pm_rpm@modeset-non-lpsp-stress:
- shard-tglu: NOTRUN -> [SKIP][387] ([i915#15073])
[387]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-3/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
* igt@kms_pm_rpm@system-suspend-idle:
- shard-tglu: NOTRUN -> [ABORT][388] ([i915#15317]) +8 other tests abort
[388]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-6/igt@kms_pm_rpm@system-suspend-idle.html
* igt@kms_prime@basic-crc-vgem:
- shard-dg2: NOTRUN -> [SKIP][389] ([i915#6524] / [i915#6805])
[389]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-8/igt@kms_prime@basic-crc-vgem.html
- shard-dg1: NOTRUN -> [SKIP][390] ([i915#6524])
[390]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-16/igt@kms_prime@basic-crc-vgem.html
* igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-sf:
- shard-dg2: NOTRUN -> [SKIP][391] ([i915#11520]) +9 other tests skip
[391]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf:
- shard-tglu: NOTRUN -> [SKIP][392] ([i915#11520]) +11 other tests skip
[392]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-4/igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf.html
- shard-glk: NOTRUN -> [SKIP][393] ([i915#11520]) +5 other tests skip
[393]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk9/igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf.html
- shard-rkl: NOTRUN -> [SKIP][394] ([i915#11520] / [i915#14544])
[394]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-sf@pipe-a-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][395] ([i915#9808])
[395]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-4/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-sf@pipe-a-edp-1.html
* igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf:
- shard-mtlp: NOTRUN -> [SKIP][396] ([i915#12316]) +8 other tests skip
[396]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-3/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf:
- shard-rkl: NOTRUN -> [SKIP][397] ([i915#11520]) +10 other tests skip
[397]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html
* igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area:
- shard-glk10: NOTRUN -> [SKIP][398] ([i915#11520])
[398]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk10/igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb:
- shard-snb: NOTRUN -> [SKIP][399] ([i915#11520]) +10 other tests skip
[399]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-snb5/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html
- shard-dg1: NOTRUN -> [SKIP][400] ([i915#11520]) +10 other tests skip
[400]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-16/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html
* igt@kms_psr2_su@page_flip-p010:
- shard-dg2: NOTRUN -> [SKIP][401] ([i915#9683]) +2 other tests skip
[401]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-6/igt@kms_psr2_su@page_flip-p010.html
- shard-rkl: NOTRUN -> [SKIP][402] ([i915#9683]) +2 other tests skip
[402]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_psr2_su@page_flip-p010.html
- shard-dg1: NOTRUN -> [SKIP][403] ([i915#9683]) +2 other tests skip
[403]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@kms_psr2_su@page_flip-p010.html
- shard-tglu: NOTRUN -> [SKIP][404] ([i915#9683]) +3 other tests skip
[404]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-2/igt@kms_psr2_su@page_flip-p010.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-mtlp: NOTRUN -> [SKIP][405] ([i915#4348]) +1 other test skip
[405]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-8/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@fbc-psr2-basic:
- shard-tglu-1: NOTRUN -> [SKIP][406] ([i915#9732]) +1 other test skip
[406]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-1/igt@kms_psr@fbc-psr2-basic.html
* igt@kms_psr@fbc-psr2-sprite-mmap-gtt:
- shard-dg1: NOTRUN -> [SKIP][407] ([i915#1072] / [i915#9732]) +27 other tests skip
[407]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-17/igt@kms_psr@fbc-psr2-sprite-mmap-gtt.html
* igt@kms_psr@pr-cursor-mmap-cpu:
- shard-rkl: NOTRUN -> [SKIP][408] ([i915#1072] / [i915#14544] / [i915#9732]) +3 other tests skip
[408]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_psr@pr-cursor-mmap-cpu.html
* igt@kms_psr@pr-primary-mmap-cpu:
- shard-mtlp: NOTRUN -> [SKIP][409] ([i915#9688]) +28 other tests skip
[409]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-8/igt@kms_psr@pr-primary-mmap-cpu.html
* igt@kms_psr@psr2-cursor-mmap-gtt:
- shard-rkl: NOTRUN -> [SKIP][410] ([i915#1072] / [i915#9732]) +26 other tests skip
[410]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-7/igt@kms_psr@psr2-cursor-mmap-gtt.html
* igt@kms_psr@psr2-cursor-plane-onoff:
- shard-tglu: NOTRUN -> [SKIP][411] ([i915#9732]) +29 other tests skip
[411]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-9/igt@kms_psr@psr2-cursor-plane-onoff.html
* igt@kms_psr@psr2-primary-mmap-gtt:
- shard-dg2: NOTRUN -> [SKIP][412] ([i915#1072] / [i915#9732]) +22 other tests skip
[412]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-7/igt@kms_psr@psr2-primary-mmap-gtt.html
* igt@kms_psr@psr2-primary-mmap-gtt@edp-1:
- shard-mtlp: NOTRUN -> [SKIP][413] ([i915#4077] / [i915#9688]) +1 other test skip
[413]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-8/igt@kms_psr@psr2-primary-mmap-gtt@edp-1.html
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- shard-rkl: NOTRUN -> [SKIP][414] ([i915#9685]) +1 other test skip
[414]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
- shard-dg1: NOTRUN -> [SKIP][415] ([i915#9685]) +1 other test skip
[415]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-14/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
- shard-tglu: NOTRUN -> [SKIP][416] ([i915#9685]) +1 other test skip
[416]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-7/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
- shard-rkl: NOTRUN -> [SKIP][417] ([i915#5289]) +3 other tests skip
[417]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-8/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
- shard-dg1: NOTRUN -> [SKIP][418] ([i915#5289]) +2 other tests skip
[418]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-13/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
- shard-tglu: NOTRUN -> [SKIP][419] ([i915#5289]) +3 other tests skip
[419]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-9/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
- shard-mtlp: NOTRUN -> [SKIP][420] ([i915#5289])
[420]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-4/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
- shard-dg2: NOTRUN -> [SKIP][421] ([i915#12755] / [i915#5190]) +2 other tests skip
[421]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-11/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
* igt@kms_rotation_crc@sprite-rotation-90-pos-100-0:
- shard-dg2: NOTRUN -> [SKIP][422] ([i915#12755]) +1 other test skip
[422]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-7/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html
- shard-mtlp: NOTRUN -> [SKIP][423] ([i915#12755]) +2 other tests skip
[423]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-3/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html
* igt@kms_scaling_modes@scaling-mode-center:
- shard-dg1: NOTRUN -> [SKIP][424] ([i915#3555]) +13 other tests skip
[424]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-18/igt@kms_scaling_modes@scaling-mode-center.html
* igt@kms_scaling_modes@scaling-mode-none:
- shard-mtlp: NOTRUN -> [SKIP][425] ([i915#3555] / [i915#5030] / [i915#9041])
[425]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_scaling_modes@scaling-mode-none.html
* igt@kms_scaling_modes@scaling-mode-none@pipe-a-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][426] ([i915#5030]) +2 other tests skip
[426]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_scaling_modes@scaling-mode-none@pipe-a-edp-1.html
* igt@kms_scaling_modes@scaling-mode-none@pipe-d-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][427] ([i915#5030] / [i915#9041])
[427]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_scaling_modes@scaling-mode-none@pipe-d-edp-1.html
* igt@kms_setmode@basic:
- shard-snb: NOTRUN -> [FAIL][428] ([i915#15106]) +2 other tests fail
[428]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-snb6/igt@kms_setmode@basic.html
* igt@kms_setmode@invalid-clone-exclusive-crtc:
- shard-rkl: NOTRUN -> [SKIP][429] ([i915#14544] / [i915#3555]) +2 other tests skip
[429]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_setmode@invalid-clone-exclusive-crtc.html
- shard-mtlp: NOTRUN -> [SKIP][430] ([i915#3555] / [i915#8809] / [i915#8823])
[430]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-7/igt@kms_setmode@invalid-clone-exclusive-crtc.html
* igt@kms_setmode@invalid-clone-single-crtc:
- shard-mtlp: NOTRUN -> [SKIP][431] ([i915#3555] / [i915#8809]) +1 other test skip
[431]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-7/igt@kms_setmode@invalid-clone-single-crtc.html
* igt@kms_sharpness_filter@filter-scaler-downscale:
- shard-rkl: NOTRUN -> [SKIP][432] ([i915#15232]) +1 other test skip
[432]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-8/igt@kms_sharpness_filter@filter-scaler-downscale.html
- shard-tglu: NOTRUN -> [SKIP][433] ([i915#15232]) +2 other tests skip
[433]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-9/igt@kms_sharpness_filter@filter-scaler-downscale.html
* igt@kms_sharpness_filter@filter-tap:
- shard-mtlp: NOTRUN -> [SKIP][434] ([i915#15232]) +2 other tests skip
[434]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-6/igt@kms_sharpness_filter@filter-tap.html
- shard-dg2: NOTRUN -> [SKIP][435] ([i915#15232]) +3 other tests skip
[435]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-5/igt@kms_sharpness_filter@filter-tap.html
* igt@kms_sharpness_filter@invalid-filter-with-plane:
- shard-tglu-1: NOTRUN -> [SKIP][436] ([i915#15232])
[436]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-1/igt@kms_sharpness_filter@invalid-filter-with-plane.html
- shard-dg1: NOTRUN -> [SKIP][437] ([i915#15232]) +1 other test skip
[437]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-13/igt@kms_sharpness_filter@invalid-filter-with-plane.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-dg1: NOTRUN -> [SKIP][438] ([i915#8623]) +1 other test skip
[438]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-19/igt@kms_tiled_display@basic-test-pattern.html
- shard-tglu: NOTRUN -> [SKIP][439] ([i915#8623]) +1 other test skip
[439]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-5/igt@kms_tiled_display@basic-test-pattern.html
- shard-glk: NOTRUN -> [FAIL][440] ([i915#10959])
[440]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk3/igt@kms_tiled_display@basic-test-pattern.html
- shard-mtlp: NOTRUN -> [SKIP][441] ([i915#8623]) +1 other test skip
[441]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-8/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-rkl: NOTRUN -> [SKIP][442] ([i915#8623]) +1 other test skip
[442]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-7/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
- shard-dg2: NOTRUN -> [SKIP][443] ([i915#8623])
[443]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-11/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@kms_vblank@ts-continuation-suspend:
- shard-snb: NOTRUN -> [ABORT][444] ([i915#15317]) +7 other tests abort
[444]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-snb6/igt@kms_vblank@ts-continuation-suspend.html
- shard-glk: NOTRUN -> [INCOMPLETE][445] ([i915#12276]) +1 other test incomplete
[445]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk3/igt@kms_vblank@ts-continuation-suspend.html
* igt@kms_vrr@flip-basic:
- shard-dg2: NOTRUN -> [SKIP][446] ([i915#15243] / [i915#3555]) +1 other test skip
[446]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-8/igt@kms_vrr@flip-basic.html
- shard-rkl: NOTRUN -> [SKIP][447] ([i915#15243] / [i915#3555])
[447]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_vrr@flip-basic.html
* igt@kms_vrr@lobf:
- shard-dg2: NOTRUN -> [SKIP][448] ([i915#11920])
[448]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-8/igt@kms_vrr@lobf.html
- shard-rkl: NOTRUN -> [SKIP][449] ([i915#11920])
[449]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-7/igt@kms_vrr@lobf.html
- shard-dg1: NOTRUN -> [SKIP][450] ([i915#11920])
[450]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-15/igt@kms_vrr@lobf.html
- shard-tglu: NOTRUN -> [SKIP][451] ([i915#11920])
[451]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-5/igt@kms_vrr@lobf.html
- shard-mtlp: NOTRUN -> [SKIP][452] ([i915#11920])
[452]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-3/igt@kms_vrr@lobf.html
* igt@kms_vrr@seamless-rr-switch-drrs:
- shard-tglu-1: NOTRUN -> [SKIP][453] ([i915#9906])
[453]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-1/igt@kms_vrr@seamless-rr-switch-drrs.html
- shard-dg1: NOTRUN -> [SKIP][454] ([i915#9906]) +1 other test skip
[454]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-13/igt@kms_vrr@seamless-rr-switch-drrs.html
* igt@kms_vrr@seamless-rr-switch-virtual:
- shard-dg2: NOTRUN -> [SKIP][455] ([i915#9906]) +1 other test skip
[455]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@kms_vrr@seamless-rr-switch-virtual.html
- shard-rkl: NOTRUN -> [SKIP][456] ([i915#9906])
[456]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@kms_vrr@seamless-rr-switch-virtual.html
- shard-tglu: NOTRUN -> [SKIP][457] ([i915#9906])
[457]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-7/igt@kms_vrr@seamless-rr-switch-virtual.html
* igt@kms_writeback@writeback-check-output:
- shard-dg2: NOTRUN -> [SKIP][458] ([i915#2437])
[458]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@kms_writeback@writeback-check-output.html
- shard-rkl: NOTRUN -> [SKIP][459] ([i915#2437]) +1 other test skip
[459]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_writeback@writeback-check-output.html
- shard-dg1: NOTRUN -> [SKIP][460] ([i915#2437])
[460]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-12/igt@kms_writeback@writeback-check-output.html
- shard-mtlp: NOTRUN -> [SKIP][461] ([i915#2437])
[461]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@kms_writeback@writeback-check-output.html
* igt@kms_writeback@writeback-invalid-parameters:
- shard-tglu: NOTRUN -> [SKIP][462] ([i915#2437]) +1 other test skip
[462]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-3/igt@kms_writeback@writeback-invalid-parameters.html
* igt@kms_writeback@writeback-pixel-formats:
- shard-glk: NOTRUN -> [SKIP][463] ([i915#2437]) +1 other test skip
[463]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk3/igt@kms_writeback@writeback-pixel-formats.html
* igt@perf@gen8-unprivileged-single-ctx-counters:
- shard-dg2: NOTRUN -> [SKIP][464] ([i915#2436])
[464]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-3/igt@perf@gen8-unprivileged-single-ctx-counters.html
* igt@perf@global-sseu-config-invalid:
- shard-dg2: NOTRUN -> [SKIP][465] ([i915#7387])
[465]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-11/igt@perf@global-sseu-config-invalid.html
* igt@perf@per-context-mode-unprivileged:
- shard-tglu-1: NOTRUN -> [SKIP][466] +8 other tests skip
[466]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-1/igt@perf@per-context-mode-unprivileged.html
* igt@perf_pmu@busy-double-start:
- shard-mtlp: NOTRUN -> [FAIL][467] ([i915#4349]) +2 other tests fail
[467]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-8/igt@perf_pmu@busy-double-start.html
* igt@perf_pmu@module-unload:
- shard-snb: NOTRUN -> [FAIL][468] ([i915#14433])
[468]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-snb7/igt@perf_pmu@module-unload.html
* igt@perf_pmu@rc6@other-idle-gt0:
- shard-dg2: NOTRUN -> [SKIP][469] ([i915#8516])
[469]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-7/igt@perf_pmu@rc6@other-idle-gt0.html
- shard-rkl: NOTRUN -> [SKIP][470] ([i915#8516])
[470]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-2/igt@perf_pmu@rc6@other-idle-gt0.html
- shard-dg1: NOTRUN -> [SKIP][471] ([i915#8516])
[471]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-18/igt@perf_pmu@rc6@other-idle-gt0.html
- shard-tglu: NOTRUN -> [SKIP][472] ([i915#8516])
[472]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-6/igt@perf_pmu@rc6@other-idle-gt0.html
* igt@prime_vgem@basic-fence-read:
- shard-dg2: NOTRUN -> [SKIP][473] ([i915#3291] / [i915#3708])
[473]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@prime_vgem@basic-fence-read.html
- shard-rkl: NOTRUN -> [SKIP][474] ([i915#3291] / [i915#3708])
[474]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-7/igt@prime_vgem@basic-fence-read.html
* igt@prime_vgem@fence-flip-hang:
- shard-dg1: NOTRUN -> [SKIP][475] ([i915#3708]) +1 other test skip
[475]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-15/igt@prime_vgem@fence-flip-hang.html
- shard-mtlp: NOTRUN -> [SKIP][476] ([i915#3708])
[476]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@prime_vgem@fence-flip-hang.html
- shard-dg2: NOTRUN -> [SKIP][477] ([i915#3708]) +1 other test skip
[477]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-11/igt@prime_vgem@fence-flip-hang.html
- shard-rkl: NOTRUN -> [SKIP][478] ([i915#3708])
[478]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-7/igt@prime_vgem@fence-flip-hang.html
* igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all:
- shard-tglu: NOTRUN -> [FAIL][479] ([i915#12910])
[479]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-10/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html
- shard-mtlp: NOTRUN -> [FAIL][480] ([i915#12910])
[480]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-6/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html
- shard-dg2: NOTRUN -> [SKIP][481] ([i915#9917])
[481]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-5/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html
- shard-rkl: NOTRUN -> [SKIP][482] ([i915#9917])
[482]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html
- shard-dg1: NOTRUN -> [SKIP][483] ([i915#9917])
[483]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-16/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html
* igt@tools_test@sysfs_l3_parity:
- shard-dg1: NOTRUN -> [SKIP][484] ([i915#4818])
[484]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-12/igt@tools_test@sysfs_l3_parity.html
- shard-mtlp: NOTRUN -> [SKIP][485] ([i915#4818])
[485]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-2/igt@tools_test@sysfs_l3_parity.html
- shard-dg2: NOTRUN -> [SKIP][486] ([i915#4818])
[486]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-1/igt@tools_test@sysfs_l3_parity.html
#### Possible fixes ####
* igt@gem_exec_suspend@basic-s4-devices@lmem0:
- shard-dg1: [ABORT][487] ([i915#15317] / [i915#7975]) -> [PASS][488]
[487]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-dg1-18/igt@gem_exec_suspend@basic-s4-devices@lmem0.html
[488]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg1-12/igt@gem_exec_suspend@basic-s4-devices@lmem0.html
* igt@gem_workarounds@suspend-resume:
- shard-snb: [ABORT][489] ([i915#15317]) -> [PASS][490] +1 other test pass
[489]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-snb6/igt@gem_workarounds@suspend-resume.html
[490]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-snb1/igt@gem_workarounds@suspend-resume.html
* igt@i915_suspend@fence-restore-untiled:
- shard-rkl: [ABORT][491] ([i915#15317]) -> [PASS][492]
[491]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@i915_suspend@fence-restore-untiled.html
[492]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-2/igt@i915_suspend@fence-restore-untiled.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc@pipe-a-edp-1:
- shard-mtlp: [ABORT][493] ([i915#15317]) -> [PASS][494] +1 other test pass
[493]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-mtlp-2/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc@pipe-a-edp-1.html
[494]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-mtlp-4/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc@pipe-a-edp-1.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-a-hdmi-a-1:
- shard-tglu: [ABORT][495] ([i915#15317]) -> [PASS][496]
[495]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-tglu-6/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-a-hdmi-a-1.html
[496]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-8/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-a-hdmi-a-1.html
* igt@kms_cursor_crc@cursor-sliding-128x42:
- shard-tglu: [FAIL][497] ([i915#13566]) -> [PASS][498] +1 other test pass
[497]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-tglu-4/igt@kms_cursor_crc@cursor-sliding-128x42.html
[498]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-tglu-2/igt@kms_cursor_crc@cursor-sliding-128x42.html
* igt@kms_hdr@bpc-switch-dpms:
- shard-rkl: [SKIP][499] ([i915#3555] / [i915#8228]) -> [PASS][500]
[499]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-3/igt@kms_hdr@bpc-switch-dpms.html
[500]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_hdr@bpc-switch-dpms.html
* igt@kms_pm_rpm@modeset-lpsp-stress-no-wait:
- shard-dg2: [SKIP][501] ([i915#15073]) -> [PASS][502]
[501]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-dg2-3/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
[502]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
#### Warnings ####
* igt@gem_exec_balancer@parallel-dmabuf-import-out-fence:
- shard-rkl: [SKIP][503] ([i915#4525]) -> [SKIP][504] ([i915#14544] / [i915#4525])
[503]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-4/igt@gem_exec_balancer@parallel-dmabuf-import-out-fence.html
[504]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@gem_exec_balancer@parallel-dmabuf-import-out-fence.html
* igt@gem_exec_reloc@basic-active:
- shard-rkl: [SKIP][505] ([i915#14544] / [i915#3281]) -> [SKIP][506] ([i915#3281]) +1 other test skip
[505]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@gem_exec_reloc@basic-active.html
[506]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@gem_exec_reloc@basic-active.html
* igt@gem_exec_reloc@basic-range:
- shard-rkl: [SKIP][507] ([i915#3281]) -> [SKIP][508] ([i915#14544] / [i915#3281])
[507]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-2/igt@gem_exec_reloc@basic-range.html
[508]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@gem_exec_reloc@basic-range.html
* igt@gem_exec_suspend@basic-s0@smem:
- shard-dg2: [ABORT][509] ([i915#15317]) -> [INCOMPLETE][510] ([i915#13356]) +1 other test incomplete
[509]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-dg2-4/igt@gem_exec_suspend@basic-s0@smem.html
[510]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-5/igt@gem_exec_suspend@basic-s0@smem.html
* igt@gem_lmem_swapping@smem-oom:
- shard-rkl: [SKIP][511] ([i915#14544] / [i915#4613]) -> [SKIP][512] ([i915#4613])
[511]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@gem_lmem_swapping@smem-oom.html
[512]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@gem_lmem_swapping@smem-oom.html
* igt@gem_partial_pwrite_pread@reads:
- shard-rkl: [SKIP][513] ([i915#14544] / [i915#3282]) -> [SKIP][514] ([i915#3282]) +3 other tests skip
[513]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@gem_partial_pwrite_pread@reads.html
[514]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-2/igt@gem_partial_pwrite_pread@reads.html
* igt@gem_softpin@evict-snoop-interruptible:
- shard-rkl: [SKIP][515] -> [SKIP][516] ([i915#14544]) +3 other tests skip
[515]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-1/igt@gem_softpin@evict-snoop-interruptible.html
[516]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@gem_softpin@evict-snoop-interruptible.html
* igt@i915_module_load@resize-bar:
- shard-rkl: [SKIP][517] ([i915#14544] / [i915#6412]) -> [SKIP][518] ([i915#6412])
[517]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@i915_module_load@resize-bar.html
[518]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@i915_module_load@resize-bar.html
* igt@i915_suspend@fence-restore-tiled2untiled:
- shard-glk: [ABORT][519] ([i915#15317]) -> [INCOMPLETE][520] ([i915#4817])
[519]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-glk6/igt@i915_suspend@fence-restore-tiled2untiled.html
[520]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-glk5/igt@i915_suspend@fence-restore-tiled2untiled.html
* igt@kms_big_fb@4-tiled-16bpp-rotate-90:
- shard-rkl: [SKIP][521] ([i915#5286]) -> [SKIP][522] ([i915#14544] / [i915#5286])
[521]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-5/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html
[522]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180:
- shard-rkl: [SKIP][523] ([i915#14544] / [i915#5286]) -> [SKIP][524] ([i915#5286])
[523]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html
[524]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html
* igt@kms_big_fb@x-tiled-16bpp-rotate-90:
- shard-rkl: [SKIP][525] ([i915#14544] / [i915#3638]) -> [SKIP][526] ([i915#3638])
[525]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html
[526]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-8/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html
* igt@kms_ccs@bad-pixel-format-y-tiled-ccs:
- shard-rkl: [SKIP][527] ([i915#14098] / [i915#6095]) -> [SKIP][528] ([i915#14098] / [i915#14544] / [i915#6095]) +4 other tests skip
[527]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-8/igt@kms_ccs@bad-pixel-format-y-tiled-ccs.html
[528]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_ccs@bad-pixel-format-y-tiled-ccs.html
* igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc:
- shard-rkl: [SKIP][529] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][530] ([i915#14098] / [i915#6095]) +2 other tests skip
[529]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc.html
[530]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-2:
- shard-rkl: [SKIP][531] ([i915#6095]) -> [SKIP][532] ([i915#14544] / [i915#6095]) +1 other test skip
[531]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-1/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-2.html
[532]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-2.html
* igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-2:
- shard-rkl: [SKIP][533] ([i915#14544] / [i915#6095]) -> [SKIP][534] ([i915#6095]) +1 other test skip
[533]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-2.html
[534]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-1/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-2.html
* igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
- shard-rkl: [SKIP][535] ([i915#12313]) -> [SKIP][536] ([i915#12313] / [i915#14544])
[535]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-1/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
[536]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
* igt@kms_chamelium_frames@dp-crc-fast:
- shard-rkl: [SKIP][537] ([i915#11151] / [i915#7828]) -> [SKIP][538] ([i915#11151] / [i915#14544] / [i915#7828]) +1 other test skip
[537]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-1/igt@kms_chamelium_frames@dp-crc-fast.html
[538]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_chamelium_frames@dp-crc-fast.html
* igt@kms_content_protection@legacy:
- shard-dg2: [SKIP][539] ([i915#7118] / [i915#9424]) -> [FAIL][540] ([i915#7173])
[539]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-dg2-1/igt@kms_content_protection@legacy.html
[540]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-11/igt@kms_content_protection@legacy.html
- shard-rkl: [SKIP][541] ([i915#7118] / [i915#9424]) -> [SKIP][542] ([i915#14544] / [i915#7118] / [i915#9424])
[541]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-5/igt@kms_content_protection@legacy.html
[542]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_content_protection@legacy.html
* igt@kms_cursor_crc@cursor-random-32x32:
- shard-rkl: [SKIP][543] ([i915#3555]) -> [SKIP][544] ([i915#14544] / [i915#3555])
[543]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-5/igt@kms_cursor_crc@cursor-random-32x32.html
[544]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_cursor_crc@cursor-random-32x32.html
* igt@kms_cursor_legacy@cursora-vs-flipb-varying-size:
- shard-rkl: [SKIP][545] ([i915#14544]) -> [SKIP][546] +2 other tests skip
[545]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html
[546]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc:
- shard-rkl: [SKIP][547] ([i915#14544] / [i915#3555] / [i915#3804]) -> [SKIP][548] ([i915#3555] / [i915#3804])
[547]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
[548]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
* igt@kms_dsc@dsc-with-formats:
- shard-rkl: [SKIP][549] ([i915#14544] / [i915#3555] / [i915#3840]) -> [SKIP][550] ([i915#3555] / [i915#3840])
[549]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_dsc@dsc-with-formats.html
[550]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-2/igt@kms_dsc@dsc-with-formats.html
* igt@kms_feature_discovery@display-4x:
- shard-rkl: [SKIP][551] ([i915#1839]) -> [SKIP][552] ([i915#14544] / [i915#1839])
[551]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-8/igt@kms_feature_discovery@display-4x.html
[552]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_feature_discovery@display-4x.html
* igt@kms_flip@2x-flip-vs-rmfb:
- shard-rkl: [SKIP][553] ([i915#9934]) -> [SKIP][554] ([i915#14544] / [i915#9934]) +1 other test skip
[553]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-4/igt@kms_flip@2x-flip-vs-rmfb.html
[554]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_flip@2x-flip-vs-rmfb.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling:
- shard-rkl: [SKIP][555] ([i915#14544] / [i915#2672] / [i915#3555]) -> [SKIP][556] ([i915#2672] / [i915#3555]) +1 other test skip
[555]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling.html
[556]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode:
- shard-rkl: [SKIP][557] ([i915#14544] / [i915#2672]) -> [SKIP][558] ([i915#2672]) +1 other test skip
[557]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html
[558]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-4/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc:
- shard-rkl: [SKIP][559] ([i915#1825]) -> [SKIP][560] ([i915#14544] / [i915#1825]) +7 other tests skip
[559]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc.html
[560]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-cpu:
- shard-rkl: [SKIP][561] ([i915#14544] / [i915#1825]) -> [SKIP][562] ([i915#1825]) +4 other tests skip
[561]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-cpu.html
[562]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-blt:
- shard-rkl: [SKIP][563] ([i915#15102]) -> [SKIP][564] ([i915#14544] / [i915#15102])
[563]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-blt.html
[564]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
- shard-rkl: [SKIP][565] ([i915#15102] / [i915#3023]) -> [SKIP][566] ([i915#14544] / [i915#15102] / [i915#3023]) +2 other tests skip
[565]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html
[566]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu:
- shard-dg2: [SKIP][567] ([i915#10433] / [i915#15102] / [i915#3458]) -> [SKIP][568] ([i915#15102] / [i915#3458]) +2 other tests skip
[567]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu.html
[568]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-11/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@psr-rgb565-draw-blt:
- shard-rkl: [SKIP][569] ([i915#14544] / [i915#15102] / [i915#3023]) -> [SKIP][570] ([i915#15102] / [i915#3023]) +1 other test skip
[569]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-rgb565-draw-blt.html
[570]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-rgb565-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-slowdraw:
- shard-dg2: [SKIP][571] ([i915#15102] / [i915#3458]) -> [SKIP][572] ([i915#10433] / [i915#15102] / [i915#3458]) +1 other test skip
[571]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-dg2-5/igt@kms_frontbuffer_tracking@psr-slowdraw.html
[572]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-slowdraw.html
* igt@kms_hdr@invalid-hdr:
- shard-rkl: [SKIP][573] ([i915#14544] / [i915#3555] / [i915#8228]) -> [SKIP][574] ([i915#3555] / [i915#8228])
[573]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_hdr@invalid-hdr.html
[574]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_hdr@invalid-hdr.html
* igt@kms_joiner@basic-force-ultra-joiner:
- shard-rkl: [SKIP][575] ([i915#12394]) -> [SKIP][576] ([i915#12394] / [i915#14544])
[575]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-1/igt@kms_joiner@basic-force-ultra-joiner.html
[576]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_joiner@basic-force-ultra-joiner.html
* igt@kms_panel_fitting@legacy:
- shard-rkl: [SKIP][577] ([i915#6301]) -> [SKIP][578] ([i915#14544] / [i915#6301])
[577]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-4/igt@kms_panel_fitting@legacy.html
[578]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_panel_fitting@legacy.html
* igt@kms_pm_backlight@fade-with-suspend:
- shard-rkl: [SKIP][579] ([i915#5354]) -> [SKIP][580] ([i915#14544] / [i915#5354])
[579]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-2/igt@kms_pm_backlight@fade-with-suspend.html
[580]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_pm_backlight@fade-with-suspend.html
* igt@kms_pm_lpsp@kms-lpsp:
- shard-rkl: [SKIP][581] ([i915#3828]) -> [SKIP][582] ([i915#9340])
[581]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-2/igt@kms_pm_lpsp@kms-lpsp.html
[582]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_pm_lpsp@kms-lpsp.html
* igt@kms_psr2_sf@pr-cursor-plane-update-sf:
- shard-rkl: [SKIP][583] ([i915#11520]) -> [SKIP][584] ([i915#11520] / [i915#14544])
[583]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-8/igt@kms_psr2_sf@pr-cursor-plane-update-sf.html
[584]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_psr2_sf@pr-cursor-plane-update-sf.html
* igt@kms_psr2_sf@pr-plane-move-sf-dmg-area:
- shard-rkl: [SKIP][585] ([i915#11520] / [i915#14544]) -> [SKIP][586] ([i915#11520]) +1 other test skip
[585]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_psr2_sf@pr-plane-move-sf-dmg-area.html
[586]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-2/igt@kms_psr2_sf@pr-plane-move-sf-dmg-area.html
* igt@kms_psr@fbc-pr-cursor-mmap-cpu:
- shard-rkl: [SKIP][587] ([i915#1072] / [i915#9732]) -> [SKIP][588] ([i915#1072] / [i915#14544] / [i915#9732]) +5 other tests skip
[587]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-5/igt@kms_psr@fbc-pr-cursor-mmap-cpu.html
[588]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@kms_psr@fbc-pr-cursor-mmap-cpu.html
* igt@kms_psr@fbc-psr2-sprite-blt:
- shard-rkl: [SKIP][589] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][590] ([i915#1072] / [i915#9732]) +2 other tests skip
[589]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_psr@fbc-psr2-sprite-blt.html
[590]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-3/igt@kms_psr@fbc-psr2-sprite-blt.html
* igt@kms_vrr@flip-dpms:
- shard-rkl: [SKIP][591] ([i915#14544] / [i915#15243] / [i915#3555]) -> [SKIP][592] ([i915#15243] / [i915#3555])
[591]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-6/igt@kms_vrr@flip-dpms.html
[592]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-5/igt@kms_vrr@flip-dpms.html
* igt@perf@gen8-unprivileged-single-ctx-counters:
- shard-rkl: [SKIP][593] ([i915#2436]) -> [SKIP][594] ([i915#14544] / [i915#2436])
[593]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17585/shard-rkl-3/igt@perf@gen8-unprivileged-single-ctx-counters.html
[594]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14111/shard-rkl-6/igt@perf@gen8-unprivileged-single-ctx-counters.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
[i915#10333]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10333
[i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
[i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
[i915#10647]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10647
[i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#10959]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10959
[i915#1099]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1099
[i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
[i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
[i915#11527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11527
[i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
[i915#11814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11814
[i915#11815]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11815
[i915#11920]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11920
[i915#11965]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11965
[i915#12169]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12169
[i915#12193]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12193
[i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247
[i915#12276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12276
[i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
[i915#12316]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12316
[i915#12339]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12339
[i915#12394]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12394
[i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
[i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755
[i915#12796]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12796
[i915#12910]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12910
[i915#13026]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13026
[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#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
[i915#13390]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13390
[i915#13398]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13398
[i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
[i915#13717]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13717
[i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749
[i915#13783]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13783
[i915#13786]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13786
[i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098
[i915#14118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14118
[i915#14123]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14123
[i915#14433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14433
[i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544
[i915#14545]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14545
[i915#14712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14712
[i915#14857]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14857
[i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073
[i915#15095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15095
[i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102
[i915#15104]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15104
[i915#15106]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15106
[i915#15232]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15232
[i915#15238]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15238
[i915#15243]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15243
[i915#15283]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15283
[i915#15313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15313
[i915#15314]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15314
[i915#15317]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15317
[i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
[i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
[i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
[i915#2436]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2436
[i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
[i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587
[i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658
[i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
[i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
[i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
[i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
[i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
[i915#3323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3323
[i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
[i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#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#3711]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3711
[i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
[i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804
[i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#4036]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4036
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
[i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
[i915#4348]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4348
[i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
[i915#4387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4387
[i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
[i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
[i915#4537]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4537
[i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
[i915#4565]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4565
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
[i915#4816]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4816
[i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
[i915#4818]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4818
[i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
[i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
[i915#4873]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4873
[i915#4880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4880
[i915#5030]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5030
[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#5723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5723
[i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
[i915#6187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6187
[i915#6230]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6230
[i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
[i915#6334]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6334
[i915#6335]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6335
[i915#6412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6412
[i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
[i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
[i915#6645]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6645
[i915#6805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6805
[i915#6944]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944
[i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
[i915#7116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7116
[i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
[i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
[i915#7387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7387
[i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
[i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
[i915#7975]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7975
[i915#8063]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8063
[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#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516
[i915#8555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8555
[i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623
[i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
[i915#8809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8809
[i915#8810]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8810
[i915#8812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8812
[i915#8813]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8813
[i915#8814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8814
[i915#8821]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8821
[i915#8823]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8823
[i915#9041]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9041
[i915#9053]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9053
[i915#9067]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9067
[i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
[i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340
[i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
[i915#9433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9433
[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#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9766]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9766
[i915#9808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9808
[i915#9809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9809
[i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
[i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
[i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917
[i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_8637 -> IGTPW_14111
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_17585: d9ba358798b03eaf5d1a49598b568c635ec4a192 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_14111: cbe794bfcf0b4706c91015270a43dc660c79e3e0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_8637: 730ee3dfb26f8d7891fc240b0132a08c5bc7b949 @ 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_14111/index.html
[-- Attachment #2: Type: text/html, Size: 204863 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH i-g-t v2 01/10] lib/igt_sysfs_choice: Add helpers for sysfs enumerated choice attributes
2025-11-25 10:23 ` [PATCH i-g-t v2 01/10] lib/igt_sysfs_choice: Add helpers for sysfs enumerated choice attributes Marcin Bernatowicz
@ 2026-01-15 7:24 ` Laguna, Lukasz
0 siblings, 0 replies; 26+ messages in thread
From: Laguna, Lukasz @ 2026-01-15 7:24 UTC (permalink / raw)
To: Marcin Bernatowicz, igt-dev
Cc: adam.miszczak, jakub1.kolakowski, michal.wajdeczko,
Kamil Konieczny
On 11/25/2025 11:23, Marcin Bernatowicz wrote:
> Introduce igt_sysfs_choice, a lightweight, fixed-size, no-malloc helper
> for parsing and formatting sysfs "choice" attributes of the form:
>
> "low [normal] high\n"
>
> The helper provides parsing, lookup, formatting, mask conversion, and
> intersection utilities for consistent handling of enumerated sysfs values.
>
> Suggested-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
> Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
> Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Cc: Lukasz Laguna <lukasz.laguna@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> lib/igt_sysfs_choice.c | 429 +++++++++++++++++++++++++++++++++++++++++
> lib/igt_sysfs_choice.h | 52 +++++
> lib/meson.build | 1 +
> 3 files changed, 482 insertions(+)
> create mode 100644 lib/igt_sysfs_choice.c
> create mode 100644 lib/igt_sysfs_choice.h
>
> diff --git a/lib/igt_sysfs_choice.c b/lib/igt_sysfs_choice.c
> new file mode 100644
> index 000000000..c6de62587
> --- /dev/null
> +++ b/lib/igt_sysfs_choice.c
> @@ -0,0 +1,429 @@
> +// SPDX-License-Identifier: MIT
> +/*
> + * Copyright © 2025 Intel Corporation
> + */
> +#include "igt_sysfs_choice.h"
> +#include <ctype.h>
> +#include <errno.h>
> +#include "igt_core.h"
> +#include "igt_sysfs.h"
> +
> +#define IGT_SYSFS_CHOICE_MAX_LEN 256
> +#define IGT_SYSFS_CHOICE_MAX_TOKENS 16
> +
> +/**
> + * igt_sysfs_choice_parse() - parse sysfs enumerated choice buffer
> + * @buf: NUL-terminated buffer with sysfs contents
typo: NULL
> + * @choice: output descriptor, must be non-NULL (can be zeroed)
> + *
> + * Parses a sysfs enumerated choice buffer, e.g.:
> + *
> + * "low [normal] high\n"
> + *
> + * into a token list and the index of the selected token.
> + *
> + * Parsing rules:
> + * - tokens are separated by ASCII whitespace
> + * - exactly one token must be wrapped in '[' and ']'
> + * - surrounding '[' and ']' are stripped from the selected token
> + * - empty tokens are treated as malformed input
> + *
> + * On entry, any previous contents of @choice are freed.
> + *
> + * Returns:
> + * 0 on success,
> + * -EINVAL malformed format (no tokens, no selected token, multiple
> + * selected tokens, unterminated '[' or ']'),
> + * -E2BIG on too many tokens or too small choice buffer size.
> + */
> +int igt_sysfs_choice_parse(const char *buf, struct igt_sysfs_choice *choice)
> +{
> + char *p, *tok_start;
> + bool selected_seen = false;
> + size_t num_tokens = 0;
> + int n, selected = -1;
> + bool is_selected;
> +
> + igt_assert(buf && choice);
> +
> + memset(choice, 0, sizeof(*choice));
> + n = snprintf(choice->buf, sizeof(choice->buf), "%s", buf);
> + if (igt_debug_on(n < 0))
> + return -EINVAL;
> + if (igt_debug_on((size_t)n >= sizeof(choice->buf)))
> + return -E2BIG;
> +
> + choice->num_tokens = 0;
> + choice->selected = -1;
> + p = choice->buf;
> +
> + while (*p) {
> + /* skip leading whitespace */
> + while (*p && isspace((unsigned char)*p))
> + p++;
> + if (!*p)
> + break;
> +
> + is_selected = false;
> + tok_start = p;
> +
> + if (*p == '[') {
> + is_selected = true;
> + p++;
> + tok_start = p;
> +
> + if (selected_seen) {
> + igt_debug("choice-parse: multiple [selected] tokens: \"%s\"\n",
> + choice->buf);
> + return -EINVAL;
> + }
> + selected_seen = true;
> + }
> +
> + /* walk until ']' or whitespace */
> + while (*p && !isspace((unsigned char)*p) && *p != ']')
> + p++;
> +
> + if (is_selected) {
> + if (*p != ']') {
> + igt_debug("choice-parse: unterminated '[' in: \"%s\"\n",
> + choice->buf);
> + return -EINVAL;
> + }
> + }
> +
> + /* terminate token */
> + if (*p) {
> + *p = '\0';
> + p++;
> + }
> +
> + if (!*tok_start) {
> + igt_debug("choice-parse: empty token in: \"%s\"\n",
> + choice->buf);
> + return -EINVAL;
> + }
> +
> + if (num_tokens >= IGT_SYSFS_CHOICE_MAX_TOKENS) {
> + igt_debug("choice-parse: too many tokens (>%d) in: \"%s\"\n",
> + IGT_SYSFS_CHOICE_MAX_TOKENS, choice->buf);
> + return -E2BIG;
> + }
> +
> + choice->tokens[num_tokens] = tok_start;
> + if (is_selected)
> + selected = (int)num_tokens;
> +
> + num_tokens++;
> + }
> +
> + if (!num_tokens) {
> + igt_debug("choice-parse: no tokens in string: \"%s\"\n",
> + choice->buf);
> + return -EINVAL;
> + }
> +
> + if (selected < 0) {
> + igt_debug("choice-parse: missing selected token ([...]) in: \"%s\"\n",
> + choice->buf);
> + return -EINVAL;
> + }
> +
> + choice->num_tokens = num_tokens;
> + choice->selected = selected;
> +
> + return 0;
> +}
> +
> +/**
> + * igt_sysfs_choice_read() - read and parse a sysfs enumerated choice attribute
> + * @dirfd: directory file descriptor of the sysfs node
> + * @attr: attribute name relative to @dirfd
> + * @choice: output descriptor, must be non-NULL
> + *
> + * Reads the given sysfs attribute into a temporary buffer and parses it.
> + *
> + * Returns:
> + * 0 on success,
> + * negative errno-style value on read or parse error.
> + */
> +int igt_sysfs_choice_read(int dirfd, const char *attr,
> + struct igt_sysfs_choice *choice)
> +{
> + char buf[IGT_SYSFS_CHOICE_MAX_LEN];
> + int len;
> +
> + len = igt_sysfs_read(dirfd, attr, buf, sizeof(buf) - 1);
> + if (len < 0)
> + return len;
> +
> + buf[len] = '\0';
> +
> + return igt_sysfs_choice_parse(buf, choice);
> +}
> +
> +/**
> + * igt_sysfs_choice_selected - Return selected token string
Formatting: missing ()
> + * @choice: Parsed choice
> + *
> + * Returns:
> + * Pointer to the selected token string, or NULL if no valid selection.
> + */
> +const char *igt_sysfs_choice_selected(const struct igt_sysfs_choice *choice)
> +{
> + if (!choice || choice->selected < 0 ||
> + (size_t)choice->selected >= choice->num_tokens)
> + return NULL;
> +
> + return choice->tokens[choice->selected];
> +}
> +
> +/**
> + * igt_sysfs_choice_to_string - Render a parsed choice into string
Formatting: missing ()
> + * @choice: Parsed choice (tokens[] + selected index)
> + * @buf: Output buffer for formatted string
> + * @buf_sz: Size of @buf in bytes
Formatting: only in this function it's aligned this way
> + *
> + * Formats the given @choice into the string:
> + *
> + * "low [normal] high"
> + *
> + * Tokens are emitted in the order stored in @choice->tokens. The
> + * selected token (choice->selected) is wrapped in '[' and ']'.
> + *
> + * Returns:
> + * @buf on success, or NULL if @buf_sz is too small or arguments are invalid.
Maybe better to use meaningful errors instead?
> + */
> +const char *igt_sysfs_choice_to_string(const struct igt_sysfs_choice *choice,
> + char *buf, size_t buf_sz)
> +{
> + bool first = true;
> + size_t pos = 0;
> + int n;
> +
> + if (!choice || !buf || !buf_sz)
> + return NULL;
> +
> + for (size_t i = 0; i < choice->num_tokens; i++) {
> + const char *name = choice->tokens[i];
> + bool is_selected = (choice->selected == (int)i);
> +
> + if (!name)
> + continue;
> +
> + n = snprintf(buf + pos, buf_sz - pos,
> + "%s%s%s%s",
> + first ? "" : " ",
> + is_selected ? "[" : "",
> + name,
> + is_selected ? "]" : "");
> +
> + if (n < 0 || (size_t)n >= buf_sz - pos)
> + return NULL;
> +
> + pos += (size_t)n;
> + first = false;
> + }
> +
> + return buf;
> +}
> +
> +/**
> + * igt_sysfs_choice_find() - find token index by name
> + * @choice: parsed choice struct
> + * @token: token to look for (plain name, without '[' / ']')
> + *
> + * Performs a case-sensitive comparison of @token against entries in
> + * @choice->tokens.
> + *
> + * Returns:
> + * index in [0..choice->num_tokens-1] on match,
> + * -1 if @token is not present or @choice/@token is NULL.
> + */
> +int igt_sysfs_choice_find(const struct igt_sysfs_choice *choice,
> + const char *token)
> +{
> + if (!choice || !token)
> + return -1;
> +
> + for (size_t i = 0; i < choice->num_tokens; i++)
> + if (!strcmp(choice->tokens[i], token))
> + return (int)i;
> +
> + return -1;
> +}
> +
> +/**
> + * igt_sysfs_choice_to_mask() - map parsed tokens to bitmask + selection
> + * @choice: parsed choice struct
> + * @names: array of known token names
> + * @names_sz: number of elements in @names
> + * @mask: output bitmask of supported names (BIT(i) => names[i] supported)
> + * @selected_idx: output index of selected token in @names, or -1 if selected
> + * token is not among @names
> + *
> + * Builds a bitmask of known tokens present in @choice and identifies the
> + * selected token, if it matches one of @names.
> + *
> + * Unknown tokens do not cause an error; they are ignored and not
> + * reflected in @mask. This keeps the API "loose": tests can still
> + * validate required choices while tolerating additional values.
> + *
> + * Returns:
> + * 0 on success,
> + * -EINVAL on bad input parameters.
> + */
> +int igt_sysfs_choice_to_mask(const struct igt_sysfs_choice *choice,
> + const char * const *names, size_t names_sz,
> + unsigned int *mask, int *selected_idx)
> +{
> + unsigned int m = 0;
> + int sel = -1, idx;
> +
> + if (!choice || !names || !mask)
> + return -EINVAL;
> +
> + for (size_t i = 0; i < names_sz; i++) {
> + const char *name = names[i];
> +
> + if (!name)
> + continue;
> +
> + idx = igt_sysfs_choice_find(choice, name);
> + if (idx >= 0) {
> + m |= 1u << i;
> + if (idx == choice->selected)
> + sel = (int)i;
> + }
> + }
> +
> + *mask = m;
> + if (selected_idx)
> + *selected_idx = sel;
> +
> + return 0;
> +}
> +
> +/**
> + * igt_sysfs_choice_format_mask - Format a bitmask as a space-separated list of names
> + * @buf: Output buffer
> + * @buf_sz: Size of @buf in bytes
> + * @names: Array of token names indexed by bit position (0 -> names[0], etc.)
I don't think (0 -> names[0], etc.) is necessary. The same applies for
descriptions above and below.
> + * @names_len: Number of elements in @names
In function above you named it names_sz.
> + * @mask: Bitmask of available tokens (BIT(i) => include names[i])
> + * @selected_idx: Index to highlight with brackets, or <0 for none
> + *
> + * Builds a space-separated list of all bits set in @mask, mapping bit positions
> + * to names in @names. If @selected_idx >= 0 and that bit is set, the token is
> + * wrapped in brackets, e.g. "low [normal] high".
> + *
> + * Unknown / missing names[i] expand as "?".
Shouldn't it be treated as wrong input?
> + * Empty mask results in an empty string.
> + *
> + * Returns: @buf on success, or NULL on invalid arguments.
> + */
> +const char *igt_sysfs_choice_format_mask(char *buf, size_t buf_sz,
> + const char * const *names,
> + size_t names_len,
> + unsigned int mask,
> + int selected_idx)
> +{
> + char *p = buf;
> + size_t n = buf_sz;
> + bool first = true;
> + size_t idx = 0;
> +
> + if (!buf || !buf_sz || !names || !names_len)
> + return NULL;
> +
> + while (mask && idx < names_len) {
> + if (mask & 1u) {
> + const char *name = names[idx] ?: "?";
> + bool highlight = ((int)idx == selected_idx);
> + int written;
> +
> + written = snprintf(p, n, "%s%s%s%s",
> + first ? "" : " ",
> + highlight ? "[" : "",
> + name,
> + highlight ? "]" : "");
> + if (igt_warn_on(written < 0 || written >= (int)n)) {
> + buf[buf_sz - 1] = '\0';
Similarly, why not returning errors?
> + break;
> + }
> +
> + p += written;
> + n = buf_sz - (p - buf);
> + first = false;
> + }
> +
> + mask >>= 1;
> + idx++;
> + }
> +
> + if (first)
> + buf[0] = '\0';
> +
> + return buf;
> +}
> +
> +/**
> + * igt_sysfs_choice_intersect - Restrict a choice set to tokens common with another
> + * @dst: Choice to be updated in place
> + * @other: Choice providing the allowed tokens
> + *
> + * Computes the intersection of the token sets in @dst and @other.
> + * The resulting @dst contains only tokens that appear in both choices,
> + * preserving their original order from @dst.
> + *
> + * If the previously selected token in @dst is still present after
> + * intersection, its index is updated accordingly. If it is not present,
> + * @dst->selected is set to -1.
> + *
> + * Returns:
> + * * 0 - success
> + * * -EINVAL - invalid arguments
> + * * -ENOENT - no common tokens
> + */
> +int igt_sysfs_choice_intersect(struct igt_sysfs_choice *dst,
> + const struct igt_sysfs_choice *other)
> +{
> + char *new_tokens[IGT_SYSFS_CHOICE_MAX_TOKENS];
> + const char *selected_name;
> + int new_selected = -1;
> + size_t new_n = 0;
> +
> + if (!dst || !other)
> + return -EINVAL;
> +
> + selected_name = (dst->selected >= 0 && dst->selected < dst->num_tokens) ?
> + dst->tokens[dst->selected] : NULL;
> +
> + for (size_t i = 0; i < dst->num_tokens; i++) {
> + char *tok = dst->tokens[i];
> +
> + if (igt_sysfs_choice_find(other, tok) < 0)
> + continue;
> +
> + new_tokens[new_n] = tok;
> +
> + if (selected_name && !strcmp(tok, selected_name))
> + new_selected = (int)new_n;
> +
> + new_n++;
> + }
> +
> + if (!new_n) {
> + dst->num_tokens = 0;
> + dst->selected = -1;
> + return -ENOENT;
> + }
> +
> + for (size_t i = 0; i < new_n; i++)
> + dst->tokens[i] = new_tokens[i];
> +
> + dst->num_tokens = new_n;
> + dst->selected = new_selected;
> +
> + return 0;
> +}
> diff --git a/lib/igt_sysfs_choice.h b/lib/igt_sysfs_choice.h
> new file mode 100644
> index 000000000..a8a7e813a
> --- /dev/null
> +++ b/lib/igt_sysfs_choice.h
> @@ -0,0 +1,52 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2025 Intel Corporation
> + */
> +#ifndef __IGT_SYSFS_CHOICE_H__
> +#define __IGT_SYSFS_CHOICE_H__
> +
> +#include <stddef.h>
> +#include <stdbool.h>
> +
> +#define IGT_SYSFS_CHOICE_MAX_LEN 256
> +#define IGT_SYSFS_CHOICE_MAX_TOKENS 16
> +
> +/**
> + * struct igt_sysfs_choice - parsed sysfs enumerated choice attribute
> + * @tokens: array of token strings
> + * @num_tokens: number of entries in @tokens
> + * @selected: index of the active token in @tokens, or -1 if invalid
> + *
> + * This struct represents a sysfs enumerated choice attribute, for example:
> + *
> + * "low [normal] high\n"
> + *
> + * After parsing, @tokens point to "low", "normal", "high" and
> + * @selected will be 1 (the index of "normal").
> + */
> +struct igt_sysfs_choice {
> + char buf[IGT_SYSFS_CHOICE_MAX_LEN];
> + char *tokens[IGT_SYSFS_CHOICE_MAX_TOKENS];
> + size_t num_tokens;
> + int selected; /* index into tokens[], or -1 */
> +};
> +
> +int igt_sysfs_choice_parse(const char *buf, struct igt_sysfs_choice *choice);
> +int igt_sysfs_choice_read(int dirfd, const char *attr,
> + struct igt_sysfs_choice *choice);
> +const char *igt_sysfs_choice_selected(const struct igt_sysfs_choice *choice);
> +const char *igt_sysfs_choice_to_string(const struct igt_sysfs_choice *choice,
> + char *buf, size_t buf_sz);
> +int igt_sysfs_choice_find(const struct igt_sysfs_choice *choice,
> + const char *token);
> +int igt_sysfs_choice_to_mask(const struct igt_sysfs_choice *choice,
> + const char *const *names, size_t names_sz,
> + unsigned int *mask, int *selected_idx);
> +const char *igt_sysfs_choice_format_mask(char *buf, size_t buf_sz,
> + const char *const *names,
> + size_t names_sz, unsigned int mask,
> + int selected_idx);
> +int igt_sysfs_choice_intersect(struct igt_sysfs_choice *dst,
> + const struct igt_sysfs_choice *other);
> +
> +#endif /* __IGT_SYSFS_CHOICE_H__ */
> diff --git a/lib/meson.build b/lib/meson.build
> index 707ce6ff9..604ffd782 100644
> --- a/lib/meson.build
> +++ b/lib/meson.build
> @@ -44,6 +44,7 @@ lib_sources = [
> 'igt_stats.c',
> 'igt_syncobj.c',
> 'igt_sysfs.c',
> + 'igt_sysfs_choice.c',
> 'igt_sysrq.c',
> 'igt_taints.c',
> 'igt_thread.c',
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH i-g-t v2 03/10] lib/xe/xe_sriov_provisioning: Add string conversion helpers for scheduling priority
2025-11-25 10:23 ` [PATCH i-g-t v2 03/10] lib/xe/xe_sriov_provisioning: Add string conversion helpers for scheduling priority Marcin Bernatowicz
@ 2026-01-15 7:48 ` Laguna, Lukasz
0 siblings, 0 replies; 26+ messages in thread
From: Laguna, Lukasz @ 2026-01-15 7:48 UTC (permalink / raw)
To: Marcin Bernatowicz, igt-dev
Cc: adam.miszczak, jakub1.kolakowski, michal.wajdeczko
On 11/25/2025 11:23, Marcin Bernatowicz wrote:
> Introduce helper functions to convert between xe_sriov_sched_priority
> enum values and their string representations.
>
> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
> Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
> Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
> Cc: Lukasz Laguna <lukasz.laguna@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> lib/xe/xe_sriov_provisioning.c | 58 ++++++++++++++++++++++++++++++++++
> lib/xe/xe_sriov_provisioning.h | 2 ++
> 2 files changed, 60 insertions(+)
>
> diff --git a/lib/xe/xe_sriov_provisioning.c b/lib/xe/xe_sriov_provisioning.c
> index 116cd3255..c2a1db4bc 100644
> --- a/lib/xe/xe_sriov_provisioning.c
> +++ b/lib/xe/xe_sriov_provisioning.c
> @@ -5,6 +5,7 @@
>
> #include <errno.h>
>
> +#include "drmtest.h"
> #include "igt_core.h"
> #include "igt_debugfs.h"
> #include "igt_sriov_device.h"
> @@ -599,6 +600,63 @@ void xe_sriov_set_sched_if_idle(int pf, unsigned int gt_num, bool value)
> igt_fail_on(__xe_sriov_set_sched_if_idle(pf, gt_num, value));
> }
>
> +static const char * const xe_sriov_sched_priority_str[] = {
> + [XE_SRIOV_SCHED_PRIORITY_LOW] = "low",
> + [XE_SRIOV_SCHED_PRIORITY_NORMAL] = "normal",
> + [XE_SRIOV_SCHED_PRIORITY_HIGH] = "high",
> +};
> +
> +_Static_assert(ARRAY_SIZE(xe_sriov_sched_priority_str) == (XE_SRIOV_SCHED_PRIORITY_HIGH + 1),
> + "sched priority table must cover 0..HIGH");
> +
> +/**
> + * xe_sriov_sched_priority_to_string - Convert scheduling priority enum to string
> + * @prio: SR-IOV scheduling priority value
> + *
> + * Converts an enumeration value of type &enum xe_sriov_sched_priority
> + * into its corresponding string representation.
> + *
> + * Return: A pointer to a constant string literal ("low", "normal", or "high"),
> + * or %NULL if the value is invalid or unrecognized.
> + */
> +const char *xe_sriov_sched_priority_to_string(enum xe_sriov_sched_priority prio)
> +{
> + switch (prio) {
> + case XE_SRIOV_SCHED_PRIORITY_LOW:
> + case XE_SRIOV_SCHED_PRIORITY_NORMAL:
> + case XE_SRIOV_SCHED_PRIORITY_HIGH:
> + return xe_sriov_sched_priority_str[prio];
> + }
> +
> + return NULL;
> +}
> +
> +/**
> + * xe_sriov_sched_priority_from_string - Parse scheduling priority from string
> + * @s: NUL-terminated string to parse
typo: NULL
> + * @prio: Output pointer to store parsed enum value
> + *
> + * Parses a string representing a scheduling priority ("low", "normal", "high")
> + * into the corresponding &enum xe_sriov_sched_priority value.
> + *
> + * Return: 0 on success, -EINVAL if the string is invalid or unrecognized.
> + */
> +int xe_sriov_sched_priority_from_string(const char *s,
> + enum xe_sriov_sched_priority *prio)
> +{
> + igt_assert(s && prio);
> +
> + for (size_t i = 0; i < ARRAY_SIZE(xe_sriov_sched_priority_str); i++) {
> + const char *name = xe_sriov_sched_priority_str[i];
> +
> + if (name && !strcmp(s, name)) {
> + *prio = (enum xe_sriov_sched_priority)i;
> + return 0;
> + }
> + }
> + return -EINVAL;
> +}
> +
> /**
> * __xe_sriov_get_sched_priority - Get the scheduling priority for a given VF
> * @pf: PF device file descriptor
> diff --git a/lib/xe/xe_sriov_provisioning.h b/lib/xe/xe_sriov_provisioning.h
> index ab5347fd6..c9b321d58 100644
> --- a/lib/xe/xe_sriov_provisioning.h
> +++ b/lib/xe/xe_sriov_provisioning.h
> @@ -136,6 +136,8 @@ int __xe_sriov_set_engine_reset(int pf, unsigned int gt_num, bool value);
> void xe_sriov_set_engine_reset(int pf, unsigned int gt_num, bool value);
> int __xe_sriov_set_sched_if_idle(int pf, unsigned int gt_num, bool value);
> void xe_sriov_set_sched_if_idle(int pf, unsigned int gt_num, bool value);
> +const char *xe_sriov_sched_priority_to_string(enum xe_sriov_sched_priority value);
> +int xe_sriov_sched_priority_from_string(const char *s, enum xe_sriov_sched_priority *value);
> int __xe_sriov_get_sched_priority(int pf, unsigned int vf_num,
> unsigned int gt_num,
> enum xe_sriov_sched_priority *value);
LGTM, just please fix the typo:
Reviewed-by: Lukasz Laguna <lukasz.laguna@intel.com>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH i-g-t v2 04/10] lib/xe/xe_sriov_provisioning: Add sched priority mask to string helper
2025-11-25 10:23 ` [PATCH i-g-t v2 04/10] lib/xe/xe_sriov_provisioning: Add sched priority mask to string helper Marcin Bernatowicz
@ 2026-01-15 8:04 ` Laguna, Lukasz
0 siblings, 0 replies; 26+ messages in thread
From: Laguna, Lukasz @ 2026-01-15 8:04 UTC (permalink / raw)
To: Marcin Bernatowicz, igt-dev
Cc: adam.miszczak, jakub1.kolakowski, michal.wajdeczko
On 11/25/2025 11:23, Marcin Bernatowicz wrote:
> Introduce xe_sriov_sched_priority_mask_to_string() to format a
> scheduling priority bitmask as a space-separated list of priority names.
> Introduce xe_sriov_sched_priority_choice_to_mask() to convert an
> igt_sysfs_choice into a bitmask and a selected priority index.
>
> Both helpers are thin wrappers around the generic igt_sysfs_choice
> functions.
>
> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
> Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
> Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
> Cc: Lukasz Laguna <lukasz.laguna@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> v2:
> - Use BIT() macro for sched priority masks and drop static asserts
> (Michal).
> - Converted both helpers to thin wrappers around newly introduced
> generic igt_sysfs_choice helpers (Michal),
> avoiding the need to export the static array of priority names.
> ---
> ---
> lib/xe/xe_sriov_provisioning.c | 32 ++++++++++++++++++++++++++++++++
> lib/xe/xe_sriov_provisioning.h | 13 +++++++++++++
> 2 files changed, 45 insertions(+)
>
> diff --git a/lib/xe/xe_sriov_provisioning.c b/lib/xe/xe_sriov_provisioning.c
> index c2a1db4bc..929863059 100644
> --- a/lib/xe/xe_sriov_provisioning.c
> +++ b/lib/xe/xe_sriov_provisioning.c
> @@ -9,6 +9,8 @@
> #include "igt_core.h"
> #include "igt_debugfs.h"
> #include "igt_sriov_device.h"
> +#include "igt_sysfs.h"
> +#include "igt_sysfs_choice.h"
> #include "intel_chipset.h"
> #include "linux_scaffold.h"
> #include "xe/xe_query.h"
> @@ -657,6 +659,36 @@ int xe_sriov_sched_priority_from_string(const char *s,
> return -EINVAL;
> }
>
> +/**
> + * xe_sriov_sched_priority_mask_to_string - Format priority mask as text
> + * @mask: Priority bitmask.
> + * @selected_idx: Index to highlight with brackets, or <0 for none.
> + * @buf: Output buffer.
> + * @buf_sz: Size of @buf.
> + *
> + * Converts @mask to a space-separated string of priority names. If @selected_idx
> + * is >= 0 and present in @mask, that priority is wrapped in brackets, e.g.
> + * "low [normal] high". An empty @mask results in an empty string.
> + *
> + * Returns: @buf.
> + */
> +const char *xe_sriov_sched_priority_mask_to_string(unsigned int mask, int selected_idx,
> + char *buf, size_t buf_sz)
> +{
> + return igt_sysfs_choice_format_mask(buf, buf_sz,
> + xe_sriov_sched_priority_str,
> + ARRAY_SIZE(xe_sriov_sched_priority_str),
> + mask, selected_idx);
> +}
> +
missing function doc
And I think it would be better to define choice_to_mask() first.
> +int xe_sriov_sched_priority_choice_to_mask(const struct igt_sysfs_choice *choice,
> + unsigned int *mask, int *selected_idx)
> +{
> + return igt_sysfs_choice_to_mask(choice, xe_sriov_sched_priority_str,
> + ARRAY_SIZE(xe_sriov_sched_priority_str),
> + mask, selected_idx);
> +}
> +
> /**
> * __xe_sriov_get_sched_priority - Get the scheduling priority for a given VF
> * @pf: PF device file descriptor
> diff --git a/lib/xe/xe_sriov_provisioning.h b/lib/xe/xe_sriov_provisioning.h
> index c9b321d58..c4a11e4c0 100644
> --- a/lib/xe/xe_sriov_provisioning.h
> +++ b/lib/xe/xe_sriov_provisioning.h
> @@ -9,6 +9,7 @@
> #include <stdint.h>
>
> struct xe_mmio;
> +struct igt_sysfs_choice;
>
> /**
> * enum xe_sriov_shared_res - Shared resource types
> @@ -75,6 +76,14 @@ enum xe_sriov_sched_priority {
> XE_SRIOV_SCHED_PRIORITY_HIGH
> };
>
> +#define XE_SRIOV_SCHED_PRIORITY_MASK_LOW BIT(XE_SRIOV_SCHED_PRIORITY_LOW)
> +#define XE_SRIOV_SCHED_PRIORITY_MASK_NORMAL BIT(XE_SRIOV_SCHED_PRIORITY_NORMAL)
> +#define XE_SRIOV_SCHED_PRIORITY_MASK_HIGH BIT(XE_SRIOV_SCHED_PRIORITY_HIGH)
> +#define XE_SRIOV_SCHED_PRIORITY_MASK_ALL \
> + (XE_SRIOV_SCHED_PRIORITY_MASK_LOW | \
> + XE_SRIOV_SCHED_PRIORITY_MASK_NORMAL | \
> + XE_SRIOV_SCHED_PRIORITY_MASK_HIGH)
> +
> /**
> * struct xe_sriov_provisioned_range - Provisioned range for a Virtual Function (VF)
> * @vf_id: The ID of the VF
> @@ -138,6 +147,10 @@ int __xe_sriov_set_sched_if_idle(int pf, unsigned int gt_num, bool value);
> void xe_sriov_set_sched_if_idle(int pf, unsigned int gt_num, bool value);
> const char *xe_sriov_sched_priority_to_string(enum xe_sriov_sched_priority value);
> int xe_sriov_sched_priority_from_string(const char *s, enum xe_sriov_sched_priority *value);
> +const char *xe_sriov_sched_priority_mask_to_string(unsigned int mask, int selected_idx,
> + char *buf, size_t buf_sz);
> +int xe_sriov_sched_priority_choice_to_mask(const struct igt_sysfs_choice *choice,
> + unsigned int *mask, int *selected_idx);
> int __xe_sriov_get_sched_priority(int pf, unsigned int vf_num,
> unsigned int gt_num,
> enum xe_sriov_sched_priority *value);
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH i-g-t v2 05/10] lib/igt_sriov_device: Add helper for PF/VF sysfs path formatting
2025-11-25 10:23 ` [PATCH i-g-t v2 05/10] lib/igt_sriov_device: Add helper for PF/VF sysfs path formatting Marcin Bernatowicz
@ 2026-01-15 8:10 ` Laguna, Lukasz
0 siblings, 0 replies; 26+ messages in thread
From: Laguna, Lukasz @ 2026-01-15 8:10 UTC (permalink / raw)
To: Marcin Bernatowicz, igt-dev
Cc: adam.miszczak, jakub1.kolakowski, michal.wajdeczko
On 11/25/2025 11:23, Marcin Bernatowicz wrote:
> Add igt_sriov_func_str() — a small utility that returns "pf" for
nit: probably we'll need a function that returns "PF" or "VF%u" some day
for some info/debug messages. Something like xe_sriov_function_name() in
xe driver.
As this one is dedicated for paths, maybe better to include this in name
already, e.g. igt_sriov_func_path_str()?
> function 0 and "vf%u" for any VF index. This helper allows callers
> to build SR-IOV sysfs paths without duplicating PF/VF conditional
> logic.
>
> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
> Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
> Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
> Cc: Lukasz Laguna <lukasz.laguna@intel.com>
Reviewed-by: Lukasz Laguna <lukasz.laguna@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> lib/igt_sriov_device.c | 19 +++++++++++++++++++
> lib/igt_sriov_device.h | 1 +
> 2 files changed, 20 insertions(+)
>
> diff --git a/lib/igt_sriov_device.c b/lib/igt_sriov_device.c
> index ffa996d6b..788ffbfa1 100644
> --- a/lib/igt_sriov_device.c
> +++ b/lib/igt_sriov_device.c
> @@ -42,6 +42,25 @@ bool igt_sriov_is_pf(int device)
> return value > 0;
> }
>
> +/**
> + * igt_sriov_func_str - Return "pf" or "vf%u" label for a function number
> + * @vf_num: 0 for PF, >0 for VF index
> + *
> + * Helper for constructing SR-IOV sysfs paths.
> + *
> + * Returns: "pf" for @vf_num == 0, otherwise "vf%u".
> + */
> +const char *igt_sriov_func_str(unsigned int vf_num)
> +{
> + static __thread char buf[16];
> +
> + if (vf_num == 0)
> + return "pf";
> +
> + snprintf(buf, sizeof(buf), "vf%u", vf_num);
> + return buf;
> +}
> +
> static bool __pf_attr_get_u32(int pf, const char *attr, uint32_t *value)
> {
> int sysfs;
> diff --git a/lib/igt_sriov_device.h b/lib/igt_sriov_device.h
> index 930e97982..84d29b1bb 100644
> --- a/lib/igt_sriov_device.h
> +++ b/lib/igt_sriov_device.h
> @@ -34,6 +34,7 @@ int igt_sriov_device_sysfs_open(int pf, unsigned int vf_num);
> bool igt_sriov_device_reset_exists(int pf, unsigned int vf_num);
> bool igt_sriov_device_reset(int pf, unsigned int vf_num);
> bool intel_is_vf_device(int device);
> +const char *igt_sriov_func_str(unsigned int vf_num);
>
> /**
> * __is_valid_range - Helper to check VF range is valid
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH i-g-t v2 06/10] lib/xe/xe_sriov_admin: Add SR-IOV admin sysfs accessors
2025-11-25 10:23 ` [PATCH i-g-t v2 06/10] lib/xe/xe_sriov_admin: Add SR-IOV admin sysfs accessors Marcin Bernatowicz
@ 2026-01-15 8:24 ` Laguna, Lukasz
0 siblings, 0 replies; 26+ messages in thread
From: Laguna, Lukasz @ 2026-01-15 8:24 UTC (permalink / raw)
To: Marcin Bernatowicz, igt-dev
Cc: adam.miszczak, jakub1.kolakowski, michal.wajdeczko
On 11/25/2025 11:23, Marcin Bernatowicz wrote:
> Reflect recent kernel changes and expose SR-IOV admin sysfs helpers for
> scheduling control. Add per-VF and bulk accessors for execution quantum,
> preemption timeout, scheduling priority, VF stop and restoring defaults.
>
> Link: https://lore.kernel.org/intel-xe/20251030222348.186658-1-michal.wajdeczko@intel.com/
> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
> Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
> Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
> Cc: Lukasz Laguna <lukasz.laguna@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> lib/meson.build | 1 +
> lib/xe/xe_sriov_admin.c | 623 ++++++++++++++++++++++++++++++++++++++++
> lib/xe/xe_sriov_admin.h | 60 ++++
> 3 files changed, 684 insertions(+)
> create mode 100644 lib/xe/xe_sriov_admin.c
> create mode 100644 lib/xe/xe_sriov_admin.h
>
> diff --git a/lib/meson.build b/lib/meson.build
> index 604ffd782..3dec593b3 100644
> --- a/lib/meson.build
> +++ b/lib/meson.build
> @@ -126,6 +126,7 @@ lib_sources = [
> 'xe/xe_mmio.c',
> 'xe/xe_query.c',
> 'xe/xe_spin.c',
> + 'xe/xe_sriov_admin.c',
> 'xe/xe_sriov_debugfs.c',
> 'xe/xe_sriov_provisioning.c',
> 'xe/xe_util.c',
> diff --git a/lib/xe/xe_sriov_admin.c b/lib/xe/xe_sriov_admin.c
> new file mode 100644
> index 000000000..489dbec5c
> --- /dev/null
> +++ b/lib/xe/xe_sriov_admin.c
> @@ -0,0 +1,623 @@
> +// SPDX-License-Identifier: MIT
> +/*
> + * Copyright(c) 2025 Intel Corporation. All rights reserved.
> + */
> +
> +#include <errno.h>
> +#include <fcntl.h>
> +#include <limits.h>
> +#include <stdio.h>
> +#include <stdlib.h>
> +#include <string.h>
> +#include <unistd.h>
> +#include "igt.h"
> +#include "igt_sriov_device.h"
> +#include "igt_sysfs.h"
> +#include "igt_sysfs_choice.h"
> +#include "xe_sriov_admin.h"
> +
> +static const char SRIOV_ADMIN[] = "device/sriov_admin";
> +
> +static int fmt_profile_rel_path(char *buf, size_t sz, unsigned int vf_num,
> + const char *attr)
> +{
> + igt_assert(buf && attr && sz);
> +
> + return snprintf(buf, sz, "%s/%s/%s", SRIOV_ADMIN, igt_sriov_func_str(vf_num), attr);
> +}
> +
> +static int fmt_bulk_rel_path(char *buf, size_t sz, const char *attr)
> +{
> + igt_assert(buf && attr && sz);
> +
> + return snprintf(buf, sz, "%s/.bulk_profile/%s", SRIOV_ADMIN, attr);
> +}
> +
> +static int ret_from_printf(int ret)
> +{
> + return ret > 0 ? 0 : ret;
> +}
> +
> +static int ret_from_scanf_items(int ret, int want_items)
> +{
> + /* igt_sysfs_scanf: returns number of assigned items, or <0 on -errno */
> + if (ret < 0)
> + return ret;
> + return (ret == want_items) ? 0 : -EIO;
> +}
> +
> +/**
> + * xe_sriov_admin_is_present - Check if SR-IOV admin sysfs interface is available
> + * @pf_fd: PF device file descriptor.
> + *
> + * Returns: true if the PF exposes the SR-IOV admin tree, false otherwise.
> + */
> +bool xe_sriov_admin_is_present(int pf_fd)
> +{
> + int sysfs;
> + bool ret;
> +
> + sysfs = igt_sysfs_open(pf_fd);
> + if (sysfs < 0)
> + return -1;
> +
> + ret = igt_sysfs_has_attr(sysfs, SRIOV_ADMIN);
> + close(sysfs);
> + return ret;
> +}
> +
> +/**
> + * __xe_sriov_profile_set_exec_quantum_ms - Set execution quantum for a VF
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + * @eq_ms: Execution quantum in milliseconds.
> + *
> + * Writes the new execution quantum to sysfs.
> + *
> + * Returns: 0 on success or negative errno on error.
> + */
> +int __xe_sriov_profile_set_exec_quantum_ms(int pf_fd, unsigned int vf_num,
> + uint32_t eq_ms)
> +{
> + char path[PATH_MAX];
> + int sysfs;
> + bool ret;
> +
> + sysfs = igt_sysfs_open(pf_fd);
> + if (sysfs < 0)
> + return -1;
Return sysfs. Probably igt_sysfs_open() should return more meaningful
error, but it's something for another series.
> +
> + fmt_profile_rel_path(path, sizeof(path), vf_num, "profile/exec_quantum_ms");
> +
It doesn't seem that these new lines are needed. Please check get()
counterpart.
> + ret = igt_sysfs_printf(sysfs, path, "%u", eq_ms);
> +
> + close(sysfs);
> +
> + return ret_from_printf(ret);
> +}
> +
> +/**
> + * xe_sriov_profile_set_exec_quantum_ms - Assert wrapper for setting VF execution quantum
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + * @eq_ms: Execution quantum in milliseconds.
> + *
> + * Calls __xe_sriov_profile_set_exec_quantum_ms() and asserts on error.
> + */
> +void xe_sriov_profile_set_exec_quantum_ms(int pf_fd, unsigned int vf_num, uint32_t eq_ms)
> +{
> + igt_assert_eq(0, __xe_sriov_profile_set_exec_quantum_ms(pf_fd, vf_num,
No need to break the line.
> + eq_ms));
> +}
> +
> +/**
> + * __xe_sriov_profile_get_exec_quantum_ms - Read execution quantum for a VF
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + * @eq_ms: Output pointer for the execution quantum (ms).
> + *
> + * Reads current VF execution quantum from sysfs.
> + *
> + * Returns: 0 on success or negative errno on error.
> + */
> +int __xe_sriov_profile_get_exec_quantum_ms(int pf_fd, unsigned int vf_num, uint32_t *eq_ms)
> +{
> + char path[PATH_MAX];
> + unsigned int val = 0;
> + int sysfs, ret;
> +
> + sysfs = igt_sysfs_open(pf_fd);
> + if (sysfs < 0)
> + return sysfs;
> +
> + fmt_profile_rel_path(path, sizeof(path), vf_num, "profile/exec_quantum_ms");
> + ret = igt_sysfs_scanf(sysfs, path, "%u", &val);
> + close(sysfs);
> +
> + ret = ret_from_scanf_items(ret, 1);
> + if (ret)
> + return ret;
> +
> + *eq_ms = val;
> + return 0;
> +}
> +
> +/**
> + * xe_sriov_profile_get_exec_quantum_ms - Assert wrapper for reading VF execution quantum
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + *
> + * Returns: execution quantum (ms); asserts on error.
> + */
> +uint32_t xe_sriov_profile_get_exec_quantum_ms(int pf_fd, unsigned int vf_num)
> +{
> + uint32_t v = 0;
> +
> + igt_assert_eq(0,
No need to break the line?
> + __xe_sriov_profile_get_exec_quantum_ms(pf_fd, vf_num, &v));
> + return v;
> +}
> +
> +/**
> + * __xe_sriov_profile_set_preempt_timeout_us - Set preemption timeout for a VF
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + * @pt_us: Preemption timeout in microseconds.
> + *
> + * Returns: 0 on success or negative errno on error.
> + */
> +int __xe_sriov_profile_set_preempt_timeout_us(int pf_fd, unsigned int vf_num, uint32_t pt_us)
> +{
> + char path[PATH_MAX];
> + int sysfs, ret;
> +
> + sysfs = igt_sysfs_open(pf_fd);
> + if (sysfs < 0)
> + return sysfs;
> +
> + fmt_profile_rel_path(path, sizeof(path), vf_num, "profile/preempt_timeout_us");
> + ret = igt_sysfs_printf(sysfs, path, "%u", pt_us);
> + close(sysfs);
New line
> + return ret_from_printf(ret);
> +}
> +
> +/**
> + * xe_sriov_profile_set_preempt_timeout_us - Assert wrapper for setting VF preemption timeout
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + * @pt_us: Preemption timeout in microseconds.
> + */
> +void xe_sriov_profile_set_preempt_timeout_us(int pf_fd, unsigned int vf_num, uint32_t pt_us)
> +{
> + igt_assert_eq(0, __xe_sriov_profile_set_preempt_timeout_us(pf_fd, vf_num, pt_us));
> +}
> +
> +/**
> + * __xe_sriov_profile_get_preempt_timeout_us - Read preemption timeout for a VF
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + * @pt_us: Output pointer for preemption timeout (µs).
> + *
> + * Returns: 0 on success or negative errno on error.
> + */
> +int __xe_sriov_profile_get_preempt_timeout_us(int pf_fd, unsigned int vf_num,
> + uint32_t *pt_us)
> +{
> + char path[PATH_MAX];
> + unsigned int val = 0;
> + int sysfs, ret;
> +
> + sysfs = igt_sysfs_open(pf_fd);
> + if (sysfs < 0)
> + return sysfs;
> +
> + fmt_profile_rel_path(path, sizeof(path), vf_num,
> + "profile/preempt_timeout_us");
> + ret = igt_sysfs_scanf(sysfs, path, "%u", &val);
> + close(sysfs);
> +
> + ret = ret_from_scanf_items(ret, 1);
> + if (ret)
> + return ret;
> + *pt_us = val;
> + return 0;
> +}
> +
> +/**
> + * xe_sriov_profile_get_preempt_timeout_us - Assert wrapper for reading VF preemption timeout
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + *
> + * Returns: preemption timeout (µs); asserts on error.
> + */
> +uint32_t xe_sriov_profile_get_preempt_timeout_us(int pf_fd, unsigned int vf_num)
> +{
> + uint32_t v = 0;
> +
> + igt_assert_eq(0, __xe_sriov_profile_get_preempt_timeout_us(pf_fd, vf_num, &v));
> + return v;
> +}
> +
> +/**
> + * __xe_sriov_profile_set_sched_priority_string - Set VF priority from string
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + * @prio: String value ("low", "normal", "high").
> + *
> + * Returns: 0 on success or negative errno on error.
> + */
> +int __xe_sriov_profile_set_sched_priority_string(int pf_fd, unsigned int vf_num,
> + const char *prio)
> +{
> + char path[PATH_MAX];
> + int sysfs, ret;
> +
> + if (!prio)
> + return -EINVAL;
> +
> + sysfs = igt_sysfs_open(pf_fd);
> + if (sysfs < 0)
> + return sysfs;
> +
> + fmt_profile_rel_path(path, sizeof(path), vf_num,
> + "profile/sched_priority");
> + ret = igt_sysfs_printf(sysfs, path, "%s", prio);
> + close(sysfs);
> + return ret_from_printf(ret);
> +}
> +
> +/**
> + * __xe_sriov_profile_set_sched_priority - Set VF scheduling priority
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + * @prio: Priority enum value.
> + *
> + * Returns: 0 on success or negative errno on error.
> + */
> +int __xe_sriov_profile_set_sched_priority(int pf_fd, unsigned int vf_num,
> + enum xe_sriov_sched_priority prio)
> +{
> + const char *p = xe_sriov_sched_priority_to_string(prio);
> +
> + return __xe_sriov_profile_set_sched_priority_string(pf_fd, vf_num, p);
> +}
> +
> +/**
> + * xe_sriov_profile_set_sched_priority - Assert wrapper for setting VF priority
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + * @prio: Priority enum value.
> + */
> +void xe_sriov_profile_set_sched_priority(int pf_fd, unsigned int vf_num,
> + enum xe_sriov_sched_priority prio)
> +{
> + igt_assert_eq(0, __xe_sriov_profile_set_sched_priority(pf_fd, vf_num, prio));
> +}
> +
> +/**
> + * __xe_sriov_profile_get_sched_priority_choice - Read sched_priority tokens
> + * @pf_fd: PF device file descriptor
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + * @choice: Output choice structure with parsed tokens and selected index
> + *
> + * Reads the sched_priority sysfs attribute for the given PF/VF and parses it
> + * into an igt_sysfs_choice.
> + *
> + * Returns: 0 on success or a negative errno code.
> + */
> +int __xe_sriov_profile_get_sched_priority_choice(int pf_fd, unsigned int vf_num,
> + struct igt_sysfs_choice *choice)
> +{
> + char path[PATH_MAX];
> + int sysfs, ret;
> +
> + sysfs = igt_sysfs_open(pf_fd);
> + if (sysfs < 0)
> + return sysfs;
> +
> + fmt_profile_rel_path(path, sizeof(path), vf_num, "profile/sched_priority");
> + ret = igt_sysfs_choice_read(sysfs, path, choice);
> + close(sysfs);
> +
> + return ret;
> +}
> +
> +/**
> + * __xe_sriov_profile_get_sched_priority - Read VF scheduling priority + mask
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + * @prio: Output pointer for the effective priority.
> + * @prio_mask: Output mask of allowed priorities.
> + *
> + * Returns: 0 on success or negative errno on error.
> + */
> +int __xe_sriov_profile_get_sched_priority(int pf_fd, unsigned int vf_num,
> + enum xe_sriov_sched_priority *prio,
> + unsigned int *prio_mask)
> +{
> + struct igt_sysfs_choice prio_ch = {};
> + int ret;
> +
> + ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf_num, &prio_ch);
> + if (ret)
> + return ret;
> +
> + ret = xe_sriov_sched_priority_from_string(prio_ch.tokens[prio_ch.selected], prio);
> + if (igt_debug_on_f(ret, "unknown selected value '%s' (err=%d)\n",
> + prio_ch.tokens[prio_ch.selected], ret))
> + return ret;
> +
> + if (prio_mask) {
> + ret = xe_sriov_sched_priority_choice_to_mask(&prio_ch, prio_mask, NULL);
> + if (igt_debug_on_f(ret, "mask conversion failed (err=%d)\n", ret))
nit: instead of printing just the error code, add also strerror()
> + return ret;
> + }
> +
> + return 0;
> +}
> +
> +/**
> + * xe_sriov_profile_get_sched_priority - Assert wrapper for reading VF priority
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + * @prio_mask: Output mask of supported priorities.
> + *
> + * Returns: effective priority; asserts on error.
> + */
> +enum xe_sriov_sched_priority
> +xe_sriov_profile_get_sched_priority(int pf_fd, unsigned int vf_num,
> + unsigned int *prio_mask)
> +{
> + enum xe_sriov_sched_priority cur_prio;
> +
> + igt_assert_eq(0,
> + __xe_sriov_profile_get_sched_priority(pf_fd, vf_num, &cur_prio, prio_mask));
> +
> + return cur_prio;
> +}
> +
> +/**
> + * __xe_sriov_bulk_set_exec_quantum_ms - Set execution quantum for PF and all VFs
> + * @pf_fd: PF device file descriptor.
> + * @eq_ms: Execution quantum in milliseconds.
> + *
> + * Applies the value to PF and all VFs.
> + *
> + * Returns: 0 on success or negative errno on error.
> + */
> +int __xe_sriov_bulk_set_exec_quantum_ms(int pf_fd, uint32_t eq_ms)
> +{
> + char path[PATH_MAX];
> + int sysfs, ret;
> +
> + sysfs = igt_sysfs_open(pf_fd);
> + if (sysfs < 0)
> + return sysfs;
> +
> + fmt_bulk_rel_path(path, sizeof(path), "exec_quantum_ms");
> + ret = igt_sysfs_printf(sysfs, path, "%u", eq_ms);
> + close(sysfs);
New line
> + return ret_from_printf(ret);
> +}
> +
> +/**
> + * xe_sriov_bulk_set_exec_quantum_ms - Assert wrapper for bulk execution quantum update
> + * @pf_fd: PF device file descriptor.
> + * @eq_ms: Execution quantum in milliseconds.
> + */
> +void xe_sriov_bulk_set_exec_quantum_ms(int pf_fd, uint32_t eq_ms)
> +{
> + igt_assert_eq(0, __xe_sriov_bulk_set_exec_quantum_ms(pf_fd, eq_ms));
> +}
> +
> +/**
> + * __xe_sriov_bulk_set_preempt_timeout_us - Set preemption timeout for PF and all VFs
> + * @pf_fd: PF device file descriptor.
> + * @pt_us: Preemption timeout in microseconds.
> + *
> + * Applies the value to PF and all VFs.
> + *
> + * Returns: 0 on success or negative errno on error.
> + */
> +int __xe_sriov_bulk_set_preempt_timeout_us(int pf_fd, uint32_t pt_us)
> +{
> + char path[PATH_MAX];
> + int sysfs, ret;
> +
> + sysfs = igt_sysfs_open(pf_fd);
> + if (sysfs < 0)
> + return sysfs;
> +
> + fmt_bulk_rel_path(path, sizeof(path), "preempt_timeout_us");
> + ret = igt_sysfs_printf(sysfs, path, "%u", pt_us);
> + close(sysfs);
> + return ret_from_printf(ret);
> +}
> +
> +/**
> + * xe_sriov_bulk_set_preempt_timeout_us - Assert wrapper for bulk preemption timeout update
> + * @pf_fd: PF device file descriptor.
> + * @pt_us: Preemption timeout in microseconds.
> + */
> +void xe_sriov_bulk_set_preempt_timeout_us(int pf_fd, uint32_t pt_us)
> +{
> + igt_assert_eq(0, __xe_sriov_bulk_set_preempt_timeout_us(pf_fd, pt_us));
> +}
> +
> +/**
> + * __xe_sriov_bulk_set_sched_priority_string - Set scheduling priority for PF and all VFs
> + * @pf_fd: PF device file descriptor.
> + * @prio: String priority ("low", "normal", "high").
> + *
> + * Returns: 0 on success or negative errno on error.
> + */
> +int __xe_sriov_bulk_set_sched_priority_string(int pf_fd, const char *prio)
> +{
> + char path[PATH_MAX];
> + int sysfs, ret;
> +
> + sysfs = igt_sysfs_open(pf_fd);
> + if (sysfs < 0)
> + return sysfs;
> +
> + fmt_bulk_rel_path(path, sizeof(path), "sched_priority");
> + ret = igt_sysfs_printf(sysfs, path, "%s", prio);
> + close(sysfs);
> + return ret_from_printf(ret);
> +}
> +
> +/**
> + * xe_sriov_bulk_set_sched_priority_string - Assert wrapper for bulk priority update
> + * @pf_fd: PF device file descriptor.
> + * @prio: String priority.
> + */
> +void xe_sriov_bulk_set_sched_priority_string(int pf_fd, const char *prio)
> +{
> + igt_assert_eq(0, __xe_sriov_bulk_set_sched_priority_string(pf_fd, prio));
> +}
> +
> +/**
> + * __xe_sriov_bulk_set_sched_priority - Set numeric priority for PF and all VFs
> + * @pf_fd: PF device file descriptor.
> + * @prio: Enum priority value.
> + *
> + * Returns: 0 on success or negative errno on error.
> + */
> +int __xe_sriov_bulk_set_sched_priority(int pf_fd,
> + enum xe_sriov_sched_priority prio)
> +{
> + const char *s = xe_sriov_sched_priority_to_string(prio);
> +
> + if (!s)
> + return -EINVAL;
> + return __xe_sriov_bulk_set_sched_priority_string(pf_fd, s);
> +}
> +
> +/**
> + * xe_sriov_bulk_set_sched_priority - Assert wrapper for bulk priority update
> + * @pf_fd: PF device file descriptor.
> + * @prio: Enum priority value.
> + */
> +void xe_sriov_bulk_set_sched_priority(int pf_fd,
> + enum xe_sriov_sched_priority prio)
> +{
> + igt_assert_eq(0, __xe_sriov_bulk_set_sched_priority(pf_fd, prio));
> +}
> +
> +/**
> + * __xe_sriov_vf_stop - Issue stop command for a VF
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index.
> + *
> + * Triggers VF stop via sysfs.
> + *
> + * Returns: 0 on success or negative errno on error.
> + */
> +int __xe_sriov_vf_stop(int pf_fd, unsigned int vf_num)
> +{
> + char path[PATH_MAX];
> + int sysfs, ret;
> +
> + sysfs = igt_sysfs_open(pf_fd);
> + if (sysfs < 0)
> + return sysfs;
> +
> + fmt_profile_rel_path(path, sizeof(path), vf_num, "stop");
> + ret = igt_sysfs_printf(sysfs, path, "%u", 1u);
> + close(sysfs);
> + return ret_from_printf(ret);
> +}
> +
> +/**
> + * xe_sriov_vf_stop - Assert wrapper for VF stop command
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index.
> + */
> +void xe_sriov_vf_stop(int pf_fd, unsigned int vf_num)
> +{
> + igt_assert_eq(0, __xe_sriov_vf_stop(pf_fd, vf_num));
> +}
> +
> +/**
> + * __xe_sriov_profile_restore_defaults - Restore scheduling defaults for a VF
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + *
> + * Resets execution quantum, preemption timeout, and priority to driver defaults.
> + *
> + * Returns: 0 on success or negative errno on error.
> + */
> +int __xe_sriov_profile_restore_defaults(int pf_fd, unsigned int vf_num)
> +{
> + int ret_eq, ret_pt, ret_prio;
> + int ret = 0;
> +
> + ret_eq = __xe_sriov_profile_set_exec_quantum_ms(pf_fd, vf_num, 0);
> + igt_warn_on(ret_eq);
> + if (!ret)
> + ret = ret_eq;
> +
> + ret_pt = __xe_sriov_profile_set_preempt_timeout_us(pf_fd, vf_num, 0);
> + igt_warn_on(ret_pt);
> + if (!ret)
> + ret = ret_pt;
> +
> + ret_prio = __xe_sriov_profile_set_sched_priority(pf_fd, vf_num,
> + XE_SRIOV_SCHED_PRIORITY_LOW);
> + igt_warn_on(ret_prio);
> + if (!ret)
> + ret = ret_prio;
> +
> + return ret;
> +}
> +
> +/**
> + * xe_sriov_profile_restore_defaults - Assert wrapper restoring VF defaults
> + * @pf_fd: PF device file descriptor.
> + * @vf_num: VF index (0 for PF, >0 for VFs).
> + */
> +void xe_sriov_profile_restore_defaults(int pf_fd, unsigned int vf_num)
> +{
> + igt_assert_eq(0, __xe_sriov_profile_restore_defaults(pf_fd, vf_num));
> +}
> +
> +/**
> + * __xe_sriov_bulk_restore_defaults - Restore scheduling defaults for PF and all VFs
> + * @pf_fd: PF device file descriptor.
> + *
> + * Resets PF and all VFs to driver default scheduling parameters.
> + *
> + * Returns: 0 on success or negative errno on error.
> + */
> +int __xe_sriov_bulk_restore_defaults(int pf_fd)
> +{
> + int ret_eq, ret_pt, ret_prio;
> + int ret = 0;
> +
> + ret_eq = __xe_sriov_bulk_set_exec_quantum_ms(pf_fd, 0);
> + igt_warn_on(ret_eq);
> + if (!ret)
> + ret = ret_eq;
> +
> + ret_pt = __xe_sriov_bulk_set_preempt_timeout_us(pf_fd, 0);
> + igt_warn_on(ret_pt);
> + if (!ret)
> + ret = ret_pt;
> +
> + ret_prio = __xe_sriov_bulk_set_sched_priority(pf_fd,
> + XE_SRIOV_SCHED_PRIORITY_LOW);
> + igt_warn_on(ret_prio);
> + if (!ret)
> + ret = ret_prio;
> +
> + return ret;
> +}
> +
> +/**
> + * xe_sriov_bulk_restore_defaults - Assert wrapper for restoring defaults on PF and all VFs
> + * @pf_fd: PF device file descriptor.
> + */
> +void xe_sriov_bulk_restore_defaults(int pf_fd)
> +{
> + igt_assert_eq(0, __xe_sriov_bulk_restore_defaults(pf_fd));
> +}
> diff --git a/lib/xe/xe_sriov_admin.h b/lib/xe/xe_sriov_admin.h
> new file mode 100644
> index 000000000..6dfd0f7d4
> --- /dev/null
> +++ b/lib/xe/xe_sriov_admin.h
> @@ -0,0 +1,60 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright(c) 2025 Intel Corporation. All rights reserved.
> + */
> +
> +#ifndef __XE_SRIOV_ADMIN_H__
> +#define __XE_SRIOV_ADMIN_H__
> +
> +#include <stdbool.h>
> +#include <stdint.h>
> +#include <stddef.h>
> +#include "xe_sriov_provisioning.h" /* for enum xe_sriov_sched_priority */
> +
> +struct igt_sysfs_choice;
> +
> +bool xe_sriov_admin_is_present(int pf_fd);
> +
> +int __xe_sriov_profile_set_exec_quantum_ms(int pf_fd, unsigned int vf_num, uint32_t eq_ms);
> +void xe_sriov_profile_set_exec_quantum_ms(int pf_fd, unsigned int vf_num, uint32_t eq_ms);
> +int __xe_sriov_profile_get_exec_quantum_ms(int pf_fd, unsigned int vf_num, uint32_t *eq_ms);
> +uint32_t xe_sriov_profile_get_exec_quantum_ms(int pf_fd, unsigned int vf_num);
> +int __xe_sriov_profile_set_preempt_timeout_us(int pf_fd, unsigned int vf_num, uint32_t pt_us);
> +void xe_sriov_profile_set_preempt_timeout_us(int pf_fd, unsigned int vf_num, uint32_t pt_us);
> +int __xe_sriov_profile_get_preempt_timeout_us(int pf_fd, unsigned int vf_num, uint32_t *pt_us);
> +uint32_t xe_sriov_profile_get_preempt_timeout_us(int pf_fd, unsigned int vf_num);
> +int __xe_sriov_profile_set_sched_priority_string(int pf_fd, unsigned int vf_num,
> + const char *prio);
> +int __xe_sriov_profile_get_sched_priority_choice(int pf_fd, unsigned int vf_num,
> + struct igt_sysfs_choice *choice);
> +int __xe_sriov_profile_set_sched_priority(int pf_fd, unsigned int vf_num,
> + enum xe_sriov_sched_priority prio);
> +void xe_sriov_profile_set_sched_priority(int pf_fd, unsigned int vf_num,
> + enum xe_sriov_sched_priority prio);
> +int __xe_sriov_profile_get_sched_priority(int pf_fd, unsigned int vf_num,
> + enum xe_sriov_sched_priority *prio,
> + unsigned int *prio_mask);
> +enum xe_sriov_sched_priority
> +xe_sriov_profile_get_sched_priority(int pf_fd, unsigned int vf_num,
> + unsigned int *prio_mask);
If you named above helpers xe_sriov_profile_set_*, then I think it would
be better to name below the same way.
It would be xe_sriov_profile_bulk_set_*.
Another option is to use xe_sriov_admin_set_* and xe_sriov_admin_bulk_set_*
> +
> +int __xe_sriov_bulk_set_exec_quantum_ms(int pf_fd, uint32_t eq_ms);
> +void xe_sriov_bulk_set_exec_quantum_ms(int pf_fd, uint32_t eq_ms);
> +int __xe_sriov_bulk_set_preempt_timeout_us(int pf_fd, uint32_t pt_us);
> +void xe_sriov_bulk_set_preempt_timeout_us(int pf_fd, uint32_t pt_us);
> +int __xe_sriov_bulk_set_sched_priority_string(int pf_fd, const char *prio);
> +void xe_sriov_bulk_set_sched_priority_string(int pf_fd, const char *prio);
> +int __xe_sriov_bulk_set_sched_priority(int pf_fd,
> + enum xe_sriov_sched_priority prio);
> +void xe_sriov_bulk_set_sched_priority(int pf_fd,
> + enum xe_sriov_sched_priority prio);
> +
> +int __xe_sriov_vf_stop(int pf_fd, unsigned int vf_num);
> +void xe_sriov_vf_stop(int pf_fd, unsigned int vf_num);
> +
> +int __xe_sriov_profile_restore_defaults(int pf_fd, unsigned int vf_num);
> +void xe_sriov_profile_restore_defaults(int pf_fd, unsigned int vf_num);
> +int __xe_sriov_bulk_restore_defaults(int pf_fd);
> +void xe_sriov_bulk_restore_defaults(int pf_fd);
> +
> +#endif /* __XE_SRIOV_ADMIN_H__ */
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH i-g-t v2 07/10] tests/intel/xe_sriov_scheduling: Avoid assert on scheduling params restore in cleanup
2025-11-25 10:23 ` [PATCH i-g-t v2 07/10] tests/intel/xe_sriov_scheduling: Avoid assert on scheduling params restore in cleanup Marcin Bernatowicz
@ 2026-01-15 8:25 ` Laguna, Lukasz
0 siblings, 0 replies; 26+ messages in thread
From: Laguna, Lukasz @ 2026-01-15 8:25 UTC (permalink / raw)
To: Marcin Bernatowicz, igt-dev
Cc: adam.miszczak, jakub1.kolakowski, michal.wajdeczko
On 11/25/2025 11:23, Marcin Bernatowicz wrote:
> Add __set_vfs_scheduling_params() that returns error instead of asserting.
> Use the non-asserting helper in cleanup paths to ensure VFs are properly
> disabled before aborting.
>
> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
> Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
> Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
> Cc: Lukasz Laguna <lukasz.laguna@intel.com>
Reviewed-by: Lukasz Laguna <lukasz.laguna@intel.com>
> ---
> tests/intel/xe_sriov_scheduling.c | 41 ++++++++++++++++++++++++-------
> 1 file changed, 32 insertions(+), 9 deletions(-)
>
> diff --git a/tests/intel/xe_sriov_scheduling.c b/tests/intel/xe_sriov_scheduling.c
> index 5e8c87755..3a0c0d438 100644
> --- a/tests/intel/xe_sriov_scheduling.c
> +++ b/tests/intel/xe_sriov_scheduling.c
> @@ -371,17 +371,36 @@ struct vf_sched_params {
> uint32_t preempt_timeout_us;
> };
>
> -static void set_vfs_scheduling_params(int pf_fd, int num_vfs,
> - const struct vf_sched_params *p)
> +static int __set_vfs_scheduling_params(int pf_fd, int num_vfs,
> + const struct vf_sched_params *p)
> {
> unsigned int gt;
> + int vf, ret;
>
> xe_for_each_gt(pf_fd, gt) {
> - for (int vf = 0; vf <= num_vfs; ++vf) {
> - xe_sriov_set_exec_quantum_ms(pf_fd, vf, gt, p->exec_quantum_ms);
> - xe_sriov_set_preempt_timeout_us(pf_fd, vf, gt, p->preempt_timeout_us);
> + for (vf = 0; vf <= num_vfs; ++vf) {
> + ret = __xe_sriov_set_exec_quantum_ms(pf_fd, vf, gt,
> + p->exec_quantum_ms);
> + if (igt_warn_on_f(ret,
> + "Failed to set exec_quantum_ms=%u (VF%d GT%u): %d\n",
> + p->exec_quantum_ms, vf, gt, ret))
> + return ret;
> +
> + ret = __xe_sriov_set_preempt_timeout_us(pf_fd, vf, gt,
> + p->preempt_timeout_us);
> + if (igt_warn_on_f(ret,
> + "Failed to set preempt_timeout_us=%u (VF%d GT%u): %d\n",
> + p->preempt_timeout_us, vf, gt, ret))
> + return ret;
> }
> }
> + return 0;
> +}
> +
> +static void set_vfs_scheduling_params(int pf_fd, int num_vfs,
> + const struct vf_sched_params *p)
> +{
> + igt_assert_eq(0, __set_vfs_scheduling_params(pf_fd, num_vfs, p));
> }
>
> static bool check_within_epsilon(const double x, const double ref, const double tol)
> @@ -729,7 +748,7 @@ static void throughput_ratio(int pf_fd, int num_vfs, const struct subm_opts *opt
>
> /* cleanup */
> subm_set_fini(set);
> - set_vfs_scheduling_params(pf_fd, num_vfs, &(struct vf_sched_params){});
> + __set_vfs_scheduling_params(pf_fd, num_vfs, &(struct vf_sched_params){});
> xe_sriov_disable_vfs_restore_auto_provisioning(pf_fd);
> }
>
> @@ -815,7 +834,7 @@ static void nonpreempt_engine_resets(int pf_fd, int num_vfs,
>
> /* cleanup */
> subm_set_fini(set);
> - set_vfs_scheduling_params(pf_fd, num_vfs, &(struct vf_sched_params){});
> + __set_vfs_scheduling_params(pf_fd, num_vfs, &(struct vf_sched_params){});
> xe_sriov_disable_vfs_restore_auto_provisioning(pf_fd);
> }
>
> @@ -923,8 +942,10 @@ igt_main_args("", long_opts, help_str, subm_opts_handler, NULL)
> }
>
> igt_fixture {
> - set_vfs_scheduling_params(pf_fd, igt_sriov_get_total_vfs(pf_fd),
> - &(struct vf_sched_params){});
> + int ret;
> +
> + ret = __set_vfs_scheduling_params(pf_fd, igt_sriov_get_total_vfs(pf_fd),
> + &(struct vf_sched_params){});
> xe_sriov_disable_vfs_restore_auto_provisioning(pf_fd);
> /* abort to avoid execution of next tests with enabled VFs */
> igt_abort_on_f(igt_sriov_get_enabled_vfs(pf_fd) > 0,
> @@ -933,6 +954,8 @@ igt_main_args("", long_opts, help_str, subm_opts_handler, NULL)
> igt_sriov_disable_driver_autoprobe(pf_fd);
> igt_abort_on_f(autoprobe != igt_sriov_is_driver_autoprobe_enabled(pf_fd),
> "Failed to restore sriov_drivers_autoprobe value\n");
> + igt_abort_on_f(ret,
> + "Failed to restore scheduling params\n");
> drm_close_driver(pf_fd);
> }
> }
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH i-g-t v2 08/10] tests/intel/xe_sriov_scheduling: Prefer SR-IOV admin sysfs accessors
2025-11-25 10:23 ` [PATCH i-g-t v2 08/10] tests/intel/xe_sriov_scheduling: Prefer SR-IOV admin sysfs accessors Marcin Bernatowicz
@ 2026-01-15 8:25 ` Laguna, Lukasz
0 siblings, 0 replies; 26+ messages in thread
From: Laguna, Lukasz @ 2026-01-15 8:25 UTC (permalink / raw)
To: Marcin Bernatowicz, igt-dev
Cc: adam.miszczak, jakub1.kolakowski, michal.wajdeczko
On 11/25/2025 11:23, Marcin Bernatowicz wrote:
> Use SR-IOV admin sysfs setters for scheduling parameters,
> skip if sriov_admin sysfs not available.
>
> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
> Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
> Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
> Cc: Lukasz Laguna <lukasz.laguna@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Lukasz Laguna <lukasz.laguna@intel.com>
> ---
> v2: Switch to SR-IOV sysfs setters (Michal)
> ---
> ---
> tests/intel/xe_sriov_scheduling.c | 38 ++++++++++++++-----------------
> 1 file changed, 17 insertions(+), 21 deletions(-)
>
> diff --git a/tests/intel/xe_sriov_scheduling.c b/tests/intel/xe_sriov_scheduling.c
> index 3a0c0d438..491d2eb0a 100644
> --- a/tests/intel/xe_sriov_scheduling.c
> +++ b/tests/intel/xe_sriov_scheduling.c
> @@ -9,6 +9,7 @@
> #include "xe_drm.h"
> #include "xe/xe_ioctl.h"
> #include "xe/xe_spin.h"
> +#include "xe/xe_sriov_admin.h"
> #include "xe/xe_sriov_provisioning.h"
>
> /**
> @@ -374,27 +375,21 @@ struct vf_sched_params {
> static int __set_vfs_scheduling_params(int pf_fd, int num_vfs,
> const struct vf_sched_params *p)
> {
> - unsigned int gt;
> - int vf, ret;
> -
> - xe_for_each_gt(pf_fd, gt) {
> - for (vf = 0; vf <= num_vfs; ++vf) {
> - ret = __xe_sriov_set_exec_quantum_ms(pf_fd, vf, gt,
> - p->exec_quantum_ms);
> - if (igt_warn_on_f(ret,
> - "Failed to set exec_quantum_ms=%u (VF%d GT%u): %d\n",
> - p->exec_quantum_ms, vf, gt, ret))
> - return ret;
> -
> - ret = __xe_sriov_set_preempt_timeout_us(pf_fd, vf, gt,
> - p->preempt_timeout_us);
> - if (igt_warn_on_f(ret,
> - "Failed to set preempt_timeout_us=%u (VF%d GT%u): %d\n",
> - p->preempt_timeout_us, vf, gt, ret))
> - return ret;
> - }
> - }
> - return 0;
> + int ret = 0;
> +
> + ret = __xe_sriov_bulk_set_exec_quantum_ms(pf_fd, p->exec_quantum_ms);
> + if (igt_warn_on_f(ret,
> + "Failed to bulk set exec quantum=%u: %d\n",
> + p->exec_quantum_ms, ret))
> + return ret;
> +
> + ret = __xe_sriov_bulk_set_preempt_timeout_us(pf_fd, p->preempt_timeout_us);
> + if (igt_warn_on_f(ret,
> + "Failed to bulk set preempt timeout=%u: %d\n",
> + p->preempt_timeout_us, ret))
> + return ret;
> +
> + return ret;
> }
>
> static void set_vfs_scheduling_params(int pf_fd, int num_vfs,
> @@ -912,6 +907,7 @@ igt_main_args("", long_opts, help_str, subm_opts_handler, NULL)
> pf_fd = drm_open_driver(DRIVER_XE);
> igt_require(igt_sriov_is_pf(pf_fd));
> igt_require(igt_sriov_get_enabled_vfs(pf_fd) == 0);
> + igt_require(xe_sriov_admin_is_present(pf_fd));
> autoprobe = igt_sriov_is_driver_autoprobe_enabled(pf_fd);
> xe_sriov_require_default_scheduling_attributes(pf_fd);
> }
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH i-g-t v2 09/10] tests/intel/xe_pmu: Prefer SR-IOV admin sysfs accessors
2025-11-25 10:23 ` [PATCH i-g-t v2 09/10] tests/intel/xe_pmu: " Marcin Bernatowicz
@ 2026-01-15 8:27 ` Laguna, Lukasz
0 siblings, 0 replies; 26+ messages in thread
From: Laguna, Lukasz @ 2026-01-15 8:27 UTC (permalink / raw)
To: Marcin Bernatowicz, igt-dev
Cc: adam.miszczak, jakub1.kolakowski, michal.wajdeczko,
Jonathan Cavitt, Kamil Konieczny
On 11/25/2025 11:23, Marcin Bernatowicz wrote:
> Switch xe_pmu scheduling configuration to the SR-IOV admin sysfs
> setters for exec_quantum_ms, preempt_timeout_us and sched_priority,
> skipping the test if sriov_admin is not available.
>
> Also adopts the “Tie preempt timeout to exec quantum” change using the
> new sriov_admin interface.
> Link: https://lore.kernel.org/igt-dev/20251107151251.6323-2-jonathan.cavitt@intel.com/
>
> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
> Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
> Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
> Cc: Jonathan Cavitt <jonathan.cavitt@intel.com>
> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Cc: Lukasz Laguna <lukasz.laguna@intel.com>
Reviewed-by: Lukasz Laguna <lukasz.laguna@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> tests/intel/xe_pmu.c | 43 ++++++++++++++++++++++---------------------
> 1 file changed, 22 insertions(+), 21 deletions(-)
>
> diff --git a/tests/intel/xe_pmu.c b/tests/intel/xe_pmu.c
> index 6e91b752a..f8f66ce56 100644
> --- a/tests/intel/xe_pmu.c
> +++ b/tests/intel/xe_pmu.c
> @@ -102,6 +102,7 @@
> #include "xe/xe_gt.h"
> #include "xe/xe_ioctl.h"
> #include "xe/xe_spin.h"
> +#include "xe/xe_sriov_admin.h"
> #include "xe/xe_sriov_provisioning.h"
>
> #define SLEEP_DURATION 2 /* in seconds */
> @@ -693,7 +694,7 @@ static void engine_activity_all_fn(int fd, struct drm_xe_engine_class_instance *
> }
>
> static void engine_activity_fn(int fd, struct drm_xe_engine_class_instance *eci,
> - int function, bool sched_if_idle)
> + int function, enum xe_sriov_sched_priority prio)
> {
> uint64_t config, engine_active_ticks, engine_total_ticks, before[2], after[2];
> double busy_percent, exec_quantum_ratio;
> @@ -701,6 +702,9 @@ static void engine_activity_fn(int fd, struct drm_xe_engine_class_instance *eci,
> int pmu_fd[2], fn_fd;
> uint32_t vm;
>
> + if (prio != xe_sriov_profile_get_sched_priority(fd, 0, NULL))
> + xe_sriov_bulk_set_sched_priority(fd, prio);
> +
> if (function > 0) {
> fn_fd = igt_sriov_open_vf_drm_device(fd, function);
> igt_assert_fd(fn_fd);
> @@ -748,7 +752,7 @@ static void engine_activity_fn(int fd, struct drm_xe_engine_class_instance *eci,
> if (function > 0)
> close(fn_fd);
>
> - if (sched_if_idle)
> + if (prio == XE_SRIOV_SCHED_PRIORITY_NORMAL)
> assert_within_epsilon(engine_active_ticks, engine_total_ticks, tolerance);
> else
> assert_within_epsilon(busy_percent, exec_quantum_ratio, tolerance);
> @@ -973,10 +977,12 @@ static void test_gt_frequency(int fd, struct drm_xe_engine_class_instance *eci)
>
> static unsigned int enable_and_provision_vfs(int fd)
> {
> - unsigned int gt, num_vfs;
> - int pf_exec_quantum = 64, vf_exec_quantum = 32, vf;
> + unsigned int num_vfs, vf;
> + uint32_t pf_exec_quantum_ms = 64, vf_exec_quantum_ms = 32;
> + uint32_t pf_preempt_timeout_us = 64000, vf_preempt_timeout_us = 32000;
>
> igt_require(igt_sriov_is_pf(fd));
> + igt_require(xe_sriov_admin_is_present(fd));
> igt_require(igt_sriov_get_enabled_vfs(fd) == 0);
> xe_sriov_require_default_scheduling_attributes(fd);
> autoprobe = igt_sriov_is_driver_autoprobe_enabled(fd);
> @@ -988,37 +994,33 @@ static unsigned int enable_and_provision_vfs(int fd)
> igt_require(num_vfs == 2);
>
> /* Set 32ms for VF execution quantum and 64ms for PF execution quantum */
> - xe_for_each_gt(fd, gt) {
> - xe_sriov_set_sched_if_idle(fd, gt, 0);
> - for (int fn = 0; fn <= num_vfs; fn++)
> - xe_sriov_set_exec_quantum_ms(fd, fn, gt, fn ? vf_exec_quantum :
> - pf_exec_quantum);
> - }
> + xe_sriov_bulk_set_exec_quantum_ms(fd, vf_exec_quantum_ms);
> + xe_sriov_bulk_set_preempt_timeout_us(fd, vf_preempt_timeout_us);
> + xe_sriov_bulk_set_sched_priority(fd, XE_SRIOV_SCHED_PRIORITY_LOW);
> + xe_sriov_profile_set_exec_quantum_ms(fd, 0, pf_exec_quantum_ms);
> + xe_sriov_profile_set_preempt_timeout_us(fd, 0,
> + pf_preempt_timeout_us);
>
> /* probe VFs */
> igt_sriov_enable_driver_autoprobe(fd);
> for (vf = 1; vf <= num_vfs; vf++)
> igt_sriov_bind_vf_drm_driver(fd, vf);
>
> - total_exec_quantum = pf_exec_quantum + (num_vfs * vf_exec_quantum);
> + total_exec_quantum = pf_exec_quantum_ms + (num_vfs * vf_exec_quantum_ms);
>
> return num_vfs;
> }
>
> static void unprovision_and_disable_vfs(int fd)
> {
> - unsigned int gt, num_vfs = igt_sriov_get_enabled_vfs(fd);
> -
> - xe_for_each_gt(fd, gt) {
> - xe_sriov_set_sched_if_idle(fd, gt, 0);
> - for (int fn = 0; fn <= num_vfs; fn++)
> - xe_sriov_set_exec_quantum_ms(fd, fn, gt, 0);
> - }
> + int ret;
>
> + ret = __xe_sriov_bulk_restore_defaults(fd);
> xe_sriov_disable_vfs_restore_auto_provisioning(fd);
> /* abort to avoid execution of next tests with enabled VFs */
> igt_abort_on_f(igt_sriov_get_enabled_vfs(fd) > 0,
> "Failed to disable VF(s)");
> + igt_abort_on_f(ret, "Failed to restore scheduling params\n");
> autoprobe ? igt_sriov_enable_driver_autoprobe(fd) :
> igt_sriov_disable_driver_autoprobe(fd);
>
> @@ -1188,13 +1190,12 @@ igt_main
> igt_describe("Validate per-function engine activity");
> test_each_engine("fn-engine-activity-load", fd, eci)
> for (int fn = 0; fn < num_fns; fn++)
> - engine_activity_fn(fd, eci, fn, false);
> + engine_activity_fn(fd, eci, fn, XE_SRIOV_SCHED_PRIORITY_LOW);
>
> igt_describe("Validate per-function engine activity when sched-if-idle is set");
> test_each_engine("fn-engine-activity-sched-if-idle", fd, eci) {
> - xe_sriov_set_sched_if_idle(fd, eci->gt_id, 1);
> for (int fn = 0; fn < num_fns; fn++)
> - engine_activity_fn(fd, eci, fn, true);
> + engine_activity_fn(fd, eci, fn, XE_SRIOV_SCHED_PRIORITY_NORMAL);
> }
>
> igt_fixture
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH i-g-t v2 10/10] tests/intel/xe_sriov_admin_profile: Add SR-IOV admin sysfs scheduling attributes tests
2025-11-25 10:23 ` [PATCH i-g-t v2 10/10] tests/intel/xe_sriov_admin_profile: Add SR-IOV admin sysfs scheduling attributes tests Marcin Bernatowicz
@ 2026-01-15 10:05 ` Laguna, Lukasz
2026-01-15 10:10 ` Laguna, Lukasz
1 sibling, 0 replies; 26+ messages in thread
From: Laguna, Lukasz @ 2026-01-15 10:05 UTC (permalink / raw)
To: Marcin Bernatowicz, igt-dev
Cc: adam.miszczak, jakub1.kolakowski, michal.wajdeczko,
Kamil Konieczny
On 11/25/2025 11:23, Marcin Bernatowicz wrote:
> Add tests that exercise SR-IOV admin sysfs attributes for PF/VF functions
> with VFs disabled, covering default values, write -> readback behavior, and
> bulk updates for exec_quantum_ms, preempt_timeout_us, and sched_priority.
>
> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
> Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
> Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Cc: Lukasz Laguna <lukasz.laguna@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> tests/intel/xe_sriov_admin_profile.c | 414 +++++++++++++++++++++++++++
> tests/meson.build | 1 +
> 2 files changed, 415 insertions(+)
> create mode 100644 tests/intel/xe_sriov_admin_profile.c
>
> diff --git a/tests/intel/xe_sriov_admin_profile.c b/tests/intel/xe_sriov_admin_profile.c
> new file mode 100644
> index 000000000..6f4ed31b1
> --- /dev/null
> +++ b/tests/intel/xe_sriov_admin_profile.c
> @@ -0,0 +1,414 @@
> +// SPDX-License-Identifier: MIT
> +/*
> + * Copyright © 2025 Intel Corporation
2026
> + */
> +#include "igt.h"
> +#include "igt_sriov_device.h"
> +#include "igt_sysfs.h"
> +#include "igt_sysfs_choice.h"
> +#include "xe_drm.h"
> +#include "xe/xe_sriov_admin.h"
> +
> +/**
> + * TEST: Tests for SR-IOV admin sysfs.
> + * Category: Core
> + * Mega feature: SR-IOV
> + * Sub-category: sysfs
> + * Functionality: SR-IOV admin sysfs
> + * Description: Verify behavior of exposed SR-IOV admin sysfs attributes.
> + */
> +
> +/**
> + * SUBTEST: default-sched-attributes-vfs-disabled
> + * Description:
> + * Verify default scheduling attributes under sriov_admin
> + * with VFs disabled.
> + */
> +static void default_sched_attributes(int pf_fd, int vf_num)
> +{
> + igt_dynamic_f("%s-default-exec-quantum", igt_sriov_func_str(vf_num)) {
> + igt_assert_eq(0, xe_sriov_profile_get_exec_quantum_ms(pf_fd, vf_num));
> + }
> +
> + igt_dynamic_f("%s-default-preempt-timeout", igt_sriov_func_str(vf_num)) {
> + igt_assert_eq(0, xe_sriov_profile_get_preempt_timeout_us(pf_fd, vf_num));
> + }
> +
> + igt_dynamic_f("%s-default-sched-priority", igt_sriov_func_str(vf_num)) {
> + enum xe_sriov_sched_priority prio;
> + unsigned int prio_mask;
> + char mask_str[64];
> +
> + prio = xe_sriov_profile_get_sched_priority(pf_fd, vf_num, &prio_mask);
> + igt_debug("PRIO=%s\n",
> + xe_sriov_sched_priority_mask_to_string(prio_mask, prio, mask_str,
> + sizeof(mask_str)));
> + igt_assert_eq(XE_SRIOV_SCHED_PRIORITY_LOW, prio);
> + }
> +}
> +
> +/**
> + * SUBTEST: exec-quantum-write-readback-vfs-disabled
> + * Description:
> + * Verify write -> readback of exec_quantum_ms under sriov_admin
> + * for PF and all VFs with VFs disabled.
> + */
> +static void exec_quantum_write_readback(int pf_fd, unsigned int vf_num,
> + uint32_t eq_ms)
> +{
> + int ret_read, ret_restore;
> + uint32_t read_val;
> +
> + igt_require(xe_sriov_profile_get_exec_quantum_ms(pf_fd, vf_num) == 0);
> +
> + xe_sriov_profile_set_exec_quantum_ms(pf_fd, vf_num, eq_ms);
> +
> + ret_read = __xe_sriov_profile_get_exec_quantum_ms(pf_fd, vf_num, &read_val);
> +
> + ret_restore = __xe_sriov_profile_set_exec_quantum_ms(pf_fd, vf_num, 0);
> +
> + igt_assert_eq(ret_read, 0);
> + igt_assert_eq(read_val, eq_ms);
> + igt_fail_on(ret_restore);
> +}
> +
> +/**
> + * SUBTEST: preempt-timeout-write-readback-vfs-disabled
> + * Description:
> + * Verify write -> readback of preempt_timeout_us under sriov_admin
> + * for PF and all VFs with VFs disabled.
> + */
> +static void preempt_timeout_write_readback(int pf_fd, unsigned int vf_num,
> + uint32_t pt_us)
> +{
> + int ret_read, ret_restore;
> + uint32_t read_val;
> +
> + igt_require(xe_sriov_profile_get_preempt_timeout_us(pf_fd, vf_num) == 0);
> +
> + xe_sriov_profile_set_preempt_timeout_us(pf_fd, vf_num, pt_us);
> +
> + ret_read = __xe_sriov_profile_get_preempt_timeout_us(pf_fd, vf_num, &read_val);
> +
> + ret_restore = __xe_sriov_profile_set_preempt_timeout_us(pf_fd, vf_num, 0);
> +
> + igt_assert_eq(ret_read, 0);
> + igt_assert_eq(read_val, pt_us);
> + igt_fail_on(ret_restore);
> +}
> +
> +/**
> + * SUBTEST: sched-priority-write-readback-vfs-disabled
> + * Description:
> + * Verify write -> readback of sched_priority under sriov_admin
> + * for PF and all VFs with VFs disabled.
> + */
> +static void sched_priority_write_readback(int pf_fd, unsigned int vf_num)
> +{
> + struct igt_sysfs_choice prio, now;
> + enum xe_sriov_sched_priority prio_enum;
> + int ret;
> +
> + ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf_num, &prio);
> + igt_assert_eq(ret, 0);
> +
> + for (size_t n = prio.num_tokens; n-- > 0; ) {
> + igt_warn_on_f(xe_sriov_sched_priority_from_string(prio.tokens[n],
> + &prio_enum),
> + "Unrecognized sched_priority value '%s'\n",
> + prio.tokens[n]);
> + igt_debug("Setting priority string '%s'\n", prio.tokens[n]);
> + ret = __xe_sriov_profile_set_sched_priority_string(pf_fd, vf_num,
> + prio.tokens[n]);
> +
> + /* Not settable on VF */
> + if (igt_debug_on(vf_num && (ret == -EPERM || ret == -EACCES)))
> + break;
> +
> + igt_assert_eq(ret, 0);
> + ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf_num, &now);
> + igt_assert_f(!strcmp(now.tokens[now.selected], prio.tokens[n]),
> + "'%s' != '%s'", now.tokens[now.selected],
> + prio.tokens[n]);
> + igt_assert_eq(now.selected, n);
> + }
> + __xe_sriov_profile_set_sched_priority_string(pf_fd, vf_num,
> + prio.tokens[prio.selected]);
> +}
> +
> +/**
> + * SUBTEST: bulk-exec-quantum-vfs-disabled
> + * Description:
> + * Verify that bulk setting exec_quantum_ms under sriov_admin applies
> + * the expected value to the PF and all VFs when VFs are disabled.
> + */
> +static void bulk_set_exec_quantum(int pf_fd, unsigned int total_vfs, uint32_t eq_ms)
> +{
> + uint32_t read_val;
> + unsigned int id;
nit: vf_id
> + int fails = 0;
> +
> + xe_sriov_bulk_set_exec_quantum_ms(pf_fd, eq_ms);
> +
> + for (id = 0; id <= total_vfs; ++id) {
> + int ret = __xe_sriov_profile_get_exec_quantum_ms(pf_fd, id,
> + &read_val);
> +
> + if (ret) {
> + igt_debug("%s: failed to read exec_quantum_ms, ret=%d\n",
> + igt_sriov_func_str(id), ret);
> + fails++;
> + continue;
> + }
> +
> + if (read_val != eq_ms) {
> + igt_debug("%s: exec_quantum_ms=%u, expected=%u\n",
> + igt_sriov_func_str(id), read_val, eq_ms);
> + fails++;
> + }
> + }
> +
> + xe_sriov_bulk_set_exec_quantum_ms(pf_fd, 0);
> + igt_fail_on(fails);
> +}
> +
> +/**
> + * SUBTEST: bulk-preempt-timeout-vfs-disabled
> + * Description:
> + * Verify that bulk setting preempt_timeout_us under sriov_admin applies
> + * the expected value to the PF and all VFs when VFs are disabled.
> + */
> +static void bulk_set_preempt_timeout(int pf_fd, unsigned int total_vfs, uint32_t pt_us)
> +{
> + uint32_t read_val;
> + unsigned int id;
> + int fails = 0;
> +
> + xe_sriov_bulk_set_preempt_timeout_us(pf_fd, pt_us);
> +
> + for (id = 0; id <= total_vfs; ++id) {
> + int ret = __xe_sriov_profile_get_preempt_timeout_us(pf_fd, id,
> + &read_val);
> +
> + if (ret) {
> + igt_debug("%s: failed to read preempt_timeout_us, ret=%d\n",
> + igt_sriov_func_str(id), ret);
> + fails++;
> + continue;
> + }
> +
> + if (read_val != pt_us) {
> + igt_debug("%s: preempt_timeout_us=%u, expected=%u\n",
> + igt_sriov_func_str(id), read_val, pt_us);
> + fails++;
> + }
> + }
> +
> + xe_sriov_bulk_set_preempt_timeout_us(pf_fd, 0);
> + igt_fail_on(fails);
> +}
> +
> +static void build_common_sched_priority_choice(int pf_fd, int num_vfs,
> + struct igt_sysfs_choice *common)
> +{
> + int ret;
> +
> + /* Start from PF */
> + ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, 0, common);
> + igt_require_f(ret == 0,
> + "Failed to read PF sched_priority (ret=%d)\n", ret);
> +
> + igt_require_f(common->num_tokens > 0,
> + "PF sched_priority exposes no tokens\n");
> +
> + /* Intersect with every VF 1..num_vfs */
> + for (int vf = 1; vf <= num_vfs; vf++) {
> + struct igt_sysfs_choice prio = {};
> +
> + ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf, &prio);
> + igt_require_f(ret == 0,
> + "Failed to read VF%u sched_priority (ret=%d)\n",
> + vf, ret);
> +
> + ret = igt_sysfs_choice_intersect(common, &prio);
> + igt_require_f(ret == 0,
> + "No common sched_priority between PF and VF%u\n",
> + vf);
> + }
> +
> + igt_require_f(common->num_tokens > 0,
> + "No common sched_priority across PF and all VFs\n");
> +
> + if (common->selected < 0) {
> + igt_debug("Common sched_priority has no selected token, "
> + "defaulting to tokens[0]=\"%s\"\n",
> + common->tokens[0]);
> + common->selected = 0;
> + }
> +}
> +
> +/**
> + * SUBTEST: bulk-sched-priority-vfs-disabled
> + * Description: Verify bulk sched_priority modification with VFs disabled.
> + */
> +static void bulk_set_sched_priority(int pf_fd, unsigned int total_vfs, const char *prio_str)
> +{
> + struct igt_sysfs_choice read_val;
> + const char *selected;
> + unsigned int id;
> + int fails = 0;
> +
> + xe_sriov_bulk_set_sched_priority_string(pf_fd, prio_str);
> +
> + for (id = 0; id <= total_vfs; ++id) {
> + int ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, id,
> + &read_val);
> +
> + if (ret) {
> + igt_debug("%s: failed to read sched_priority, ret=%d\n",
> + igt_sriov_func_str(id), ret);
> + fails++;
> + continue;
> + }
> +
> + selected = igt_sysfs_choice_selected(&read_val);
> + if (!selected || strncmp(selected, prio_str, strlen(prio_str))) {
> + igt_debug("%s: sched_priority='%s', expected='%s'\n",
> + igt_sriov_func_str(id), selected ?: "NULL", prio_str);
> + fails++;
> + }
> + }
> +
> + igt_fail_on(fails);
> +}
> +
> +/**
> + * SUBTEST: sched-priority-vf-write-denied
> + * Description:
> + * Verify that sched_priority cannot be modified on a VF.
> + * A write attempt must fail with -EPERM or -EACCES and the
> + * current priority selection must remain unchanged.
> + */
> +static void sched_priority_vf_write_denied(int pf_fd, unsigned int vf_num)
> +{
> + struct igt_sysfs_choice before, after;
> + const char *new_token;
> + int ret;
> +
> + igt_require(vf_num > 0);
> +
> + ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf_num, &before);
> + igt_require(ret == 0);
> + igt_require(before.num_tokens > 0);
> +
> + new_token = before.tokens[(before.selected + 1) % before.num_tokens];
Missing loop to try all possible values?
> +
> + ret = __xe_sriov_profile_set_sched_priority_string(pf_fd, vf_num, new_token);
> + igt_assert_f(ret == -EPERM || ret == -EACCES,
> + "Expected -EPERM/-EACCES when writing VF sched_priority "
> + "(token='%s'), got %d\n", new_token, ret);
> +
> + ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf_num, &after);
> + igt_assert_eq(ret, 0);
> +
> + igt_assert_eq(after.selected, before.selected);
> + igt_assert(!strcmp(igt_sysfs_choice_selected(&before),
> + igt_sysfs_choice_selected(&after)));
> +}
> +
> +igt_main
> +{
> + unsigned int total_vfs;
> + int pf_fd;
> +
> + igt_fixture {
> + pf_fd = drm_open_driver(DRIVER_XE);
> + igt_require(igt_sriov_is_pf(pf_fd));
> + igt_require(igt_sriov_get_enabled_vfs(pf_fd) == 0);
> + igt_require(xe_sriov_admin_is_present(pf_fd));
> + total_vfs = igt_sriov_get_total_vfs(pf_fd);
> + }
> +
> + igt_subtest_with_dynamic("default-sched-attributes-vfs-disabled") {
> + for (unsigned int id = 0; id <= total_vfs; ++id)
> + default_sched_attributes(pf_fd, id);
> + }
> +
> + igt_subtest_with_dynamic("exec-quantum-write-readback-vfs-disabled") {
> + uint32_t eq_ms = 10;
> +
> + for (unsigned int id = 0; id <= total_vfs; ++id) {
> + igt_dynamic_f("%s-eq_ms-%u", igt_sriov_func_str(id), eq_ms) {
> + exec_quantum_write_readback(pf_fd, id, eq_ms);
> + }
> + }
> + }
> +
> + igt_subtest_with_dynamic("preempt-timeout-write-readback-vfs-disabled") {
> + uint32_t pt_us = 20000;
> +
> + for (unsigned int id = 0; id <= total_vfs; ++id) {
> + igt_dynamic_f("%s-pt_us-%u", igt_sriov_func_str(id), pt_us) {
> + preempt_timeout_write_readback(pf_fd, id, pt_us);
> + }
> + }
> + }
> +
> + igt_subtest_with_dynamic("sched-priority-write-readback-vfs-disabled") {
> + for (unsigned int id = 0; id <= total_vfs; ++id) {
> + igt_dynamic_f("%s", igt_sriov_func_str(id)) {
> + sched_priority_write_readback(pf_fd, id);
> + }
> + }
> + }
> +
> + igt_subtest_with_dynamic("sched-priority-vf-write-denied") {
> + for_each_sriov_num_vfs(pf_fd, vf_num) {
> + igt_dynamic_f("%s", igt_sriov_func_str(vf_num)) {
> + sched_priority_vf_write_denied(pf_fd, vf_num);
> + }
> + }
> + }
> +
> + igt_subtest("bulk-exec-quantum-vfs-disabled") {
> + const uint32_t eq_ms = 10;
> +
> + bulk_set_exec_quantum(pf_fd, total_vfs, eq_ms);
> + }
> +
> + igt_subtest("bulk-preempt-timeout-vfs-disabled") {
> + uint32_t pt_us = 10000;
> +
> + bulk_set_preempt_timeout(pf_fd, total_vfs, pt_us);
> + }
> +
> + igt_subtest_group {
> + struct igt_sysfs_choice prio = {};
> +
> + igt_fixture {
> + build_common_sched_priority_choice(pf_fd, total_vfs,
> + &prio);
> + }
> +
> + igt_subtest_with_dynamic_f("bulk-sched-priority-vfs-disabled") {
> + for (size_t i = prio.num_tokens; i-- > 0; ) {
> + const char *prio_str = prio.tokens[i];
> +
> + igt_dynamic_f("%s", prio_str)
> + bulk_set_sched_priority(pf_fd, 0, prio_str);
> + }
> + }
> + }
> +
> + igt_fixture {
> + int ret;
> +
> + ret = __xe_sriov_bulk_restore_defaults(pf_fd);
> + igt_sriov_disable_vfs(pf_fd);
> + /* abort to avoid execution of next tests with enabled VFs */
> + igt_abort_on_f(igt_sriov_get_enabled_vfs(pf_fd) > 0,
> + "Failed to disable VF(s)");
> + igt_abort_on_f(ret, "Failed to restore default profile values\n");
> + drm_close_driver(pf_fd);
> + }
> +}
> diff --git a/tests/meson.build b/tests/meson.build
> index ecc0f4c7f..6516a0a9a 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -327,6 +327,7 @@ intel_xe_progs = [
> 'xe_vm',
> 'xe_waitfence',
> 'xe_spin_batch',
> + 'xe_sriov_admin_profile',
> 'xe_sriov_auto_provisioning',
> 'xe_sriov_flr',
> 'xe_sriov_scheduling',
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH i-g-t v2 10/10] tests/intel/xe_sriov_admin_profile: Add SR-IOV admin sysfs scheduling attributes tests
2025-11-25 10:23 ` [PATCH i-g-t v2 10/10] tests/intel/xe_sriov_admin_profile: Add SR-IOV admin sysfs scheduling attributes tests Marcin Bernatowicz
2026-01-15 10:05 ` Laguna, Lukasz
@ 2026-01-15 10:10 ` Laguna, Lukasz
1 sibling, 0 replies; 26+ messages in thread
From: Laguna, Lukasz @ 2026-01-15 10:10 UTC (permalink / raw)
To: Marcin Bernatowicz, igt-dev
Cc: adam.miszczak, jakub1.kolakowski, michal.wajdeczko,
Kamil Konieczny
One more nit: test checks admin sysfs interaface, so the name could be
just xe_sriov_admin.
On 11/25/2025 11:23, Marcin Bernatowicz wrote:
> Add tests that exercise SR-IOV admin sysfs attributes for PF/VF functions
> with VFs disabled, covering default values, write -> readback behavior, and
> bulk updates for exec_quantum_ms, preempt_timeout_us, and sched_priority.
>
> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
> Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
> Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Cc: Lukasz Laguna <lukasz.laguna@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> tests/intel/xe_sriov_admin_profile.c | 414 +++++++++++++++++++++++++++
> tests/meson.build | 1 +
> 2 files changed, 415 insertions(+)
> create mode 100644 tests/intel/xe_sriov_admin_profile.c
>
> diff --git a/tests/intel/xe_sriov_admin_profile.c b/tests/intel/xe_sriov_admin_profile.c
> new file mode 100644
> index 000000000..6f4ed31b1
> --- /dev/null
> +++ b/tests/intel/xe_sriov_admin_profile.c
> @@ -0,0 +1,414 @@
> +// SPDX-License-Identifier: MIT
> +/*
> + * Copyright © 2025 Intel Corporation
> + */
> +#include "igt.h"
> +#include "igt_sriov_device.h"
> +#include "igt_sysfs.h"
> +#include "igt_sysfs_choice.h"
> +#include "xe_drm.h"
> +#include "xe/xe_sriov_admin.h"
> +
> +/**
> + * TEST: Tests for SR-IOV admin sysfs.
> + * Category: Core
> + * Mega feature: SR-IOV
> + * Sub-category: sysfs
> + * Functionality: SR-IOV admin sysfs
> + * Description: Verify behavior of exposed SR-IOV admin sysfs attributes.
> + */
> +
> +/**
> + * SUBTEST: default-sched-attributes-vfs-disabled
> + * Description:
> + * Verify default scheduling attributes under sriov_admin
> + * with VFs disabled.
> + */
> +static void default_sched_attributes(int pf_fd, int vf_num)
> +{
> + igt_dynamic_f("%s-default-exec-quantum", igt_sriov_func_str(vf_num)) {
> + igt_assert_eq(0, xe_sriov_profile_get_exec_quantum_ms(pf_fd, vf_num));
> + }
> +
> + igt_dynamic_f("%s-default-preempt-timeout", igt_sriov_func_str(vf_num)) {
> + igt_assert_eq(0, xe_sriov_profile_get_preempt_timeout_us(pf_fd, vf_num));
> + }
> +
> + igt_dynamic_f("%s-default-sched-priority", igt_sriov_func_str(vf_num)) {
> + enum xe_sriov_sched_priority prio;
> + unsigned int prio_mask;
> + char mask_str[64];
> +
> + prio = xe_sriov_profile_get_sched_priority(pf_fd, vf_num, &prio_mask);
> + igt_debug("PRIO=%s\n",
> + xe_sriov_sched_priority_mask_to_string(prio_mask, prio, mask_str,
> + sizeof(mask_str)));
> + igt_assert_eq(XE_SRIOV_SCHED_PRIORITY_LOW, prio);
> + }
> +}
> +
> +/**
> + * SUBTEST: exec-quantum-write-readback-vfs-disabled
> + * Description:
> + * Verify write -> readback of exec_quantum_ms under sriov_admin
> + * for PF and all VFs with VFs disabled.
> + */
> +static void exec_quantum_write_readback(int pf_fd, unsigned int vf_num,
> + uint32_t eq_ms)
> +{
> + int ret_read, ret_restore;
> + uint32_t read_val;
> +
> + igt_require(xe_sriov_profile_get_exec_quantum_ms(pf_fd, vf_num) == 0);
> +
> + xe_sriov_profile_set_exec_quantum_ms(pf_fd, vf_num, eq_ms);
> +
> + ret_read = __xe_sriov_profile_get_exec_quantum_ms(pf_fd, vf_num, &read_val);
> +
> + ret_restore = __xe_sriov_profile_set_exec_quantum_ms(pf_fd, vf_num, 0);
> +
> + igt_assert_eq(ret_read, 0);
> + igt_assert_eq(read_val, eq_ms);
> + igt_fail_on(ret_restore);
> +}
> +
> +/**
> + * SUBTEST: preempt-timeout-write-readback-vfs-disabled
> + * Description:
> + * Verify write -> readback of preempt_timeout_us under sriov_admin
> + * for PF and all VFs with VFs disabled.
> + */
> +static void preempt_timeout_write_readback(int pf_fd, unsigned int vf_num,
> + uint32_t pt_us)
> +{
> + int ret_read, ret_restore;
> + uint32_t read_val;
> +
> + igt_require(xe_sriov_profile_get_preempt_timeout_us(pf_fd, vf_num) == 0);
> +
> + xe_sriov_profile_set_preempt_timeout_us(pf_fd, vf_num, pt_us);
> +
> + ret_read = __xe_sriov_profile_get_preempt_timeout_us(pf_fd, vf_num, &read_val);
> +
> + ret_restore = __xe_sriov_profile_set_preempt_timeout_us(pf_fd, vf_num, 0);
> +
> + igt_assert_eq(ret_read, 0);
> + igt_assert_eq(read_val, pt_us);
> + igt_fail_on(ret_restore);
> +}
> +
> +/**
> + * SUBTEST: sched-priority-write-readback-vfs-disabled
> + * Description:
> + * Verify write -> readback of sched_priority under sriov_admin
> + * for PF and all VFs with VFs disabled.
> + */
> +static void sched_priority_write_readback(int pf_fd, unsigned int vf_num)
> +{
> + struct igt_sysfs_choice prio, now;
> + enum xe_sriov_sched_priority prio_enum;
> + int ret;
> +
> + ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf_num, &prio);
> + igt_assert_eq(ret, 0);
> +
> + for (size_t n = prio.num_tokens; n-- > 0; ) {
> + igt_warn_on_f(xe_sriov_sched_priority_from_string(prio.tokens[n],
> + &prio_enum),
> + "Unrecognized sched_priority value '%s'\n",
> + prio.tokens[n]);
> + igt_debug("Setting priority string '%s'\n", prio.tokens[n]);
> + ret = __xe_sriov_profile_set_sched_priority_string(pf_fd, vf_num,
> + prio.tokens[n]);
> +
> + /* Not settable on VF */
> + if (igt_debug_on(vf_num && (ret == -EPERM || ret == -EACCES)))
> + break;
> +
> + igt_assert_eq(ret, 0);
> + ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf_num, &now);
> + igt_assert_f(!strcmp(now.tokens[now.selected], prio.tokens[n]),
> + "'%s' != '%s'", now.tokens[now.selected],
> + prio.tokens[n]);
> + igt_assert_eq(now.selected, n);
> + }
> + __xe_sriov_profile_set_sched_priority_string(pf_fd, vf_num,
> + prio.tokens[prio.selected]);
> +}
> +
> +/**
> + * SUBTEST: bulk-exec-quantum-vfs-disabled
> + * Description:
> + * Verify that bulk setting exec_quantum_ms under sriov_admin applies
> + * the expected value to the PF and all VFs when VFs are disabled.
> + */
> +static void bulk_set_exec_quantum(int pf_fd, unsigned int total_vfs, uint32_t eq_ms)
> +{
> + uint32_t read_val;
> + unsigned int id;
> + int fails = 0;
> +
> + xe_sriov_bulk_set_exec_quantum_ms(pf_fd, eq_ms);
> +
> + for (id = 0; id <= total_vfs; ++id) {
> + int ret = __xe_sriov_profile_get_exec_quantum_ms(pf_fd, id,
> + &read_val);
> +
> + if (ret) {
> + igt_debug("%s: failed to read exec_quantum_ms, ret=%d\n",
> + igt_sriov_func_str(id), ret);
> + fails++;
> + continue;
> + }
> +
> + if (read_val != eq_ms) {
> + igt_debug("%s: exec_quantum_ms=%u, expected=%u\n",
> + igt_sriov_func_str(id), read_val, eq_ms);
> + fails++;
> + }
> + }
> +
> + xe_sriov_bulk_set_exec_quantum_ms(pf_fd, 0);
> + igt_fail_on(fails);
> +}
> +
> +/**
> + * SUBTEST: bulk-preempt-timeout-vfs-disabled
> + * Description:
> + * Verify that bulk setting preempt_timeout_us under sriov_admin applies
> + * the expected value to the PF and all VFs when VFs are disabled.
> + */
> +static void bulk_set_preempt_timeout(int pf_fd, unsigned int total_vfs, uint32_t pt_us)
> +{
> + uint32_t read_val;
> + unsigned int id;
> + int fails = 0;
> +
> + xe_sriov_bulk_set_preempt_timeout_us(pf_fd, pt_us);
> +
> + for (id = 0; id <= total_vfs; ++id) {
> + int ret = __xe_sriov_profile_get_preempt_timeout_us(pf_fd, id,
> + &read_val);
> +
> + if (ret) {
> + igt_debug("%s: failed to read preempt_timeout_us, ret=%d\n",
> + igt_sriov_func_str(id), ret);
> + fails++;
> + continue;
> + }
> +
> + if (read_val != pt_us) {
> + igt_debug("%s: preempt_timeout_us=%u, expected=%u\n",
> + igt_sriov_func_str(id), read_val, pt_us);
> + fails++;
> + }
> + }
> +
> + xe_sriov_bulk_set_preempt_timeout_us(pf_fd, 0);
> + igt_fail_on(fails);
> +}
> +
> +static void build_common_sched_priority_choice(int pf_fd, int num_vfs,
> + struct igt_sysfs_choice *common)
> +{
> + int ret;
> +
> + /* Start from PF */
> + ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, 0, common);
> + igt_require_f(ret == 0,
> + "Failed to read PF sched_priority (ret=%d)\n", ret);
> +
> + igt_require_f(common->num_tokens > 0,
> + "PF sched_priority exposes no tokens\n");
> +
> + /* Intersect with every VF 1..num_vfs */
> + for (int vf = 1; vf <= num_vfs; vf++) {
> + struct igt_sysfs_choice prio = {};
> +
> + ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf, &prio);
> + igt_require_f(ret == 0,
> + "Failed to read VF%u sched_priority (ret=%d)\n",
> + vf, ret);
> +
> + ret = igt_sysfs_choice_intersect(common, &prio);
> + igt_require_f(ret == 0,
> + "No common sched_priority between PF and VF%u\n",
> + vf);
> + }
> +
> + igt_require_f(common->num_tokens > 0,
> + "No common sched_priority across PF and all VFs\n");
> +
> + if (common->selected < 0) {
> + igt_debug("Common sched_priority has no selected token, "
> + "defaulting to tokens[0]=\"%s\"\n",
> + common->tokens[0]);
> + common->selected = 0;
> + }
> +}
> +
> +/**
> + * SUBTEST: bulk-sched-priority-vfs-disabled
> + * Description: Verify bulk sched_priority modification with VFs disabled.
> + */
> +static void bulk_set_sched_priority(int pf_fd, unsigned int total_vfs, const char *prio_str)
> +{
> + struct igt_sysfs_choice read_val;
> + const char *selected;
> + unsigned int id;
> + int fails = 0;
> +
> + xe_sriov_bulk_set_sched_priority_string(pf_fd, prio_str);
> +
> + for (id = 0; id <= total_vfs; ++id) {
> + int ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, id,
> + &read_val);
> +
> + if (ret) {
> + igt_debug("%s: failed to read sched_priority, ret=%d\n",
> + igt_sriov_func_str(id), ret);
> + fails++;
> + continue;
> + }
> +
> + selected = igt_sysfs_choice_selected(&read_val);
> + if (!selected || strncmp(selected, prio_str, strlen(prio_str))) {
> + igt_debug("%s: sched_priority='%s', expected='%s'\n",
> + igt_sriov_func_str(id), selected ?: "NULL", prio_str);
> + fails++;
> + }
> + }
> +
> + igt_fail_on(fails);
> +}
> +
> +/**
> + * SUBTEST: sched-priority-vf-write-denied
> + * Description:
> + * Verify that sched_priority cannot be modified on a VF.
> + * A write attempt must fail with -EPERM or -EACCES and the
> + * current priority selection must remain unchanged.
> + */
> +static void sched_priority_vf_write_denied(int pf_fd, unsigned int vf_num)
> +{
> + struct igt_sysfs_choice before, after;
> + const char *new_token;
> + int ret;
> +
> + igt_require(vf_num > 0);
> +
> + ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf_num, &before);
> + igt_require(ret == 0);
> + igt_require(before.num_tokens > 0);
> +
> + new_token = before.tokens[(before.selected + 1) % before.num_tokens];
> +
> + ret = __xe_sriov_profile_set_sched_priority_string(pf_fd, vf_num, new_token);
> + igt_assert_f(ret == -EPERM || ret == -EACCES,
> + "Expected -EPERM/-EACCES when writing VF sched_priority "
> + "(token='%s'), got %d\n", new_token, ret);
> +
> + ret = __xe_sriov_profile_get_sched_priority_choice(pf_fd, vf_num, &after);
> + igt_assert_eq(ret, 0);
> +
> + igt_assert_eq(after.selected, before.selected);
> + igt_assert(!strcmp(igt_sysfs_choice_selected(&before),
> + igt_sysfs_choice_selected(&after)));
> +}
> +
> +igt_main
> +{
> + unsigned int total_vfs;
> + int pf_fd;
> +
> + igt_fixture {
> + pf_fd = drm_open_driver(DRIVER_XE);
> + igt_require(igt_sriov_is_pf(pf_fd));
> + igt_require(igt_sriov_get_enabled_vfs(pf_fd) == 0);
> + igt_require(xe_sriov_admin_is_present(pf_fd));
> + total_vfs = igt_sriov_get_total_vfs(pf_fd);
> + }
> +
> + igt_subtest_with_dynamic("default-sched-attributes-vfs-disabled") {
> + for (unsigned int id = 0; id <= total_vfs; ++id)
> + default_sched_attributes(pf_fd, id);
> + }
> +
> + igt_subtest_with_dynamic("exec-quantum-write-readback-vfs-disabled") {
> + uint32_t eq_ms = 10;
> +
> + for (unsigned int id = 0; id <= total_vfs; ++id) {
> + igt_dynamic_f("%s-eq_ms-%u", igt_sriov_func_str(id), eq_ms) {
> + exec_quantum_write_readback(pf_fd, id, eq_ms);
> + }
> + }
> + }
> +
> + igt_subtest_with_dynamic("preempt-timeout-write-readback-vfs-disabled") {
> + uint32_t pt_us = 20000;
> +
> + for (unsigned int id = 0; id <= total_vfs; ++id) {
> + igt_dynamic_f("%s-pt_us-%u", igt_sriov_func_str(id), pt_us) {
> + preempt_timeout_write_readback(pf_fd, id, pt_us);
> + }
> + }
> + }
> +
> + igt_subtest_with_dynamic("sched-priority-write-readback-vfs-disabled") {
> + for (unsigned int id = 0; id <= total_vfs; ++id) {
> + igt_dynamic_f("%s", igt_sriov_func_str(id)) {
> + sched_priority_write_readback(pf_fd, id);
> + }
> + }
> + }
> +
> + igt_subtest_with_dynamic("sched-priority-vf-write-denied") {
> + for_each_sriov_num_vfs(pf_fd, vf_num) {
> + igt_dynamic_f("%s", igt_sriov_func_str(vf_num)) {
> + sched_priority_vf_write_denied(pf_fd, vf_num);
> + }
> + }
> + }
> +
> + igt_subtest("bulk-exec-quantum-vfs-disabled") {
> + const uint32_t eq_ms = 10;
> +
> + bulk_set_exec_quantum(pf_fd, total_vfs, eq_ms);
> + }
> +
> + igt_subtest("bulk-preempt-timeout-vfs-disabled") {
> + uint32_t pt_us = 10000;
> +
> + bulk_set_preempt_timeout(pf_fd, total_vfs, pt_us);
> + }
> +
> + igt_subtest_group {
> + struct igt_sysfs_choice prio = {};
> +
> + igt_fixture {
> + build_common_sched_priority_choice(pf_fd, total_vfs,
> + &prio);
> + }
> +
> + igt_subtest_with_dynamic_f("bulk-sched-priority-vfs-disabled") {
> + for (size_t i = prio.num_tokens; i-- > 0; ) {
> + const char *prio_str = prio.tokens[i];
> +
> + igt_dynamic_f("%s", prio_str)
> + bulk_set_sched_priority(pf_fd, 0, prio_str);
> + }
> + }
> + }
> +
> + igt_fixture {
> + int ret;
> +
> + ret = __xe_sriov_bulk_restore_defaults(pf_fd);
> + igt_sriov_disable_vfs(pf_fd);
> + /* abort to avoid execution of next tests with enabled VFs */
> + igt_abort_on_f(igt_sriov_get_enabled_vfs(pf_fd) > 0,
> + "Failed to disable VF(s)");
> + igt_abort_on_f(ret, "Failed to restore default profile values\n");
> + drm_close_driver(pf_fd);
> + }
> +}
> diff --git a/tests/meson.build b/tests/meson.build
> index ecc0f4c7f..6516a0a9a 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -327,6 +327,7 @@ intel_xe_progs = [
> 'xe_vm',
> 'xe_waitfence',
> 'xe_spin_batch',
> + 'xe_sriov_admin_profile',
> 'xe_sriov_auto_provisioning',
> 'xe_sriov_flr',
> 'xe_sriov_scheduling',
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH i-g-t v2 02/10] lib/tests/igt_sysfs_choice: Add test coverage
2025-11-25 10:23 ` [PATCH i-g-t v2 02/10] lib/tests/igt_sysfs_choice: Add test coverage Marcin Bernatowicz
@ 2026-01-15 10:31 ` Laguna, Lukasz
0 siblings, 0 replies; 26+ messages in thread
From: Laguna, Lukasz @ 2026-01-15 10:31 UTC (permalink / raw)
To: Marcin Bernatowicz, igt-dev
Cc: adam.miszczak, jakub1.kolakowski, michal.wajdeczko,
Kamil Konieczny
On 11/25/2025 11:23, Marcin Bernatowicz wrote:
> Add unit tests exercising parsing, selection rules, intersection,
> round-trip formatting, and mask conversion for igt_sysfs_choice.
>
> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
> Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
> Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Cc: Lukasz Laguna <lukasz.laguna@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> lib/tests/igt_sysfs_choice.c | 387 +++++++++++++++++++++++++++++++++++
> lib/tests/meson.build | 1 +
> 2 files changed, 388 insertions(+)
> create mode 100644 lib/tests/igt_sysfs_choice.c
>
> diff --git a/lib/tests/igt_sysfs_choice.c b/lib/tests/igt_sysfs_choice.c
> new file mode 100644
> index 000000000..05b10c0d0
> --- /dev/null
> +++ b/lib/tests/igt_sysfs_choice.c
> @@ -0,0 +1,387 @@
> +// SPDX-License-Identifier: MIT
> +/*
> + * Copyright © 2025 Intel Corporation
2026
> + */
> +#include <errno.h>
> +#include "drmtest.h"
> +#include "igt_core.h"
> +#include "igt_sysfs_choice.h"
> +
> +static void assert_token(const struct igt_sysfs_choice *c,
> + size_t idx, const char *expected)
> +{
> + igt_assert_f(idx < c->num_tokens,
> + "token index %zu out of range (num_tokens=%zu)\n",
> + idx, c->num_tokens);
> + igt_assert(c->tokens[idx]);
> + igt_assert_f(!strcmp(c->tokens[idx], expected),
> + "token[%zu] mismatch: got='%s' expected='%s'\n",
> + idx, c->tokens[idx], expected);
> +}
> +
> +static void parse_ok(const char *str, struct igt_sysfs_choice *choice)
> +{
> + int ret;
> +
> + ret = igt_sysfs_choice_parse(str, choice);
> + igt_assert_f(ret == 0, "parse(\"%s\") failed: %d\n", str, ret);
> +}
> +
> +static void test_parse_basic_first_selected(void)
> +{
> + struct igt_sysfs_choice c;
> +
> + parse_ok("[low] normal high\n", &c);
> +
> + igt_assert_eq(c.num_tokens, 3);
> + assert_token(&c, 0, "low");
> + assert_token(&c, 1, "normal");
> + assert_token(&c, 2, "high");
> +
> + igt_assert_eq(c.selected, 0);
> +}
> +
> +static void test_parse_middle_selected_whitespace(void)
> +{
> + struct igt_sysfs_choice c;
> +
> + parse_ok(" low [normal] high \n", &c);
> +
> + igt_assert_eq(c.num_tokens, 3);
> + assert_token(&c, 0, "low");
> + assert_token(&c, 1, "normal");
> + assert_token(&c, 2, "high");
> +
> + igt_assert_eq(c.selected, 1);
> +}
> +
> +static void test_parse_single_token(void)
> +{
> + struct igt_sysfs_choice c;
> +
> + parse_ok("[only]\n", &c);
> +
> + igt_assert_eq(c.num_tokens, 1);
> + assert_token(&c, 0, "only");
> + igt_assert_eq(c.selected, 0);
> +}
> +
> +static void test_parse_error_missing_selected(void)
> +{
> + struct igt_sysfs_choice c;
> + int ret;
> +
> + ret = igt_sysfs_choice_parse("low normal high\n", &c);
> + igt_assert_eq(ret, -EINVAL);
> +}
> +
> +static void test_parse_error_multiple_selected(void)
> +{
> + struct igt_sysfs_choice c;
> + int ret;
> +
> + ret = igt_sysfs_choice_parse("[low] [normal] high\n", &c);
> + igt_assert_eq(ret, -EINVAL);
> +
> + ret = igt_sysfs_choice_parse("low [normal] [high]\n", &c);
> + igt_assert_eq(ret, -EINVAL);
> +}
> +
> +static void test_parse_error_unterminated_bracket(void)
> +{
> + struct igt_sysfs_choice c;
> + int ret;
> +
> + ret = igt_sysfs_choice_parse("[low normal high\n", &c);
> + igt_assert_eq(ret, -EINVAL);
> +
> + ret = igt_sysfs_choice_parse("low [normal high]\n", &c);
> + igt_assert_eq(ret, -EINVAL);
> +}
> +
> +static void test_parse_error_too_many_tokens(void)
> +{
> + struct igt_sysfs_choice c;
> + char buf[512];
> + size_t i;
> + int len = 0;
> + int ret;
> +
> + /*
> + * Build a line with (IGT_SYSFS_CHOICE_MAX_TOKENS + 1) tokens:
> + * "[t0] t1 t2 ... tN"
> + */
> + len += snprintf(buf + len, sizeof(buf) - len, "[t0]");
> + for (i = 1; i < IGT_SYSFS_CHOICE_MAX_TOKENS + 1 && len < (int)sizeof(buf); i++)
> + len += snprintf(buf + len, sizeof(buf) - len, " t%zu", i);
> + len += snprintf(buf + len, sizeof(buf) - len, "\n");
> +
> + ret = igt_sysfs_choice_parse(buf, &c);
> + igt_assert_eq(ret, -E2BIG);
> +}
> +
> +static void test_selected_basic(void)
> +{
> + struct igt_sysfs_choice c;
> + const char *sel;
> +
> + /* selected at position 0 */
> + parse_ok("[low] normal high\n", &c);
> + sel = igt_sysfs_choice_selected(&c);
> + igt_assert(sel);
> + igt_assert(!strcmp(sel, "low"));
> +
> + /* selected at position 1 */
> + parse_ok("low [normal] high\n", &c);
> + sel = igt_sysfs_choice_selected(&c);
> + igt_assert(sel);
> + igt_assert(!strcmp(sel, "normal"));
> +
> + /* selected at position 2 */
> + parse_ok("low normal [high]\n", &c);
> + sel = igt_sysfs_choice_selected(&c);
> + igt_assert(sel);
> + igt_assert(!strcmp(sel, "high"));
> +}
> +
> +static void test_selected_invalid_index(void)
> +{
> + struct igt_sysfs_choice c;
> + const char *sel;
> +
> + /* selected = -1 */
> + parse_ok("[only]\n", &c);
> + c.selected = -1;
> + sel = igt_sysfs_choice_selected(&c);
> + igt_assert(!sel);
> +
> + /* selected >= num_tokens */
> + parse_ok("[only]\n", &c);
> + c.selected = 999;
> + sel = igt_sysfs_choice_selected(&c);
> + igt_assert(!sel);
> +
> + /* empty choice */
> + memset(&c, 0, sizeof(c));
> + sel = igt_sysfs_choice_selected(&c);
> + igt_assert(!sel);
> +}
> +
> +static void test_to_string_roundtrip(void)
> +{
> + struct igt_sysfs_choice c1, c2;
> + char out[IGT_SYSFS_CHOICE_MAX_LEN];
> + const char *s;
> +
> + parse_ok(" low [normal] high \n", &c1);
> +
> + s = igt_sysfs_choice_to_string(&c1, out, sizeof(out));
> + igt_assert(s == out);
> +
> + /*
> + * Expect canonical format: tokens separated by single spaces,
> + * one [selected], no trailing newline.
> + */
> + igt_assert_f(!strcmp(out, "low [normal] high"),
> + "to_string produced '%s'\n", out);
nit: "choice_to_string produced..."
> +
> + /* Parse again and ensure we get the same structure. */
> + parse_ok(out, &c2);
> +
> + igt_assert_eq(c2.num_tokens, 3);
> + assert_token(&c2, 0, "low");
> + assert_token(&c2, 1, "normal");
> + assert_token(&c2, 2, "high");
> + igt_assert_eq(c2.selected, 1);
> +}
> +
> +static void test_find_basic(void)
> +{
> + struct igt_sysfs_choice c;
> + int idx;
> +
> + parse_ok("[low] normal high\n", &c);
> +
> + idx = igt_sysfs_choice_find(&c, "low");
> + igt_assert_eq(idx, 0);
> +
> + idx = igt_sysfs_choice_find(&c, "normal");
> + igt_assert_eq(idx, 1);
> +
> + idx = igt_sysfs_choice_find(&c, "high");
> + igt_assert_eq(idx, 2);
> +
> + idx = igt_sysfs_choice_find(&c, "ultra");
> + igt_assert_lt(idx, 0);
> +}
> +
> +static const char *const prio_names[] = {
> + "low",
> + "normal",
> + "high",
> +};
> +
> +static void test_to_mask_basic(void)
> +{
> + struct igt_sysfs_choice c;
> + unsigned int mask = 0;
> + int selected_idx = -1;
> + int ret;
> +
> + parse_ok("[low] normal high\n", &c);
> +
> + ret = igt_sysfs_choice_to_mask(&c, prio_names, ARRAY_SIZE(prio_names),
> + &mask, &selected_idx);
> + igt_assert_eq(ret, 0);
> +
> + /* low | normal | high -> bits 0,1,2 set */
> + igt_assert_eq(mask, (1u << 0) | (1u << 1) | (1u << 2));
use BIT() macro - the same applies for other occurrences
> + igt_assert_eq(selected_idx, 0);
> +}
> +
> +static void test_to_mask_ignores_unknown(void)
> +{
> + struct igt_sysfs_choice c;
> + unsigned int mask = 0;
> + int selected_idx = -1;
> + int ret;
> +
> + parse_ok("[low] normal extra\n", &c);
> +
> + ret = igt_sysfs_choice_to_mask(&c, prio_names, ARRAY_SIZE(prio_names),
> + &mask, &selected_idx);
> + igt_assert_eq(ret, 0);
> +
> + /* "extra" is ignored, only low + normal mapped */
> + igt_assert_eq(mask, (1u << 0) | (1u << 1));
> + igt_assert_eq(selected_idx, 0);
> +}
> +
> +static void test_to_mask_selected_unknown(void)
> +{
> + struct igt_sysfs_choice c;
> + unsigned int mask = 0;
> + int selected_idx = 123;
> + int ret;
> +
> + parse_ok("low normal [extra]\n", &c);
> +
> + ret = igt_sysfs_choice_to_mask(&c, prio_names, ARRAY_SIZE(prio_names),
> + &mask, &selected_idx);
> + igt_assert_eq(ret, 0);
> +
> + igt_assert_eq(mask, (1u << 0) | (1u << 1)); /* low + normal */
> + igt_assert_eq(selected_idx, -1);
> +}
> +
> +static void test_format_mask_basic(void)
> +{
> + char buf[128];
> + const char *s;
> +
> + /* mask for low + normal + high, selected = normal (1) */
> + s = igt_sysfs_choice_format_mask(buf, sizeof(buf),
> + prio_names, ARRAY_SIZE(prio_names),
> + (1u << 0) | (1u << 1) | (1u << 2),
> + 1);
> + igt_assert(s == buf);
> + igt_assert_f(!strcmp(buf, "low [normal] high"),
> + "format_mask produced '%s'\n", buf);
> +}
> +
> +static void test_format_mask_empty(void)
> +{
> + char buf[128];
> + const char *s;
> +
> + s = igt_sysfs_choice_format_mask(buf, sizeof(buf),
> + prio_names, ARRAY_SIZE(prio_names),
> + 0, -1);
> + igt_assert(s == buf);
> + igt_assert_eq(buf[0], '\0');
> +}
> +
> +static void test_format_mask_unknown_bit(void)
> +{
> + char buf[128];
> + const char *s;
> +
> + s = igt_sysfs_choice_format_mask(buf, sizeof(buf),
> + prio_names, ARRAY_SIZE(prio_names),
> + (1u << 0) | (1u << 3),
> + 0);
> + igt_assert(s == buf);
> + igt_assert_f(!strcmp(buf, "[low]"),
> + "format_mask produced '%s'\n", buf);
nit: "choice_format_mask produced..."
> +}
> +
> +static void test_intersect_basic(void)
> +{
> + struct igt_sysfs_choice a, b;
> + int ret;
> +
> + parse_ok("[low] normal high\n", &a);
> + parse_ok("low [normal] ultra\n", &b);
> +
> + ret = igt_sysfs_choice_intersect(&a, &b);
> + igt_assert_eq(ret, 0);
> +
> + igt_assert_eq(a.num_tokens, 2);
> + assert_token(&a, 0, "low");
> + assert_token(&a, 1, "normal");
> +
> + /* semantics: selected remains the original selected token if still common */
> + igt_assert_eq(a.selected, 0);
> +}
> +
> +static void test_intersect_single_common(void)
> +{
> + struct igt_sysfs_choice a, b;
> + int ret;
> +
> + parse_ok("low [normal] high\n", &a);
> + parse_ok("[normal] ultra\n", &b);
> +
> + ret = igt_sysfs_choice_intersect(&a, &b);
> + igt_assert_eq(ret, 0);
> +
> + igt_assert_eq(a.num_tokens, 1);
> + assert_token(&a, 0, "normal");
> + igt_assert_eq(a.selected, 0);
> +}
> +
> +static void test_intersect_no_common(void)
> +{
> + struct igt_sysfs_choice a, b;
> + int ret;
> +
> + parse_ok("[low] normal\n", &a);
> + parse_ok("[high] ultra\n", &b);
> +
> + ret = igt_sysfs_choice_intersect(&a, &b);
> + igt_assert_eq(ret, -ENOENT);
> +}
> +
> +igt_simple_main
> +{
> + test_parse_basic_first_selected();
> + test_parse_middle_selected_whitespace();
> + test_parse_single_token();
> + test_parse_error_missing_selected();
> + test_parse_error_multiple_selected();
> + test_parse_error_unterminated_bracket();
> + test_parse_error_too_many_tokens();
> + test_selected_basic();
> + test_selected_invalid_index();
> + test_to_string_roundtrip();
> + test_find_basic();
> + test_to_mask_basic();
> + test_to_mask_ignores_unknown();
> + test_to_mask_selected_unknown();
> + test_format_mask_basic();
> + test_format_mask_empty();
> + test_format_mask_unknown_bit();
> + test_intersect_basic();
> + test_intersect_single_common();
> + test_intersect_no_common();
> +}
> diff --git a/lib/tests/meson.build b/lib/tests/meson.build
> index 1ce19f63c..124a9ecae 100644
> --- a/lib/tests/meson.build
> +++ b/lib/tests/meson.build
> @@ -23,6 +23,7 @@ lib_tests = [
> 'igt_simulation',
> 'igt_stats',
> 'igt_subtest_group',
> + 'igt_sysfs_choice',
> 'igt_thread',
> 'igt_types',
> 'i915_perf_data_alignment',
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2026-01-15 10:32 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-25 10:22 [PATCH i-g-t v2 00/10] Xe SR-IOV admin scheduling helpers and test updates Marcin Bernatowicz
2025-11-25 10:23 ` [PATCH i-g-t v2 01/10] lib/igt_sysfs_choice: Add helpers for sysfs enumerated choice attributes Marcin Bernatowicz
2026-01-15 7:24 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 02/10] lib/tests/igt_sysfs_choice: Add test coverage Marcin Bernatowicz
2026-01-15 10:31 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 03/10] lib/xe/xe_sriov_provisioning: Add string conversion helpers for scheduling priority Marcin Bernatowicz
2026-01-15 7:48 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 04/10] lib/xe/xe_sriov_provisioning: Add sched priority mask to string helper Marcin Bernatowicz
2026-01-15 8:04 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 05/10] lib/igt_sriov_device: Add helper for PF/VF sysfs path formatting Marcin Bernatowicz
2026-01-15 8:10 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 06/10] lib/xe/xe_sriov_admin: Add SR-IOV admin sysfs accessors Marcin Bernatowicz
2026-01-15 8:24 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 07/10] tests/intel/xe_sriov_scheduling: Avoid assert on scheduling params restore in cleanup Marcin Bernatowicz
2026-01-15 8:25 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 08/10] tests/intel/xe_sriov_scheduling: Prefer SR-IOV admin sysfs accessors Marcin Bernatowicz
2026-01-15 8:25 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 09/10] tests/intel/xe_pmu: " Marcin Bernatowicz
2026-01-15 8:27 ` Laguna, Lukasz
2025-11-25 10:23 ` [PATCH i-g-t v2 10/10] tests/intel/xe_sriov_admin_profile: Add SR-IOV admin sysfs scheduling attributes tests Marcin Bernatowicz
2026-01-15 10:05 ` Laguna, Lukasz
2026-01-15 10:10 ` Laguna, Lukasz
2025-11-25 17:27 ` ✓ i915.CI.BAT: success for Xe SR-IOV admin scheduling helpers and test updates (rev2) Patchwork
2025-11-25 17:50 ` ✓ Xe.CI.BAT: " Patchwork
2025-11-25 20:25 ` ✗ Xe.CI.Full: failure " Patchwork
2025-11-26 6:39 ` ✗ i915.CI.Full: " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.