* [PATCH 01/13] drm/xe/guc: Allow to print single KLV
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
@ 2026-06-30 13:26 ` Michal Wajdeczko
2026-07-03 11:10 ` Michał Winiarski
2026-06-30 13:26 ` [PATCH 02/13] drm/xe/guc: Prepare to print group KLVs Michal Wajdeczko
` (15 subsequent siblings)
16 siblings, 1 reply; 34+ messages in thread
From: Michal Wajdeczko @ 2026-06-30 13:26 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko
We can decode and print all KLVs from the buffer, but it might be
helpful also to allow printing just single already decoded KLV.
Extract existing code into new function and make it public.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 54 ++++++++++++++++---------
drivers/gpu/drm/xe/xe_guc_klv_helpers.h | 1 +
2 files changed, 35 insertions(+), 20 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
index 97600edda837..3169c7f1eebf 100644
--- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
+++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
@@ -76,6 +76,39 @@ const char *xe_guc_klv_key_to_string(u16 key)
}
}
+/**
+ * xe_guc_klv_print_one() - Print single `GuC KLV`_.
+ * @key: KLV key
+ * @len: KLV length (in u32 dwords) of the KLV @value
+ * @value: KLV value (as array of @len u32 dwords)
+ * @p: the &drm_printer
+ *
+ * The buffer may contain more than one KLV.
+ */
+void xe_guc_klv_print_one(u16 key, u16 len, const u32 *value, struct drm_printer *p)
+{
+ const char *name = xe_guc_klv_key_to_string(key);
+
+ switch (len) {
+ case 0:
+ drm_printf(p, "{ key %#06x : no value } # %s\n", key, name);
+ break;
+ case 1:
+ drm_printf(p, "{ key %#06x : 32b value %u } # %s\n",
+ key, value[0], name);
+ break;
+ case 2:
+ drm_printf(p, "{ key %#06x : 64b value %#llx } # %s\n",
+ key, make_u64(value[1], value[0]), name);
+ break;
+ default:
+ drm_printf(p, "{ key %#06x : %zu bytes %*ph } # %s\n",
+ key, len * sizeof(u32), (int)(len * sizeof(u32)),
+ value, name);
+ break;
+ }
+}
+
/**
* xe_guc_klv_print - Print content of the buffer with `GuC KLV`_.
* @klvs: the buffer with KLVs
@@ -101,26 +134,7 @@ void xe_guc_klv_print(const u32 *klvs, u32 num_dwords, struct drm_printer *p)
return;
}
- switch (len) {
- case 0:
- drm_printf(p, "{ key %#06x : no value } # %s\n",
- key, xe_guc_klv_key_to_string(key));
- break;
- case 1:
- drm_printf(p, "{ key %#06x : 32b value %u } # %s\n",
- key, klvs[0], xe_guc_klv_key_to_string(key));
- break;
- case 2:
- drm_printf(p, "{ key %#06x : 64b value %#llx } # %s\n",
- key, make_u64(klvs[1], klvs[0]),
- xe_guc_klv_key_to_string(key));
- break;
- default:
- drm_printf(p, "{ key %#06x : %zu bytes %*ph } # %s\n",
- key, len * sizeof(u32), (int)(len * sizeof(u32)),
- klvs, xe_guc_klv_key_to_string(key));
- break;
- }
+ xe_guc_klv_print_one(key, len, klvs, p);
klvs += len;
num_dwords -= len;
diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
index c676d21c173b..c7b7e61c1250 100644
--- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
+++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
@@ -13,6 +13,7 @@ struct drm_printer;
const char *xe_guc_klv_key_to_string(u16 key);
+void xe_guc_klv_print_one(u16 key, u16 len, const u32 *value, struct drm_printer *p);
void xe_guc_klv_print(const u32 *klvs, u32 num_dwords, struct drm_printer *p);
int xe_guc_klv_count(const u32 *klvs, u32 num_dwords);
--
2.47.1
^ permalink raw reply related [flat|nested] 34+ messages in thread* Re: [PATCH 01/13] drm/xe/guc: Allow to print single KLV
2026-06-30 13:26 ` [PATCH 01/13] drm/xe/guc: Allow to print single KLV Michal Wajdeczko
@ 2026-07-03 11:10 ` Michał Winiarski
0 siblings, 0 replies; 34+ messages in thread
From: Michał Winiarski @ 2026-07-03 11:10 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
On Tue, Jun 30, 2026 at 03:26:20PM +0200, Michal Wajdeczko wrote:
> We can decode and print all KLVs from the buffer, but it might be
> helpful also to allow printing just single already decoded KLV.
> Extract existing code into new function and make it public.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
Thanks,
-Michał
> ---
> drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 54 ++++++++++++++++---------
> drivers/gpu/drm/xe/xe_guc_klv_helpers.h | 1 +
> 2 files changed, 35 insertions(+), 20 deletions(-)
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 02/13] drm/xe/guc: Prepare to print group KLVs
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
2026-06-30 13:26 ` [PATCH 01/13] drm/xe/guc: Allow to print single KLV Michal Wajdeczko
@ 2026-06-30 13:26 ` Michal Wajdeczko
2026-07-03 11:11 ` Michał Winiarski
2026-06-30 13:26 ` [PATCH 03/13] drm/xe/guc: Add basic KLV encoding helpers Michal Wajdeczko
` (14 subsequent siblings)
16 siblings, 1 reply; 34+ messages in thread
From: Michal Wajdeczko @ 2026-06-30 13:26 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko
Some future KLVs will be encoded as a group of nested KLVs. Prepare
our KLV printer function to handle such KLVs. List of known group
keys will be updated later, for now just prepare it for testing.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
index 3169c7f1eebf..f672f4947768 100644
--- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
+++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
@@ -4,6 +4,7 @@
*/
#include <linux/bitfield.h>
+#include <kunit/static_stub.h>
#include <drm/drm_print.h>
#include "abi/guc_klvs_abi.h"
@@ -12,6 +13,12 @@
#define make_u64(hi, lo) ((u64)((u64)(u32)(hi) << 32 | (u32)(lo)))
+static bool is_group_key(u16 key)
+{
+ KUNIT_STATIC_STUB_REDIRECT(is_group_key, key);
+ return false;
+}
+
/**
* xe_guc_klv_key_to_string - Convert KLV key into friendly name.
* @key: the `GuC KLV`_ key
@@ -89,6 +96,17 @@ void xe_guc_klv_print_one(u16 key, u16 len, const u32 *value, struct drm_printer
{
const char *name = xe_guc_klv_key_to_string(key);
+ if (is_group_key(key)) {
+ struct drm_printer gp = drm_line_printer(p, name, 0);
+
+ drm_printf(p, "{ key %#06x : group %u dwords } # %s\n",
+ key, len, name);
+
+ /* print group recursively */
+ xe_guc_klv_print(value, len, &gp);
+ return;
+ }
+
switch (len) {
case 0:
drm_printf(p, "{ key %#06x : no value } # %s\n", key, name);
--
2.47.1
^ permalink raw reply related [flat|nested] 34+ messages in thread* Re: [PATCH 02/13] drm/xe/guc: Prepare to print group KLVs
2026-06-30 13:26 ` [PATCH 02/13] drm/xe/guc: Prepare to print group KLVs Michal Wajdeczko
@ 2026-07-03 11:11 ` Michał Winiarski
0 siblings, 0 replies; 34+ messages in thread
From: Michał Winiarski @ 2026-07-03 11:11 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
On Tue, Jun 30, 2026 at 03:26:21PM +0200, Michal Wajdeczko wrote:
> Some future KLVs will be encoded as a group of nested KLVs. Prepare
> our KLV printer function to handle such KLVs. List of known group
> keys will be updated later, for now just prepare it for testing.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
Thanks,
-Michał
> ---
> drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 03/13] drm/xe/guc: Add basic KLV encoding helpers
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
2026-06-30 13:26 ` [PATCH 01/13] drm/xe/guc: Allow to print single KLV Michal Wajdeczko
2026-06-30 13:26 ` [PATCH 02/13] drm/xe/guc: Prepare to print group KLVs Michal Wajdeczko
@ 2026-06-30 13:26 ` Michal Wajdeczko
2026-07-03 12:58 ` Michał Winiarski
2026-06-30 13:26 ` [PATCH 04/13] drm/xe/guc: Add string KLV encoding helper Michal Wajdeczko
` (13 subsequent siblings)
16 siblings, 1 reply; 34+ messages in thread
From: Michal Wajdeczko @ 2026-06-30 13:26 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko
We plan to encode more data as KLVs. Add helpers for that.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 56 +++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_guc_klv_helpers.h | 3 ++
2 files changed, 59 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
index f672f4947768..e84d1f5f5c56 100644
--- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
+++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
@@ -187,3 +187,59 @@ int xe_guc_klv_count(const u32 *klvs, u32 num_dwords)
return num_dwords ? -ENODATA : num_klvs;
}
+
+static u16 to_num_dwords(size_t size)
+{
+ return round_up(size, sizeof(u32)) / sizeof(u32);
+}
+
+/**
+ * xe_guc_klv_encode_u32() - Encode 32-bit value as KLV.
+ * @klvs: the buffer where to place KLV
+ * @avail: number of dwords (u32) available in the buffer
+ * @key: key to be used
+ * @value: value to be encoded
+ *
+ * Return: pointer to the buffer location past the encoded KLV or
+ * an ERR_PTR if there was no space to encode the KLV.
+ */
+u32 *xe_guc_klv_encode_u32(u32 *klvs, u32 avail, u16 key, u32 value)
+{
+ u16 len = to_num_dwords(sizeof(u32));
+
+ if (IS_ERR(klvs))
+ return klvs;
+
+ if (avail < GUC_KLV_LEN_MIN + len)
+ return ERR_PTR(-ENOSPC);
+
+ *klvs++ = PREP_GUC_KLV(key, len);
+ *klvs++ = value;
+ return klvs;
+}
+
+/**
+ * xe_guc_klv_encode_u64() - Encode 64-bit value as KLV.
+ * @klvs: the buffer where to place KLV
+ * @avail: number of dwords (u32) available in the buffer
+ * @key: key to be used
+ * @value: value to be encoded
+ *
+ * Return: pointer to the buffer location past the encoded KLV or
+ * an ERR_PTR if there was no space to encode the KLV.
+ */
+u32 *xe_guc_klv_encode_u64(u32 *klvs, u32 avail, u16 key, u64 value)
+{
+ u32 len = to_num_dwords(sizeof(u64));
+
+ if (IS_ERR(klvs))
+ return klvs;
+
+ if (avail < GUC_KLV_LEN_MIN + len)
+ return ERR_PTR(-ENOSPC);
+
+ *klvs++ = PREP_GUC_KLV(key, len);
+ *klvs++ = lower_32_bits(value);
+ *klvs++ = upper_32_bits(value);
+ return klvs;
+}
diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
index c7b7e61c1250..713ef7f7b9f2 100644
--- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
+++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
@@ -17,6 +17,9 @@ void xe_guc_klv_print_one(u16 key, u16 len, const u32 *value, struct drm_printer
void xe_guc_klv_print(const u32 *klvs, u32 num_dwords, struct drm_printer *p);
int xe_guc_klv_count(const u32 *klvs, u32 num_dwords);
+u32 *xe_guc_klv_encode_u32(u32 *klvs, u32 avail, u16 key, u32 value);
+u32 *xe_guc_klv_encode_u64(u32 *klvs, u32 avail, u16 key, u64 value);
+
/**
* PREP_GUC_KLV - Prepare KLV header value based on provided key and len.
* @key: KLV key
--
2.47.1
^ permalink raw reply related [flat|nested] 34+ messages in thread* [PATCH 04/13] drm/xe/guc: Add string KLV encoding helper
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
` (2 preceding siblings ...)
2026-06-30 13:26 ` [PATCH 03/13] drm/xe/guc: Add basic KLV encoding helpers Michal Wajdeczko
@ 2026-06-30 13:26 ` Michal Wajdeczko
2026-07-03 13:29 ` Michał Winiarski
2026-06-30 13:26 ` [PATCH 05/13] drm/xe/guc: Add object " Michal Wajdeczko
` (12 subsequent siblings)
16 siblings, 1 reply; 34+ messages in thread
From: Michal Wajdeczko @ 2026-06-30 13:26 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko
We also plan to encode a text data as KLV. Add helper for that too.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 31 +++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_guc_klv_helpers.h | 1 +
2 files changed, 32 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
index e84d1f5f5c56..a5fcfc4a6c37 100644
--- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
+++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
@@ -188,6 +188,11 @@ int xe_guc_klv_count(const u32 *klvs, u32 num_dwords)
return num_dwords ? -ENODATA : num_klvs;
}
+static size_t to_num_bytes(u16 dwords)
+{
+ return dwords * sizeof(u32);
+}
+
static u16 to_num_dwords(size_t size)
{
return round_up(size, sizeof(u32)) / sizeof(u32);
@@ -243,3 +248,29 @@ u32 *xe_guc_klv_encode_u64(u32 *klvs, u32 avail, u16 key, u64 value)
*klvs++ = upper_32_bits(value);
return klvs;
}
+
+/**
+ * xe_guc_klv_encode_string() - Encode string as KLV.
+ * @klvs: the buffer where to place KLV
+ * @avail: number of dwords (u32) available in the buffer
+ * @key: key to be used
+ * @s: string to be encoded
+ *
+ * Return: pointer to the buffer location past the encoded KLV or
+ * an ERR_PTR if there was no space to encode the KLV.
+ */
+u32 *xe_guc_klv_encode_string(u32 *klvs, u32 avail, u16 key, const char *s)
+{
+ size_t size = strnlen(s, FIELD_MAX(GUC_KLV_0_LEN) - 1) + 1; /* \0 */
+ u16 len = to_num_dwords(size);
+
+ if (IS_ERR(klvs))
+ return klvs;
+
+ if (avail < GUC_KLV_LEN_MIN + len)
+ return ERR_PTR(-ENOSPC);
+
+ *klvs++ = PREP_GUC_KLV(key, len);
+ strscpy_pad((void *)klvs, s, to_num_bytes(len));
+ return klvs + len;
+}
diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
index 713ef7f7b9f2..1c576456efc5 100644
--- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
+++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
@@ -19,6 +19,7 @@ int xe_guc_klv_count(const u32 *klvs, u32 num_dwords);
u32 *xe_guc_klv_encode_u32(u32 *klvs, u32 avail, u16 key, u32 value);
u32 *xe_guc_klv_encode_u64(u32 *klvs, u32 avail, u16 key, u64 value);
+u32 *xe_guc_klv_encode_string(u32 *klvs, u32 avail, u16 key, const char *s);
/**
* PREP_GUC_KLV - Prepare KLV header value based on provided key and len.
--
2.47.1
^ permalink raw reply related [flat|nested] 34+ messages in thread* Re: [PATCH 04/13] drm/xe/guc: Add string KLV encoding helper
2026-06-30 13:26 ` [PATCH 04/13] drm/xe/guc: Add string KLV encoding helper Michal Wajdeczko
@ 2026-07-03 13:29 ` Michał Winiarski
2026-07-06 16:04 ` Michal Wajdeczko
0 siblings, 1 reply; 34+ messages in thread
From: Michał Winiarski @ 2026-07-03 13:29 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
On Tue, Jun 30, 2026 at 03:26:23PM +0200, Michal Wajdeczko wrote:
> We also plan to encode a text data as KLV. Add helper for that too.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 31 +++++++++++++++++++++++++
> drivers/gpu/drm/xe/xe_guc_klv_helpers.h | 1 +
> 2 files changed, 32 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
> index e84d1f5f5c56..a5fcfc4a6c37 100644
> --- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
> +++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
> @@ -188,6 +188,11 @@ int xe_guc_klv_count(const u32 *klvs, u32 num_dwords)
> return num_dwords ? -ENODATA : num_klvs;
> }
>
> +static size_t to_num_bytes(u16 dwords)
> +{
> + return dwords * sizeof(u32);
> +}
> +
> static u16 to_num_dwords(size_t size)
> {
> return round_up(size, sizeof(u32)) / sizeof(u32);
> @@ -243,3 +248,29 @@ u32 *xe_guc_klv_encode_u64(u32 *klvs, u32 avail, u16 key, u64 value)
> *klvs++ = upper_32_bits(value);
> return klvs;
> }
> +
> +/**
> + * xe_guc_klv_encode_string() - Encode string as KLV.
> + * @klvs: the buffer where to place KLV
> + * @avail: number of dwords (u32) available in the buffer
> + * @key: key to be used
> + * @s: string to be encoded
> + *
> + * Return: pointer to the buffer location past the encoded KLV or
> + * an ERR_PTR if there was no space to encode the KLV.
> + */
> +u32 *xe_guc_klv_encode_string(u32 *klvs, u32 avail, u16 key, const char *s)
> +{
> + size_t size = strnlen(s, FIELD_MAX(GUC_KLV_0_LEN) - 1) + 1; /* \0 */
We're mixing up units (dwords / bytes) here.
Also - should we error out if the string would get truncated?
Thanks,
-Michał
> + u16 len = to_num_dwords(size);
> +
> + if (IS_ERR(klvs))
> + return klvs;
> +
> + if (avail < GUC_KLV_LEN_MIN + len)
> + return ERR_PTR(-ENOSPC);
> +
> + *klvs++ = PREP_GUC_KLV(key, len);
> + strscpy_pad((void *)klvs, s, to_num_bytes(len));
> + return klvs + len;
> +}
> diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
> index 713ef7f7b9f2..1c576456efc5 100644
> --- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
> +++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
> @@ -19,6 +19,7 @@ int xe_guc_klv_count(const u32 *klvs, u32 num_dwords);
>
> u32 *xe_guc_klv_encode_u32(u32 *klvs, u32 avail, u16 key, u32 value);
> u32 *xe_guc_klv_encode_u64(u32 *klvs, u32 avail, u16 key, u64 value);
> +u32 *xe_guc_klv_encode_string(u32 *klvs, u32 avail, u16 key, const char *s);
>
> /**
> * PREP_GUC_KLV - Prepare KLV header value based on provided key and len.
> --
> 2.47.1
>
^ permalink raw reply [flat|nested] 34+ messages in thread* Re: [PATCH 04/13] drm/xe/guc: Add string KLV encoding helper
2026-07-03 13:29 ` Michał Winiarski
@ 2026-07-06 16:04 ` Michal Wajdeczko
0 siblings, 0 replies; 34+ messages in thread
From: Michal Wajdeczko @ 2026-07-06 16:04 UTC (permalink / raw)
To: Michał Winiarski; +Cc: intel-xe
On 7/3/2026 3:29 PM, Michał Winiarski wrote:
> On Tue, Jun 30, 2026 at 03:26:23PM +0200, Michal Wajdeczko wrote:
>> We also plan to encode a text data as KLV. Add helper for that too.
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 31 +++++++++++++++++++++++++
>> drivers/gpu/drm/xe/xe_guc_klv_helpers.h | 1 +
>> 2 files changed, 32 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
>> index e84d1f5f5c56..a5fcfc4a6c37 100644
>> --- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
>> +++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
>> @@ -188,6 +188,11 @@ int xe_guc_klv_count(const u32 *klvs, u32 num_dwords)
>> return num_dwords ? -ENODATA : num_klvs;
>> }
>>
>> +static size_t to_num_bytes(u16 dwords)
>> +{
>> + return dwords * sizeof(u32);
>> +}
>> +
>> static u16 to_num_dwords(size_t size)
>> {
>> return round_up(size, sizeof(u32)) / sizeof(u32);
>> @@ -243,3 +248,29 @@ u32 *xe_guc_klv_encode_u64(u32 *klvs, u32 avail, u16 key, u64 value)
>> *klvs++ = upper_32_bits(value);
>> return klvs;
>> }
>> +
>> +/**
>> + * xe_guc_klv_encode_string() - Encode string as KLV.
>> + * @klvs: the buffer where to place KLV
>> + * @avail: number of dwords (u32) available in the buffer
>> + * @key: key to be used
>> + * @s: string to be encoded
>> + *
>> + * Return: pointer to the buffer location past the encoded KLV or
>> + * an ERR_PTR if there was no space to encode the KLV.
>> + */
>> +u32 *xe_guc_klv_encode_string(u32 *klvs, u32 avail, u16 key, const char *s)
>> +{
>> + size_t size = strnlen(s, FIELD_MAX(GUC_KLV_0_LEN) - 1) + 1; /* \0 */
>
> We're mixing up units (dwords / bytes) here.
oops, it supposed to be to_num_bytes()
> Also - should we error out if the string would get truncated?
it's a good idea
>
> Thanks,
> -Michał
>
>> + u16 len = to_num_dwords(size);
>> +
>> + if (IS_ERR(klvs))
>> + return klvs;
>> +
>> + if (avail < GUC_KLV_LEN_MIN + len)
>> + return ERR_PTR(-ENOSPC);
>> +
>> + *klvs++ = PREP_GUC_KLV(key, len);
>> + strscpy_pad((void *)klvs, s, to_num_bytes(len));
>> + return klvs + len;
>> +}
>> diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
>> index 713ef7f7b9f2..1c576456efc5 100644
>> --- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
>> +++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
>> @@ -19,6 +19,7 @@ int xe_guc_klv_count(const u32 *klvs, u32 num_dwords);
>>
>> u32 *xe_guc_klv_encode_u32(u32 *klvs, u32 avail, u16 key, u32 value);
>> u32 *xe_guc_klv_encode_u64(u32 *klvs, u32 avail, u16 key, u64 value);
>> +u32 *xe_guc_klv_encode_string(u32 *klvs, u32 avail, u16 key, const char *s);
>>
>> /**
>> * PREP_GUC_KLV - Prepare KLV header value based on provided key and len.
>> --
>> 2.47.1
>>
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 05/13] drm/xe/guc: Add object KLV encoding helper
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
` (3 preceding siblings ...)
2026-06-30 13:26 ` [PATCH 04/13] drm/xe/guc: Add string KLV encoding helper Michal Wajdeczko
@ 2026-06-30 13:26 ` Michal Wajdeczko
2026-07-03 14:33 ` Michał Winiarski
2026-06-30 13:26 ` [PATCH 06/13] drm/xe/guc: Add KLV parsing helper Michal Wajdeczko
` (11 subsequent siblings)
16 siblings, 1 reply; 34+ messages in thread
From: Michal Wajdeczko @ 2026-06-30 13:26 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko
We plan to encode larger objects as single KLV or set of KLVs.
Add helper for that.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 36 +++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_guc_klv_helpers.h | 2 ++
2 files changed, 38 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
index a5fcfc4a6c37..53a8beb9af04 100644
--- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
+++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
@@ -274,3 +274,39 @@ u32 *xe_guc_klv_encode_string(u32 *klvs, u32 avail, u16 key, const char *s)
strscpy_pad((void *)klvs, s, to_num_bytes(len));
return klvs + len;
}
+
+/**
+ * xe_guc_klv_encode_object() - Encode object using custom encoder as single KLV.
+ * @klvs: the buffer where to place KLV
+ * @avail: number of dwords (u32) available in the buffer
+ * @key: key to be used
+ * @obj: opaque object pointer
+ * @encoder: function pointer to the custom encoder
+ *
+ * Return: pointer to the buffer location past the encoded KLV or
+ * an ERR_PTR if there was no space to encode the KLV.
+ */
+u32 *xe_guc_klv_encode_object(u32 *klvs, u32 avail, u16 key, const void *obj,
+ u32 *(*encoder)(u32 *klvs, u32 avail, const void *obj))
+{
+ u32 *end;
+
+ if (IS_ERR(klvs))
+ return klvs;
+
+ if (avail < GUC_KLV_LEN_MIN)
+ return ERR_PTR(-ENOSPC);
+
+ end = encoder(klvs + GUC_KLV_LEN_MIN, avail - GUC_KLV_LEN_MIN, obj);
+ if (IS_ERR(end))
+ return end;
+
+ if (WARN_ON(end < klvs + GUC_KLV_LEN_MIN))
+ return ERR_PTR(-EPIPE);
+
+ if (WARN_ON(end > klvs + avail))
+ return ERR_PTR(-EFBIG);
+
+ *klvs = PREP_GUC_KLV(key, end - (klvs + GUC_KLV_LEN_MIN));
+ return end;
+}
diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
index 1c576456efc5..855805f4463d 100644
--- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
+++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
@@ -20,6 +20,8 @@ int xe_guc_klv_count(const u32 *klvs, u32 num_dwords);
u32 *xe_guc_klv_encode_u32(u32 *klvs, u32 avail, u16 key, u32 value);
u32 *xe_guc_klv_encode_u64(u32 *klvs, u32 avail, u16 key, u64 value);
u32 *xe_guc_klv_encode_string(u32 *klvs, u32 avail, u16 key, const char *s);
+u32 *xe_guc_klv_encode_object(u32 *klvs, u32 avail, u16 key, const void *obj,
+ u32 *(*encoder)(u32 *klvs, u32 avail, const void *obj));
/**
* PREP_GUC_KLV - Prepare KLV header value based on provided key and len.
--
2.47.1
^ permalink raw reply related [flat|nested] 34+ messages in thread* Re: [PATCH 05/13] drm/xe/guc: Add object KLV encoding helper
2026-06-30 13:26 ` [PATCH 05/13] drm/xe/guc: Add object " Michal Wajdeczko
@ 2026-07-03 14:33 ` Michał Winiarski
0 siblings, 0 replies; 34+ messages in thread
From: Michał Winiarski @ 2026-07-03 14:33 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
On Tue, Jun 30, 2026 at 03:26:24PM +0200, Michal Wajdeczko wrote:
> We plan to encode larger objects as single KLV or set of KLVs.
> Add helper for that.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 36 +++++++++++++++++++++++++
> drivers/gpu/drm/xe/xe_guc_klv_helpers.h | 2 ++
> 2 files changed, 38 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
> index a5fcfc4a6c37..53a8beb9af04 100644
> --- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
> +++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
> @@ -274,3 +274,39 @@ u32 *xe_guc_klv_encode_string(u32 *klvs, u32 avail, u16 key, const char *s)
> strscpy_pad((void *)klvs, s, to_num_bytes(len));
> return klvs + len;
> }
> +
> +/**
> + * xe_guc_klv_encode_object() - Encode object using custom encoder as single KLV.
> + * @klvs: the buffer where to place KLV
> + * @avail: number of dwords (u32) available in the buffer
> + * @key: key to be used
> + * @obj: opaque object pointer
> + * @encoder: function pointer to the custom encoder
> + *
> + * Return: pointer to the buffer location past the encoded KLV or
> + * an ERR_PTR if there was no space to encode the KLV.
> + */
> +u32 *xe_guc_klv_encode_object(u32 *klvs, u32 avail, u16 key, const void *obj,
> + u32 *(*encoder)(u32 *klvs, u32 avail, const void *obj))
> +{
> + u32 *end;
> +
> + if (IS_ERR(klvs))
> + return klvs;
> +
> + if (avail < GUC_KLV_LEN_MIN)
> + return ERR_PTR(-ENOSPC);
> +
> + end = encoder(klvs + GUC_KLV_LEN_MIN, avail - GUC_KLV_LEN_MIN, obj);
> + if (IS_ERR(end))
> + return end;
Similar to string helper - we might want to error out if the object
would get truncated (also spotted by sashiko).
Thanks,
-Michał
> +
> + if (WARN_ON(end < klvs + GUC_KLV_LEN_MIN))
> + return ERR_PTR(-EPIPE);
> +
> + if (WARN_ON(end > klvs + avail))
> + return ERR_PTR(-EFBIG);
> +
> + *klvs = PREP_GUC_KLV(key, end - (klvs + GUC_KLV_LEN_MIN));
> + return end;
> +}
> diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
> index 1c576456efc5..855805f4463d 100644
> --- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
> +++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
> @@ -20,6 +20,8 @@ int xe_guc_klv_count(const u32 *klvs, u32 num_dwords);
> u32 *xe_guc_klv_encode_u32(u32 *klvs, u32 avail, u16 key, u32 value);
> u32 *xe_guc_klv_encode_u64(u32 *klvs, u32 avail, u16 key, u64 value);
> u32 *xe_guc_klv_encode_string(u32 *klvs, u32 avail, u16 key, const char *s);
> +u32 *xe_guc_klv_encode_object(u32 *klvs, u32 avail, u16 key, const void *obj,
> + u32 *(*encoder)(u32 *klvs, u32 avail, const void *obj));
>
> /**
> * PREP_GUC_KLV - Prepare KLV header value based on provided key and len.
> --
> 2.47.1
>
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 06/13] drm/xe/guc: Add KLV parsing helper
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
` (4 preceding siblings ...)
2026-06-30 13:26 ` [PATCH 05/13] drm/xe/guc: Add object " Michal Wajdeczko
@ 2026-06-30 13:26 ` Michal Wajdeczko
2026-07-03 14:40 ` Michał Winiarski
2026-06-30 13:26 ` [PATCH 07/13] drm/xe/guc: Formalize Reserved KLVs Michal Wajdeczko
` (10 subsequent siblings)
16 siblings, 1 reply; 34+ messages in thread
From: Michal Wajdeczko @ 2026-06-30 13:26 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko
We have already introduced a helper to encode larger objects. Now
add helper to parse the KLVs buffer. We will use it shortly.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 38 +++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_guc_klv_helpers.h | 3 ++
2 files changed, 41 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
index 53a8beb9af04..d610ab75aecc 100644
--- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
+++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
@@ -310,3 +310,41 @@ u32 *xe_guc_klv_encode_object(u32 *klvs, u32 avail, u16 key, const void *obj,
*klvs = PREP_GUC_KLV(key, end - (klvs + GUC_KLV_LEN_MIN));
return end;
}
+
+/**
+ * xe_guc_klv_parser() - Parse and decode stream of KLVs.
+ * @klvs: the buffer with KLVs
+ * @num_dwords: number of dwords (u32) available in the buffer
+ * @obj: opaque pointer to be used by the @decoder function
+ * @decoder: pointer to the decoder function
+ *
+ * Return: The sum of all results returned by the decoder or
+ * an -errno on decoder or buffer failure.
+ */
+int xe_guc_klv_parser(const u32 *klvs, u32 num_dwords, void *obj,
+ int (*decoder)(void *obj, u16 key, u16 len, const u32 *value))
+{
+ int total = 0;
+ int ret;
+
+ while (num_dwords >= GUC_KLV_LEN_MIN) {
+ u16 key = FIELD_GET(GUC_KLV_0_KEY, klvs[0]);
+ u16 len = FIELD_GET(GUC_KLV_0_LEN, klvs[0]);
+
+ klvs += GUC_KLV_LEN_MIN;
+ num_dwords -= GUC_KLV_LEN_MIN;
+
+ if (num_dwords < len)
+ return -ENODATA;
+
+ ret = decoder(obj, key, len, klvs);
+ if (ret < 0)
+ return ret;
+ total += ret;
+
+ klvs += len;
+ num_dwords -= len;
+ }
+
+ return total;
+}
diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
index 855805f4463d..cf3b29adc9d6 100644
--- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
+++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.h
@@ -23,6 +23,9 @@ u32 *xe_guc_klv_encode_string(u32 *klvs, u32 avail, u16 key, const char *s);
u32 *xe_guc_klv_encode_object(u32 *klvs, u32 avail, u16 key, const void *obj,
u32 *(*encoder)(u32 *klvs, u32 avail, const void *obj));
+int xe_guc_klv_parser(const u32 *klvs, u32 num_dwords, void *obj,
+ int (*decoder)(void *obj, u16 key, u16 len, const u32 *value));
+
/**
* PREP_GUC_KLV - Prepare KLV header value based on provided key and len.
* @key: KLV key
--
2.47.1
^ permalink raw reply related [flat|nested] 34+ messages in thread* Re: [PATCH 06/13] drm/xe/guc: Add KLV parsing helper
2026-06-30 13:26 ` [PATCH 06/13] drm/xe/guc: Add KLV parsing helper Michal Wajdeczko
@ 2026-07-03 14:40 ` Michał Winiarski
0 siblings, 0 replies; 34+ messages in thread
From: Michał Winiarski @ 2026-07-03 14:40 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
On Tue, Jun 30, 2026 at 03:26:25PM +0200, Michal Wajdeczko wrote:
> We have already introduced a helper to encode larger objects. Now
> add helper to parse the KLVs buffer. We will use it shortly.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
Thanks,
-Michał
> ---
> drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 38 +++++++++++++++++++++++++
> drivers/gpu/drm/xe/xe_guc_klv_helpers.h | 3 ++
> 2 files changed, 41 insertions(+)
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 07/13] drm/xe/guc: Formalize Reserved KLVs
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
` (5 preceding siblings ...)
2026-06-30 13:26 ` [PATCH 06/13] drm/xe/guc: Add KLV parsing helper Michal Wajdeczko
@ 2026-06-30 13:26 ` Michal Wajdeczko
2026-07-03 13:31 ` Michał Winiarski
2026-06-30 13:26 ` [PATCH 08/13] drm/xe/tests: Add GuC KLV helpers basic tests Michal Wajdeczko
` (9 subsequent siblings)
16 siblings, 1 reply; 34+ messages in thread
From: Michal Wajdeczko @ 2026-06-30 13:26 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko
We have already started using few KLV keys from the 0xF000 range
that, as we have agreed with the GuC team, will not be used in any
GuC ABI actions. Add definitions for that reserved range and move
our migration KLVs to new ABI header.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
drivers/gpu/drm/xe/abi/guc_klvs_abi.h | 17 +++++++++++++
drivers/gpu/drm/xe/abi/xe_driver_klvs_abi.h | 27 +++++++++++++++++++++
drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 14 +++++++++++
drivers/gpu/drm/xe/xe_sriov_packet.c | 7 ++----
4 files changed, 60 insertions(+), 5 deletions(-)
create mode 100644 drivers/gpu/drm/xe/abi/xe_driver_klvs_abi.h
diff --git a/drivers/gpu/drm/xe/abi/guc_klvs_abi.h b/drivers/gpu/drm/xe/abi/guc_klvs_abi.h
index 644f5a4226d7..2a313eb399e2 100644
--- a/drivers/gpu/drm/xe/abi/guc_klvs_abi.h
+++ b/drivers/gpu/drm/xe/abi/guc_klvs_abi.h
@@ -22,6 +22,7 @@
* | | | - `GuC Scheduling Policies KLVs`_ |
* | | | - `GuC VGT Policy KLVs`_ |
* | | | - `GuC VF Configuration KLVs`_ |
+ * | | | - `GuC Reserved KLVs`_ |
* | | | |
* | +-------+--------------------------------------------------------------+
* | | 15:0 | **LEN** - length of VALUE (in 32bit dwords) |
@@ -506,4 +507,20 @@ enum xe_guc_klv_ids {
GUC_WA_KLV_CLR_CS_INDIRECT_RING_STATE_IF_IDLE_AT_CTX_REG = 0x900e,
};
+/**
+ * DOC: GuC Reserved KLVs
+ *
+ * Range of `GuC KLV`_ keys reserved for internal use by the GuC that will
+ * never be part of the offcial GuC ABI and can be reused by the drivers.
+ *
+ * Currently this range includes 1024 keys starting from:
+ *
+ * _`GUC_KLV_RESERVED_RANGE_START` : 0xF000
+ *
+ * See `Xe Driver KLVs`_ for the KLVs that the Xe driver is currently using.
+ */
+
+#define GUC_KLV_RESERVED_RANGE_START 0xf000u
+#define GUC_KLV_RESERVED_RANGE_LEN 1024u
+
#endif
diff --git a/drivers/gpu/drm/xe/abi/xe_driver_klvs_abi.h b/drivers/gpu/drm/xe/abi/xe_driver_klvs_abi.h
new file mode 100644
index 000000000000..3b557e56892a
--- /dev/null
+++ b/drivers/gpu/drm/xe/abi/xe_driver_klvs_abi.h
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#ifndef _ABI_XE_DRIVER_KLVS_ABI_H
+#define _ABI_XE_DRIVER_KLVS_ABI_H
+
+#include "abi/guc_klvs_abi.h"
+
+/**
+ * DOC: Xe Driver KLVs
+ *
+ * The Xe driver uses the following keys from the `GuC Reserved KLVs`_ range:
+ *
+ * _`MIGRATION_KLV_DEVICE_DEVID_KEY` :
+ * PCI device ID of the migrated VF.
+ * _`MIGRATION_KLV_DEVICE_REVID_KEY` :
+ * PCI device revision ID of the migrated VF.
+ */
+
+#define MIGRATION_KLV_DEVICE_DEVID_KEY 0xf001u
+#define MIGRATION_KLV_DEVICE_DEVID_LEN 1u
+#define MIGRATION_KLV_DEVICE_REVID_KEY 0xf002u
+#define MIGRATION_KLV_DEVICE_REVID_LEN 1u
+
+#endif
diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
index d610ab75aecc..3f5c88e2c949 100644
--- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
+++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
@@ -8,6 +8,7 @@
#include <drm/drm_print.h>
#include "abi/guc_klvs_abi.h"
+#include "abi/xe_driver_klvs_abi.h"
#include "xe_guc_klv_helpers.h"
#include "xe_guc_klv_thresholds_set.h"
@@ -19,6 +20,11 @@ static bool is_group_key(u16 key)
return false;
}
+static bool is_reserved_key(u16 key)
+{
+ return in_range(key, GUC_KLV_RESERVED_RANGE_START, GUC_KLV_RESERVED_RANGE_LEN);
+}
+
/**
* xe_guc_klv_key_to_string - Convert KLV key into friendly name.
* @key: the `GuC KLV`_ key
@@ -78,7 +84,15 @@ const char *xe_guc_klv_key_to_string(u16 key)
MAKE_XE_GUC_KLV_THRESHOLDS_SET(define_threshold_key_to_string_case)
#undef define_threshold_key_to_string_case
+ /* driver KLVs */
+ case MIGRATION_KLV_DEVICE_DEVID_KEY:
+ return "migration_devid";
+ case MIGRATION_KLV_DEVICE_REVID_KEY:
+ return "migration_revid";
+
default:
+ if (is_reserved_key(key))
+ return "(reserved)";
return "(unknown)";
}
}
diff --git a/drivers/gpu/drm/xe/xe_sriov_packet.c b/drivers/gpu/drm/xe/xe_sriov_packet.c
index 2ae9eff2a7c0..e581e8e6c1d1 100644
--- a/drivers/gpu/drm/xe/xe_sriov_packet.c
+++ b/drivers/gpu/drm/xe/xe_sriov_packet.c
@@ -3,6 +3,8 @@
* Copyright © 2025 Intel Corporation
*/
+#include "abi/xe_driver_klvs_abi.h"
+
#include "xe_bo.h"
#include "xe_device.h"
#include "xe_guc_klv_helpers.h"
@@ -352,11 +354,6 @@ ssize_t xe_sriov_packet_write_single(struct xe_device *xe, unsigned int vfid,
return copied;
}
-#define MIGRATION_KLV_DEVICE_DEVID_KEY 0xf001u
-#define MIGRATION_KLV_DEVICE_DEVID_LEN 1u
-#define MIGRATION_KLV_DEVICE_REVID_KEY 0xf002u
-#define MIGRATION_KLV_DEVICE_REVID_LEN 1u
-
#define MIGRATION_DESCRIPTOR_DWORDS (GUC_KLV_LEN_MIN + MIGRATION_KLV_DEVICE_DEVID_LEN + \
GUC_KLV_LEN_MIN + MIGRATION_KLV_DEVICE_REVID_LEN)
static int pf_descriptor_init(struct xe_device *xe, unsigned int vfid)
--
2.47.1
^ permalink raw reply related [flat|nested] 34+ messages in thread* Re: [PATCH 07/13] drm/xe/guc: Formalize Reserved KLVs
2026-06-30 13:26 ` [PATCH 07/13] drm/xe/guc: Formalize Reserved KLVs Michal Wajdeczko
@ 2026-07-03 13:31 ` Michał Winiarski
0 siblings, 0 replies; 34+ messages in thread
From: Michał Winiarski @ 2026-07-03 13:31 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
On Tue, Jun 30, 2026 at 03:26:26PM +0200, Michal Wajdeczko wrote:
> We have already started using few KLV keys from the 0xF000 range
> that, as we have agreed with the GuC team, will not be used in any
> GuC ABI actions. Add definitions for that reserved range and move
> our migration KLVs to new ABI header.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
Thanks,
-Michał
> ---
> drivers/gpu/drm/xe/abi/guc_klvs_abi.h | 17 +++++++++++++
> drivers/gpu/drm/xe/abi/xe_driver_klvs_abi.h | 27 +++++++++++++++++++++
> drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 14 +++++++++++
> drivers/gpu/drm/xe/xe_sriov_packet.c | 7 ++----
> 4 files changed, 60 insertions(+), 5 deletions(-)
> create mode 100644 drivers/gpu/drm/xe/abi/xe_driver_klvs_abi.h
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 08/13] drm/xe/tests: Add GuC KLV helpers basic tests
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
` (6 preceding siblings ...)
2026-06-30 13:26 ` [PATCH 07/13] drm/xe/guc: Formalize Reserved KLVs Michal Wajdeczko
@ 2026-06-30 13:26 ` Michal Wajdeczko
2026-07-03 14:17 ` Michał Winiarski
2026-06-30 13:26 ` [PATCH 09/13] drm/xe/tests: Add string encoding helper test Michal Wajdeczko
` (8 subsequent siblings)
16 siblings, 1 reply; 34+ messages in thread
From: Michal Wajdeczko @ 2026-06-30 13:26 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko
We will be making more extensive use of GuC KLV helpers. Add simple
tests to ensure the helpers are working as expected.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
.../drm/xe/tests/xe_guc_klv_helpers_kunit.c | 99 +++++++++++++++++++
drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 4 +
2 files changed, 103 insertions(+)
create mode 100644 drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
diff --git a/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c b/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
new file mode 100644
index 000000000000..f87189ef13d5
--- /dev/null
+++ b/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
@@ -0,0 +1,99 @@
+// SPDX-License-Identifier: GPL-2.0 AND MIT
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#include <kunit/test.h>
+#include <kunit/test-bug.h>
+
+#define TEST_KEY (GUC_KLV_RESERVED_RANGE_START + 0x3de)
+#define TEST_PAD 0xdeadbeef
+
+static void test_count(struct kunit *test)
+{
+ u32 value = 0x12345678;
+ u16 key = TEST_KEY;
+ u32 klvs[] = {
+ PREP_GUC_KLV(key + 0, 0),
+ PREP_GUC_KLV(key + 1, 1), value,
+ PREP_GUC_KLV(key + 2, 2), value, value,
+ PREP_GUC_KLV(key + 3, 0),
+ 0, /* padding */
+ };
+
+ KUNIT_EXPECT_EQ(test, 0, xe_guc_klv_count(klvs, 0));
+ KUNIT_EXPECT_EQ(test, 1, xe_guc_klv_count(klvs, 1));
+ KUNIT_EXPECT_GT(test, 0, xe_guc_klv_count(klvs, 2));
+ KUNIT_EXPECT_EQ(test, 2, xe_guc_klv_count(klvs, 3));
+ KUNIT_EXPECT_GT(test, 0, xe_guc_klv_count(klvs, 4));
+ KUNIT_EXPECT_GT(test, 0, xe_guc_klv_count(klvs, 5));
+ KUNIT_EXPECT_EQ(test, 3, xe_guc_klv_count(klvs, 6));
+ KUNIT_EXPECT_EQ(test, 4, xe_guc_klv_count(klvs, 7));
+
+ /* 0 is treated as reserved KLV { KEY=0, LEN=0 } */
+ KUNIT_EXPECT_EQ(test, 5, xe_guc_klv_count(klvs, 8));
+}
+
+static void test_encode_u32(struct kunit *test)
+{
+ u32 *fail = ERR_PTR(-ENOMEM);
+ u32 value = 0x12345678;
+ u16 key = TEST_KEY;
+ u32 klvs[16];
+
+ memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
+
+ KUNIT_EXPECT_PTR_EQ(test, ERR_PTR(-ENOSPC), xe_guc_klv_encode_u32(klvs, 0, key, value));
+ KUNIT_EXPECT_PTR_EQ(test, ERR_PTR(-ENOSPC), xe_guc_klv_encode_u32(klvs, 1, key, value));
+
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, xe_guc_klv_encode_u32(klvs, 2, key, value));
+ KUNIT_EXPECT_EQ(test, klvs[0], PREP_GUC_KLV(key, 1));
+ KUNIT_EXPECT_EQ(test, klvs[1], value);
+ KUNIT_EXPECT_EQ(test, klvs[2], TEST_PAD);
+ KUNIT_EXPECT_PTR_EQ(test, &klvs[2], xe_guc_klv_encode_u32(klvs, 2, key, value));
+ KUNIT_EXPECT_PTR_EQ(test,
+ xe_guc_klv_encode_u32(klvs, 2, key, value),
+ xe_guc_klv_encode_u32(klvs, ARRAY_SIZE(klvs), key, value));
+
+ KUNIT_ASSERT_PTR_EQ(test, fail, xe_guc_klv_encode_u32(fail, ARRAY_SIZE(klvs), key, value));
+}
+
+static void test_encode_u64(struct kunit *test)
+{
+ u64 value = 0x123456789abcdef0;
+ u32 *fail = ERR_PTR(-ENOMEM);
+ u16 key = TEST_KEY;
+ u32 klvs[16];
+
+ memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
+
+ KUNIT_EXPECT_PTR_EQ(test, ERR_PTR(-ENOSPC), xe_guc_klv_encode_u64(klvs, 0, key, value));
+ KUNIT_EXPECT_PTR_EQ(test, ERR_PTR(-ENOSPC), xe_guc_klv_encode_u64(klvs, 1, key, value));
+ KUNIT_EXPECT_PTR_EQ(test, ERR_PTR(-ENOSPC), xe_guc_klv_encode_u64(klvs, 2, key, value));
+
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, xe_guc_klv_encode_u64(klvs, 3, key, value));
+ KUNIT_EXPECT_EQ(test, klvs[0], PREP_GUC_KLV(key, 2));
+ KUNIT_EXPECT_EQ(test, klvs[1], lower_32_bits(value));
+ KUNIT_EXPECT_EQ(test, klvs[2], upper_32_bits(value));
+ KUNIT_EXPECT_EQ(test, klvs[3], TEST_PAD);
+ KUNIT_EXPECT_PTR_EQ(test, &klvs[3], xe_guc_klv_encode_u64(klvs, 3, key, value));
+ KUNIT_EXPECT_PTR_EQ(test,
+ xe_guc_klv_encode_u64(klvs, 3, key, value),
+ xe_guc_klv_encode_u64(klvs, ARRAY_SIZE(klvs), key, value));
+
+ KUNIT_ASSERT_PTR_EQ(test, fail, xe_guc_klv_encode_u64(fail, ARRAY_SIZE(klvs), key, value));
+}
+
+static struct kunit_case guc_klv_helpers_test_cases[] = {
+ KUNIT_CASE(test_count),
+ KUNIT_CASE(test_encode_u32),
+ KUNIT_CASE(test_encode_u64),
+ {}
+};
+
+static struct kunit_suite guc_klv_helpers_suite = {
+ .name = "guc_klv_helpers",
+ .test_cases = guc_klv_helpers_test_cases,
+};
+
+kunit_test_suite(guc_klv_helpers_suite);
diff --git a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
index 3f5c88e2c949..96f5cd2ab4f3 100644
--- a/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
+++ b/drivers/gpu/drm/xe/xe_guc_klv_helpers.c
@@ -362,3 +362,7 @@ int xe_guc_klv_parser(const u32 *klvs, u32 num_dwords, void *obj,
return total;
}
+
+#if IS_BUILTIN(CONFIG_DRM_XE_KUNIT_TEST)
+#include "tests/xe_guc_klv_helpers_kunit.c"
+#endif
--
2.47.1
^ permalink raw reply related [flat|nested] 34+ messages in thread* Re: [PATCH 08/13] drm/xe/tests: Add GuC KLV helpers basic tests
2026-06-30 13:26 ` [PATCH 08/13] drm/xe/tests: Add GuC KLV helpers basic tests Michal Wajdeczko
@ 2026-07-03 14:17 ` Michał Winiarski
0 siblings, 0 replies; 34+ messages in thread
From: Michał Winiarski @ 2026-07-03 14:17 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
On Tue, Jun 30, 2026 at 03:26:27PM +0200, Michal Wajdeczko wrote:
> We will be making more extensive use of GuC KLV helpers. Add simple
> tests to ensure the helpers are working as expected.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
Thanks,
-Michał
> ---
> .../drm/xe/tests/xe_guc_klv_helpers_kunit.c | 99 +++++++++++++++++++
> drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 4 +
> 2 files changed, 103 insertions(+)
> create mode 100644 drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 09/13] drm/xe/tests: Add string encoding helper test
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
` (7 preceding siblings ...)
2026-06-30 13:26 ` [PATCH 08/13] drm/xe/tests: Add GuC KLV helpers basic tests Michal Wajdeczko
@ 2026-06-30 13:26 ` Michal Wajdeczko
2026-07-03 20:40 ` Michał Winiarski
2026-06-30 13:26 ` [PATCH 10/13] drm/xe/tests: Add object " Michal Wajdeczko
` (7 subsequent siblings)
16 siblings, 1 reply; 34+ messages in thread
From: Michal Wajdeczko @ 2026-06-30 13:26 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko
Before we start using string to KLV encoding helper, add a simple
test to make sure it works as expected.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
.../drm/xe/tests/xe_guc_klv_helpers_kunit.c | 46 +++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c b/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
index f87189ef13d5..c2d5f0098816 100644
--- a/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
+++ b/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
@@ -84,10 +84,56 @@ static void test_encode_u64(struct kunit *test)
KUNIT_ASSERT_PTR_EQ(test, fail, xe_guc_klv_encode_u64(fail, ARRAY_SIZE(klvs), key, value));
}
+static void test_encode_string(struct kunit *test)
+{
+ const char *string = "abcdefghijklmnopqrstvwxyz";
+ u32 string_size = strlen(string) + 1;
+ u32 dwlen = to_num_dwords(string_size);
+ u32 num_dwords = GUC_KLV_LEN_MIN + dwlen;
+ u32 klvs[num_dwords + GUC_KLV_LEN_MIN];
+ u32 *failed = ERR_PTR(-ENOMEM);
+ char buf[string_size];
+ u16 key = TEST_KEY;
+ u32 *next;
+ u32 n;
+
+ /* too small, must fail */
+ for (n = 0; n < num_dwords; n++) {
+ memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
+ KUNIT_EXPECT_PTR_EQ(test, ERR_PTR(-ENOSPC),
+ xe_guc_klv_encode_string(klvs, n, key, string));
+ KUNIT_ASSERT_EQ(test, klvs[0], TEST_PAD);
+ }
+
+ /* different string len, must pass */
+ for (n = 0; n < string_size; n++) {
+ memcpy(buf, string, n);
+ memset(buf + n, 0, sizeof(buf) - n);
+ memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
+
+ next = xe_guc_klv_encode_string(klvs, ARRAY_SIZE(klvs), key, buf);
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, next);
+ KUNIT_EXPECT_PTR_EQ(test, next, &klvs[GUC_KLV_LEN_MIN + to_num_dwords(n + 1)]);
+ KUNIT_EXPECT_STREQ_MSG(test, buf, (char *)&klvs[1], "n=%u", n);
+ kunit_info(test, "%u: %*ph\n", n, (int)to_num_bytes(next - klvs), klvs);
+ KUNIT_EXPECT_NE(test, *(next - 1), TEST_PAD);
+ KUNIT_ASSERT_EQ(test, *next, TEST_PAD);
+
+ /* bigger buf doesn't matter */
+ KUNIT_EXPECT_PTR_EQ(test, xe_guc_klv_encode_string(klvs, num_dwords, key, string),
+ xe_guc_klv_encode_string(klvs, ARRAY_SIZE(klvs), key, string));
+ }
+
+ /* don't crash if already failed */
+ KUNIT_ASSERT_PTR_EQ(test, failed,
+ xe_guc_klv_encode_string(failed, ARRAY_SIZE(klvs), key, string));
+}
+
static struct kunit_case guc_klv_helpers_test_cases[] = {
KUNIT_CASE(test_count),
KUNIT_CASE(test_encode_u32),
KUNIT_CASE(test_encode_u64),
+ KUNIT_CASE(test_encode_string),
{}
};
--
2.47.1
^ permalink raw reply related [flat|nested] 34+ messages in thread* [PATCH 10/13] drm/xe/tests: Add object encoding helper test
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
` (8 preceding siblings ...)
2026-06-30 13:26 ` [PATCH 09/13] drm/xe/tests: Add string encoding helper test Michal Wajdeczko
@ 2026-06-30 13:26 ` Michal Wajdeczko
2026-07-03 20:47 ` Michał Winiarski
2026-06-30 13:26 ` [PATCH 11/13] drm/xe/tests: Add GuC KLV printer test Michal Wajdeczko
` (6 subsequent siblings)
16 siblings, 1 reply; 34+ messages in thread
From: Michal Wajdeczko @ 2026-06-30 13:26 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko
We will soon be encoding complex objects as KLVs using our helper
function. Add few simple tests to make sure this helper function
works as expected.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
.../drm/xe/tests/xe_guc_klv_helpers_kunit.c | 162 ++++++++++++++++++
1 file changed, 162 insertions(+)
diff --git a/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c b/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
index c2d5f0098816..9a8acc85e9f1 100644
--- a/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
+++ b/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
@@ -7,6 +7,7 @@
#include <kunit/test-bug.h>
#define TEST_KEY (GUC_KLV_RESERVED_RANGE_START + 0x3de)
+#define TEST_GROUP_KEY (GUC_KLV_RESERVED_RANGE_START + 0x3f0)
#define TEST_PAD 0xdeadbeef
static void test_count(struct kunit *test)
@@ -129,11 +130,172 @@ static void test_encode_string(struct kunit *test)
xe_guc_klv_encode_string(failed, ARRAY_SIZE(klvs), key, string));
}
+struct some_object {
+ u32 value1;
+ u64 value2;
+} __packed;
+
+static u32 *obj_raw_encoder(u32 *klvs, u32 avail, const void *arg)
+{
+ const struct some_object *obj = arg;
+ size_t sz = sizeof(*obj);
+ u32 dwords = to_num_dwords(sz);
+
+ if (IS_ERR(klvs))
+ return klvs;
+ if (dwords > avail)
+ return ERR_PTR(-ENOSPC);
+ memcpy(klvs, obj, sz);
+ return klvs + dwords;
+}
+
+static u32 *obj_klv_encoder(u32 *klvs, u32 avail, const void *arg)
+{
+ const struct some_object *obj = arg;
+ u32 *end = klvs + avail;
+
+ klvs = xe_guc_klv_encode_u32(klvs, end - klvs, TEST_KEY + 1, obj->value1);
+ klvs = xe_guc_klv_encode_u64(klvs, end - klvs, TEST_KEY + 2, obj->value2);
+ return klvs;
+}
+
+static u32 *obj_nested_encoder(u32 *klvs, u32 avail, const void *arg)
+{
+ u32 *end = klvs + avail;
+
+ klvs = xe_guc_klv_encode_object(klvs, end - klvs, TEST_GROUP_KEY + 1,
+ arg, obj_klv_encoder);
+ klvs = xe_guc_klv_encode_object(klvs, end - klvs, TEST_GROUP_KEY + 2,
+ arg, obj_klv_encoder);
+ return klvs;
+}
+
+static void test_encode_object_raw(struct kunit *test)
+{
+ const struct some_object obj = {
+ .value1 = 0xdead1234,
+ .value2 = 0xdead87654321dead,
+ };
+ u32 payload = to_num_dwords(sizeof(obj));
+ u32 *err = ERR_PTR(-ENOSPC);
+ u16 key = TEST_KEY;
+ u32 klvs[16];
+ u32 n;
+
+ /* too small, must fail */
+ for (n = 0; n < GUC_KLV_LEN_MIN + payload; n++) {
+ memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
+ KUNIT_EXPECT_PTR_EQ_MSG(test, ERR_PTR(-ENOSPC),
+ xe_guc_klv_encode_object(klvs, n, key, &obj,
+ obj_raw_encoder),
+ "buf size=%u dwords", n);
+ }
+
+ /* must pass */
+ memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test,
+ xe_guc_klv_encode_object(klvs, GUC_KLV_LEN_MIN + payload,
+ key, &obj, obj_raw_encoder));
+ KUNIT_EXPECT_EQ(test, klvs[0], PREP_GUC_KLV(key, payload));
+ KUNIT_EXPECT_MEMEQ(test, &klvs[1], &obj, sizeof(obj));
+
+ /* already failed, must fail */
+ KUNIT_ASSERT_PTR_EQ(test, err,
+ xe_guc_klv_encode_object(err, ARRAY_SIZE(klvs), key,
+ &obj, obj_raw_encoder));
+}
+
+static void test_encode_object_klv(struct kunit *test)
+{
+ const struct some_object obj = {
+ .value1 = 0xdead1234,
+ .value2 = 0xdead87654321dead,
+ };
+ u16 key = TEST_GROUP_KEY;
+ u32 payload = 0;
+ u32 klvs[16];
+ u32 n;
+
+ payload += GUC_KLV_LEN_MIN + to_num_dwords(sizeof(obj.value1));
+ payload += GUC_KLV_LEN_MIN + to_num_dwords(sizeof(obj.value2));
+
+ /* too small, must fail */
+ for (n = 0; n < GUC_KLV_LEN_MIN + payload; n++) {
+ memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
+ KUNIT_EXPECT_PTR_EQ_MSG(test, ERR_PTR(-ENOSPC),
+ xe_guc_klv_encode_object(klvs, n, key, &obj,
+ obj_klv_encoder),
+ "buf size=%u dwords", n);
+ }
+
+ /* must pass */
+ memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test,
+ xe_guc_klv_encode_object(klvs, GUC_KLV_LEN_MIN + payload,
+ key, &obj, obj_klv_encoder));
+ KUNIT_EXPECT_EQ(test, klvs[0], PREP_GUC_KLV(key, payload));
+ KUNIT_EXPECT_EQ(test, klvs[1], PREP_GUC_KLV(TEST_KEY + 1, 1));
+ KUNIT_EXPECT_EQ(test, klvs[2], obj.value1);
+ KUNIT_EXPECT_EQ(test, klvs[3], PREP_GUC_KLV(TEST_KEY + 2, 2));
+ KUNIT_EXPECT_EQ(test, klvs[4], lower_32_bits(obj.value2));
+ KUNIT_EXPECT_EQ(test, klvs[5], upper_32_bits(obj.value2));
+ KUNIT_EXPECT_EQ(test, klvs[6], TEST_PAD);
+}
+
+static void test_encode_object_nested(struct kunit *test)
+{
+ const struct some_object obj = {
+ .value1 = 0xdead1234,
+ .value2 = 0xdead87654321dead,
+ };
+ u16 key = TEST_GROUP_KEY;
+ u32 payload = 0;
+ u32 klvs[16];
+ u32 n;
+
+ payload += GUC_KLV_LEN_MIN;
+ payload += GUC_KLV_LEN_MIN + to_num_dwords(sizeof(obj.value1));
+ payload += GUC_KLV_LEN_MIN + to_num_dwords(sizeof(obj.value2));
+ payload *= 2;
+
+ /* too small, must fail */
+ for (n = 0; n < GUC_KLV_LEN_MIN + payload; n++) {
+ memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
+ KUNIT_EXPECT_PTR_EQ_MSG(test, ERR_PTR(-ENOSPC),
+ xe_guc_klv_encode_object(klvs, n, key, &obj,
+ obj_nested_encoder),
+ "buf size=%u dwords", n);
+ }
+
+ /* must pass */
+ memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test,
+ xe_guc_klv_encode_object(klvs, GUC_KLV_LEN_MIN + payload,
+ key, &obj, obj_nested_encoder));
+ KUNIT_EXPECT_EQ(test, klvs[0], PREP_GUC_KLV(key, payload));
+ KUNIT_EXPECT_EQ(test, klvs[1], PREP_GUC_KLV(TEST_GROUP_KEY + 1, 5));
+ KUNIT_EXPECT_EQ(test, klvs[2], PREP_GUC_KLV(TEST_KEY + 1, 1));
+ KUNIT_EXPECT_EQ(test, klvs[3], obj.value1);
+ KUNIT_EXPECT_EQ(test, klvs[4], PREP_GUC_KLV(TEST_KEY + 2, 2));
+ KUNIT_EXPECT_EQ(test, klvs[5], lower_32_bits(obj.value2));
+ KUNIT_EXPECT_EQ(test, klvs[6], upper_32_bits(obj.value2));
+ KUNIT_EXPECT_EQ(test, klvs[7], PREP_GUC_KLV(TEST_GROUP_KEY + 2, 5));
+ KUNIT_EXPECT_EQ(test, klvs[8], PREP_GUC_KLV(TEST_KEY + 1, 1));
+ KUNIT_EXPECT_EQ(test, klvs[9], obj.value1);
+ KUNIT_EXPECT_EQ(test, klvs[10], PREP_GUC_KLV(TEST_KEY + 2, 2));
+ KUNIT_EXPECT_EQ(test, klvs[11], lower_32_bits(obj.value2));
+ KUNIT_EXPECT_EQ(test, klvs[12], upper_32_bits(obj.value2));
+ KUNIT_EXPECT_EQ(test, klvs[13], TEST_PAD);
+}
+
static struct kunit_case guc_klv_helpers_test_cases[] = {
KUNIT_CASE(test_count),
KUNIT_CASE(test_encode_u32),
KUNIT_CASE(test_encode_u64),
KUNIT_CASE(test_encode_string),
+ KUNIT_CASE(test_encode_object_raw),
+ KUNIT_CASE(test_encode_object_klv),
+ KUNIT_CASE(test_encode_object_nested),
{}
};
--
2.47.1
^ permalink raw reply related [flat|nested] 34+ messages in thread* Re: [PATCH 10/13] drm/xe/tests: Add object encoding helper test
2026-06-30 13:26 ` [PATCH 10/13] drm/xe/tests: Add object " Michal Wajdeczko
@ 2026-07-03 20:47 ` Michał Winiarski
2026-07-06 16:34 ` Michal Wajdeczko
0 siblings, 1 reply; 34+ messages in thread
From: Michał Winiarski @ 2026-07-03 20:47 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
On Tue, Jun 30, 2026 at 03:26:29PM +0200, Michal Wajdeczko wrote:
> We will soon be encoding complex objects as KLVs using our helper
> function. Add few simple tests to make sure this helper function
> works as expected.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> .../drm/xe/tests/xe_guc_klv_helpers_kunit.c | 162 ++++++++++++++++++
> 1 file changed, 162 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c b/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
> index c2d5f0098816..9a8acc85e9f1 100644
> --- a/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
> +++ b/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
> @@ -7,6 +7,7 @@
> #include <kunit/test-bug.h>
>
> #define TEST_KEY (GUC_KLV_RESERVED_RANGE_START + 0x3de)
> +#define TEST_GROUP_KEY (GUC_KLV_RESERVED_RANGE_START + 0x3f0)
> #define TEST_PAD 0xdeadbeef
>
> static void test_count(struct kunit *test)
> @@ -129,11 +130,172 @@ static void test_encode_string(struct kunit *test)
> xe_guc_klv_encode_string(failed, ARRAY_SIZE(klvs), key, string));
> }
>
> +struct some_object {
> + u32 value1;
> + u64 value2;
> +} __packed;
> +
> +static u32 *obj_raw_encoder(u32 *klvs, u32 avail, const void *arg)
> +{
> + const struct some_object *obj = arg;
> + size_t sz = sizeof(*obj);
> + u32 dwords = to_num_dwords(sz);
> +
> + if (IS_ERR(klvs))
> + return klvs;
> + if (dwords > avail)
> + return ERR_PTR(-ENOSPC);
> + memcpy(klvs, obj, sz);
> + return klvs + dwords;
> +}
> +
> +static u32 *obj_klv_encoder(u32 *klvs, u32 avail, const void *arg)
> +{
> + const struct some_object *obj = arg;
> + u32 *end = klvs + avail;
> +
> + klvs = xe_guc_klv_encode_u32(klvs, end - klvs, TEST_KEY + 1, obj->value1);
> + klvs = xe_guc_klv_encode_u64(klvs, end - klvs, TEST_KEY + 2, obj->value2);
Sashiko spotted that we should check for errors between the encode
calls, and that's probably a good idea.
With that:
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
Thanks,
-Michał
> + return klvs;
> +}
> +
> +static u32 *obj_nested_encoder(u32 *klvs, u32 avail, const void *arg)
> +{
> + u32 *end = klvs + avail;
> +
> + klvs = xe_guc_klv_encode_object(klvs, end - klvs, TEST_GROUP_KEY + 1,
> + arg, obj_klv_encoder);
> + klvs = xe_guc_klv_encode_object(klvs, end - klvs, TEST_GROUP_KEY + 2,
> + arg, obj_klv_encoder);
> + return klvs;
> +}
> +
> +static void test_encode_object_raw(struct kunit *test)
> +{
> + const struct some_object obj = {
> + .value1 = 0xdead1234,
> + .value2 = 0xdead87654321dead,
> + };
> + u32 payload = to_num_dwords(sizeof(obj));
> + u32 *err = ERR_PTR(-ENOSPC);
> + u16 key = TEST_KEY;
> + u32 klvs[16];
> + u32 n;
> +
> + /* too small, must fail */
> + for (n = 0; n < GUC_KLV_LEN_MIN + payload; n++) {
> + memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
> + KUNIT_EXPECT_PTR_EQ_MSG(test, ERR_PTR(-ENOSPC),
> + xe_guc_klv_encode_object(klvs, n, key, &obj,
> + obj_raw_encoder),
> + "buf size=%u dwords", n);
> + }
> +
> + /* must pass */
> + memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
> + KUNIT_ASSERT_NOT_ERR_OR_NULL(test,
> + xe_guc_klv_encode_object(klvs, GUC_KLV_LEN_MIN + payload,
> + key, &obj, obj_raw_encoder));
> + KUNIT_EXPECT_EQ(test, klvs[0], PREP_GUC_KLV(key, payload));
> + KUNIT_EXPECT_MEMEQ(test, &klvs[1], &obj, sizeof(obj));
> +
> + /* already failed, must fail */
> + KUNIT_ASSERT_PTR_EQ(test, err,
> + xe_guc_klv_encode_object(err, ARRAY_SIZE(klvs), key,
> + &obj, obj_raw_encoder));
> +}
> +
> +static void test_encode_object_klv(struct kunit *test)
> +{
> + const struct some_object obj = {
> + .value1 = 0xdead1234,
> + .value2 = 0xdead87654321dead,
> + };
> + u16 key = TEST_GROUP_KEY;
> + u32 payload = 0;
> + u32 klvs[16];
> + u32 n;
> +
> + payload += GUC_KLV_LEN_MIN + to_num_dwords(sizeof(obj.value1));
> + payload += GUC_KLV_LEN_MIN + to_num_dwords(sizeof(obj.value2));
> +
> + /* too small, must fail */
> + for (n = 0; n < GUC_KLV_LEN_MIN + payload; n++) {
> + memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
> + KUNIT_EXPECT_PTR_EQ_MSG(test, ERR_PTR(-ENOSPC),
> + xe_guc_klv_encode_object(klvs, n, key, &obj,
> + obj_klv_encoder),
> + "buf size=%u dwords", n);
> + }
> +
> + /* must pass */
> + memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
> + KUNIT_ASSERT_NOT_ERR_OR_NULL(test,
> + xe_guc_klv_encode_object(klvs, GUC_KLV_LEN_MIN + payload,
> + key, &obj, obj_klv_encoder));
> + KUNIT_EXPECT_EQ(test, klvs[0], PREP_GUC_KLV(key, payload));
> + KUNIT_EXPECT_EQ(test, klvs[1], PREP_GUC_KLV(TEST_KEY + 1, 1));
> + KUNIT_EXPECT_EQ(test, klvs[2], obj.value1);
> + KUNIT_EXPECT_EQ(test, klvs[3], PREP_GUC_KLV(TEST_KEY + 2, 2));
> + KUNIT_EXPECT_EQ(test, klvs[4], lower_32_bits(obj.value2));
> + KUNIT_EXPECT_EQ(test, klvs[5], upper_32_bits(obj.value2));
> + KUNIT_EXPECT_EQ(test, klvs[6], TEST_PAD);
> +}
> +
> +static void test_encode_object_nested(struct kunit *test)
> +{
> + const struct some_object obj = {
> + .value1 = 0xdead1234,
> + .value2 = 0xdead87654321dead,
> + };
> + u16 key = TEST_GROUP_KEY;
> + u32 payload = 0;
> + u32 klvs[16];
> + u32 n;
> +
> + payload += GUC_KLV_LEN_MIN;
> + payload += GUC_KLV_LEN_MIN + to_num_dwords(sizeof(obj.value1));
> + payload += GUC_KLV_LEN_MIN + to_num_dwords(sizeof(obj.value2));
> + payload *= 2;
> +
> + /* too small, must fail */
> + for (n = 0; n < GUC_KLV_LEN_MIN + payload; n++) {
> + memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
> + KUNIT_EXPECT_PTR_EQ_MSG(test, ERR_PTR(-ENOSPC),
> + xe_guc_klv_encode_object(klvs, n, key, &obj,
> + obj_nested_encoder),
> + "buf size=%u dwords", n);
> + }
> +
> + /* must pass */
> + memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
> + KUNIT_ASSERT_NOT_ERR_OR_NULL(test,
> + xe_guc_klv_encode_object(klvs, GUC_KLV_LEN_MIN + payload,
> + key, &obj, obj_nested_encoder));
> + KUNIT_EXPECT_EQ(test, klvs[0], PREP_GUC_KLV(key, payload));
> + KUNIT_EXPECT_EQ(test, klvs[1], PREP_GUC_KLV(TEST_GROUP_KEY + 1, 5));
> + KUNIT_EXPECT_EQ(test, klvs[2], PREP_GUC_KLV(TEST_KEY + 1, 1));
> + KUNIT_EXPECT_EQ(test, klvs[3], obj.value1);
> + KUNIT_EXPECT_EQ(test, klvs[4], PREP_GUC_KLV(TEST_KEY + 2, 2));
> + KUNIT_EXPECT_EQ(test, klvs[5], lower_32_bits(obj.value2));
> + KUNIT_EXPECT_EQ(test, klvs[6], upper_32_bits(obj.value2));
> + KUNIT_EXPECT_EQ(test, klvs[7], PREP_GUC_KLV(TEST_GROUP_KEY + 2, 5));
> + KUNIT_EXPECT_EQ(test, klvs[8], PREP_GUC_KLV(TEST_KEY + 1, 1));
> + KUNIT_EXPECT_EQ(test, klvs[9], obj.value1);
> + KUNIT_EXPECT_EQ(test, klvs[10], PREP_GUC_KLV(TEST_KEY + 2, 2));
> + KUNIT_EXPECT_EQ(test, klvs[11], lower_32_bits(obj.value2));
> + KUNIT_EXPECT_EQ(test, klvs[12], upper_32_bits(obj.value2));
> + KUNIT_EXPECT_EQ(test, klvs[13], TEST_PAD);
> +}
> +
> static struct kunit_case guc_klv_helpers_test_cases[] = {
> KUNIT_CASE(test_count),
> KUNIT_CASE(test_encode_u32),
> KUNIT_CASE(test_encode_u64),
> KUNIT_CASE(test_encode_string),
> + KUNIT_CASE(test_encode_object_raw),
> + KUNIT_CASE(test_encode_object_klv),
> + KUNIT_CASE(test_encode_object_nested),
> {}
> };
>
> --
> 2.47.1
>
^ permalink raw reply [flat|nested] 34+ messages in thread* Re: [PATCH 10/13] drm/xe/tests: Add object encoding helper test
2026-07-03 20:47 ` Michał Winiarski
@ 2026-07-06 16:34 ` Michal Wajdeczko
0 siblings, 0 replies; 34+ messages in thread
From: Michal Wajdeczko @ 2026-07-06 16:34 UTC (permalink / raw)
To: Michał Winiarski; +Cc: intel-xe
On 7/3/2026 10:47 PM, Michał Winiarski wrote:
> On Tue, Jun 30, 2026 at 03:26:29PM +0200, Michal Wajdeczko wrote:
>> We will soon be encoding complex objects as KLVs using our helper
>> function. Add few simple tests to make sure this helper function
>> works as expected.
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> ---
>> .../drm/xe/tests/xe_guc_klv_helpers_kunit.c | 162 ++++++++++++++++++
>> 1 file changed, 162 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c b/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
>> index c2d5f0098816..9a8acc85e9f1 100644
>> --- a/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
>> +++ b/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
>> @@ -7,6 +7,7 @@
>> #include <kunit/test-bug.h>
>>
>> #define TEST_KEY (GUC_KLV_RESERVED_RANGE_START + 0x3de)
>> +#define TEST_GROUP_KEY (GUC_KLV_RESERVED_RANGE_START + 0x3f0)
>> #define TEST_PAD 0xdeadbeef
>>
>> static void test_count(struct kunit *test)
>> @@ -129,11 +130,172 @@ static void test_encode_string(struct kunit *test)
>> xe_guc_klv_encode_string(failed, ARRAY_SIZE(klvs), key, string));
>> }
>>
>> +struct some_object {
>> + u32 value1;
>> + u64 value2;
>> +} __packed;
>> +
>> +static u32 *obj_raw_encoder(u32 *klvs, u32 avail, const void *arg)
>> +{
>> + const struct some_object *obj = arg;
>> + size_t sz = sizeof(*obj);
>> + u32 dwords = to_num_dwords(sz);
>> +
>> + if (IS_ERR(klvs))
>> + return klvs;
>> + if (dwords > avail)
>> + return ERR_PTR(-ENOSPC);
>> + memcpy(klvs, obj, sz);
>> + return klvs + dwords;
>> +}
>> +
>> +static u32 *obj_klv_encoder(u32 *klvs, u32 avail, const void *arg)
>> +{
>> + const struct some_object *obj = arg;
>> + u32 *end = klvs + avail;
>> +
>> + klvs = xe_guc_klv_encode_u32(klvs, end - klvs, TEST_KEY + 1, obj->value1);
>> + klvs = xe_guc_klv_encode_u64(klvs, end - klvs, TEST_KEY + 2, obj->value2);
>
> Sashiko spotted that we should check for errors between the encode
> calls, and that's probably a good idea.
the complain is about the calculation of the avail parameter, as with klvs
pointer being faulty, result of subtraction is undefined
but
the assumption is that all encode helpers shall ignore avail parameter if
passed klvs pointer is invalid, hence passing garbage as avail should be safe
and this allows us to write simpler code, as any encoding failure must result
in ERR_PTR, which when passed to the next encoder, shall be immediately returned
repeated by the subsequent encoders, without looking at other parameters
thus we may only need to check the result of the final encoder
and here, this is a pure example encoder code, for the test purposed we check
the final encoding result in the code below, for object encoding test purposes,
we don't care about internal encoding steps taken
>
> With that:
> Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
>
> Thanks,
> -Michał
>
>> + return klvs;
>> +}
>> +
>> +static u32 *obj_nested_encoder(u32 *klvs, u32 avail, const void *arg)
>> +{
>> + u32 *end = klvs + avail;
>> +
>> + klvs = xe_guc_klv_encode_object(klvs, end - klvs, TEST_GROUP_KEY + 1,
>> + arg, obj_klv_encoder);
>> + klvs = xe_guc_klv_encode_object(klvs, end - klvs, TEST_GROUP_KEY + 2,
>> + arg, obj_klv_encoder);
>> + return klvs;
>> +}
>> +
>> +static void test_encode_object_raw(struct kunit *test)
>> +{
>> + const struct some_object obj = {
>> + .value1 = 0xdead1234,
>> + .value2 = 0xdead87654321dead,
>> + };
>> + u32 payload = to_num_dwords(sizeof(obj));
>> + u32 *err = ERR_PTR(-ENOSPC);
>> + u16 key = TEST_KEY;
>> + u32 klvs[16];
>> + u32 n;
>> +
>> + /* too small, must fail */
>> + for (n = 0; n < GUC_KLV_LEN_MIN + payload; n++) {
>> + memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
>> + KUNIT_EXPECT_PTR_EQ_MSG(test, ERR_PTR(-ENOSPC),
>> + xe_guc_klv_encode_object(klvs, n, key, &obj,
>> + obj_raw_encoder),
>> + "buf size=%u dwords", n);
>> + }
>> +
>> + /* must pass */
>> + memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
>> + KUNIT_ASSERT_NOT_ERR_OR_NULL(test,
>> + xe_guc_klv_encode_object(klvs, GUC_KLV_LEN_MIN + payload,
>> + key, &obj, obj_raw_encoder));
>> + KUNIT_EXPECT_EQ(test, klvs[0], PREP_GUC_KLV(key, payload));
>> + KUNIT_EXPECT_MEMEQ(test, &klvs[1], &obj, sizeof(obj));
>> +
>> + /* already failed, must fail */
>> + KUNIT_ASSERT_PTR_EQ(test, err,
>> + xe_guc_klv_encode_object(err, ARRAY_SIZE(klvs), key,
>> + &obj, obj_raw_encoder));
>> +}
>> +
>> +static void test_encode_object_klv(struct kunit *test)
>> +{
>> + const struct some_object obj = {
>> + .value1 = 0xdead1234,
>> + .value2 = 0xdead87654321dead,
>> + };
>> + u16 key = TEST_GROUP_KEY;
>> + u32 payload = 0;
>> + u32 klvs[16];
>> + u32 n;
>> +
>> + payload += GUC_KLV_LEN_MIN + to_num_dwords(sizeof(obj.value1));
>> + payload += GUC_KLV_LEN_MIN + to_num_dwords(sizeof(obj.value2));
>> +
>> + /* too small, must fail */
>> + for (n = 0; n < GUC_KLV_LEN_MIN + payload; n++) {
>> + memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
>> + KUNIT_EXPECT_PTR_EQ_MSG(test, ERR_PTR(-ENOSPC),
>> + xe_guc_klv_encode_object(klvs, n, key, &obj,
>> + obj_klv_encoder),
>> + "buf size=%u dwords", n);
>> + }
>> +
>> + /* must pass */
>> + memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
>> + KUNIT_ASSERT_NOT_ERR_OR_NULL(test,
>> + xe_guc_klv_encode_object(klvs, GUC_KLV_LEN_MIN + payload,
>> + key, &obj, obj_klv_encoder));
>> + KUNIT_EXPECT_EQ(test, klvs[0], PREP_GUC_KLV(key, payload));
>> + KUNIT_EXPECT_EQ(test, klvs[1], PREP_GUC_KLV(TEST_KEY + 1, 1));
>> + KUNIT_EXPECT_EQ(test, klvs[2], obj.value1);
>> + KUNIT_EXPECT_EQ(test, klvs[3], PREP_GUC_KLV(TEST_KEY + 2, 2));
>> + KUNIT_EXPECT_EQ(test, klvs[4], lower_32_bits(obj.value2));
>> + KUNIT_EXPECT_EQ(test, klvs[5], upper_32_bits(obj.value2));
>> + KUNIT_EXPECT_EQ(test, klvs[6], TEST_PAD);
>> +}
>> +
>> +static void test_encode_object_nested(struct kunit *test)
>> +{
>> + const struct some_object obj = {
>> + .value1 = 0xdead1234,
>> + .value2 = 0xdead87654321dead,
>> + };
>> + u16 key = TEST_GROUP_KEY;
>> + u32 payload = 0;
>> + u32 klvs[16];
>> + u32 n;
>> +
>> + payload += GUC_KLV_LEN_MIN;
>> + payload += GUC_KLV_LEN_MIN + to_num_dwords(sizeof(obj.value1));
>> + payload += GUC_KLV_LEN_MIN + to_num_dwords(sizeof(obj.value2));
>> + payload *= 2;
>> +
>> + /* too small, must fail */
>> + for (n = 0; n < GUC_KLV_LEN_MIN + payload; n++) {
>> + memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
>> + KUNIT_EXPECT_PTR_EQ_MSG(test, ERR_PTR(-ENOSPC),
>> + xe_guc_klv_encode_object(klvs, n, key, &obj,
>> + obj_nested_encoder),
>> + "buf size=%u dwords", n);
>> + }
>> +
>> + /* must pass */
>> + memset32(klvs, TEST_PAD, ARRAY_SIZE(klvs));
>> + KUNIT_ASSERT_NOT_ERR_OR_NULL(test,
>> + xe_guc_klv_encode_object(klvs, GUC_KLV_LEN_MIN + payload,
>> + key, &obj, obj_nested_encoder));
>> + KUNIT_EXPECT_EQ(test, klvs[0], PREP_GUC_KLV(key, payload));
>> + KUNIT_EXPECT_EQ(test, klvs[1], PREP_GUC_KLV(TEST_GROUP_KEY + 1, 5));
>> + KUNIT_EXPECT_EQ(test, klvs[2], PREP_GUC_KLV(TEST_KEY + 1, 1));
>> + KUNIT_EXPECT_EQ(test, klvs[3], obj.value1);
>> + KUNIT_EXPECT_EQ(test, klvs[4], PREP_GUC_KLV(TEST_KEY + 2, 2));
>> + KUNIT_EXPECT_EQ(test, klvs[5], lower_32_bits(obj.value2));
>> + KUNIT_EXPECT_EQ(test, klvs[6], upper_32_bits(obj.value2));
>> + KUNIT_EXPECT_EQ(test, klvs[7], PREP_GUC_KLV(TEST_GROUP_KEY + 2, 5));
>> + KUNIT_EXPECT_EQ(test, klvs[8], PREP_GUC_KLV(TEST_KEY + 1, 1));
>> + KUNIT_EXPECT_EQ(test, klvs[9], obj.value1);
>> + KUNIT_EXPECT_EQ(test, klvs[10], PREP_GUC_KLV(TEST_KEY + 2, 2));
>> + KUNIT_EXPECT_EQ(test, klvs[11], lower_32_bits(obj.value2));
>> + KUNIT_EXPECT_EQ(test, klvs[12], upper_32_bits(obj.value2));
>> + KUNIT_EXPECT_EQ(test, klvs[13], TEST_PAD);
>> +}
>> +
>> static struct kunit_case guc_klv_helpers_test_cases[] = {
>> KUNIT_CASE(test_count),
>> KUNIT_CASE(test_encode_u32),
>> KUNIT_CASE(test_encode_u64),
>> KUNIT_CASE(test_encode_string),
>> + KUNIT_CASE(test_encode_object_raw),
>> + KUNIT_CASE(test_encode_object_klv),
>> + KUNIT_CASE(test_encode_object_nested),
>> {}
>> };
>>
>> --
>> 2.47.1
>>
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 11/13] drm/xe/tests: Add GuC KLV printer test
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
` (9 preceding siblings ...)
2026-06-30 13:26 ` [PATCH 10/13] drm/xe/tests: Add object " Michal Wajdeczko
@ 2026-06-30 13:26 ` Michal Wajdeczko
2026-07-03 20:49 ` Michał Winiarski
2026-06-30 13:26 ` [PATCH 12/13] drm/xe/tests: Add migration packet test Michal Wajdeczko
` (5 subsequent siblings)
16 siblings, 1 reply; 34+ messages in thread
From: Michal Wajdeczko @ 2026-06-30 13:26 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko
For completeness, add a simple test to exercise the KLV printer
to make sure it doesn't crash at least.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
.../drm/xe/tests/xe_guc_klv_helpers_kunit.c | 41 +++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c b/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
index 9a8acc85e9f1..a6724f6b3a68 100644
--- a/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
+++ b/drivers/gpu/drm/xe/tests/xe_guc_klv_helpers_kunit.c
@@ -10,6 +10,11 @@
#define TEST_GROUP_KEY (GUC_KLV_RESERVED_RANGE_START + 0x3f0)
#define TEST_PAD 0xdeadbeef
+static bool fake_is_group_key(u16 key)
+{
+ return is_reserved_key(key) && key >= TEST_GROUP_KEY;
+}
+
static void test_count(struct kunit *test)
{
u32 value = 0x12345678;
@@ -288,6 +293,41 @@ static void test_encode_object_nested(struct kunit *test)
KUNIT_EXPECT_EQ(test, klvs[13], TEST_PAD);
}
+static void __drm_printfn_kunit(struct drm_printer *p, struct va_format *vaf)
+{
+ struct kunit *test = p->arg;
+
+ kunit_info(test, "%pV", vaf);
+}
+
+static struct drm_printer drm_kunit_printer(void)
+{
+ struct drm_printer p = {
+ .printfn = __drm_printfn_kunit,
+ .arg = kunit_get_current_test(),
+ };
+ return p;
+}
+
+static void test_print(struct kunit *test)
+{
+ struct drm_printer p = drm_kunit_printer();
+ u32 zeros[] = { 0, 0, 0, /* padding */ };
+ u32 klvs[] = {
+ PREP_GUC_KLV(GUC_KLV_OPT_IN_FEATURE_EXT_CAT_ERR_TYPE_KEY, 0),
+ PREP_GUC_KLV(GUC_KLV_VF_CFG_NUM_CONTEXTS_KEY, 1), 1234,
+ PREP_GUC_KLV(GUC_KLV_VF_CFG_GGTT_SIZE_KEY, 2), 0x4000, 0x0123,
+ PREP_GUC_KLV(TEST_KEY, 3), 1, 2, 3,
+ PREP_GUC_KLV(TEST_GROUP_KEY, 5),
+ PREP_GUC_KLV(TEST_KEY + 1, 1), 1,
+ PREP_GUC_KLV(TEST_KEY + 2, 2), 1, 2,
+ };
+
+ kunit_activate_static_stub(test, is_group_key, fake_is_group_key);
+ xe_guc_klv_print(zeros, ARRAY_SIZE(zeros), &p);
+ xe_guc_klv_print(klvs, ARRAY_SIZE(klvs), &p);
+}
+
static struct kunit_case guc_klv_helpers_test_cases[] = {
KUNIT_CASE(test_count),
KUNIT_CASE(test_encode_u32),
@@ -296,6 +336,7 @@ static struct kunit_case guc_klv_helpers_test_cases[] = {
KUNIT_CASE(test_encode_object_raw),
KUNIT_CASE(test_encode_object_klv),
KUNIT_CASE(test_encode_object_nested),
+ KUNIT_CASE(test_print),
{}
};
--
2.47.1
^ permalink raw reply related [flat|nested] 34+ messages in thread* [PATCH 12/13] drm/xe/tests: Add migration packet test
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
` (10 preceding siblings ...)
2026-06-30 13:26 ` [PATCH 11/13] drm/xe/tests: Add GuC KLV printer test Michal Wajdeczko
@ 2026-06-30 13:26 ` Michal Wajdeczko
2026-07-03 13:44 ` Michał Winiarski
2026-06-30 13:26 ` [PATCH 13/13] drm/xe/pf: Handle migration descriptor using KLV helpers Michal Wajdeczko
` (4 subsequent siblings)
16 siblings, 1 reply; 34+ messages in thread
From: Michal Wajdeczko @ 2026-06-30 13:26 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko
One of our migration data packet (descriptor) is based on the KLV
encoding. Add a simple descriptor initialization test, as we plan
to use new KLV helper functions there.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
.../gpu/drm/xe/tests/xe_sriov_packet_kunit.c | 83 +++++++++++++++++++
drivers/gpu/drm/xe/xe_sriov_packet.c | 4 +
2 files changed, 87 insertions(+)
create mode 100644 drivers/gpu/drm/xe/tests/xe_sriov_packet_kunit.c
diff --git a/drivers/gpu/drm/xe/tests/xe_sriov_packet_kunit.c b/drivers/gpu/drm/xe/tests/xe_sriov_packet_kunit.c
new file mode 100644
index 000000000000..9af066875671
--- /dev/null
+++ b/drivers/gpu/drm/xe/tests/xe_sriov_packet_kunit.c
@@ -0,0 +1,83 @@
+// SPDX-License-Identifier: GPL-2.0 AND MIT
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#include <kunit/test.h>
+#include <kunit/test-bug.h>
+
+#include "xe_device.h"
+#include "xe_guc_klv_helpers.h"
+#include "xe_kunit_helpers.h"
+#include "xe_pci_test.h"
+
+#define TEST_VF VFID(1)
+
+static int sriov_packet_test_init(struct kunit *test)
+{
+ struct xe_pci_fake_data fake = {
+ .sriov_mode = XE_SRIOV_MODE_PF,
+ .platform = XE_PANTHERLAKE, /* we need MEMIRQ */
+ .subplatform = XE_SUBPLATFORM_NONE,
+ .graphics_verx100 = 3000,
+ .media_verx100 = 3000,
+ };
+ struct xe_device *xe;
+
+ test->priv = &fake;
+ xe_kunit_helper_xe_device_test_init(test);
+ xe = test->priv;
+
+ /* pretend we can support at least VF1 */
+ xe->sriov.pf.device_total_vfs = 1;
+ xe->sriov.pf.driver_max_vfs = 1;
+
+ KUNIT_ASSERT_EQ(test, 0, xe_sriov_init(xe));
+ KUNIT_ASSERT_TRUE(test, xe_sriov_pf_migration_supported(xe));
+
+ return 0;
+}
+
+static void test_descriptor_init(struct kunit *test)
+{
+ struct xe_device *xe = test->priv;
+ struct xe_sriov_packet **desc;
+
+ guard(mutex)(pf_migration_mutex(xe, TEST_VF));
+
+ KUNIT_ASSERT_EQ(test, 0, pf_descriptor_init(xe, TEST_VF));
+ desc = pf_pick_descriptor(xe, TEST_VF);
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, *desc);
+ KUNIT_EXPECT_NE(test, (*desc)->hdr.version, 0);
+ KUNIT_EXPECT_EQ(test, (*desc)->hdr.version, XE_SRIOV_PACKET_SUPPORTED_VERSION);
+ KUNIT_EXPECT_EQ(test, (*desc)->hdr.type, XE_SRIOV_PACKET_TYPE_DESCRIPTOR);
+ KUNIT_EXPECT_NE(test, (*desc)->hdr.size, 0);
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, (*desc)->vaddr);
+ KUNIT_EXPECT_EQ(test, 0, xe_sriov_packet_process_descriptor(xe, TEST_VF, *desc));
+
+ switch ((*desc)->hdr.version) {
+ case 1:
+ /* v1 is KLV based */
+ KUNIT_EXPECT_TRUE(test, IS_ALIGNED((*desc)->hdr.size, sizeof(u32)));
+ /* v1 has at least DEVID and REVID KLVs */
+ KUNIT_EXPECT_LE(test, 2,
+ xe_guc_klv_count((*desc)->vaddr,
+ (*desc)->hdr.size / sizeof(u32)));
+ break;
+ default:
+ kunit_skip(test, "missing test code for version %u\n", (*desc)->hdr.version);
+ }
+}
+
+static struct kunit_case sriov_packet_test_cases[] = {
+ KUNIT_CASE(test_descriptor_init),
+ {}
+};
+
+static struct kunit_suite sriov_packet_suite = {
+ .name = "sriov_packet",
+ .test_cases = sriov_packet_test_cases,
+ .init = sriov_packet_test_init,
+};
+
+kunit_test_suite(sriov_packet_suite);
diff --git a/drivers/gpu/drm/xe/xe_sriov_packet.c b/drivers/gpu/drm/xe/xe_sriov_packet.c
index e581e8e6c1d1..558a3697d639 100644
--- a/drivers/gpu/drm/xe/xe_sriov_packet.c
+++ b/drivers/gpu/drm/xe/xe_sriov_packet.c
@@ -516,3 +516,7 @@ int xe_sriov_packet_save_init(struct xe_device *xe, unsigned int vfid)
return 0;
}
+
+#if IS_BUILTIN(CONFIG_DRM_XE_KUNIT_TEST)
+#include "tests/xe_sriov_packet_kunit.c"
+#endif
--
2.47.1
^ permalink raw reply related [flat|nested] 34+ messages in thread* Re: [PATCH 12/13] drm/xe/tests: Add migration packet test
2026-06-30 13:26 ` [PATCH 12/13] drm/xe/tests: Add migration packet test Michal Wajdeczko
@ 2026-07-03 13:44 ` Michał Winiarski
2026-07-06 16:42 ` Michal Wajdeczko
0 siblings, 1 reply; 34+ messages in thread
From: Michał Winiarski @ 2026-07-03 13:44 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
On Tue, Jun 30, 2026 at 03:26:31PM +0200, Michal Wajdeczko wrote:
> One of our migration data packet (descriptor) is based on the KLV
> encoding. Add a simple descriptor initialization test, as we plan
> to use new KLV helper functions there.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> .../gpu/drm/xe/tests/xe_sriov_packet_kunit.c | 83 +++++++++++++++++++
> drivers/gpu/drm/xe/xe_sriov_packet.c | 4 +
> 2 files changed, 87 insertions(+)
> create mode 100644 drivers/gpu/drm/xe/tests/xe_sriov_packet_kunit.c
>
> diff --git a/drivers/gpu/drm/xe/tests/xe_sriov_packet_kunit.c b/drivers/gpu/drm/xe/tests/xe_sriov_packet_kunit.c
> new file mode 100644
> index 000000000000..9af066875671
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/tests/xe_sriov_packet_kunit.c
> @@ -0,0 +1,83 @@
> +// SPDX-License-Identifier: GPL-2.0 AND MIT
> +/*
> + * Copyright © 2026 Intel Corporation
> + */
> +
> +#include <kunit/test.h>
> +#include <kunit/test-bug.h>
> +
> +#include "xe_device.h"
> +#include "xe_guc_klv_helpers.h"
> +#include "xe_kunit_helpers.h"
> +#include "xe_pci_test.h"
> +
> +#define TEST_VF VFID(1)
> +
> +static int sriov_packet_test_init(struct kunit *test)
> +{
> + struct xe_pci_fake_data fake = {
> + .sriov_mode = XE_SRIOV_MODE_PF,
> + .platform = XE_PANTHERLAKE, /* we need MEMIRQ */
> + .subplatform = XE_SUBPLATFORM_NONE,
> + .graphics_verx100 = 3000,
> + .media_verx100 = 3000,
> + };
> + struct xe_device *xe;
> +
> + test->priv = &fake;
> + xe_kunit_helper_xe_device_test_init(test);
> + xe = test->priv;
> +
> + /* pretend we can support at least VF1 */
> + xe->sriov.pf.device_total_vfs = 1;
> + xe->sriov.pf.driver_max_vfs = 1;
> +
> + KUNIT_ASSERT_EQ(test, 0, xe_sriov_init(xe));
> + KUNIT_ASSERT_TRUE(test, xe_sriov_pf_migration_supported(xe));
> +
> + return 0;
> +}
> +
> +static void test_descriptor_init(struct kunit *test)
> +{
> + struct xe_device *xe = test->priv;
> + struct xe_sriov_packet **desc;
> +
> + guard(mutex)(pf_migration_mutex(xe, TEST_VF));
Sashiko complains that we'll never release the lock if we're mixing
scope-managed locks with KUNIT_ASSERT.
We might want to convert this to test-managed resource.
LGTM otherwise:
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
Thanks,
-Michał
> +
> + KUNIT_ASSERT_EQ(test, 0, pf_descriptor_init(xe, TEST_VF));
> + desc = pf_pick_descriptor(xe, TEST_VF);
> + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, *desc);
> + KUNIT_EXPECT_NE(test, (*desc)->hdr.version, 0);
> + KUNIT_EXPECT_EQ(test, (*desc)->hdr.version, XE_SRIOV_PACKET_SUPPORTED_VERSION);
> + KUNIT_EXPECT_EQ(test, (*desc)->hdr.type, XE_SRIOV_PACKET_TYPE_DESCRIPTOR);
> + KUNIT_EXPECT_NE(test, (*desc)->hdr.size, 0);
> + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, (*desc)->vaddr);
> + KUNIT_EXPECT_EQ(test, 0, xe_sriov_packet_process_descriptor(xe, TEST_VF, *desc));
> +
> + switch ((*desc)->hdr.version) {
> + case 1:
> + /* v1 is KLV based */
> + KUNIT_EXPECT_TRUE(test, IS_ALIGNED((*desc)->hdr.size, sizeof(u32)));
> + /* v1 has at least DEVID and REVID KLVs */
> + KUNIT_EXPECT_LE(test, 2,
> + xe_guc_klv_count((*desc)->vaddr,
> + (*desc)->hdr.size / sizeof(u32)));
> + break;
> + default:
> + kunit_skip(test, "missing test code for version %u\n", (*desc)->hdr.version);
> + }
> +}
> +
> +static struct kunit_case sriov_packet_test_cases[] = {
> + KUNIT_CASE(test_descriptor_init),
> + {}
> +};
> +
> +static struct kunit_suite sriov_packet_suite = {
> + .name = "sriov_packet",
> + .test_cases = sriov_packet_test_cases,
> + .init = sriov_packet_test_init,
> +};
> +
> +kunit_test_suite(sriov_packet_suite);
> diff --git a/drivers/gpu/drm/xe/xe_sriov_packet.c b/drivers/gpu/drm/xe/xe_sriov_packet.c
> index e581e8e6c1d1..558a3697d639 100644
> --- a/drivers/gpu/drm/xe/xe_sriov_packet.c
> +++ b/drivers/gpu/drm/xe/xe_sriov_packet.c
> @@ -516,3 +516,7 @@ int xe_sriov_packet_save_init(struct xe_device *xe, unsigned int vfid)
>
> return 0;
> }
> +
> +#if IS_BUILTIN(CONFIG_DRM_XE_KUNIT_TEST)
> +#include "tests/xe_sriov_packet_kunit.c"
> +#endif
> --
> 2.47.1
>
^ permalink raw reply [flat|nested] 34+ messages in thread* Re: [PATCH 12/13] drm/xe/tests: Add migration packet test
2026-07-03 13:44 ` Michał Winiarski
@ 2026-07-06 16:42 ` Michal Wajdeczko
0 siblings, 0 replies; 34+ messages in thread
From: Michal Wajdeczko @ 2026-07-06 16:42 UTC (permalink / raw)
To: Michał Winiarski; +Cc: intel-xe
On 7/3/2026 3:44 PM, Michał Winiarski wrote:
> On Tue, Jun 30, 2026 at 03:26:31PM +0200, Michal Wajdeczko wrote:
>> One of our migration data packet (descriptor) is based on the KLV
>> encoding. Add a simple descriptor initialization test, as we plan
>> to use new KLV helper functions there.
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> ---
>> .../gpu/drm/xe/tests/xe_sriov_packet_kunit.c | 83 +++++++++++++++++++
>> drivers/gpu/drm/xe/xe_sriov_packet.c | 4 +
>> 2 files changed, 87 insertions(+)
>> create mode 100644 drivers/gpu/drm/xe/tests/xe_sriov_packet_kunit.c
>>
>> diff --git a/drivers/gpu/drm/xe/tests/xe_sriov_packet_kunit.c b/drivers/gpu/drm/xe/tests/xe_sriov_packet_kunit.c
>> new file mode 100644
>> index 000000000000..9af066875671
>> --- /dev/null
>> +++ b/drivers/gpu/drm/xe/tests/xe_sriov_packet_kunit.c
>> @@ -0,0 +1,83 @@
>> +// SPDX-License-Identifier: GPL-2.0 AND MIT
>> +/*
>> + * Copyright © 2026 Intel Corporation
>> + */
>> +
>> +#include <kunit/test.h>
>> +#include <kunit/test-bug.h>
>> +
>> +#include "xe_device.h"
>> +#include "xe_guc_klv_helpers.h"
>> +#include "xe_kunit_helpers.h"
>> +#include "xe_pci_test.h"
>> +
>> +#define TEST_VF VFID(1)
>> +
>> +static int sriov_packet_test_init(struct kunit *test)
>> +{
>> + struct xe_pci_fake_data fake = {
>> + .sriov_mode = XE_SRIOV_MODE_PF,
>> + .platform = XE_PANTHERLAKE, /* we need MEMIRQ */
>> + .subplatform = XE_SUBPLATFORM_NONE,
>> + .graphics_verx100 = 3000,
>> + .media_verx100 = 3000,
>> + };
>> + struct xe_device *xe;
>> +
>> + test->priv = &fake;
>> + xe_kunit_helper_xe_device_test_init(test);
>> + xe = test->priv;
>> +
>> + /* pretend we can support at least VF1 */
>> + xe->sriov.pf.device_total_vfs = 1;
>> + xe->sriov.pf.driver_max_vfs = 1;
>> +
>> + KUNIT_ASSERT_EQ(test, 0, xe_sriov_init(xe));
>> + KUNIT_ASSERT_TRUE(test, xe_sriov_pf_migration_supported(xe));
>> +
>> + return 0;
>> +}
>> +
>> +static void test_descriptor_init(struct kunit *test)
>> +{
>> + struct xe_device *xe = test->priv;
>> + struct xe_sriov_packet **desc;
>> +
>> + guard(mutex)(pf_migration_mutex(xe, TEST_VF));
>
> Sashiko complains that we'll never release the lock if we're mixing
> scope-managed locks with KUNIT_ASSERT.
> We might want to convert this to test-managed resource.
hmm, while this could be done here this way, it might be not so trivial
in cases where we would also mix some original code that uses guard(mutex)
before calling other function which we replaced with the stub and trigger
the KUNIT_ASSERT from there.
maybe special steps should be taken only when locking a global mutex,
which is not the case here? but it's not a rocket science, so yeah,
let's do it
>
> LGTM otherwise:
> Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
thanks!
>
> Thanks,
> -Michał
>
>> +
>> + KUNIT_ASSERT_EQ(test, 0, pf_descriptor_init(xe, TEST_VF));
>> + desc = pf_pick_descriptor(xe, TEST_VF);
>> + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, *desc);
>> + KUNIT_EXPECT_NE(test, (*desc)->hdr.version, 0);
>> + KUNIT_EXPECT_EQ(test, (*desc)->hdr.version, XE_SRIOV_PACKET_SUPPORTED_VERSION);
>> + KUNIT_EXPECT_EQ(test, (*desc)->hdr.type, XE_SRIOV_PACKET_TYPE_DESCRIPTOR);
>> + KUNIT_EXPECT_NE(test, (*desc)->hdr.size, 0);
>> + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, (*desc)->vaddr);
>> + KUNIT_EXPECT_EQ(test, 0, xe_sriov_packet_process_descriptor(xe, TEST_VF, *desc));
>> +
>> + switch ((*desc)->hdr.version) {
>> + case 1:
>> + /* v1 is KLV based */
>> + KUNIT_EXPECT_TRUE(test, IS_ALIGNED((*desc)->hdr.size, sizeof(u32)));
>> + /* v1 has at least DEVID and REVID KLVs */
>> + KUNIT_EXPECT_LE(test, 2,
>> + xe_guc_klv_count((*desc)->vaddr,
>> + (*desc)->hdr.size / sizeof(u32)));
>> + break;
>> + default:
>> + kunit_skip(test, "missing test code for version %u\n", (*desc)->hdr.version);
>> + }
>> +}
>> +
>> +static struct kunit_case sriov_packet_test_cases[] = {
>> + KUNIT_CASE(test_descriptor_init),
>> + {}
>> +};
>> +
>> +static struct kunit_suite sriov_packet_suite = {
>> + .name = "sriov_packet",
>> + .test_cases = sriov_packet_test_cases,
>> + .init = sriov_packet_test_init,
>> +};
>> +
>> +kunit_test_suite(sriov_packet_suite);
>> diff --git a/drivers/gpu/drm/xe/xe_sriov_packet.c b/drivers/gpu/drm/xe/xe_sriov_packet.c
>> index e581e8e6c1d1..558a3697d639 100644
>> --- a/drivers/gpu/drm/xe/xe_sriov_packet.c
>> +++ b/drivers/gpu/drm/xe/xe_sriov_packet.c
>> @@ -516,3 +516,7 @@ int xe_sriov_packet_save_init(struct xe_device *xe, unsigned int vfid)
>>
>> return 0;
>> }
>> +
>> +#if IS_BUILTIN(CONFIG_DRM_XE_KUNIT_TEST)
>> +#include "tests/xe_sriov_packet_kunit.c"
>> +#endif
>> --
>> 2.47.1
>>
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 13/13] drm/xe/pf: Handle migration descriptor using KLV helpers
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
` (11 preceding siblings ...)
2026-06-30 13:26 ` [PATCH 12/13] drm/xe/tests: Add migration packet test Michal Wajdeczko
@ 2026-06-30 13:26 ` Michal Wajdeczko
2026-07-03 20:50 ` Michał Winiarski
2026-06-30 13:47 ` ✗ CI.checkpatch: warning for drm/xe: Add and use more " Patchwork
` (3 subsequent siblings)
16 siblings, 1 reply; 34+ messages in thread
From: Michal Wajdeczko @ 2026-06-30 13:26 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko
As we plan to add more KLVs to the migration descriptor packet,
to simplify such extensions and avoid coding errors, start using
our KLV helpers for packet preparing and parsing.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
drivers/gpu/drm/xe/xe_sriov_packet.c | 106 ++++++++++++++-------------
1 file changed, 56 insertions(+), 50 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_sriov_packet.c b/drivers/gpu/drm/xe/xe_sriov_packet.c
index 558a3697d639..e9ae9c9744ea 100644
--- a/drivers/gpu/drm/xe/xe_sriov_packet.c
+++ b/drivers/gpu/drm/xe/xe_sriov_packet.c
@@ -360,8 +360,7 @@ static int pf_descriptor_init(struct xe_device *xe, unsigned int vfid)
{
struct xe_sriov_packet **desc = pf_pick_descriptor(xe, vfid);
struct xe_sriov_packet *data;
- unsigned int len = 0;
- u32 *klvs;
+ u32 *klvs, *end;
int ret;
data = xe_sriov_packet_alloc(xe);
@@ -376,20 +375,55 @@ static int pf_descriptor_init(struct xe_device *xe, unsigned int vfid)
}
klvs = data->vaddr;
- klvs[len++] = PREP_GUC_KLV_CONST(MIGRATION_KLV_DEVICE_DEVID_KEY,
- MIGRATION_KLV_DEVICE_DEVID_LEN);
- klvs[len++] = xe->info.devid;
- klvs[len++] = PREP_GUC_KLV_CONST(MIGRATION_KLV_DEVICE_REVID_KEY,
- MIGRATION_KLV_DEVICE_REVID_LEN);
- klvs[len++] = xe->info.revid;
+ end = klvs + MIGRATION_DESCRIPTOR_DWORDS;
- xe_assert(xe, len == MIGRATION_DESCRIPTOR_DWORDS);
+ klvs = xe_guc_klv_encode_u32(klvs, end - klvs,
+ MIGRATION_KLV_DEVICE_DEVID_KEY,
+ xe->info.devid);
+ klvs = xe_guc_klv_encode_u32(klvs, end - klvs,
+ MIGRATION_KLV_DEVICE_REVID_KEY,
+ xe->info.revid);
+ xe_assert(xe, !IS_ERR(klvs));
+ xe_assert(xe, klvs == end);
*desc = data;
return 0;
}
+static int descriptor_decoder(void *arg, u16 key, u16 len, const u32 *value)
+{
+ struct xe_device *xe = arg;
+
+ xe_sriov_dbg_verbose(xe, "found KLV %#x %s\n", key, xe_guc_klv_key_to_string(key));
+
+ switch (key) {
+ case MIGRATION_KLV_DEVICE_DEVID_KEY:
+ if (*value != xe->info.devid) {
+ xe_sriov_warn(xe, "Aborting migration, devid mismatch %#06x!=%#06x\n",
+ *value, xe->info.devid);
+ return -ENODEV;
+ }
+ break;
+ case MIGRATION_KLV_DEVICE_REVID_KEY:
+ if (*value != xe->info.revid) {
+ xe_sriov_warn(xe, "Aborting migration, revid mismatch %#06x!=%#06x\n",
+ *value, xe->info.revid);
+ return -ENODEV;
+ }
+ break;
+ default:
+ if (IS_ENABLED(CONFIG_DRM_XE_DEBUG)) {
+ struct drm_printer p = xe_dbg_printer(xe);
+
+ xe_sriov_dbg(xe, "unexpected KLV %#x in descriptor!\n", key);
+ xe_guc_klv_print_one(key, len, value, &p);
+ }
+ return 0;
+ }
+ return 1;
+}
+
/**
* xe_sriov_packet_process_descriptor() - Process migration data descriptor packet.
* @xe: the &xe_device
@@ -406,6 +440,7 @@ int xe_sriov_packet_process_descriptor(struct xe_device *xe, unsigned int vfid,
{
u32 num_dwords = data->hdr.size / sizeof(u32);
u32 *klvs = data->vaddr;
+ int ret;
xe_assert(xe, data->hdr.type == XE_SRIOV_PACKET_TYPE_DESCRIPTOR);
@@ -415,47 +450,18 @@ int xe_sriov_packet_process_descriptor(struct xe_device *xe, unsigned int vfid,
return -EINVAL;
}
- while (num_dwords >= GUC_KLV_LEN_MIN) {
- u32 key = FIELD_GET(GUC_KLV_0_KEY, klvs[0]);
- u32 len = FIELD_GET(GUC_KLV_0_LEN, klvs[0]);
-
- klvs += GUC_KLV_LEN_MIN;
- num_dwords -= GUC_KLV_LEN_MIN;
-
- if (len > num_dwords) {
- xe_sriov_warn(xe, "Aborting migration, truncated KLV %#x, len %u\n",
- key, len);
- return -EINVAL;
- }
-
- switch (key) {
- case MIGRATION_KLV_DEVICE_DEVID_KEY:
- if (*klvs != xe->info.devid) {
- xe_sriov_warn(xe,
- "Aborting migration, devid mismatch %#06x!=%#06x\n",
- *klvs, xe->info.devid);
- return -ENODEV;
- }
- break;
- case MIGRATION_KLV_DEVICE_REVID_KEY:
- if (*klvs != xe->info.revid) {
- xe_sriov_warn(xe,
- "Aborting migration, revid mismatch %#06x!=%#06x\n",
- *klvs, xe->info.revid);
- return -ENODEV;
- }
- break;
- default:
- xe_sriov_dbg(xe,
- "Skipping unknown migration KLV %#x, len=%u\n",
- key, len);
- print_hex_dump_bytes("desc: ", DUMP_PREFIX_OFFSET, klvs,
- min(SZ_64, len * sizeof(u32)));
- break;
- }
-
- klvs += len;
- num_dwords -= len;
+ ret = xe_guc_klv_count(klvs, num_dwords);
+ if (ret < 0) {
+ xe_sriov_warn(xe, "Aborting migration, corrupted descriptor KLVs (%pe)\n",
+ ERR_PTR(ret));
+ return ret;
+ }
+
+ ret = xe_guc_klv_parser(klvs, num_dwords, xe, descriptor_decoder);
+ if (ret < 0) {
+ xe_sriov_warn(xe, "Aborting migration, descriptor parsing failed (%pe)\n",
+ ERR_PTR(ret));
+ return ret;
}
return 0;
--
2.47.1
^ permalink raw reply related [flat|nested] 34+ messages in thread* Re: [PATCH 13/13] drm/xe/pf: Handle migration descriptor using KLV helpers
2026-06-30 13:26 ` [PATCH 13/13] drm/xe/pf: Handle migration descriptor using KLV helpers Michal Wajdeczko
@ 2026-07-03 20:50 ` Michał Winiarski
0 siblings, 0 replies; 34+ messages in thread
From: Michał Winiarski @ 2026-07-03 20:50 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
On Tue, Jun 30, 2026 at 03:26:32PM +0200, Michal Wajdeczko wrote:
> As we plan to add more KLVs to the migration descriptor packet,
> to simplify such extensions and avoid coding errors, start using
> our KLV helpers for packet preparing and parsing.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
Thanks,
-Michał
> ---
> drivers/gpu/drm/xe/xe_sriov_packet.c | 106 ++++++++++++++-------------
> 1 file changed, 56 insertions(+), 50 deletions(-)
^ permalink raw reply [flat|nested] 34+ messages in thread
* ✗ CI.checkpatch: warning for drm/xe: Add and use more KLV helpers
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
` (12 preceding siblings ...)
2026-06-30 13:26 ` [PATCH 13/13] drm/xe/pf: Handle migration descriptor using KLV helpers Michal Wajdeczko
@ 2026-06-30 13:47 ` Patchwork
2026-06-30 13:49 ` ✓ CI.KUnit: success " Patchwork
` (2 subsequent siblings)
16 siblings, 0 replies; 34+ messages in thread
From: Patchwork @ 2026-06-30 13:47 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
== Series Details ==
Series: drm/xe: Add and use more KLV helpers
URL : https://patchwork.freedesktop.org/series/169511/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
061140b9bc586ae7f40abc1249c97e1cc72d1b9d
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 5e09d8c158905d3acbf10176f945ae55ad9b403c
Author: Michal Wajdeczko <michal.wajdeczko@intel.com>
Date: Tue Jun 30 15:26:32 2026 +0200
drm/xe/pf: Handle migration descriptor using KLV helpers
As we plan to add more KLVs to the migration descriptor packet,
to simplify such extensions and avoid coding errors, start using
our KLV helpers for packet preparing and parsing.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
+ /mt/dim checkpatch 1dea107b3eabdada4078b984ba85030bdfffe3ed drm-intel
bacaf151c1d8 drm/xe/guc: Allow to print single KLV
6cab4b507ec6 drm/xe/guc: Prepare to print group KLVs
862885e3c12e drm/xe/guc: Add basic KLV encoding helpers
cf291029c507 drm/xe/guc: Add string KLV encoding helper
0498a8395b31 drm/xe/guc: Add object KLV encoding helper
edd54b50798f drm/xe/guc: Add KLV parsing helper
3271a011789c drm/xe/guc: Formalize Reserved KLVs
-:47: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#47:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 106 lines checked
b2285b49f815 drm/xe/tests: Add GuC KLV helpers basic tests
-:12: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#12:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 106 lines checked
f159957eab72 drm/xe/tests: Add string encoding helper test
9c8bef07a677 drm/xe/tests: Add object encoding helper test
935640575cde drm/xe/tests: Add GuC KLV printer test
2626c58b8f22 drm/xe/tests: Add migration packet test
-:13: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#13:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 90 lines checked
5e09d8c15890 drm/xe/pf: Handle migration descriptor using KLV helpers
^ permalink raw reply [flat|nested] 34+ messages in thread* ✓ CI.KUnit: success for drm/xe: Add and use more KLV helpers
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
` (13 preceding siblings ...)
2026-06-30 13:47 ` ✗ CI.checkpatch: warning for drm/xe: Add and use more " Patchwork
@ 2026-06-30 13:49 ` Patchwork
2026-06-30 14:42 ` ✓ Xe.CI.BAT: " Patchwork
2026-07-01 5:22 ` ✓ Xe.CI.FULL: " Patchwork
16 siblings, 0 replies; 34+ messages in thread
From: Patchwork @ 2026-06-30 13:49 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
== Series Details ==
Series: drm/xe: Add and use more KLV helpers
URL : https://patchwork.freedesktop.org/series/169511/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[13:47:49] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[13:47:54] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
../drivers/gpu/drm/xe/xe_pt.c:1418:13: warning: ‘xe_pt_svm_userptr_notifier_lock’ defined but not used [-Wunused-function]
1418 | static void xe_pt_svm_userptr_notifier_lock(struct xe_vm *vm)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[13:48:25] Starting KUnit Kernel (1/1)...
[13:48:25] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[13:48:26] ================== guc_buf (11 subtests) ===================
[13:48:26] [PASSED] test_smallest
[13:48:26] [PASSED] test_largest
[13:48:26] [PASSED] test_granular
[13:48:26] [PASSED] test_unique
[13:48:26] [PASSED] test_overlap
[13:48:26] [PASSED] test_reusable
[13:48:26] [PASSED] test_too_big
[13:48:26] [PASSED] test_flush
[13:48:26] [PASSED] test_lookup
[13:48:26] [PASSED] test_data
[13:48:26] [PASSED] test_class
[13:48:26] ===================== [PASSED] guc_buf =====================
[13:48:26] =================== guc_dbm (7 subtests) ===================
[13:48:26] [PASSED] test_empty
[13:48:26] [PASSED] test_default
[13:48:26] ======================== test_size ========================
[13:48:26] [PASSED] 4
[13:48:26] [PASSED] 8
[13:48:26] [PASSED] 32
[13:48:26] [PASSED] 256
[13:48:26] ==================== [PASSED] test_size ====================
[13:48:26] ======================= test_reuse ========================
[13:48:26] [PASSED] 4
[13:48:26] [PASSED] 8
[13:48:26] [PASSED] 32
[13:48:26] [PASSED] 256
[13:48:26] =================== [PASSED] test_reuse ====================
[13:48:26] =================== test_range_overlap ====================
[13:48:26] [PASSED] 4
[13:48:26] [PASSED] 8
[13:48:26] [PASSED] 32
[13:48:26] [PASSED] 256
[13:48:26] =============== [PASSED] test_range_overlap ================
[13:48:26] =================== test_range_compact ====================
[13:48:26] [PASSED] 4
[13:48:26] [PASSED] 8
[13:48:26] [PASSED] 32
[13:48:26] [PASSED] 256
[13:48:26] =============== [PASSED] test_range_compact ================
[13:48:26] ==================== test_range_spare =====================
[13:48:26] [PASSED] 4
[13:48:26] [PASSED] 8
[13:48:26] [PASSED] 32
[13:48:26] [PASSED] 256
[13:48:26] ================ [PASSED] test_range_spare =================
[13:48:26] ===================== [PASSED] guc_dbm =====================
[13:48:26] =================== guc_idm (6 subtests) ===================
[13:48:26] [PASSED] bad_init
[13:48:26] [PASSED] no_init
[13:48:26] [PASSED] init_fini
[13:48:26] [PASSED] check_used
[13:48:26] [PASSED] check_quota
[13:48:26] [PASSED] check_all
[13:48:26] ===================== [PASSED] guc_idm =====================
[13:48:26] =============== guc_klv_helpers (8 subtests) ===============
[13:48:26] [PASSED] test_count
[13:48:26] [PASSED] test_encode_u32
[13:48:26] [PASSED] test_encode_u64
[13:48:26] [PASSED] test_encode_string
[13:48:26] [PASSED] test_encode_object_raw
[13:48:26] [PASSED] test_encode_object_klv
[13:48:26] [PASSED] test_encode_object_nested
[13:48:26] [PASSED] test_print
[13:48:26] ================= [PASSED] guc_klv_helpers =================
[13:48:26] ================== no_relay (3 subtests) ===================
[13:48:26] [PASSED] xe_drops_guc2pf_if_not_ready
[13:48:26] [PASSED] xe_drops_guc2vf_if_not_ready
[13:48:26] [PASSED] xe_rejects_send_if_not_ready
[13:48:26] ==================== [PASSED] no_relay =====================
[13:48:26] ================== pf_relay (14 subtests) ==================
[13:48:26] [PASSED] pf_rejects_guc2pf_too_short
[13:48:26] [PASSED] pf_rejects_guc2pf_too_long
[13:48:26] [PASSED] pf_rejects_guc2pf_no_payload
[13:48:26] [PASSED] pf_fails_no_payload
[13:48:26] [PASSED] pf_fails_bad_origin
[13:48:26] [PASSED] pf_fails_bad_type
[13:48:26] [PASSED] pf_txn_reports_error
[13:48:26] [PASSED] pf_txn_sends_pf2guc
[13:48:26] [PASSED] pf_sends_pf2guc
[13:48:26] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[13:48:26] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[13:48:26] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[13:48:26] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[13:48:26] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[13:48:26] ==================== [PASSED] pf_relay =====================
[13:48:26] ================== vf_relay (3 subtests) ===================
[13:48:26] [PASSED] vf_rejects_guc2vf_too_short
[13:48:26] [PASSED] vf_rejects_guc2vf_too_long
[13:48:26] [PASSED] vf_rejects_guc2vf_no_payload
[13:48:26] ==================== [PASSED] vf_relay =====================
[13:48:26] ================ pf_gt_config (9 subtests) =================
[13:48:26] [PASSED] fair_contexts_1vf
[13:48:26] [PASSED] fair_doorbells_1vf
[13:48:26] [PASSED] fair_ggtt_1vf
[13:48:26] ====================== fair_vram_1vf ======================
[13:48:26] [PASSED] 3.50 GiB
[13:48:26] [PASSED] 11.5 GiB
[13:48:26] [PASSED] 15.5 GiB
[13:48:26] [PASSED] 31.5 GiB
[13:48:26] [PASSED] 63.5 GiB
[13:48:26] [PASSED] 1.91 GiB
[13:48:26] ================== [PASSED] fair_vram_1vf ==================
[13:48:26] ================ fair_vram_1vf_admin_only =================
[13:48:26] [PASSED] 3.50 GiB
[13:48:26] [PASSED] 11.5 GiB
[13:48:26] [PASSED] 15.5 GiB
[13:48:26] [PASSED] 31.5 GiB
[13:48:26] [PASSED] 63.5 GiB
[13:48:26] [PASSED] 1.91 GiB
[13:48:26] ============ [PASSED] fair_vram_1vf_admin_only =============
[13:48:26] ====================== fair_contexts ======================
[13:48:26] [PASSED] 1 VF
[13:48:26] [PASSED] 2 VFs
[13:48:26] [PASSED] 3 VFs
[13:48:26] [PASSED] 4 VFs
[13:48:26] [PASSED] 5 VFs
[13:48:26] [PASSED] 6 VFs
[13:48:26] [PASSED] 7 VFs
[13:48:26] [PASSED] 8 VFs
[13:48:26] [PASSED] 9 VFs
[13:48:26] [PASSED] 10 VFs
[13:48:26] [PASSED] 11 VFs
[13:48:26] [PASSED] 12 VFs
[13:48:26] [PASSED] 13 VFs
[13:48:26] [PASSED] 14 VFs
[13:48:26] [PASSED] 15 VFs
[13:48:26] [PASSED] 16 VFs
[13:48:26] [PASSED] 17 VFs
[13:48:26] [PASSED] 18 VFs
[13:48:26] [PASSED] 19 VFs
[13:48:26] [PASSED] 20 VFs
[13:48:26] [PASSED] 21 VFs
[13:48:26] [PASSED] 22 VFs
[13:48:26] [PASSED] 23 VFs
[13:48:26] [PASSED] 24 VFs
[13:48:26] [PASSED] 25 VFs
[13:48:26] [PASSED] 26 VFs
[13:48:26] [PASSED] 27 VFs
[13:48:26] [PASSED] 28 VFs
[13:48:26] [PASSED] 29 VFs
[13:48:26] [PASSED] 30 VFs
[13:48:26] [PASSED] 31 VFs
[13:48:26] [PASSED] 32 VFs
[13:48:26] [PASSED] 33 VFs
[13:48:26] [PASSED] 34 VFs
[13:48:26] [PASSED] 35 VFs
[13:48:26] [PASSED] 36 VFs
[13:48:26] [PASSED] 37 VFs
[13:48:26] [PASSED] 38 VFs
[13:48:26] [PASSED] 39 VFs
[13:48:26] [PASSED] 40 VFs
[13:48:26] [PASSED] 41 VFs
[13:48:26] [PASSED] 42 VFs
[13:48:26] [PASSED] 43 VFs
[13:48:26] [PASSED] 44 VFs
[13:48:26] [PASSED] 45 VFs
[13:48:26] [PASSED] 46 VFs
[13:48:26] [PASSED] 47 VFs
[13:48:26] [PASSED] 48 VFs
[13:48:26] [PASSED] 49 VFs
[13:48:26] [PASSED] 50 VFs
[13:48:26] [PASSED] 51 VFs
[13:48:26] [PASSED] 52 VFs
[13:48:26] [PASSED] 53 VFs
[13:48:26] [PASSED] 54 VFs
[13:48:26] [PASSED] 55 VFs
[13:48:26] [PASSED] 56 VFs
[13:48:26] [PASSED] 57 VFs
[13:48:26] [PASSED] 58 VFs
[13:48:26] [PASSED] 59 VFs
[13:48:26] [PASSED] 60 VFs
[13:48:26] [PASSED] 61 VFs
[13:48:26] [PASSED] 62 VFs
[13:48:26] [PASSED] 63 VFs
[13:48:26] ================== [PASSED] fair_contexts ==================
[13:48:26] ===================== fair_doorbells ======================
[13:48:26] [PASSED] 1 VF
[13:48:26] [PASSED] 2 VFs
[13:48:26] [PASSED] 3 VFs
[13:48:26] [PASSED] 4 VFs
[13:48:26] [PASSED] 5 VFs
[13:48:26] [PASSED] 6 VFs
[13:48:26] [PASSED] 7 VFs
[13:48:26] [PASSED] 8 VFs
[13:48:26] [PASSED] 9 VFs
[13:48:26] [PASSED] 10 VFs
[13:48:26] [PASSED] 11 VFs
[13:48:26] [PASSED] 12 VFs
[13:48:26] [PASSED] 13 VFs
[13:48:26] [PASSED] 14 VFs
[13:48:26] [PASSED] 15 VFs
[13:48:26] [PASSED] 16 VFs
[13:48:26] [PASSED] 17 VFs
[13:48:26] [PASSED] 18 VFs
[13:48:26] [PASSED] 19 VFs
[13:48:26] [PASSED] 20 VFs
[13:48:26] [PASSED] 21 VFs
[13:48:26] [PASSED] 22 VFs
[13:48:26] [PASSED] 23 VFs
[13:48:26] [PASSED] 24 VFs
[13:48:26] [PASSED] 25 VFs
[13:48:26] [PASSED] 26 VFs
[13:48:26] [PASSED] 27 VFs
[13:48:26] [PASSED] 28 VFs
[13:48:26] [PASSED] 29 VFs
[13:48:26] [PASSED] 30 VFs
[13:48:26] [PASSED] 31 VFs
[13:48:26] [PASSED] 32 VFs
[13:48:26] [PASSED] 33 VFs
[13:48:26] [PASSED] 34 VFs
[13:48:26] [PASSED] 35 VFs
[13:48:26] [PASSED] 36 VFs
[13:48:26] [PASSED] 37 VFs
[13:48:26] [PASSED] 38 VFs
[13:48:26] [PASSED] 39 VFs
[13:48:26] [PASSED] 40 VFs
[13:48:26] [PASSED] 41 VFs
[13:48:26] [PASSED] 42 VFs
[13:48:26] [PASSED] 43 VFs
[13:48:26] [PASSED] 44 VFs
[13:48:26] [PASSED] 45 VFs
[13:48:26] [PASSED] 46 VFs
[13:48:26] [PASSED] 47 VFs
[13:48:26] [PASSED] 48 VFs
[13:48:26] [PASSED] 49 VFs
[13:48:26] [PASSED] 50 VFs
[13:48:26] [PASSED] 51 VFs
[13:48:26] [PASSED] 52 VFs
[13:48:26] [PASSED] 53 VFs
[13:48:26] [PASSED] 54 VFs
[13:48:26] [PASSED] 55 VFs
[13:48:26] [PASSED] 56 VFs
[13:48:26] [PASSED] 57 VFs
[13:48:26] [PASSED] 58 VFs
[13:48:26] [PASSED] 59 VFs
[13:48:26] [PASSED] 60 VFs
[13:48:26] [PASSED] 61 VFs
[13:48:26] [PASSED] 62 VFs
[13:48:26] [PASSED] 63 VFs
[13:48:26] ================= [PASSED] fair_doorbells ==================
[13:48:26] ======================== fair_ggtt ========================
[13:48:26] [PASSED] 1 VF
[13:48:26] [PASSED] 2 VFs
[13:48:26] [PASSED] 3 VFs
[13:48:26] [PASSED] 4 VFs
[13:48:26] [PASSED] 5 VFs
[13:48:26] [PASSED] 6 VFs
[13:48:26] [PASSED] 7 VFs
[13:48:26] [PASSED] 8 VFs
[13:48:26] [PASSED] 9 VFs
[13:48:26] [PASSED] 10 VFs
[13:48:26] [PASSED] 11 VFs
[13:48:26] [PASSED] 12 VFs
[13:48:26] [PASSED] 13 VFs
[13:48:26] [PASSED] 14 VFs
[13:48:26] [PASSED] 15 VFs
[13:48:26] [PASSED] 16 VFs
[13:48:26] [PASSED] 17 VFs
[13:48:26] [PASSED] 18 VFs
[13:48:26] [PASSED] 19 VFs
[13:48:26] [PASSED] 20 VFs
[13:48:26] [PASSED] 21 VFs
[13:48:26] [PASSED] 22 VFs
[13:48:26] [PASSED] 23 VFs
[13:48:26] [PASSED] 24 VFs
[13:48:26] [PASSED] 25 VFs
[13:48:26] [PASSED] 26 VFs
[13:48:26] [PASSED] 27 VFs
[13:48:26] [PASSED] 28 VFs
[13:48:26] [PASSED] 29 VFs
[13:48:26] [PASSED] 30 VFs
[13:48:26] [PASSED] 31 VFs
[13:48:26] [PASSED] 32 VFs
[13:48:26] [PASSED] 33 VFs
[13:48:26] [PASSED] 34 VFs
[13:48:26] [PASSED] 35 VFs
[13:48:26] [PASSED] 36 VFs
[13:48:26] [PASSED] 37 VFs
[13:48:26] [PASSED] 38 VFs
[13:48:26] [PASSED] 39 VFs
[13:48:26] [PASSED] 40 VFs
[13:48:26] [PASSED] 41 VFs
[13:48:26] [PASSED] 42 VFs
[13:48:26] [PASSED] 43 VFs
[13:48:26] [PASSED] 44 VFs
[13:48:26] [PASSED] 45 VFs
[13:48:26] [PASSED] 46 VFs
[13:48:26] [PASSED] 47 VFs
[13:48:26] [PASSED] 48 VFs
[13:48:26] [PASSED] 49 VFs
[13:48:26] [PASSED] 50 VFs
[13:48:26] [PASSED] 51 VFs
[13:48:26] [PASSED] 52 VFs
[13:48:26] [PASSED] 53 VFs
[13:48:26] [PASSED] 54 VFs
[13:48:26] [PASSED] 55 VFs
[13:48:26] [PASSED] 56 VFs
[13:48:26] [PASSED] 57 VFs
[13:48:26] [PASSED] 58 VFs
[13:48:26] [PASSED] 59 VFs
[13:48:26] [PASSED] 60 VFs
[13:48:26] [PASSED] 61 VFs
[13:48:26] [PASSED] 62 VFs
[13:48:26] [PASSED] 63 VFs
[13:48:26] ==================== [PASSED] fair_ggtt ====================
[13:48:26] ======================== fair_vram ========================
[13:48:26] [PASSED] 1 VF
[13:48:26] [PASSED] 2 VFs
[13:48:26] [PASSED] 3 VFs
[13:48:26] [PASSED] 4 VFs
[13:48:26] [PASSED] 5 VFs
[13:48:26] [PASSED] 6 VFs
[13:48:26] [PASSED] 7 VFs
[13:48:26] [PASSED] 8 VFs
[13:48:26] [PASSED] 9 VFs
[13:48:26] [PASSED] 10 VFs
[13:48:26] [PASSED] 11 VFs
[13:48:26] [PASSED] 12 VFs
[13:48:26] [PASSED] 13 VFs
[13:48:26] [PASSED] 14 VFs
[13:48:26] [PASSED] 15 VFs
[13:48:26] [PASSED] 16 VFs
[13:48:26] [PASSED] 17 VFs
[13:48:26] [PASSED] 18 VFs
[13:48:26] [PASSED] 19 VFs
[13:48:26] [PASSED] 20 VFs
[13:48:26] [PASSED] 21 VFs
[13:48:26] [PASSED] 22 VFs
[13:48:26] [PASSED] 23 VFs
[13:48:26] [PASSED] 24 VFs
[13:48:26] [PASSED] 25 VFs
[13:48:26] [PASSED] 26 VFs
[13:48:26] [PASSED] 27 VFs
[13:48:26] [PASSED] 28 VFs
[13:48:26] [PASSED] 29 VFs
[13:48:26] [PASSED] 30 VFs
[13:48:26] [PASSED] 31 VFs
[13:48:26] [PASSED] 32 VFs
[13:48:26] [PASSED] 33 VFs
[13:48:26] [PASSED] 34 VFs
[13:48:26] [PASSED] 35 VFs
[13:48:26] [PASSED] 36 VFs
[13:48:26] [PASSED] 37 VFs
[13:48:26] [PASSED] 38 VFs
[13:48:26] [PASSED] 39 VFs
[13:48:26] [PASSED] 40 VFs
[13:48:26] [PASSED] 41 VFs
[13:48:26] [PASSED] 42 VFs
[13:48:26] [PASSED] 43 VFs
[13:48:26] [PASSED] 44 VFs
[13:48:26] [PASSED] 45 VFs
[13:48:26] [PASSED] 46 VFs
[13:48:26] [PASSED] 47 VFs
[13:48:26] [PASSED] 48 VFs
[13:48:26] [PASSED] 49 VFs
[13:48:26] [PASSED] 50 VFs
[13:48:26] [PASSED] 51 VFs
[13:48:26] [PASSED] 52 VFs
[13:48:26] [PASSED] 53 VFs
[13:48:26] [PASSED] 54 VFs
[13:48:26] [PASSED] 55 VFs
[13:48:26] [PASSED] 56 VFs
[13:48:26] [PASSED] 57 VFs
[13:48:26] [PASSED] 58 VFs
[13:48:26] [PASSED] 59 VFs
[13:48:26] [PASSED] 60 VFs
[13:48:26] [PASSED] 61 VFs
[13:48:26] [PASSED] 62 VFs
[13:48:26] [PASSED] 63 VFs
[13:48:26] ==================== [PASSED] fair_vram ====================
[13:48:26] ================== [PASSED] pf_gt_config ===================
[13:48:26] ===================== lmtt (1 subtest) =====================
[13:48:26] ======================== test_ops =========================
[13:48:26] [PASSED] 2-level
[13:48:26] [PASSED] multi-level
[13:48:26] ==================== [PASSED] test_ops =====================
[13:48:26] ====================== [PASSED] lmtt =======================
[13:48:26] ================= sriov_packet (1 subtest) =================
[13:48:26] [PASSED] test_descriptor_init
[13:48:26] ================== [PASSED] sriov_packet ===================
[13:48:26] ================= pf_service (11 subtests) =================
[13:48:26] [PASSED] pf_negotiate_any
[13:48:26] [PASSED] pf_negotiate_base_match
[13:48:26] [PASSED] pf_negotiate_base_newer
[13:48:26] [PASSED] pf_negotiate_base_next
[13:48:26] [SKIPPED] pf_negotiate_base_older (no older minor)
[13:48:26] [PASSED] pf_negotiate_base_prev
[13:48:26] [PASSED] pf_negotiate_latest_match
[13:48:26] [PASSED] pf_negotiate_latest_newer
[13:48:26] [PASSED] pf_negotiate_latest_next
[13:48:26] [SKIPPED] pf_negotiate_latest_older (no older minor)
[13:48:26] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[13:48:26] =================== [PASSED] pf_service ====================
[13:48:26] ================= xe_guc_g2g (2 subtests) ==================
[13:48:26] ============== xe_live_guc_g2g_kunit_default ==============
[13:48:26] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[13:48:26] ============== xe_live_guc_g2g_kunit_allmem ===============
[13:48:26] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[13:48:26] =================== [SKIPPED] xe_guc_g2g ===================
[13:48:26] =================== xe_mocs (2 subtests) ===================
[13:48:26] ================ xe_live_mocs_kernel_kunit ================
[13:48:26] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[13:48:26] ================ xe_live_mocs_reset_kunit =================
[13:48:26] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[13:48:26] ==================== [SKIPPED] xe_mocs =====================
[13:48:26] ================= xe_migrate (2 subtests) ==================
[13:48:26] ================= xe_migrate_sanity_kunit =================
[13:48:26] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[13:48:26] ================== xe_validate_ccs_kunit ==================
[13:48:26] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[13:48:26] =================== [SKIPPED] xe_migrate ===================
[13:48:26] ================== xe_dma_buf (1 subtest) ==================
[13:48:26] ==================== xe_dma_buf_kunit =====================
[13:48:26] ================ [SKIPPED] xe_dma_buf_kunit ================
[13:48:26] =================== [SKIPPED] xe_dma_buf ===================
[13:48:26] ================= xe_bo_shrink (1 subtest) =================
[13:48:26] =================== xe_bo_shrink_kunit ====================
[13:48:26] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[13:48:26] ================== [SKIPPED] xe_bo_shrink ==================
[13:48:26] ==================== xe_bo (2 subtests) ====================
[13:48:26] ================== xe_ccs_migrate_kunit ===================
[13:48:26] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[13:48:26] ==================== xe_bo_evict_kunit ====================
[13:48:26] =============== [SKIPPED] xe_bo_evict_kunit ================
[13:48:26] ===================== [SKIPPED] xe_bo ======================
[13:48:26] ==================== args (13 subtests) ====================
[13:48:26] [PASSED] count_args_test
[13:48:26] [PASSED] call_args_example
[13:48:26] [PASSED] call_args_test
[13:48:26] [PASSED] drop_first_arg_example
[13:48:26] [PASSED] drop_first_arg_test
[13:48:26] [PASSED] first_arg_example
[13:48:26] [PASSED] first_arg_test
[13:48:26] [PASSED] last_arg_example
[13:48:26] [PASSED] last_arg_test
[13:48:26] [PASSED] pick_arg_example
[13:48:26] [PASSED] if_args_example
[13:48:26] [PASSED] if_args_test
[13:48:26] [PASSED] sep_comma_example
[13:48:26] ====================== [PASSED] args =======================
[13:48:26] =================== xe_pci (3 subtests) ====================
[13:48:26] ==================== check_graphics_ip ====================
[13:48:26] [PASSED] 12.00 Xe_LP
[13:48:26] [PASSED] 12.10 Xe_LP+
[13:48:26] [PASSED] 12.55 Xe_HPG
[13:48:26] [PASSED] 12.60 Xe_HPC
[13:48:26] [PASSED] 12.70 Xe_LPG
[13:48:26] [PASSED] 12.71 Xe_LPG
[13:48:26] [PASSED] 12.74 Xe_LPG+
[13:48:26] [PASSED] 20.01 Xe2_HPG
[13:48:26] [PASSED] 20.02 Xe2_HPG
[13:48:26] [PASSED] 20.04 Xe2_LPG
[13:48:26] [PASSED] 30.00 Xe3_LPG
[13:48:26] [PASSED] 30.01 Xe3_LPG
[13:48:26] [PASSED] 30.03 Xe3_LPG
[13:48:26] [PASSED] 30.04 Xe3_LPG
[13:48:26] [PASSED] 30.05 Xe3_LPG
[13:48:26] [PASSED] 35.10 Xe3p_LPG
[13:48:26] [PASSED] 35.11 Xe3p_XPC
[13:48:26] ================ [PASSED] check_graphics_ip ================
[13:48:26] ===================== check_media_ip ======================
[13:48:26] [PASSED] 12.00 Xe_M
[13:48:26] [PASSED] 12.55 Xe_HPM
[13:48:26] [PASSED] 13.00 Xe_LPM+
[13:48:26] [PASSED] 13.01 Xe2_HPM
[13:48:26] [PASSED] 20.00 Xe2_LPM
[13:48:26] [PASSED] 30.00 Xe3_LPM
[13:48:26] [PASSED] 30.02 Xe3_LPM
[13:48:26] [PASSED] 35.00 Xe3p_LPM
[13:48:26] [PASSED] 35.03 Xe3p_HPM
[13:48:26] ================= [PASSED] check_media_ip ==================
[13:48:26] =================== check_platform_desc ===================
[13:48:26] [PASSED] 0x9A60 (TIGERLAKE)
[13:48:26] [PASSED] 0x9A68 (TIGERLAKE)
[13:48:26] [PASSED] 0x9A70 (TIGERLAKE)
[13:48:26] [PASSED] 0x9A40 (TIGERLAKE)
[13:48:26] [PASSED] 0x9A49 (TIGERLAKE)
[13:48:26] [PASSED] 0x9A59 (TIGERLAKE)
[13:48:26] [PASSED] 0x9A78 (TIGERLAKE)
[13:48:26] [PASSED] 0x9AC0 (TIGERLAKE)
[13:48:26] [PASSED] 0x9AC9 (TIGERLAKE)
[13:48:26] [PASSED] 0x9AD9 (TIGERLAKE)
[13:48:26] [PASSED] 0x9AF8 (TIGERLAKE)
[13:48:26] [PASSED] 0x4C80 (ROCKETLAKE)
[13:48:26] [PASSED] 0x4C8A (ROCKETLAKE)
[13:48:26] [PASSED] 0x4C8B (ROCKETLAKE)
[13:48:26] [PASSED] 0x4C8C (ROCKETLAKE)
[13:48:26] [PASSED] 0x4C90 (ROCKETLAKE)
[13:48:26] [PASSED] 0x4C9A (ROCKETLAKE)
[13:48:26] [PASSED] 0x4680 (ALDERLAKE_S)
[13:48:26] [PASSED] 0x4682 (ALDERLAKE_S)
[13:48:26] [PASSED] 0x4688 (ALDERLAKE_S)
[13:48:26] [PASSED] 0x468A (ALDERLAKE_S)
[13:48:26] [PASSED] 0x468B (ALDERLAKE_S)
[13:48:26] [PASSED] 0x4690 (ALDERLAKE_S)
[13:48:26] [PASSED] 0x4692 (ALDERLAKE_S)
[13:48:26] [PASSED] 0x4693 (ALDERLAKE_S)
[13:48:26] [PASSED] 0x46A0 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x46A1 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x46A2 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x46A3 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x46A6 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x46A8 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x46AA (ALDERLAKE_P)
[13:48:26] [PASSED] 0x462A (ALDERLAKE_P)
[13:48:26] [PASSED] 0x4626 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x4628 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x46B0 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x46B1 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x46B2 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x46B3 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x46C0 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x46C1 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x46C2 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x46C3 (ALDERLAKE_P)
[13:48:26] [PASSED] 0x46D0 (ALDERLAKE_N)
[13:48:26] [PASSED] 0x46D1 (ALDERLAKE_N)
[13:48:26] [PASSED] 0x46D2 (ALDERLAKE_N)
[13:48:26] [PASSED] 0x46D3 (ALDERLAKE_N)
[13:48:26] [PASSED] 0x46D4 (ALDERLAKE_N)
[13:48:26] [PASSED] 0xA721 (ALDERLAKE_P)
[13:48:26] [PASSED] 0xA7A1 (ALDERLAKE_P)
[13:48:26] [PASSED] 0xA7A9 (ALDERLAKE_P)
[13:48:26] [PASSED] 0xA7AC (ALDERLAKE_P)
[13:48:26] [PASSED] 0xA7AD (ALDERLAKE_P)
[13:48:26] [PASSED] 0xA720 (ALDERLAKE_P)
[13:48:26] [PASSED] 0xA7A0 (ALDERLAKE_P)
[13:48:26] [PASSED] 0xA7A8 (ALDERLAKE_P)
[13:48:26] [PASSED] 0xA7AA (ALDERLAKE_P)
[13:48:26] [PASSED] 0xA7AB (ALDERLAKE_P)
[13:48:26] [PASSED] 0xA780 (ALDERLAKE_S)
[13:48:26] [PASSED] 0xA781 (ALDERLAKE_S)
[13:48:26] [PASSED] 0xA782 (ALDERLAKE_S)
[13:48:26] [PASSED] 0xA783 (ALDERLAKE_S)
[13:48:26] [PASSED] 0xA788 (ALDERLAKE_S)
[13:48:26] [PASSED] 0xA789 (ALDERLAKE_S)
[13:48:26] [PASSED] 0xA78A (ALDERLAKE_S)
[13:48:26] [PASSED] 0xA78B (ALDERLAKE_S)
[13:48:26] [PASSED] 0x4905 (DG1)
[13:48:26] [PASSED] 0x4906 (DG1)
[13:48:26] [PASSED] 0x4907 (DG1)
[13:48:26] [PASSED] 0x4908 (DG1)
[13:48:26] [PASSED] 0x4909 (DG1)
[13:48:26] [PASSED] 0x56C0 (DG2)
[13:48:26] [PASSED] 0x56C2 (DG2)
[13:48:26] [PASSED] 0x56C1 (DG2)
[13:48:26] [PASSED] 0x7D51 (METEORLAKE)
[13:48:26] [PASSED] 0x7DD1 (METEORLAKE)
[13:48:26] [PASSED] 0x7D41 (METEORLAKE)
[13:48:26] [PASSED] 0x7D67 (METEORLAKE)
[13:48:26] [PASSED] 0xB640 (METEORLAKE)
[13:48:26] [PASSED] 0x56A0 (DG2)
[13:48:26] [PASSED] 0x56A1 (DG2)
[13:48:26] [PASSED] 0x56A2 (DG2)
[13:48:26] [PASSED] 0x56BE (DG2)
[13:48:26] [PASSED] 0x56BF (DG2)
[13:48:26] [PASSED] 0x5690 (DG2)
[13:48:26] [PASSED] 0x5691 (DG2)
[13:48:26] [PASSED] 0x5692 (DG2)
[13:48:26] [PASSED] 0x56A5 (DG2)
[13:48:26] [PASSED] 0x56A6 (DG2)
[13:48:26] [PASSED] 0x56B0 (DG2)
[13:48:26] [PASSED] 0x56B1 (DG2)
[13:48:26] [PASSED] 0x56BA (DG2)
[13:48:26] [PASSED] 0x56BB (DG2)
[13:48:26] [PASSED] 0x56BC (DG2)
[13:48:26] [PASSED] 0x56BD (DG2)
[13:48:26] [PASSED] 0x5693 (DG2)
[13:48:26] [PASSED] 0x5694 (DG2)
[13:48:26] [PASSED] 0x5695 (DG2)
[13:48:26] [PASSED] 0x56A3 (DG2)
[13:48:26] [PASSED] 0x56A4 (DG2)
[13:48:26] [PASSED] 0x56B2 (DG2)
[13:48:26] [PASSED] 0x56B3 (DG2)
[13:48:26] [PASSED] 0x5696 (DG2)
[13:48:26] [PASSED] 0x5697 (DG2)
[13:48:26] [PASSED] 0xB69 (PVC)
[13:48:26] [PASSED] 0xB6E (PVC)
[13:48:26] [PASSED] 0xBD4 (PVC)
[13:48:26] [PASSED] 0xBD5 (PVC)
[13:48:26] [PASSED] 0xBD6 (PVC)
[13:48:26] [PASSED] 0xBD7 (PVC)
[13:48:26] [PASSED] 0xBD8 (PVC)
[13:48:26] [PASSED] 0xBD9 (PVC)
[13:48:26] [PASSED] 0xBDA (PVC)
[13:48:26] [PASSED] 0xBDB (PVC)
[13:48:26] [PASSED] 0xBE0 (PVC)
[13:48:26] [PASSED] 0xBE1 (PVC)
[13:48:26] [PASSED] 0xBE5 (PVC)
[13:48:26] [PASSED] 0x7D40 (METEORLAKE)
[13:48:26] [PASSED] 0x7D45 (METEORLAKE)
[13:48:26] [PASSED] 0x7D55 (METEORLAKE)
[13:48:26] [PASSED] 0x7D60 (METEORLAKE)
[13:48:26] [PASSED] 0x7DD5 (METEORLAKE)
[13:48:26] [PASSED] 0x6420 (LUNARLAKE)
[13:48:26] [PASSED] 0x64A0 (LUNARLAKE)
[13:48:26] [PASSED] 0x64B0 (LUNARLAKE)
[13:48:26] [PASSED] 0xE202 (BATTLEMAGE)
[13:48:26] [PASSED] 0xE209 (BATTLEMAGE)
[13:48:26] [PASSED] 0xE20B (BATTLEMAGE)
[13:48:26] [PASSED] 0xE20C (BATTLEMAGE)
[13:48:26] [PASSED] 0xE20D (BATTLEMAGE)
[13:48:26] [PASSED] 0xE210 (BATTLEMAGE)
[13:48:26] [PASSED] 0xE211 (BATTLEMAGE)
[13:48:26] [PASSED] 0xE212 (BATTLEMAGE)
[13:48:26] [PASSED] 0xE216 (BATTLEMAGE)
[13:48:26] [PASSED] 0xE220 (BATTLEMAGE)
[13:48:26] [PASSED] 0xE221 (BATTLEMAGE)
[13:48:26] [PASSED] 0xE222 (BATTLEMAGE)
[13:48:26] [PASSED] 0xE223 (BATTLEMAGE)
[13:48:26] [PASSED] 0xB080 (PANTHERLAKE)
[13:48:26] [PASSED] 0xB081 (PANTHERLAKE)
[13:48:26] [PASSED] 0xB082 (PANTHERLAKE)
[13:48:26] [PASSED] 0xB083 (PANTHERLAKE)
[13:48:26] [PASSED] 0xB084 (PANTHERLAKE)
[13:48:26] [PASSED] 0xB085 (PANTHERLAKE)
[13:48:26] [PASSED] 0xB086 (PANTHERLAKE)
[13:48:26] [PASSED] 0xB087 (PANTHERLAKE)
[13:48:26] [PASSED] 0xB08F (PANTHERLAKE)
[13:48:26] [PASSED] 0xB090 (PANTHERLAKE)
[13:48:26] [PASSED] 0xB0A0 (PANTHERLAKE)
[13:48:26] [PASSED] 0xB0B0 (PANTHERLAKE)
[13:48:26] [PASSED] 0xFD80 (PANTHERLAKE)
[13:48:26] [PASSED] 0xFD81 (PANTHERLAKE)
[13:48:26] [PASSED] 0xD740 (NOVALAKE_S)
[13:48:26] [PASSED] 0xD741 (NOVALAKE_S)
[13:48:26] [PASSED] 0xD742 (NOVALAKE_S)
[13:48:26] [PASSED] 0xD743 (NOVALAKE_S)
[13:48:26] [PASSED] 0xD745 (NOVALAKE_S)
[13:48:26] [PASSED] 0xD74A (NOVALAKE_S)
[13:48:26] [PASSED] 0xD74B (NOVALAKE_S)
[13:48:26] [PASSED] 0x674C (CRESCENTISLAND)
[13:48:26] [PASSED] 0x674D (CRESCENTISLAND)
[13:48:26] [PASSED] 0x674E (CRESCENTISLAND)
[13:48:26] [PASSED] 0x674F (CRESCENTISLAND)
[13:48:26] [PASSED] 0x6750 (CRESCENTISLAND)
[13:48:26] [PASSED] 0xD750 (NOVALAKE_P)
[13:48:26] [PASSED] 0xD751 (NOVALAKE_P)
[13:48:26] [PASSED] 0xD752 (NOVALAKE_P)
[13:48:26] [PASSED] 0xD753 (NOVALAKE_P)
[13:48:26] [PASSED] 0xD754 (NOVALAKE_P)
[13:48:26] [PASSED] 0xD755 (NOVALAKE_P)
[13:48:26] [PASSED] 0xD756 (NOVALAKE_P)
[13:48:26] [PASSED] 0xD757 (NOVALAKE_P)
[13:48:26] [PASSED] 0xD75F (NOVALAKE_P)
[13:48:26] =============== [PASSED] check_platform_desc ===============
[13:48:26] ===================== [PASSED] xe_pci ======================
[13:48:26] ============= xe_rtp_tables_test (4 subtests) ==============
[13:48:26] ================== xe_rtp_table_gt_test ===================
[13:48:26] [PASSED] gt_was/14011060649
[13:48:26] [PASSED] gt_was/14011059788
[13:48:26] [PASSED] gt_was/14015795083
[13:48:26] [PASSED] gt_was/16021867713
[13:48:26] [PASSED] gt_was/14019449301
[13:48:26] [PASSED] gt_was/16028005424
[13:48:26] [PASSED] gt_was/14026578760
[13:48:26] [PASSED] gt_was/1409420604
[13:48:26] [PASSED] gt_was/1408615072
[13:48:26] [PASSED] gt_was/22010523718
[13:48:26] [PASSED] gt_was/14011006942
[13:48:26] [PASSED] gt_was/14014830051
[13:48:26] [PASSED] gt_was/18018781329
[13:48:26] [PASSED] gt_was/1509235366
[13:48:26] [PASSED] gt_was/18018781329
[13:48:26] [PASSED] gt_was/16016694945
[13:48:26] [PASSED] gt_was/14018575942
[13:48:26] [PASSED] gt_was/22016670082
[13:48:26] [PASSED] gt_was/22016670082
[13:48:26] [PASSED] gt_was/14017421178
[13:48:26] [PASSED] gt_was/16025250150
[13:48:26] [PASSED] gt_was/14021871409
[13:48:26] [PASSED] gt_was/16021865536
[13:48:26] [PASSED] gt_was/14021486841
[13:48:26] [PASSED] gt_was/14025160223
[13:48:26] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[13:48:26] [PASSED] gt_was/14025635424
[13:48:26] [PASSED] gt_was/16028005424
[13:48:26] ============== [PASSED] xe_rtp_table_gt_test ===============
[13:48:26] ================== xe_rtp_table_gt_test ===================
[13:48:26] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[13:48:26] [PASSED] gt_tunings/Tuning: 32B Access Enable
[13:48:26] [PASSED] gt_tunings/Tuning: L3 cache
[13:48:26] [PASSED] gt_tunings/Tuning: L3 cache - media
[13:48:26] [PASSED] gt_tunings/Tuning: Compression Overfetch
[13:48:26] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[13:48:26] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[13:48:26] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[13:48:26] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[13:48:26] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[13:48:26] [PASSED] gt_tunings/Tuning: Stateless compression control
[13:48:26] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[13:48:26] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[13:48:26] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[13:48:26] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[13:48:26] ============== [PASSED] xe_rtp_table_gt_test ===============
[13:48:26] ================== xe_rtp_table_oob_test ==================
[13:48:26] [PASSED] oob_was/1607983814
[13:48:26] [PASSED] oob_was/16010904313
[13:48:26] [PASSED] oob_was/18022495364
[13:48:26] [PASSED] oob_was/22012773006
[13:48:26] [PASSED] oob_was/14014475959
[13:48:26] [PASSED] oob_was/22011391025
[13:48:26] [PASSED] oob_was/22012727170
[13:48:26] [PASSED] oob_was/22012727685
[13:48:26] [PASSED] oob_was/22016596838
[13:48:26] [PASSED] oob_was/18020744125
[13:48:26] [PASSED] oob_was/1409600907
[13:48:26] [PASSED] oob_was/22014953428
[13:48:26] [PASSED] oob_was/16017236439
[13:48:26] [PASSED] oob_was/14019821291
[13:48:26] [PASSED] oob_was/14015076503
[13:48:26] [PASSED] oob_was/14018913170
[13:48:26] [PASSED] oob_was/14018094691
[13:48:26] [PASSED] oob_was/18024947630
[13:48:26] [PASSED] oob_was/16022287689
[13:48:26] [PASSED] oob_was/13011645652
[13:48:26] [PASSED] oob_was/14022293748
[13:48:26] [PASSED] oob_was/22019794406
[13:48:26] [PASSED] oob_was/22019338487
[13:48:26] [PASSED] oob_was/16023588340
[13:48:26] [PASSED] oob_was/14019789679
[13:48:26] [PASSED] oob_was/14022866841
[13:48:26] [PASSED] oob_was/16021333562
[13:48:26] [PASSED] oob_was/14016712196
[13:48:26] [PASSED] oob_was/14015568240
[13:48:26] [PASSED] oob_was/18013179988
[13:48:26] [PASSED] oob_was/1508761755
[13:48:26] [PASSED] oob_was/16023105232
[13:48:26] [PASSED] oob_was/16026508708
[13:48:26] [PASSED] oob_was/14020001231
[13:48:26] [PASSED] oob_was/16023683509
[13:48:26] [PASSED] oob_was/14025515070
[13:48:26] [PASSED] oob_was/15015404425_disable
[13:48:26] [PASSED] oob_was/16026007364
[13:48:26] [PASSED] oob_was/14020316580
[13:48:26] [PASSED] oob_was/14025883347
[13:48:26] [PASSED] oob_was/16029380221
[13:48:26] ============== [PASSED] xe_rtp_table_oob_test ==============
[13:48:26] ================ xe_rtp_table_dev_oob_test ================
[13:48:26] [PASSED] device_oob_was/22010954014
[13:48:26] [PASSED] device_oob_was/15015404425
[13:48:26] [PASSED] device_oob_was/22019338487_display
[13:48:26] [PASSED] device_oob_was/14022085890
[13:48:26] [PASSED] device_oob_was/14026539277
[13:48:26] [PASSED] device_oob_was/14026633728
[13:48:26] [PASSED] device_oob_was/14026746987
[13:48:26] [PASSED] device_oob_was/14026779378
[13:48:26] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[13:48:26] =============== [PASSED] xe_rtp_tables_test ================
[13:48:26] =================== xe_rtp (3 subtests) ====================
[13:48:26] =================== xe_rtp_rules_tests ====================
[13:48:26] [PASSED] no
[13:48:26] [PASSED] yes
[13:48:26] [PASSED] no-and-no
[13:48:26] [PASSED] no-and-yes
[13:48:26] [PASSED] yes-and-no
[13:48:26] [PASSED] yes-and-yes
[13:48:26] [PASSED] no-or-no
[13:48:26] [PASSED] no-or-yes
[13:48:26] [PASSED] yes-or-no
[13:48:26] [PASSED] yes-or-yes
[13:48:26] [PASSED] no-yes-or-yes-no
[13:48:26] [PASSED] no-yes-or-yes-yes
[13:48:26] [PASSED] yes-yes-or-no-yes
[13:48:26] [PASSED] yes-yes-or-yes-yes
[13:48:26] [PASSED] no-no-or-yes-or-no
[13:48:26] [PASSED] or
[13:48:26] [PASSED] or-yes
[13:48:26] [PASSED] or-no
[13:48:26] [PASSED] yes-or
[13:48:26] [PASSED] no-or
[13:48:26] [PASSED] no-or-or-yes
[13:48:26] [PASSED] yes-or-or-no
[13:48:26] [PASSED] no-or-or-no
[13:48:26] [PASSED] missing-context-engine-class
[13:48:26] [PASSED] missing-context-engine-class-or-yes
[13:48:26] [PASSED] missing-context-engine-class-or-or-yes
[13:48:26] =============== [PASSED] xe_rtp_rules_tests ================
[13:48:26] =============== xe_rtp_process_to_sr_tests ================
[13:48:26] [PASSED] coalesce-same-reg
[13:48:26] [PASSED] coalesce-same-reg-literal-and-func
[13:48:26] [PASSED] no-match-no-add
[13:48:26] [PASSED] two-regs-two-entries
[13:48:26] [PASSED] clr-one-set-other
[13:48:26] [PASSED] set-field
[13:48:26] [PASSED] conflict-duplicate
[13:48:26] [PASSED] conflict-not-disjoint
[13:48:26] [PASSED] conflict-not-disjoint-literal-and-func
[13:48:26] [PASSED] conflict-reg-type
[13:48:26] [PASSED] bad-mcr-reg-forced-to-regular
[13:48:26] [PASSED] bad-regular-reg-forced-to-mcr
[13:48:26] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[13:48:26] ================== xe_rtp_process_tests ===================
[13:48:26] [PASSED] active1
[13:48:26] [PASSED] active2
[13:48:26] [PASSED] active-inactive
[13:48:26] [PASSED] inactive-active
[13:48:26] [PASSED] inactive-active-inactive
[13:48:26] [PASSED] inactive-inactive-inactive
[13:48:26] ============== [PASSED] xe_rtp_process_tests ===============
[13:48:26] ===================== [PASSED] xe_rtp ======================
[13:48:26] ==================== xe_wa (1 subtest) =====================
[13:48:26] ======================== xe_wa_gt =========================
[13:48:26] [PASSED] TIGERLAKE B0
[13:48:26] [PASSED] DG1 A0
[13:48:26] [PASSED] DG1 B0
[13:48:26] [PASSED] ALDERLAKE_S A0
[13:48:26] [PASSED] ALDERLAKE_S B0
[13:48:26] [PASSED] ALDERLAKE_S C0
[13:48:26] [PASSED] ALDERLAKE_S D0
[13:48:26] [PASSED] ALDERLAKE_P A0
[13:48:26] [PASSED] ALDERLAKE_P B0
[13:48:26] [PASSED] ALDERLAKE_P C0
[13:48:26] [PASSED] ALDERLAKE_S RPLS D0
[13:48:26] [PASSED] ALDERLAKE_P RPLU E0
[13:48:26] [PASSED] DG2 G10 C0
[13:48:26] [PASSED] DG2 G11 B1
[13:48:26] [PASSED] DG2 G12 A1
[13:48:26] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[13:48:26] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[13:48:26] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[13:48:26] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[13:48:26] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[13:48:26] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[13:48:26] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[13:48:26] ==================== [PASSED] xe_wa_gt =====================
[13:48:26] ====================== [PASSED] xe_wa ======================
[13:48:26] ============================================================
[13:48:26] Testing complete. Ran 728 tests: passed: 710, skipped: 18
[13:48:26] Elapsed time: 36.729s total, 4.421s configuring, 31.642s building, 0.651s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[13:48:26] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[13:48:28] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[13:48:53] Starting KUnit Kernel (1/1)...
[13:48:53] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[13:48:53] ============ drm_test_pick_cmdline (2 subtests) ============
[13:48:53] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[13:48:53] =============== drm_test_pick_cmdline_named ===============
[13:48:53] [PASSED] NTSC
[13:48:53] [PASSED] NTSC-J
[13:48:53] [PASSED] PAL
[13:48:53] [PASSED] PAL-M
[13:48:53] =========== [PASSED] drm_test_pick_cmdline_named ===========
[13:48:53] ============== [PASSED] drm_test_pick_cmdline ==============
[13:48:53] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[13:48:53] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[13:48:53] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[13:48:53] =========== drm_validate_clone_mode (2 subtests) ===========
[13:48:53] ============== drm_test_check_in_clone_mode ===============
[13:48:53] [PASSED] in_clone_mode
[13:48:53] [PASSED] not_in_clone_mode
[13:48:53] ========== [PASSED] drm_test_check_in_clone_mode ===========
[13:48:53] =============== drm_test_check_valid_clones ===============
[13:48:53] [PASSED] not_in_clone_mode
[13:48:53] [PASSED] valid_clone
[13:48:53] [PASSED] invalid_clone
[13:48:53] =========== [PASSED] drm_test_check_valid_clones ===========
[13:48:53] ============= [PASSED] drm_validate_clone_mode =============
[13:48:53] ============= drm_validate_modeset (1 subtest) =============
[13:48:53] [PASSED] drm_test_check_connector_changed_modeset
[13:48:53] ============== [PASSED] drm_validate_modeset ===============
[13:48:53] ====== drm_test_bridge_get_current_state (2 subtests) ======
[13:48:53] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[13:48:53] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[13:48:53] ======== [PASSED] drm_test_bridge_get_current_state ========
[13:48:53] ====== drm_test_bridge_helper_reset_crtc (4 subtests) ======
[13:48:53] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[13:48:53] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[13:48:53] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[13:48:53] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[13:48:53] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[13:48:53] ============== drm_bridge_alloc (2 subtests) ===============
[13:48:53] [PASSED] drm_test_drm_bridge_alloc_basic
[13:48:53] [PASSED] drm_test_drm_bridge_alloc_get_put
[13:48:53] ================ [PASSED] drm_bridge_alloc =================
[13:48:53] ============= drm_bridge_bus_fmt (5 subtests) ==============
[13:48:53] [PASSED] drm_test_bridge_rgb_yuv_rgb
[13:48:53] [PASSED] drm_test_bridge_must_convert_to_yuv444
[13:48:53] [PASSED] drm_test_bridge_hdmi_auto_rgb
[13:48:53] [PASSED] drm_test_bridge_auto_first
[13:48:53] [PASSED] drm_test_bridge_rgb_yuv_no_path
[13:48:53] =============== [PASSED] drm_bridge_bus_fmt ================
[13:48:53] ============= drm_cmdline_parser (40 subtests) =============
[13:48:53] [PASSED] drm_test_cmdline_force_d_only
[13:48:53] [PASSED] drm_test_cmdline_force_D_only_dvi
[13:48:53] [PASSED] drm_test_cmdline_force_D_only_hdmi
[13:48:53] [PASSED] drm_test_cmdline_force_D_only_not_digital
[13:48:53] [PASSED] drm_test_cmdline_force_e_only
[13:48:53] [PASSED] drm_test_cmdline_res
[13:48:53] [PASSED] drm_test_cmdline_res_vesa
[13:48:53] [PASSED] drm_test_cmdline_res_vesa_rblank
[13:48:53] [PASSED] drm_test_cmdline_res_rblank
[13:48:53] [PASSED] drm_test_cmdline_res_bpp
[13:48:53] [PASSED] drm_test_cmdline_res_refresh
[13:48:53] [PASSED] drm_test_cmdline_res_bpp_refresh
[13:48:53] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[13:48:53] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[13:48:53] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[13:48:53] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[13:48:53] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[13:48:53] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[13:48:53] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[13:48:53] [PASSED] drm_test_cmdline_res_margins_force_on
[13:48:53] [PASSED] drm_test_cmdline_res_vesa_margins
[13:48:53] [PASSED] drm_test_cmdline_name
[13:48:53] [PASSED] drm_test_cmdline_name_bpp
[13:48:53] [PASSED] drm_test_cmdline_name_option
[13:48:53] [PASSED] drm_test_cmdline_name_bpp_option
[13:48:53] [PASSED] drm_test_cmdline_rotate_0
[13:48:53] [PASSED] drm_test_cmdline_rotate_90
[13:48:53] [PASSED] drm_test_cmdline_rotate_180
[13:48:53] [PASSED] drm_test_cmdline_rotate_270
[13:48:53] [PASSED] drm_test_cmdline_hmirror
[13:48:53] [PASSED] drm_test_cmdline_vmirror
[13:48:53] [PASSED] drm_test_cmdline_margin_options
[13:48:53] [PASSED] drm_test_cmdline_multiple_options
[13:48:53] [PASSED] drm_test_cmdline_bpp_extra_and_option
[13:48:53] [PASSED] drm_test_cmdline_extra_and_option
[13:48:53] [PASSED] drm_test_cmdline_freestanding_options
[13:48:53] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[13:48:53] [PASSED] drm_test_cmdline_panel_orientation
[13:48:53] ================ drm_test_cmdline_invalid =================
[13:48:53] [PASSED] margin_only
[13:48:53] [PASSED] interlace_only
[13:48:53] [PASSED] res_missing_x
[13:48:53] [PASSED] res_missing_y
[13:48:53] [PASSED] res_bad_y
[13:48:53] [PASSED] res_missing_y_bpp
[13:48:53] [PASSED] res_bad_bpp
[13:48:53] [PASSED] res_bad_refresh
[13:48:53] [PASSED] res_bpp_refresh_force_on_off
[13:48:53] [PASSED] res_invalid_mode
[13:48:53] [PASSED] res_bpp_wrong_place_mode
[13:48:53] [PASSED] name_bpp_refresh
[13:48:53] [PASSED] name_refresh
[13:48:53] [PASSED] name_refresh_wrong_mode
[13:48:53] [PASSED] name_refresh_invalid_mode
[13:48:53] [PASSED] rotate_multiple
[13:48:53] [PASSED] rotate_invalid_val
[13:48:53] [PASSED] rotate_truncated
[13:48:53] [PASSED] invalid_option
[13:48:53] [PASSED] invalid_tv_option
[13:48:53] [PASSED] truncated_tv_option
[13:48:53] ============ [PASSED] drm_test_cmdline_invalid =============
[13:48:53] =============== drm_test_cmdline_tv_options ===============
[13:48:53] [PASSED] NTSC
[13:48:53] [PASSED] NTSC_443
[13:48:53] [PASSED] NTSC_J
[13:48:53] [PASSED] PAL
[13:48:53] [PASSED] PAL_M
[13:48:53] [PASSED] PAL_N
[13:48:53] [PASSED] SECAM
[13:48:53] [PASSED] MONO_525
[13:48:53] [PASSED] MONO_625
[13:48:53] =========== [PASSED] drm_test_cmdline_tv_options ===========
[13:48:53] =============== [PASSED] drm_cmdline_parser ================
[13:48:53] ========== drmm_connector_hdmi_init (20 subtests) ==========
[13:48:53] [PASSED] drm_test_connector_hdmi_init_valid
[13:48:53] [PASSED] drm_test_connector_hdmi_init_bpc_8
[13:48:53] [PASSED] drm_test_connector_hdmi_init_bpc_10
[13:48:53] [PASSED] drm_test_connector_hdmi_init_bpc_12
[13:48:53] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[13:48:53] [PASSED] drm_test_connector_hdmi_init_bpc_null
[13:48:53] [PASSED] drm_test_connector_hdmi_init_formats_empty
[13:48:53] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[13:48:53] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[13:48:53] [PASSED] supported_formats=0x9 yuv420_allowed=1
[13:48:53] [PASSED] supported_formats=0x9 yuv420_allowed=0
[13:48:53] [PASSED] supported_formats=0x5 yuv420_allowed=1
[13:48:53] [PASSED] supported_formats=0x5 yuv420_allowed=0
[13:48:53] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[13:48:53] [PASSED] drm_test_connector_hdmi_init_null_ddc
[13:48:53] [PASSED] drm_test_connector_hdmi_init_null_product
[13:48:53] [PASSED] drm_test_connector_hdmi_init_null_vendor
[13:48:53] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[13:48:53] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[13:48:53] [PASSED] drm_test_connector_hdmi_init_product_valid
[13:48:53] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[13:48:53] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[13:48:53] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[13:48:53] ========= drm_test_connector_hdmi_init_type_valid =========
[13:48:53] [PASSED] HDMI-A
[13:48:53] [PASSED] HDMI-B
[13:48:53] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[13:48:53] ======== drm_test_connector_hdmi_init_type_invalid ========
[13:48:53] [PASSED] Unknown
[13:48:53] [PASSED] VGA
[13:48:53] [PASSED] DVI-I
[13:48:53] [PASSED] DVI-D
[13:48:53] [PASSED] DVI-A
[13:48:53] [PASSED] Composite
[13:48:53] [PASSED] SVIDEO
[13:48:53] [PASSED] LVDS
[13:48:53] [PASSED] Component
[13:48:53] [PASSED] DIN
[13:48:53] [PASSED] DP
[13:48:53] [PASSED] TV
[13:48:53] [PASSED] eDP
[13:48:53] [PASSED] Virtual
[13:48:53] [PASSED] DSI
[13:48:53] [PASSED] DPI
[13:48:53] [PASSED] Writeback
[13:48:53] [PASSED] SPI
[13:48:53] [PASSED] USB
[13:48:53] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[13:48:53] ============ [PASSED] drmm_connector_hdmi_init =============
[13:48:53] ============= drmm_connector_init (3 subtests) =============
[13:48:53] [PASSED] drm_test_drmm_connector_init
[13:48:53] [PASSED] drm_test_drmm_connector_init_null_ddc
[13:48:53] ========= drm_test_drmm_connector_init_type_valid =========
[13:48:53] [PASSED] Unknown
[13:48:53] [PASSED] VGA
[13:48:53] [PASSED] DVI-I
[13:48:53] [PASSED] DVI-D
[13:48:53] [PASSED] DVI-A
[13:48:53] [PASSED] Composite
[13:48:53] [PASSED] SVIDEO
[13:48:53] [PASSED] LVDS
[13:48:53] [PASSED] Component
[13:48:53] [PASSED] DIN
[13:48:53] [PASSED] DP
[13:48:53] [PASSED] HDMI-A
[13:48:53] [PASSED] HDMI-B
[13:48:53] [PASSED] TV
[13:48:53] [PASSED] eDP
[13:48:53] [PASSED] Virtual
[13:48:53] [PASSED] DSI
[13:48:53] [PASSED] DPI
[13:48:53] [PASSED] Writeback
[13:48:53] [PASSED] SPI
[13:48:53] [PASSED] USB
[13:48:53] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[13:48:53] =============== [PASSED] drmm_connector_init ===============
[13:48:53] ========= drm_connector_dynamic_init (6 subtests) ==========
[13:48:53] [PASSED] drm_test_drm_connector_dynamic_init
[13:48:53] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[13:48:53] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[13:48:53] [PASSED] drm_test_drm_connector_dynamic_init_properties
[13:48:53] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[13:48:53] [PASSED] Unknown
[13:48:53] [PASSED] VGA
[13:48:53] [PASSED] DVI-I
[13:48:53] [PASSED] DVI-D
[13:48:53] [PASSED] DVI-A
[13:48:53] [PASSED] Composite
[13:48:53] [PASSED] SVIDEO
[13:48:53] [PASSED] LVDS
[13:48:53] [PASSED] Component
[13:48:53] [PASSED] DIN
[13:48:53] [PASSED] DP
[13:48:53] [PASSED] HDMI-A
[13:48:53] [PASSED] HDMI-B
[13:48:53] [PASSED] TV
[13:48:53] [PASSED] eDP
[13:48:53] [PASSED] Virtual
[13:48:53] [PASSED] DSI
[13:48:53] [PASSED] DPI
[13:48:53] [PASSED] Writeback
[13:48:53] [PASSED] SPI
[13:48:53] [PASSED] USB
[13:48:53] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[13:48:53] ======== drm_test_drm_connector_dynamic_init_name =========
[13:48:53] [PASSED] Unknown
[13:48:53] [PASSED] VGA
[13:48:53] [PASSED] DVI-I
[13:48:53] [PASSED] DVI-D
[13:48:53] [PASSED] DVI-A
[13:48:53] [PASSED] Composite
[13:48:53] [PASSED] SVIDEO
[13:48:53] [PASSED] LVDS
[13:48:53] [PASSED] Component
[13:48:53] [PASSED] DIN
[13:48:53] [PASSED] DP
[13:48:53] [PASSED] HDMI-A
[13:48:53] [PASSED] HDMI-B
[13:48:53] [PASSED] TV
[13:48:53] [PASSED] eDP
[13:48:53] [PASSED] Virtual
[13:48:53] [PASSED] DSI
[13:48:53] [PASSED] DPI
[13:48:53] [PASSED] Writeback
[13:48:53] [PASSED] SPI
[13:48:53] [PASSED] USB
[13:48:53] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[13:48:53] =========== [PASSED] drm_connector_dynamic_init ============
[13:48:53] ==== drm_connector_dynamic_register_early (4 subtests) =====
[13:48:53] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[13:48:53] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[13:48:53] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[13:48:53] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[13:48:53] ====== [PASSED] drm_connector_dynamic_register_early =======
[13:48:53] ======= drm_connector_dynamic_register (7 subtests) ========
[13:48:53] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[13:48:53] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[13:48:53] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[13:48:53] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[13:48:53] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[13:48:53] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[13:48:53] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[13:48:53] ========= [PASSED] drm_connector_dynamic_register ==========
[13:48:53] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[13:48:53] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[13:48:53] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[13:48:53] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[13:48:53] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[13:48:53] ========== drm_test_get_tv_mode_from_name_valid ===========
[13:48:53] [PASSED] NTSC
[13:48:53] [PASSED] NTSC-443
[13:48:53] [PASSED] NTSC-J
[13:48:53] [PASSED] PAL
[13:48:53] [PASSED] PAL-M
[13:48:53] [PASSED] PAL-N
[13:48:53] [PASSED] SECAM
[13:48:53] [PASSED] Mono
[13:48:53] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[13:48:53] [PASSED] drm_test_get_tv_mode_from_name_truncated
[13:48:53] ============ [PASSED] drm_get_tv_mode_from_name ============
[13:48:53] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[13:48:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[13:48:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[13:48:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[13:48:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[13:48:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[13:48:53] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[13:48:53] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[13:48:53] [PASSED] VIC 96
[13:48:53] [PASSED] VIC 97
[13:48:53] [PASSED] VIC 101
[13:48:53] [PASSED] VIC 102
[13:48:53] [PASSED] VIC 106
[13:48:53] [PASSED] VIC 107
[13:48:53] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[13:48:53] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[13:48:53] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[13:48:53] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[13:48:53] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[13:48:53] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[13:48:53] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[13:48:53] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[13:48:53] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[13:48:53] [PASSED] Automatic
[13:48:53] [PASSED] Full
[13:48:53] [PASSED] Limited 16:235
[13:48:53] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[13:48:53] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[13:48:53] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[13:48:53] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[13:48:53] === drm_test_drm_hdmi_connector_get_output_format_name ====
[13:48:53] [PASSED] RGB
[13:48:53] [PASSED] YUV 4:2:0
[13:48:53] [PASSED] YUV 4:2:2
[13:48:53] [PASSED] YUV 4:4:4
[13:48:53] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[13:48:53] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[13:48:53] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[13:48:53] ============= drm_damage_helper (21 subtests) ==============
[13:48:53] [PASSED] drm_test_damage_iter_no_damage
[13:48:53] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[13:48:53] [PASSED] drm_test_damage_iter_no_damage_src_moved
[13:48:53] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[13:48:53] [PASSED] drm_test_damage_iter_no_damage_not_visible
[13:48:53] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[13:48:53] [PASSED] drm_test_damage_iter_no_damage_no_fb
[13:48:53] [PASSED] drm_test_damage_iter_simple_damage
[13:48:53] [PASSED] drm_test_damage_iter_single_damage
[13:48:53] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[13:48:53] [PASSED] drm_test_damage_iter_single_damage_outside_src
[13:48:53] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[13:48:53] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[13:48:53] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[13:48:53] [PASSED] drm_test_damage_iter_single_damage_src_moved
[13:48:53] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[13:48:53] [PASSED] drm_test_damage_iter_damage
[13:48:53] [PASSED] drm_test_damage_iter_damage_one_intersect
[13:48:53] [PASSED] drm_test_damage_iter_damage_one_outside
[13:48:53] [PASSED] drm_test_damage_iter_damage_src_moved
[13:48:53] [PASSED] drm_test_damage_iter_damage_not_visible
[13:48:53] ================ [PASSED] drm_damage_helper ================
[13:48:53] ============== drm_dp_mst_helper (3 subtests) ==============
[13:48:53] ============== drm_test_dp_mst_calc_pbn_mode ==============
[13:48:53] [PASSED] Clock 154000 BPP 30 DSC disabled
[13:48:53] [PASSED] Clock 234000 BPP 30 DSC disabled
[13:48:53] [PASSED] Clock 297000 BPP 24 DSC disabled
[13:48:53] [PASSED] Clock 332880 BPP 24 DSC enabled
[13:48:53] [PASSED] Clock 324540 BPP 24 DSC enabled
[13:48:53] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[13:48:53] ============== drm_test_dp_mst_calc_pbn_div ===============
[13:48:53] [PASSED] Link rate 2000000 lane count 4
[13:48:53] [PASSED] Link rate 2000000 lane count 2
[13:48:53] [PASSED] Link rate 2000000 lane count 1
[13:48:53] [PASSED] Link rate 1350000 lane count 4
[13:48:53] [PASSED] Link rate 1350000 lane count 2
[13:48:53] [PASSED] Link rate 1350000 lane count 1
[13:48:53] [PASSED] Link rate 1000000 lane count 4
[13:48:53] [PASSED] Link rate 1000000 lane count 2
[13:48:53] [PASSED] Link rate 1000000 lane count 1
[13:48:53] [PASSED] Link rate 810000 lane count 4
[13:48:53] [PASSED] Link rate 810000 lane count 2
[13:48:53] [PASSED] Link rate 810000 lane count 1
[13:48:53] [PASSED] Link rate 540000 lane count 4
[13:48:53] [PASSED] Link rate 540000 lane count 2
[13:48:53] [PASSED] Link rate 540000 lane count 1
[13:48:53] [PASSED] Link rate 270000 lane count 4
[13:48:53] [PASSED] Link rate 270000 lane count 2
[13:48:53] [PASSED] Link rate 270000 lane count 1
[13:48:53] [PASSED] Link rate 162000 lane count 4
[13:48:53] [PASSED] Link rate 162000 lane count 2
[13:48:53] [PASSED] Link rate 162000 lane count 1
[13:48:53] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[13:48:53] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[13:48:53] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[13:48:53] [PASSED] DP_POWER_UP_PHY with port number
[13:48:53] [PASSED] DP_POWER_DOWN_PHY with port number
[13:48:53] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[13:48:53] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[13:48:53] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[13:48:53] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[13:48:53] [PASSED] DP_QUERY_PAYLOAD with port number
[13:48:53] [PASSED] DP_QUERY_PAYLOAD with VCPI
[13:48:53] [PASSED] DP_REMOTE_DPCD_READ with port number
[13:48:53] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[13:48:53] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[13:48:53] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[13:48:53] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[13:48:53] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[13:48:53] [PASSED] DP_REMOTE_I2C_READ with port number
[13:48:53] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[13:48:53] [PASSED] DP_REMOTE_I2C_READ with transactions array
[13:48:53] [PASSED] DP_REMOTE_I2C_WRITE with port number
[13:48:53] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[13:48:53] [PASSED] DP_REMOTE_I2C_WRITE with data array
[13:48:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[13:48:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[13:48:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[13:48:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[13:48:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[13:48:53] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[13:48:53] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[13:48:53] ================ [PASSED] drm_dp_mst_helper ================
[13:48:53] ================== drm_exec (7 subtests) ===================
[13:48:53] [PASSED] sanitycheck
[13:48:53] [PASSED] test_lock
[13:48:53] [PASSED] test_lock_unlock
[13:48:53] [PASSED] test_duplicates
[13:48:53] [PASSED] test_prepare
[13:48:53] [PASSED] test_prepare_array
[13:48:53] [PASSED] test_multiple_loops
[13:48:53] ==================== [PASSED] drm_exec =====================
[13:48:53] =========== drm_format_helper_test (17 subtests) ===========
[13:48:53] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[13:48:53] [PASSED] single_pixel_source_buffer
[13:48:53] [PASSED] single_pixel_clip_rectangle
[13:48:53] [PASSED] well_known_colors
[13:48:53] [PASSED] destination_pitch
[13:48:53] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[13:48:53] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[13:48:53] [PASSED] single_pixel_source_buffer
[13:48:53] [PASSED] single_pixel_clip_rectangle
[13:48:53] [PASSED] well_known_colors
[13:48:53] [PASSED] destination_pitch
[13:48:53] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[13:48:53] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[13:48:53] [PASSED] single_pixel_source_buffer
[13:48:53] [PASSED] single_pixel_clip_rectangle
[13:48:53] [PASSED] well_known_colors
[13:48:53] [PASSED] destination_pitch
[13:48:53] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[13:48:53] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[13:48:53] [PASSED] single_pixel_source_buffer
[13:48:53] [PASSED] single_pixel_clip_rectangle
[13:48:53] [PASSED] well_known_colors
[13:48:53] [PASSED] destination_pitch
[13:48:53] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[13:48:53] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[13:48:53] [PASSED] single_pixel_source_buffer
[13:48:53] [PASSED] single_pixel_clip_rectangle
[13:48:53] [PASSED] well_known_colors
[13:48:53] [PASSED] destination_pitch
[13:48:53] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[13:48:53] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[13:48:53] [PASSED] single_pixel_source_buffer
[13:48:53] [PASSED] single_pixel_clip_rectangle
[13:48:53] [PASSED] well_known_colors
[13:48:53] [PASSED] destination_pitch
[13:48:53] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[13:48:53] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[13:48:53] [PASSED] single_pixel_source_buffer
[13:48:53] [PASSED] single_pixel_clip_rectangle
[13:48:53] [PASSED] well_known_colors
[13:48:53] [PASSED] destination_pitch
[13:48:53] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[13:48:53] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[13:48:53] [PASSED] single_pixel_source_buffer
[13:48:53] [PASSED] single_pixel_clip_rectangle
[13:48:53] [PASSED] well_known_colors
[13:48:53] [PASSED] destination_pitch
[13:48:53] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[13:48:53] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[13:48:53] [PASSED] single_pixel_source_buffer
[13:48:53] [PASSED] single_pixel_clip_rectangle
[13:48:53] [PASSED] well_known_colors
[13:48:53] [PASSED] destination_pitch
[13:48:53] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[13:48:53] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[13:48:53] [PASSED] single_pixel_source_buffer
[13:48:53] [PASSED] single_pixel_clip_rectangle
[13:48:53] [PASSED] well_known_colors
[13:48:53] [PASSED] destination_pitch
[13:48:53] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[13:48:53] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[13:48:53] [PASSED] single_pixel_source_buffer
[13:48:53] [PASSED] single_pixel_clip_rectangle
[13:48:53] [PASSED] well_known_colors
[13:48:53] [PASSED] destination_pitch
[13:48:53] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[13:48:53] ============== drm_test_fb_xrgb8888_to_mono ===============
[13:48:53] [PASSED] single_pixel_source_buffer
[13:48:53] [PASSED] single_pixel_clip_rectangle
[13:48:53] [PASSED] well_known_colors
[13:48:53] [PASSED] destination_pitch
[13:48:53] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[13:48:53] ==================== drm_test_fb_swab =====================
[13:48:53] [PASSED] single_pixel_source_buffer
[13:48:53] [PASSED] single_pixel_clip_rectangle
[13:48:53] [PASSED] well_known_colors
[13:48:53] [PASSED] destination_pitch
[13:48:53] ================ [PASSED] drm_test_fb_swab =================
[13:48:53] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[13:48:53] [PASSED] single_pixel_source_buffer
[13:48:53] [PASSED] single_pixel_clip_rectangle
[13:48:53] [PASSED] well_known_colors
[13:48:53] [PASSED] destination_pitch
[13:48:53] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[13:48:53] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[13:48:53] [PASSED] single_pixel_source_buffer
[13:48:53] [PASSED] single_pixel_clip_rectangle
[13:48:53] [PASSED] well_known_colors
[13:48:53] [PASSED] destination_pitch
[13:48:53] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[13:48:53] ================= drm_test_fb_clip_offset =================
[13:48:53] [PASSED] pass through
[13:48:53] [PASSED] horizontal offset
[13:48:53] [PASSED] vertical offset
[13:48:53] [PASSED] horizontal and vertical offset
[13:48:53] [PASSED] horizontal offset (custom pitch)
[13:48:53] [PASSED] vertical offset (custom pitch)
[13:48:53] [PASSED] horizontal and vertical offset (custom pitch)
[13:48:53] ============= [PASSED] drm_test_fb_clip_offset =============
[13:48:53] =================== drm_test_fb_memcpy ====================
[13:48:53] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[13:48:53] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[13:48:53] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[13:48:53] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[13:48:53] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[13:48:53] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[13:48:53] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[13:48:53] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[13:48:53] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[13:48:53] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[13:48:53] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[13:48:53] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[13:48:53] =============== [PASSED] drm_test_fb_memcpy ================
[13:48:53] ============= [PASSED] drm_format_helper_test ==============
[13:48:53] ================= drm_format (18 subtests) =================
[13:48:53] [PASSED] drm_test_format_block_width_invalid
[13:48:53] [PASSED] drm_test_format_block_width_one_plane
[13:48:53] [PASSED] drm_test_format_block_width_two_plane
[13:48:53] [PASSED] drm_test_format_block_width_three_plane
[13:48:53] [PASSED] drm_test_format_block_width_tiled
[13:48:53] [PASSED] drm_test_format_block_height_invalid
[13:48:53] [PASSED] drm_test_format_block_height_one_plane
[13:48:53] [PASSED] drm_test_format_block_height_two_plane
[13:48:53] [PASSED] drm_test_format_block_height_three_plane
[13:48:53] [PASSED] drm_test_format_block_height_tiled
[13:48:53] [PASSED] drm_test_format_min_pitch_invalid
[13:48:53] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[13:48:53] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[13:48:53] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[13:48:53] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[13:48:53] [PASSED] drm_test_format_min_pitch_two_plane
[13:48:53] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[13:48:53] [PASSED] drm_test_format_min_pitch_tiled
[13:48:53] =================== [PASSED] drm_format ====================
[13:48:53] ============== drm_framebuffer (10 subtests) ===============
[13:48:53] ========== drm_test_framebuffer_check_src_coords ==========
[13:48:53] [PASSED] Success: source fits into fb
[13:48:53] [PASSED] Fail: overflowing fb with x-axis coordinate
[13:48:53] [PASSED] Fail: overflowing fb with y-axis coordinate
[13:48:53] [PASSED] Fail: overflowing fb with source width
[13:48:53] [PASSED] Fail: overflowing fb with source height
[13:48:53] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[13:48:53] [PASSED] drm_test_framebuffer_cleanup
[13:48:53] =============== drm_test_framebuffer_create ===============
[13:48:53] [PASSED] ABGR8888 normal sizes
[13:48:53] [PASSED] ABGR8888 max sizes
[13:48:53] [PASSED] ABGR8888 pitch greater than min required
[13:48:53] [PASSED] ABGR8888 pitch less than min required
[13:48:53] [PASSED] ABGR8888 Invalid width
[13:48:53] [PASSED] ABGR8888 Invalid buffer handle
[13:48:53] [PASSED] No pixel format
[13:48:53] [PASSED] ABGR8888 Width 0
[13:48:53] [PASSED] ABGR8888 Height 0
[13:48:53] [PASSED] ABGR8888 Out of bound height * pitch combination
[13:48:53] [PASSED] ABGR8888 Large buffer offset
[13:48:53] [PASSED] ABGR8888 Buffer offset for inexistent plane
[13:48:53] [PASSED] ABGR8888 Invalid flag
[13:48:53] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[13:48:53] [PASSED] ABGR8888 Valid buffer modifier
[13:48:53] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[13:48:53] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[13:48:53] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[13:48:53] [PASSED] NV12 Normal sizes
[13:48:53] [PASSED] NV12 Max sizes
[13:48:53] [PASSED] NV12 Invalid pitch
[13:48:53] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[13:48:53] [PASSED] NV12 different modifier per-plane
[13:48:53] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[13:48:53] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[13:48:53] [PASSED] NV12 Modifier for inexistent plane
[13:48:53] [PASSED] NV12 Handle for inexistent plane
[13:48:53] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[13:48:53] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[13:48:53] [PASSED] YVU420 Normal sizes
[13:48:53] [PASSED] YVU420 Max sizes
[13:48:53] [PASSED] YVU420 Invalid pitch
[13:48:53] [PASSED] YVU420 Different pitches
[13:48:53] [PASSED] YVU420 Different buffer offsets/pitches
[13:48:53] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[13:48:53] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[13:48:53] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[13:48:53] [PASSED] YVU420 Valid modifier
[13:48:53] [PASSED] YVU420 Different modifiers per plane
[13:48:53] [PASSED] YVU420 Modifier for inexistent plane
[13:48:53] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[13:48:53] [PASSED] X0L2 Normal sizes
[13:48:53] [PASSED] X0L2 Max sizes
[13:48:53] [PASSED] X0L2 Invalid pitch
[13:48:53] [PASSED] X0L2 Pitch greater than minimum required
[13:48:53] [PASSED] X0L2 Handle for inexistent plane
[13:48:53] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[13:48:53] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[13:48:53] [PASSED] X0L2 Valid modifier
[13:48:53] [PASSED] X0L2 Modifier for inexistent plane
[13:48:53] =========== [PASSED] drm_test_framebuffer_create ===========
[13:48:53] [PASSED] drm_test_framebuffer_free
[13:48:53] [PASSED] drm_test_framebuffer_init
[13:48:53] [PASSED] drm_test_framebuffer_init_bad_format
[13:48:53] [PASSED] drm_test_framebuffer_init_dev_mismatch
[13:48:53] [PASSED] drm_test_framebuffer_lookup
[13:48:53] [PASSED] drm_test_framebuffer_lookup_inexistent
[13:48:53] [PASSED] drm_test_framebuffer_modifiers_not_supported
[13:48:53] ================= [PASSED] drm_framebuffer =================
[13:48:53] ================ drm_gem_shmem (8 subtests) ================
[13:48:53] [PASSED] drm_gem_shmem_test_obj_create
[13:48:53] [PASSED] drm_gem_shmem_test_obj_create_private
[13:48:53] [PASSED] drm_gem_shmem_test_pin_pages
[13:48:53] [PASSED] drm_gem_shmem_test_vmap
[13:48:53] [PASSED] drm_gem_shmem_test_get_sg_table
[13:48:53] [PASSED] drm_gem_shmem_test_get_pages_sgt
[13:48:53] [PASSED] drm_gem_shmem_test_madvise
[13:48:53] [PASSED] drm_gem_shmem_test_purge
[13:48:53] ================== [PASSED] drm_gem_shmem ==================
[13:48:53] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[13:48:53] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[13:48:53] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[13:48:53] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[13:48:53] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[13:48:53] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[13:48:53] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[13:48:53] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[13:48:53] [PASSED] Automatic
[13:48:53] [PASSED] Full
[13:48:53] [PASSED] Limited 16:235
[13:48:53] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[13:48:53] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[13:48:53] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[13:48:53] [PASSED] drm_test_check_disable_connector
[13:48:53] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[13:48:53] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[13:48:53] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[13:48:53] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[13:48:53] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[13:48:53] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[13:48:53] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[13:48:53] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[13:48:53] [PASSED] drm_test_check_output_bpc_dvi
[13:48:53] [PASSED] drm_test_check_output_bpc_format_vic_1
[13:48:53] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[13:48:53] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[13:48:53] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[13:48:53] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[13:48:53] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[13:48:53] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[13:48:53] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[13:48:53] ============ drm_test_check_hdmi_color_format =============
[13:48:53] [PASSED] AUTO -> RGB
[13:48:53] [PASSED] YCBCR422 -> YUV422
[13:48:53] [PASSED] YCBCR420 -> YUV420
[13:48:53] [PASSED] YCBCR444 -> YUV444
[13:48:53] [PASSED] RGB -> RGB
[13:48:53] ======== [PASSED] drm_test_check_hdmi_color_format =========
[13:48:53] ======== drm_test_check_hdmi_color_format_420_only ========
[13:48:53] [PASSED] RGB should fail
[13:48:53] [PASSED] YUV444 should fail
[13:48:53] [PASSED] YUV422 should fail
[13:48:53] [PASSED] YUV420 should work
[13:48:53] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[13:48:53] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[13:48:53] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[13:48:53] [PASSED] drm_test_check_broadcast_rgb_value
[13:48:53] [PASSED] drm_test_check_bpc_8_value
[13:48:53] [PASSED] drm_test_check_bpc_10_value
[13:48:53] [PASSED] drm_test_check_bpc_12_value
[13:48:53] [PASSED] drm_test_check_format_value
[13:48:53] [PASSED] drm_test_check_tmds_char_value
[13:48:53] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[13:48:53] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[13:48:53] [PASSED] drm_test_check_mode_valid
[13:48:53] [PASSED] drm_test_check_mode_valid_reject
[13:48:53] [PASSED] drm_test_check_mode_valid_reject_rate
[13:48:53] [PASSED] drm_test_check_mode_valid_reject_max_clock
[13:48:53] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[13:48:53] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[13:48:53] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[13:48:53] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[13:48:53] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[13:48:53] [PASSED] drm_test_check_infoframes
[13:48:53] [PASSED] drm_test_check_reject_avi_infoframe
[13:48:53] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[13:48:53] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[13:48:53] [PASSED] drm_test_check_reject_audio_infoframe
[13:48:53] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[13:48:53] ================= drm_managed (2 subtests) =================
[13:48:53] [PASSED] drm_test_managed_release_action
[13:48:53] [PASSED] drm_test_managed_run_action
[13:48:53] =================== [PASSED] drm_managed ===================
[13:48:53] =================== drm_mm (6 subtests) ====================
[13:48:53] [PASSED] drm_test_mm_init
[13:48:53] [PASSED] drm_test_mm_debug
[13:48:53] [PASSED] drm_test_mm_align32
[13:48:53] [PASSED] drm_test_mm_align64
[13:48:53] [PASSED] drm_test_mm_lowest
[13:48:53] [PASSED] drm_test_mm_highest
[13:48:53] ===================== [PASSED] drm_mm ======================
[13:48:53] ============= drm_modes_analog_tv (5 subtests) =============
[13:48:53] [PASSED] drm_test_modes_analog_tv_mono_576i
[13:48:53] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[13:48:53] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[13:48:53] [PASSED] drm_test_modes_analog_tv_pal_576i
[13:48:53] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[13:48:53] =============== [PASSED] drm_modes_analog_tv ===============
[13:48:53] ============== drm_plane_helper (2 subtests) ===============
[13:48:53] =============== drm_test_check_plane_state ================
[13:48:53] [PASSED] clipping_simple
[13:48:53] [PASSED] clipping_rotate_reflect
[13:48:53] [PASSED] positioning_simple
[13:48:53] [PASSED] upscaling
[13:48:53] [PASSED] downscaling
[13:48:53] [PASSED] rounding1
[13:48:53] [PASSED] rounding2
[13:48:53] [PASSED] rounding3
[13:48:53] [PASSED] rounding4
[13:48:53] =========== [PASSED] drm_test_check_plane_state ============
[13:48:53] =========== drm_test_check_invalid_plane_state ============
[13:48:53] [PASSED] positioning_invalid
[13:48:53] [PASSED] upscaling_invalid
[13:48:53] [PASSED] downscaling_invalid
[13:48:53] ======= [PASSED] drm_test_check_invalid_plane_state ========
[13:48:53] ================ [PASSED] drm_plane_helper =================
[13:48:53] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[13:48:53] ====== drm_test_connector_helper_tv_get_modes_check =======
[13:48:53] [PASSED] None
[13:48:53] [PASSED] PAL
[13:48:53] [PASSED] NTSC
[13:48:53] [PASSED] Both, NTSC Default
[13:48:53] [PASSED] Both, PAL Default
[13:48:53] [PASSED] Both, NTSC Default, with PAL on command-line
[13:48:53] [PASSED] Both, PAL Default, with NTSC on command-line
[13:48:53] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[13:48:53] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[13:48:53] ================== drm_rect (9 subtests) ===================
[13:48:53] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[13:48:53] [PASSED] drm_test_rect_clip_scaled_not_clipped
[13:48:53] [PASSED] drm_test_rect_clip_scaled_clipped
[13:48:53] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[13:48:53] ================= drm_test_rect_intersect =================
[13:48:53] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[13:48:53] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[13:48:53] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[13:48:53] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[13:48:53] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[13:48:53] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[13:48:53] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[13:48:53] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[13:48:53] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[13:48:53] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[13:48:53] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[13:48:53] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[13:48:53] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[13:48:53] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[13:48:53] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[13:48:53] ============= [PASSED] drm_test_rect_intersect =============
[13:48:53] ================ drm_test_rect_calc_hscale ================
[13:48:53] [PASSED] normal use
[13:48:53] [PASSED] out of max range
[13:48:53] [PASSED] out of min range
[13:48:53] [PASSED] zero dst
[13:48:53] [PASSED] negative src
[13:48:53] [PASSED] negative dst
[13:48:53] ============ [PASSED] drm_test_rect_calc_hscale ============
[13:48:53] ================ drm_test_rect_calc_vscale ================
[13:48:53] [PASSED] normal use
[13:48:53] [PASSED] out of max range
[13:48:53] [PASSED] out of min range
[13:48:53] [PASSED] zero dst
[13:48:53] [PASSED] negative src
[13:48:53] [PASSED] negative dst
[13:48:53] ============ [PASSED] drm_test_rect_calc_vscale ============
[13:48:53] ================== drm_test_rect_rotate ===================
[13:48:53] [PASSED] reflect-x
[13:48:53] [PASSED] reflect-y
[13:48:53] [PASSED] rotate-0
[13:48:53] [PASSED] rotate-90
[13:48:53] [PASSED] rotate-180
[13:48:53] [PASSED] rotate-270
[13:48:53] ============== [PASSED] drm_test_rect_rotate ===============
[13:48:53] ================ drm_test_rect_rotate_inv =================
[13:48:53] [PASSED] reflect-x
[13:48:53] [PASSED] reflect-y
[13:48:53] [PASSED] rotate-0
[13:48:53] [PASSED] rotate-90
[13:48:53] [PASSED] rotate-180
[13:48:53] [PASSED] rotate-270
[13:48:53] ============ [PASSED] drm_test_rect_rotate_inv =============
[13:48:53] ==================== [PASSED] drm_rect =====================
[13:48:53] ============ drm_sysfb_modeset_test (1 subtest) ============
[13:48:53] ============ drm_test_sysfb_build_fourcc_list =============
[13:48:53] [PASSED] no native formats
[13:48:53] [PASSED] XRGB8888 as native format
[13:48:53] [PASSED] remove duplicates
[13:48:53] [PASSED] convert alpha formats
[13:48:53] [PASSED] random formats
[13:48:53] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[13:48:53] ============= [PASSED] drm_sysfb_modeset_test ==============
[13:48:53] ================== drm_fixp (2 subtests) ===================
[13:48:53] [PASSED] drm_test_int2fixp
[13:48:53] [PASSED] drm_test_sm2fixp
[13:48:53] ==================== [PASSED] drm_fixp =====================
[13:48:53] ============================================================
[13:48:53] Testing complete. Ran 639 tests: passed: 639
[13:48:53] Elapsed time: 26.544s total, 1.783s configuring, 24.594s building, 0.148s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[13:48:53] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[13:48:55] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[13:49:05] Starting KUnit Kernel (1/1)...
[13:49:05] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[13:49:05] ================= ttm_device (5 subtests) ==================
[13:49:05] [PASSED] ttm_device_init_basic
[13:49:05] [PASSED] ttm_device_init_multiple
[13:49:05] [PASSED] ttm_device_fini_basic
[13:49:05] [PASSED] ttm_device_init_no_vma_man
[13:49:05] ================== ttm_device_init_pools ==================
[13:49:05] [PASSED] No DMA allocations, no DMA32 required
[13:49:05] [PASSED] DMA allocations, DMA32 required
[13:49:05] [PASSED] No DMA allocations, DMA32 required
[13:49:05] [PASSED] DMA allocations, no DMA32 required
[13:49:05] ============== [PASSED] ttm_device_init_pools ==============
[13:49:05] =================== [PASSED] ttm_device ====================
[13:49:05] ================== ttm_pool (8 subtests) ===================
[13:49:05] ================== ttm_pool_alloc_basic ===================
[13:49:05] [PASSED] One page
[13:49:05] [PASSED] More than one page
[13:49:05] [PASSED] Above the allocation limit
[13:49:05] [PASSED] One page, with coherent DMA mappings enabled
[13:49:05] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[13:49:05] ============== [PASSED] ttm_pool_alloc_basic ===============
[13:49:05] ============== ttm_pool_alloc_basic_dma_addr ==============
[13:49:05] [PASSED] One page
[13:49:05] [PASSED] More than one page
[13:49:05] [PASSED] Above the allocation limit
[13:49:05] [PASSED] One page, with coherent DMA mappings enabled
[13:49:05] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[13:49:05] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[13:49:05] [PASSED] ttm_pool_alloc_order_caching_match
[13:49:05] [PASSED] ttm_pool_alloc_caching_mismatch
[13:49:05] [PASSED] ttm_pool_alloc_order_mismatch
[13:49:05] [PASSED] ttm_pool_free_dma_alloc
[13:49:05] [PASSED] ttm_pool_free_no_dma_alloc
[13:49:05] [PASSED] ttm_pool_fini_basic
[13:49:05] ==================== [PASSED] ttm_pool =====================
[13:49:05] ================ ttm_resource (8 subtests) =================
[13:49:05] ================= ttm_resource_init_basic =================
[13:49:05] [PASSED] Init resource in TTM_PL_SYSTEM
[13:49:05] [PASSED] Init resource in TTM_PL_VRAM
[13:49:05] [PASSED] Init resource in a private placement
[13:49:05] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[13:49:05] ============= [PASSED] ttm_resource_init_basic =============
[13:49:05] [PASSED] ttm_resource_init_pinned
[13:49:05] [PASSED] ttm_resource_fini_basic
[13:49:05] [PASSED] ttm_resource_manager_init_basic
[13:49:05] [PASSED] ttm_resource_manager_usage_basic
[13:49:05] [PASSED] ttm_resource_manager_set_used_basic
[13:49:05] [PASSED] ttm_sys_man_alloc_basic
[13:49:05] [PASSED] ttm_sys_man_free_basic
[13:49:05] ================== [PASSED] ttm_resource ===================
[13:49:05] =================== ttm_tt (15 subtests) ===================
[13:49:05] ==================== ttm_tt_init_basic ====================
[13:49:05] [PASSED] Page-aligned size
[13:49:05] [PASSED] Extra pages requested
[13:49:05] ================ [PASSED] ttm_tt_init_basic ================
[13:49:05] [PASSED] ttm_tt_init_misaligned
[13:49:05] [PASSED] ttm_tt_fini_basic
[13:49:05] [PASSED] ttm_tt_fini_sg
[13:49:05] [PASSED] ttm_tt_fini_shmem
[13:49:05] [PASSED] ttm_tt_create_basic
[13:49:05] [PASSED] ttm_tt_create_invalid_bo_type
[13:49:05] [PASSED] ttm_tt_create_ttm_exists
[13:49:05] [PASSED] ttm_tt_create_failed
[13:49:05] [PASSED] ttm_tt_destroy_basic
[13:49:05] [PASSED] ttm_tt_populate_null_ttm
[13:49:05] [PASSED] ttm_tt_populate_populated_ttm
[13:49:05] [PASSED] ttm_tt_unpopulate_basic
[13:49:05] [PASSED] ttm_tt_unpopulate_empty_ttm
[13:49:05] [PASSED] ttm_tt_swapin_basic
[13:49:05] ===================== [PASSED] ttm_tt ======================
[13:49:05] =================== ttm_bo (14 subtests) ===================
[13:49:05] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[13:49:05] [PASSED] Cannot be interrupted and sleeps
[13:49:05] [PASSED] Cannot be interrupted, locks straight away
[13:49:05] [PASSED] Can be interrupted, sleeps
[13:49:05] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[13:49:05] [PASSED] ttm_bo_reserve_locked_no_sleep
[13:49:05] [PASSED] ttm_bo_reserve_no_wait_ticket
[13:49:05] [PASSED] ttm_bo_reserve_double_resv
[13:49:05] [PASSED] ttm_bo_reserve_interrupted
[13:49:05] [PASSED] ttm_bo_reserve_deadlock
[13:49:05] [PASSED] ttm_bo_unreserve_basic
[13:49:05] [PASSED] ttm_bo_unreserve_pinned
[13:49:05] [PASSED] ttm_bo_unreserve_bulk
[13:49:05] [PASSED] ttm_bo_fini_basic
[13:49:05] [PASSED] ttm_bo_fini_shared_resv
[13:49:05] [PASSED] ttm_bo_pin_basic
[13:49:05] [PASSED] ttm_bo_pin_unpin_resource
[13:49:05] [PASSED] ttm_bo_multiple_pin_one_unpin
[13:49:05] ===================== [PASSED] ttm_bo ======================
[13:49:05] ============== ttm_bo_validate (22 subtests) ===============
[13:49:05] ============== ttm_bo_init_reserved_sys_man ===============
[13:49:05] [PASSED] Buffer object for userspace
[13:49:05] [PASSED] Kernel buffer object
[13:49:05] [PASSED] Shared buffer object
[13:49:05] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[13:49:05] ============== ttm_bo_init_reserved_mock_man ==============
[13:49:05] [PASSED] Buffer object for userspace
[13:49:05] [PASSED] Kernel buffer object
[13:49:05] [PASSED] Shared buffer object
[13:49:05] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[13:49:05] [PASSED] ttm_bo_init_reserved_resv
[13:49:05] ================== ttm_bo_validate_basic ==================
[13:49:05] [PASSED] Buffer object for userspace
[13:49:05] [PASSED] Kernel buffer object
[13:49:05] [PASSED] Shared buffer object
[13:49:05] ============== [PASSED] ttm_bo_validate_basic ==============
[13:49:05] [PASSED] ttm_bo_validate_invalid_placement
[13:49:05] ============= ttm_bo_validate_same_placement ==============
[13:49:05] [PASSED] System manager
[13:49:05] [PASSED] VRAM manager
[13:49:05] ========= [PASSED] ttm_bo_validate_same_placement ==========
[13:49:05] [PASSED] ttm_bo_validate_failed_alloc
[13:49:05] [PASSED] ttm_bo_validate_pinned
[13:49:05] [PASSED] ttm_bo_validate_busy_placement
[13:49:05] ================ ttm_bo_validate_multihop =================
[13:49:05] [PASSED] Buffer object for userspace
[13:49:05] [PASSED] Kernel buffer object
[13:49:05] [PASSED] Shared buffer object
[13:49:05] ============ [PASSED] ttm_bo_validate_multihop =============
[13:49:05] ========== ttm_bo_validate_no_placement_signaled ==========
[13:49:05] [PASSED] Buffer object in system domain, no page vector
[13:49:05] [PASSED] Buffer object in system domain with an existing page vector
[13:49:05] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[13:49:05] ======== ttm_bo_validate_no_placement_not_signaled ========
[13:49:05] [PASSED] Buffer object for userspace
[13:49:05] [PASSED] Kernel buffer object
[13:49:05] [PASSED] Shared buffer object
[13:49:05] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[13:49:05] [PASSED] ttm_bo_validate_move_fence_signaled
[13:49:05] ========= ttm_bo_validate_move_fence_not_signaled =========
[13:49:05] [PASSED] Waits for GPU
[13:49:05] [PASSED] Tries to lock straight away
[13:49:05] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[13:49:05] [PASSED] ttm_bo_validate_swapout
[13:49:05] [PASSED] ttm_bo_validate_happy_evict
[13:49:05] [PASSED] ttm_bo_validate_all_pinned_evict
[13:49:05] [PASSED] ttm_bo_validate_allowed_only_evict
[13:49:05] [PASSED] ttm_bo_validate_deleted_evict
[13:49:05] [PASSED] ttm_bo_validate_busy_domain_evict
[13:49:05] [PASSED] ttm_bo_validate_evict_gutting
[13:49:05] [PASSED] ttm_bo_validate_recrusive_evict
[13:49:05] ================= [PASSED] ttm_bo_validate =================
[13:49:05] ============================================================
[13:49:05] Testing complete. Ran 102 tests: passed: 102
[13:49:05] Elapsed time: 11.997s total, 1.812s configuring, 9.970s building, 0.177s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 34+ messages in thread* ✓ Xe.CI.BAT: success for drm/xe: Add and use more KLV helpers
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
` (14 preceding siblings ...)
2026-06-30 13:49 ` ✓ CI.KUnit: success " Patchwork
@ 2026-06-30 14:42 ` Patchwork
2026-07-01 5:22 ` ✓ Xe.CI.FULL: " Patchwork
16 siblings, 0 replies; 34+ messages in thread
From: Patchwork @ 2026-06-30 14:42 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 1343 bytes --]
== Series Details ==
Series: drm/xe: Add and use more KLV helpers
URL : https://patchwork.freedesktop.org/series/169511/
State : success
== Summary ==
CI Bug Log - changes from xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f_BAT -> xe-pw-169511v1_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (13 -> 13)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-169511v1_BAT that come from known issues:
### IGT changes ###
#### Possible fixes ####
* igt@xe_query@multigpu-query-cs-cycles:
- bat-bmg-3: [FAIL][1] -> [PASS][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/bat-bmg-3/igt@xe_query@multigpu-query-cs-cycles.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/bat-bmg-3/igt@xe_query@multigpu-query-cs-cycles.html
Build changes
-------------
* Linux: xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f -> xe-pw-169511v1
IGT_8988: 8988
xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f: a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f
xe-pw-169511v1: 169511v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/index.html
[-- Attachment #2: Type: text/html, Size: 1915 bytes --]
^ permalink raw reply [flat|nested] 34+ messages in thread* ✓ Xe.CI.FULL: success for drm/xe: Add and use more KLV helpers
2026-06-30 13:26 [PATCH 00/13] drm/xe: Add and use more KLV helpers Michal Wajdeczko
` (15 preceding siblings ...)
2026-06-30 14:42 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-07-01 5:22 ` Patchwork
16 siblings, 0 replies; 34+ messages in thread
From: Patchwork @ 2026-07-01 5:22 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 59120 bytes --]
== Series Details ==
Series: drm/xe: Add and use more KLV helpers
URL : https://patchwork.freedesktop.org/series/169511/
State : success
== Summary ==
CI Bug Log - changes from xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f_FULL -> xe-pw-169511v1_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (2 -> 2)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-169511v1_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@core_hotunplug@unplug-rescan:
- shard-bmg: [PASS][1] -> [ABORT][2] ([Intel XE#8007]) +1 other test abort
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-2/igt@core_hotunplug@unplug-rescan.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-7/igt@core_hotunplug@unplug-rescan.html
* igt@kms_big_fb@linear-32bpp-rotate-270:
- shard-lnl: NOTRUN -> [SKIP][3] ([Intel XE#1407])
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_big_fb@linear-32bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
- shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#1124]) +3 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-9/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@yf-tiled-8bpp-rotate-0:
- shard-lnl: NOTRUN -> [SKIP][5] ([Intel XE#1124]) +5 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_big_fb@yf-tiled-8bpp-rotate-0.html
* igt@kms_bw@connected-linear-tiling-3-displays-target-2160x1440p:
- shard-lnl: NOTRUN -> [SKIP][6] ([Intel XE#7679])
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_bw@connected-linear-tiling-3-displays-target-2160x1440p.html
* igt@kms_bw@connected-linear-tiling-3-displays-target-3840x2160p:
- shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#7679])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_bw@connected-linear-tiling-3-displays-target-3840x2160p.html
* igt@kms_bw@connected-linear-tiling-4-displays-target-1920x1080p:
- shard-lnl: NOTRUN -> [SKIP][8] ([Intel XE#8365])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_bw@connected-linear-tiling-4-displays-target-1920x1080p.html
* igt@kms_bw@linear-tiling-2-displays-target-3840x2160p:
- shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#367]) +1 other test skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-9/igt@kms_bw@linear-tiling-2-displays-target-3840x2160p.html
* igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs:
- shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#2887]) +7 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-1/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-c-dp-2:
- shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#2652]) +7 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-c-dp-2.html
* igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs:
- shard-lnl: NOTRUN -> [SKIP][12] ([Intel XE#2887]) +3 other tests skip
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-ccs:
- shard-lnl: NOTRUN -> [SKIP][13] ([Intel XE#3432]) +1 other test skip
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html
* igt@kms_cdclk@mode-transition@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][14] ([Intel XE#4417] / [Intel XE#5447]) +3 other tests skip
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_cdclk@mode-transition@pipe-b-edp-1.html
* igt@kms_cdclk@plane-scaling:
- shard-lnl: NOTRUN -> [SKIP][15] ([Intel XE#4416] / [Intel XE#7381]) +3 other tests skip
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_cdclk@plane-scaling.html
* igt@kms_chamelium_color@ctm-green-to-red:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#2325] / [Intel XE#7358])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_chamelium_color@ctm-green-to-red.html
* igt@kms_chamelium_color@degamma:
- shard-lnl: NOTRUN -> [SKIP][17] ([Intel XE#306] / [Intel XE#7358])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_chamelium_color@degamma.html
* igt@kms_chamelium_color_pipeline@plane-lut1d:
- shard-lnl: NOTRUN -> [SKIP][18] ([Intel XE#7358])
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_chamelium_color_pipeline@plane-lut1d.html
* igt@kms_chamelium_color_pipeline@plane-lut1d-lut1d:
- shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#7358])
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-9/igt@kms_chamelium_color_pipeline@plane-lut1d-lut1d.html
* igt@kms_chamelium_frames@dp-crc-fast:
- shard-bmg: NOTRUN -> [SKIP][20] ([Intel XE#2252]) +1 other test skip
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_chamelium_frames@dp-crc-fast.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- shard-lnl: NOTRUN -> [SKIP][21] ([Intel XE#373]) +2 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_content_protection@dp-mst-lic-type-1:
- shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#2390] / [Intel XE#6974])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-1/igt@kms_content_protection@dp-mst-lic-type-1.html
* igt@kms_content_protection@legacy:
- shard-bmg: NOTRUN -> [FAIL][23] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +4 other tests fail
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-9/igt@kms_content_protection@legacy.html
* igt@kms_content_protection@legacy-hdcp14:
- shard-lnl: NOTRUN -> [SKIP][24] ([Intel XE#7642])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_content_protection@legacy-hdcp14.html
* igt@kms_cursor_crc@cursor-offscreen-512x170:
- shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#2321] / [Intel XE#7355]) +1 other test skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_cursor_crc@cursor-offscreen-512x170.html
* igt@kms_cursor_crc@cursor-onscreen-256x85:
- shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#2320]) +2 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_cursor_crc@cursor-onscreen-256x85.html
* igt@kms_cursor_crc@cursor-sliding-32x32:
- shard-lnl: NOTRUN -> [SKIP][27] ([Intel XE#1424]) +1 other test skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_cursor_crc@cursor-sliding-32x32.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-atomic:
- shard-lnl: NOTRUN -> [SKIP][28] ([Intel XE#309] / [Intel XE#7343])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic.html
* igt@kms_cursor_legacy@flip-vs-cursor-legacy:
- shard-bmg: [PASS][29] -> [FAIL][30] ([Intel XE#7809])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-1/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-4/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
- shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#2286] / [Intel XE#6035])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-9/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
* igt@kms_dp_link_training@uhbr-mst:
- shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#4354] / [Intel XE#7386])
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-1/igt@kms_dp_link_training@uhbr-mst.html
* igt@kms_dsc@dsc-with-bpc-formats-bigjoiner:
- shard-lnl: NOTRUN -> [SKIP][33] ([Intel XE#8265])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_dsc@dsc-with-bpc-formats-bigjoiner.html
* igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area:
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#4422] / [Intel XE#7442])
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html
* igt@kms_fbcon_fbt@fbc:
- shard-bmg: NOTRUN -> [SKIP][35] ([Intel XE#4156] / [Intel XE#7425])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_fbcon_fbt@fbc.html
* igt@kms_fbcon_fbt@psr-suspend:
- shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#6126] / [Intel XE#776])
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-9/igt@kms_fbcon_fbt@psr-suspend.html
* igt@kms_feature_discovery@display-3x:
- shard-lnl: NOTRUN -> [SKIP][37] ([Intel XE#703] / [Intel XE#7448])
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_feature_discovery@display-3x.html
* igt@kms_feature_discovery@psr2:
- shard-bmg: NOTRUN -> [SKIP][38] ([Intel XE#2374] / [Intel XE#6128])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_feature_discovery@psr2.html
* igt@kms_flip@2x-plain-flip-ts-check:
- shard-lnl: NOTRUN -> [SKIP][39] ([Intel XE#1421]) +2 other tests skip
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_flip@2x-plain-flip-ts-check.html
* igt@kms_flip_scaled_crc@flip-32bpp-yuv-linear-to-32bpp-yuv-linear-reflect-x:
- shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#7179])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_flip_scaled_crc@flip-32bpp-yuv-linear-to-32bpp-yuv-linear-reflect-x.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling:
- shard-lnl: NOTRUN -> [SKIP][41] ([Intel XE#1397] / [Intel XE#1745] / [Intel XE#7385]) +1 other test skip
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][42] ([Intel XE#1397] / [Intel XE#7385]) +1 other test skip
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling:
- shard-lnl: NOTRUN -> [SKIP][43] ([Intel XE#7178] / [Intel XE#7351]) +1 other test skip
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling:
- shard-bmg: NOTRUN -> [SKIP][44] ([Intel XE#7178] / [Intel XE#7351])
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-9/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling.html
* igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][45] ([Intel XE#7061] / [Intel XE#7356]) +2 other tests skip
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@drrs-argb161616f-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][46] ([Intel XE#7061] / [Intel XE#7356])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-argb161616f-draw-blt.html
* igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render:
- shard-bmg: NOTRUN -> [SKIP][47] ([Intel XE#2311]) +22 other tests skip
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][48] ([Intel XE#4141]) +5 other tests skip
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][49] ([Intel XE#6312] / [Intel XE#651]) +3 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-cur-indfb-move:
- shard-lnl: NOTRUN -> [SKIP][50] ([Intel XE#6312]) +6 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-cur-indfb-move.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-argb161616f-draw-render:
- shard-bmg: NOTRUN -> [SKIP][51] ([Intel XE#7061]) +2 other tests skip
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_frontbuffer_tracking@fbcdrrshdr-argb161616f-draw-render.html
* igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][52] ([Intel XE#7865]) +13 other tests skip
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][53] ([Intel XE#2313]) +19 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render:
- shard-lnl: NOTRUN -> [SKIP][54] ([Intel XE#656] / [Intel XE#7905]) +13 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-primscrn-spr-indfb-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][55] ([Intel XE#7905]) +16 other tests skip
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][56] ([Intel XE#7061]) +2 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-blt.html
* igt@kms_pipe_stress@stress-xrgb8888-yftiled:
- shard-lnl: NOTRUN -> [SKIP][57] ([Intel XE#6912] / [Intel XE#7375])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html
* igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier:
- shard-bmg: NOTRUN -> [SKIP][58] ([Intel XE#7283]) +1 other test skip
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-1/igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier.html
* igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier:
- shard-lnl: NOTRUN -> [SKIP][59] ([Intel XE#7283]) +1 other test skip
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier.html
* igt@kms_plane_lowres@tiling-x@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][60] ([Intel XE#599] / [Intel XE#7382]) +3 other tests skip
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_plane_lowres@tiling-x@pipe-b-edp-1.html
* igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c:
- shard-lnl: NOTRUN -> [SKIP][61] ([Intel XE#2763] / [Intel XE#6886]) +3 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b:
- shard-bmg: NOTRUN -> [SKIP][62] ([Intel XE#2763] / [Intel XE#6886]) +8 other tests skip
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b.html
* igt@kms_pm_dc@dc3co-vpb-simulation@pr:
- shard-bmg: NOTRUN -> [SKIP][63] ([Intel XE#8395]) +1 other test skip
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_pm_dc@dc3co-vpb-simulation@pr.html
* igt@kms_pm_dc@dc3co-vpb-simulation@psr2:
- shard-bmg: NOTRUN -> [SKIP][64] ([Intel XE#8396])
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_pm_dc@dc3co-vpb-simulation@psr2.html
* igt@kms_pm_rpm@package-g7:
- shard-lnl: NOTRUN -> [SKIP][65] ([Intel XE#6813])
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_pm_rpm@package-g7.html
* igt@kms_psr2_sf@pr-cursor-plane-update-sf:
- shard-lnl: NOTRUN -> [SKIP][66] ([Intel XE#2893] / [Intel XE#7304]) +2 other tests skip
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_psr2_sf@pr-cursor-plane-update-sf.html
* igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf:
- shard-bmg: NOTRUN -> [SKIP][67] ([Intel XE#1489]) +2 other tests skip
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr@fbc-pr-no-drrs:
- shard-bmg: NOTRUN -> [SKIP][68] ([Intel XE#2234] / [Intel XE#2850]) +3 other tests skip
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_psr@fbc-pr-no-drrs.html
* igt@kms_psr@fbc-psr2-suspend:
- shard-lnl: NOTRUN -> [SKIP][69] ([Intel XE#1406] / [Intel XE#7345])
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_psr@fbc-psr2-suspend.html
* igt@kms_psr@fbc-psr2-suspend@edp-1:
- shard-lnl: NOTRUN -> [SKIP][70] ([Intel XE#1406] / [Intel XE#4609])
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_psr@fbc-psr2-suspend@edp-1.html
* igt@kms_psr@pr-primary-blt:
- shard-lnl: NOTRUN -> [SKIP][71] ([Intel XE#1406]) +1 other test skip
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_psr@pr-primary-blt.html
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- shard-bmg: NOTRUN -> [SKIP][72] ([Intel XE#7795])
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-1/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
* igt@kms_rotation_crc@sprite-rotation-90:
- shard-bmg: NOTRUN -> [SKIP][73] ([Intel XE#3904] / [Intel XE#7342])
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-9/igt@kms_rotation_crc@sprite-rotation-90.html
* igt@kms_sharpness_filter@invalid-filter-with-plane:
- shard-bmg: NOTRUN -> [SKIP][74] ([Intel XE#6503])
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-9/igt@kms_sharpness_filter@invalid-filter-with-plane.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-lnl: NOTRUN -> [SKIP][75] ([Intel XE#362] / [Intel XE#5848])
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_vrr@negative-basic:
- shard-lnl: NOTRUN -> [SKIP][76] ([Intel XE#1499])
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_vrr@negative-basic.html
* igt@kms_vrr@seamless-rr-switch-virtual:
- shard-bmg: NOTRUN -> [SKIP][77] ([Intel XE#1499])
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_vrr@seamless-rr-switch-virtual.html
* igt@xe_eudebug@basic-vm-bind-ufence-reconnect:
- shard-bmg: NOTRUN -> [SKIP][78] ([Intel XE#7636]) +4 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@xe_eudebug@basic-vm-bind-ufence-reconnect.html
* igt@xe_eudebug_sriov@deny-sriov:
- shard-bmg: NOTRUN -> [SKIP][79] ([Intel XE#5793] / [Intel XE#7320] / [Intel XE#7464])
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-9/igt@xe_eudebug_sriov@deny-sriov.html
* igt@xe_evict@evict-mixed-threads-small-multi-queue:
- shard-bmg: NOTRUN -> [SKIP][80] ([Intel XE#8370])
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-1/igt@xe_evict@evict-mixed-threads-small-multi-queue.html
* igt@xe_evict_ccs@evict-overcommit-standalone-instantfree-samefd:
- shard-lnl: NOTRUN -> [SKIP][81] ([Intel XE#6540] / [Intel XE#688]) +4 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@xe_evict_ccs@evict-overcommit-standalone-instantfree-samefd.html
* igt@xe_exec_balancer@twice-cm-parallel-userptr-rebind:
- shard-lnl: NOTRUN -> [SKIP][82] ([Intel XE#7482]) +7 other tests skip
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@xe_exec_balancer@twice-cm-parallel-userptr-rebind.html
* igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr:
- shard-bmg: NOTRUN -> [SKIP][83] ([Intel XE#2322] / [Intel XE#7372]) +3 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr.html
* igt@xe_exec_basic@multigpu-once-null-rebind:
- shard-lnl: NOTRUN -> [SKIP][84] ([Intel XE#1392]) +3 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@xe_exec_basic@multigpu-once-null-rebind.html
* igt@xe_exec_fault_mode@many-multi-queue-imm:
- shard-bmg: NOTRUN -> [SKIP][85] ([Intel XE#8374]) +2 other tests skip
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-9/igt@xe_exec_fault_mode@many-multi-queue-imm.html
* igt@xe_exec_fault_mode@twice-multi-queue-invalid-userptr-fault:
- shard-lnl: NOTRUN -> [SKIP][86] ([Intel XE#8374]) +2 other tests skip
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@xe_exec_fault_mode@twice-multi-queue-invalid-userptr-fault.html
* igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-dyn-priority:
- shard-lnl: NOTRUN -> [SKIP][87] ([Intel XE#8364]) +14 other tests skip
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-dyn-priority.html
* igt@xe_exec_multi_queue@two-queues-basic-smem:
- shard-bmg: NOTRUN -> [SKIP][88] ([Intel XE#8364]) +12 other tests skip
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@xe_exec_multi_queue@two-queues-basic-smem.html
* igt@xe_exec_reset@multi-queue-gt-reset:
- shard-bmg: NOTRUN -> [SKIP][89] ([Intel XE#8369]) +1 other test skip
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-9/igt@xe_exec_reset@multi-queue-gt-reset.html
* igt@xe_exec_sip_eudebug@breakpoint-writesip:
- shard-lnl: NOTRUN -> [SKIP][90] ([Intel XE#7636]) +7 other tests skip
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@xe_exec_sip_eudebug@breakpoint-writesip.html
* igt@xe_exec_system_allocator@fault-benchmark:
- shard-bmg: [PASS][91] -> [FAIL][92] ([Intel XE#7850])
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-3/igt@xe_exec_system_allocator@fault-benchmark.html
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@xe_exec_system_allocator@fault-benchmark.html
* igt@xe_exec_threads@threads-multi-queue-cm-shared-vm-basic:
- shard-lnl: NOTRUN -> [SKIP][93] ([Intel XE#8378]) +5 other tests skip
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@xe_exec_threads@threads-multi-queue-cm-shared-vm-basic.html
* igt@xe_exec_threads@threads-multi-queue-mixed-fd-userptr-invalidate:
- shard-bmg: NOTRUN -> [SKIP][94] ([Intel XE#8378]) +5 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-9/igt@xe_exec_threads@threads-multi-queue-mixed-fd-userptr-invalidate.html
* igt@xe_gpgpu_fill@offset-4x4:
- shard-lnl: NOTRUN -> [SKIP][95] ([Intel XE#7954])
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@xe_gpgpu_fill@offset-4x4.html
* igt@xe_live_ktest@xe_bo@xe_bo_evict_kunit:
- shard-lnl: NOTRUN -> [SKIP][96] ([Intel XE#2229])
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@xe_live_ktest@xe_bo@xe_bo_evict_kunit.html
* igt@xe_multigpu_svm@mgpu-concurrent-access-prefetch:
- shard-bmg: NOTRUN -> [SKIP][97] ([Intel XE#6964]) +1 other test skip
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@xe_multigpu_svm@mgpu-concurrent-access-prefetch.html
* igt@xe_multigpu_svm@mgpu-xgpu-access-prefetch:
- shard-lnl: NOTRUN -> [SKIP][98] ([Intel XE#6964]) +1 other test skip
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@xe_multigpu_svm@mgpu-xgpu-access-prefetch.html
* igt@xe_non_msix@walker-interrupt-notification-non-msix:
- shard-bmg: NOTRUN -> [SKIP][99] ([Intel XE#7622])
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@xe_non_msix@walker-interrupt-notification-non-msix.html
* igt@xe_page_reclaim@random:
- shard-bmg: NOTRUN -> [SKIP][100] ([Intel XE#7793])
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-1/igt@xe_page_reclaim@random.html
* igt@xe_pat@pat-sw-hw-reset-compare:
- shard-lnl: NOTRUN -> [FAIL][101] ([Intel XE#7695])
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@xe_pat@pat-sw-hw-reset-compare.html
* igt@xe_peer2peer@write:
- shard-bmg: NOTRUN -> [SKIP][102] ([Intel XE#2427] / [Intel XE#6953] / [Intel XE#7326] / [Intel XE#7353])
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@xe_peer2peer@write.html
* igt@xe_pm@d3cold-mmap-vram:
- shard-lnl: NOTRUN -> [SKIP][103] ([Intel XE#2284] / [Intel XE#366] / [Intel XE#7370])
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@xe_pm@d3cold-mmap-vram.html
* igt@xe_query@multigpu-query-invalid-size:
- shard-lnl: NOTRUN -> [SKIP][104] ([Intel XE#944]) +1 other test skip
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@xe_query@multigpu-query-invalid-size.html
* igt@xe_query@multigpu-query-mem-usage:
- shard-bmg: NOTRUN -> [SKIP][105] ([Intel XE#944]) +1 other test skip
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-1/igt@xe_query@multigpu-query-mem-usage.html
* igt@xe_sriov_admin@sched-priority-write-readback-vfs-disabled:
- shard-lnl: NOTRUN -> [SKIP][106] ([Intel XE#7174])
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-4/igt@xe_sriov_admin@sched-priority-write-readback-vfs-disabled.html
* igt@xe_sriov_scheduling@nonpreempt-engine-resets-low-priority:
- shard-lnl: NOTRUN -> [SKIP][107] ([Intel XE#8339])
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@xe_sriov_scheduling@nonpreempt-engine-resets-low-priority.html
* igt@xe_sriov_vram@vf-access-after-resize-down:
- shard-bmg: NOTRUN -> [FAIL][108] ([Intel XE#7992]) +1 other test fail
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@xe_sriov_vram@vf-access-after-resize-down.html
* igt@xe_vm@overcommit-fault-vram-lr-no-overcommit:
- shard-lnl: NOTRUN -> [SKIP][109] ([Intel XE#7892])
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@xe_vm@overcommit-fault-vram-lr-no-overcommit.html
#### Possible fixes ####
* igt@core_hotunplug@unbind-rebind:
- shard-bmg: [SKIP][110] ([Intel XE#8517]) -> [PASS][111]
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@core_hotunplug@unbind-rebind.html
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@core_hotunplug@unbind-rebind.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
- shard-bmg: [SKIP][112] ([Intel XE#8480]) -> [PASS][113] +134 other tests pass
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
* igt@kms_big_fb@linear-8bpp-rotate-0:
- shard-lnl: [ABORT][114] ([Intel XE#4760]) -> [PASS][115]
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-lnl-1/igt@kms_big_fb@linear-8bpp-rotate-0.html
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-5/igt@kms_big_fb@linear-8bpp-rotate-0.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic:
- shard-bmg: [FAIL][116] ([Intel XE#7571]) -> [PASS][117]
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-4/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-9/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-lnl: [FAIL][118] ([Intel XE#301]) -> [PASS][119] +3 other tests pass
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_pm_rpm@basic-rte:
- shard-bmg: [SKIP][120] -> [PASS][121] +1 other test pass
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_pm_rpm@basic-rte.html
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_pm_rpm@basic-rte.html
* igt@xe_evict@evict-mixed-many-threads-small:
- shard-bmg: [INCOMPLETE][122] ([Intel XE#6321] / [Intel XE#8355]) -> [PASS][123]
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-7/igt@xe_evict@evict-mixed-many-threads-small.html
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-5/igt@xe_evict@evict-mixed-many-threads-small.html
* igt@xe_exec_fault_mode@many-bindexecqueue-userptr-invalidate-prefetch:
- shard-bmg: [DMESG-FAIL][124] ([Intel XE#7774]) -> [PASS][125]
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-invalidate-prefetch.html
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-invalidate-prefetch.html
* igt@xe_fault_injection@inject-fault-probe-function-guc_wait_ucode:
- shard-bmg: [ABORT][126] ([Intel XE#8007]) -> [PASS][127] +2 other tests pass
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-4/igt@xe_fault_injection@inject-fault-probe-function-guc_wait_ucode.html
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-9/igt@xe_fault_injection@inject-fault-probe-function-guc_wait_ucode.html
#### Warnings ####
* igt@kms_big_fb@4-tiled-32bpp-rotate-90:
- shard-bmg: [SKIP][128] ([Intel XE#8480]) -> [SKIP][129] ([Intel XE#2327])
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip:
- shard-bmg: [SKIP][130] ([Intel XE#8480]) -> [SKIP][131] ([Intel XE#1124]) +2 other tests skip
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
* igt@kms_bw@linear-tiling-4-displays-target-3840x2160p:
- shard-bmg: [SKIP][132] ([Intel XE#8480]) -> [SKIP][133] ([Intel XE#367]) +1 other test skip
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_bw@linear-tiling-4-displays-target-3840x2160p.html
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_bw@linear-tiling-4-displays-target-3840x2160p.html
* igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs:
- shard-bmg: [SKIP][134] ([Intel XE#8480]) -> [SKIP][135] ([Intel XE#2652])
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs:
- shard-bmg: [SKIP][136] ([Intel XE#8480]) -> [SKIP][137] ([Intel XE#2887]) +2 other tests skip
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs.html
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs.html
* igt@kms_chamelium_color_pipeline@plane-ctm3x4:
- shard-bmg: [SKIP][138] ([Intel XE#8480]) -> [SKIP][139] ([Intel XE#7358])
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html
* igt@kms_chamelium_hpd@dp-hpd-after-suspend:
- shard-bmg: [SKIP][140] ([Intel XE#8480]) -> [SKIP][141] ([Intel XE#2252]) +1 other test skip
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_chamelium_hpd@dp-hpd-after-suspend.html
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_chamelium_hpd@dp-hpd-after-suspend.html
* igt@kms_content_protection@lic-type-0-hdcp14:
- shard-bmg: [SKIP][142] ([Intel XE#8480]) -> [FAIL][143] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374])
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_content_protection@lic-type-0-hdcp14.html
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_content_protection@lic-type-0-hdcp14.html
* igt@kms_cursor_crc@cursor-random-64x21:
- shard-bmg: [SKIP][144] ([Intel XE#8480]) -> [SKIP][145] ([Intel XE#2320])
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_cursor_crc@cursor-random-64x21.html
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_cursor_crc@cursor-random-64x21.html
* igt@kms_dp_link_training@non-uhbr-mst:
- shard-bmg: [SKIP][146] ([Intel XE#8480]) -> [SKIP][147] ([Intel XE#4354] / [Intel XE#5882])
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_dp_link_training@non-uhbr-mst.html
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_dp_link_training@non-uhbr-mst.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling:
- shard-bmg: [SKIP][148] ([Intel XE#8480]) -> [SKIP][149] ([Intel XE#7178] / [Intel XE#7351]) +1 other test skip
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html
* igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-blt:
- shard-bmg: [SKIP][150] ([Intel XE#8480]) -> [SKIP][151] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-blt.html
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-blt.html
* igt@kms_frontbuffer_tracking@drrshdr-1p-rte:
- shard-bmg: [SKIP][152] ([Intel XE#8480]) -> [SKIP][153] ([Intel XE#2311]) +9 other tests skip
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_frontbuffer_tracking@drrshdr-1p-rte.html
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_frontbuffer_tracking@drrshdr-1p-rte.html
* igt@kms_frontbuffer_tracking@drrshdr-argb161616f-draw-mmap-wc:
- shard-bmg: [SKIP][154] ([Intel XE#8480]) -> [SKIP][155] ([Intel XE#7061]) +3 other tests skip
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_frontbuffer_tracking@drrshdr-argb161616f-draw-mmap-wc.html
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_frontbuffer_tracking@drrshdr-argb161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
- shard-bmg: [SKIP][156] ([Intel XE#8480]) -> [SKIP][157] ([Intel XE#4141]) +2 other tests skip
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary:
- shard-bmg: [SKIP][158] ([Intel XE#8480]) -> [SKIP][159] ([Intel XE#2313]) +13 other tests skip
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html
* igt@kms_hdr@brightness-with-hdr:
- shard-bmg: [SKIP][160] ([Intel XE#3374] / [Intel XE#3544]) -> [SKIP][161] ([Intel XE#3544])
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-7/igt@kms_hdr@brightness-with-hdr.html
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-10/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier:
- shard-bmg: [SKIP][162] ([Intel XE#8480]) -> [SKIP][163] ([Intel XE#7283])
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier.html
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5:
- shard-bmg: [SKIP][164] ([Intel XE#8480]) -> [SKIP][165] ([Intel XE#2763] / [Intel XE#6886])
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5.html
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5.html
* igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-sf:
- shard-bmg: [SKIP][166] ([Intel XE#8480]) -> [SKIP][167] ([Intel XE#1489]) +1 other test skip
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-sf.html
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr@psr-sprite-plane-onoff:
- shard-bmg: [SKIP][168] ([Intel XE#8480]) -> [SKIP][169] ([Intel XE#2234] / [Intel XE#2850]) +2 other tests skip
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@kms_psr@psr-sprite-plane-onoff.html
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@kms_psr@psr-sprite-plane-onoff.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-bmg: [SKIP][170] ([Intel XE#2509] / [Intel XE#7437]) -> [SKIP][171] ([Intel XE#2426] / [Intel XE#5848])
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-3/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-8/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@xe_eudebug@multigpu-basic-client:
- shard-bmg: [SKIP][172] ([Intel XE#8480]) -> [SKIP][173] ([Intel XE#7636]) +1 other test skip
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@xe_eudebug@multigpu-basic-client.html
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@xe_eudebug@multigpu-basic-client.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-rebind:
- shard-bmg: [SKIP][174] ([Intel XE#8480]) -> [SKIP][175] ([Intel XE#2322] / [Intel XE#7372]) +1 other test skip
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-rebind.html
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-rebind.html
* igt@xe_exec_fault_mode@many-execqueues-multi-queue-imm:
- shard-bmg: [SKIP][176] ([Intel XE#8480]) -> [SKIP][177] ([Intel XE#8374]) +4 other tests skip
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@xe_exec_fault_mode@many-execqueues-multi-queue-imm.html
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@xe_exec_fault_mode@many-execqueues-multi-queue-imm.html
* igt@xe_exec_multi_queue@many-execs-preempt-mode-close-fd:
- shard-bmg: [SKIP][178] ([Intel XE#8480]) -> [SKIP][179] ([Intel XE#8364]) +3 other tests skip
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@xe_exec_multi_queue@many-execs-preempt-mode-close-fd.html
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@xe_exec_multi_queue@many-execs-preempt-mode-close-fd.html
* igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr-invalidate-race:
- shard-bmg: [SKIP][180] ([Intel XE#8480]) -> [SKIP][181] ([Intel XE#8378]) +1 other test skip
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr-invalidate-race.html
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr-invalidate-race.html
* igt@xe_mmap@small-bar:
- shard-bmg: [SKIP][182] ([Intel XE#8480]) -> [SKIP][183] ([Intel XE#586] / [Intel XE#7323] / [Intel XE#7384])
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@xe_mmap@small-bar.html
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@xe_mmap@small-bar.html
* igt@xe_page_reclaim@invalid-1g:
- shard-bmg: [SKIP][184] ([Intel XE#8480]) -> [SKIP][185] ([Intel XE#7793])
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@xe_page_reclaim@invalid-1g.html
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@xe_page_reclaim@invalid-1g.html
* igt@xe_pxp@pxp-optout:
- shard-bmg: [SKIP][186] ([Intel XE#8480]) -> [SKIP][187] ([Intel XE#4733] / [Intel XE#7417])
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@xe_pxp@pxp-optout.html
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@xe_pxp@pxp-optout.html
* igt@xe_query@multigpu-query-topology:
- shard-bmg: [SKIP][188] ([Intel XE#8480]) -> [SKIP][189] ([Intel XE#944])
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f/shard-bmg-5/igt@xe_query@multigpu-query-topology.html
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/shard-bmg-6/igt@xe_query@multigpu-query-topology.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[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#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[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#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#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
[Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374
[Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2427]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2427
[Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
[Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
[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#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
[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#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4416]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4416
[Intel XE#4417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4417
[Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
[Intel XE#4609]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4609
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#4760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4760
[Intel XE#5447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5447
[Intel XE#5793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5793
[Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
[Intel XE#586]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/586
[Intel XE#5882]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5882
[Intel XE#599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/599
[Intel XE#6035]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6035
[Intel XE#6126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6126
[Intel XE#6128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6128
[Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
[Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
[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#6540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6540
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#6813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6813
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
[Intel XE#6912]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6912
[Intel XE#6953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6953
[Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
[Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
[Intel XE#703]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/703
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7174]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7174
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[Intel XE#7179]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7179
[Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
[Intel XE#7304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7304
[Intel XE#7320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7320
[Intel XE#7323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7323
[Intel XE#7326]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7326
[Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
[Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343
[Intel XE#7345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7345
[Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
[Intel XE#7353]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7353
[Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355
[Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
[Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
[Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370
[Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
[Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
[Intel XE#7375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7375
[Intel XE#7381]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7381
[Intel XE#7382]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7382
[Intel XE#7384]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7384
[Intel XE#7385]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7385
[Intel XE#7386]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7386
[Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
[Intel XE#7425]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7425
[Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437
[Intel XE#7442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7442
[Intel XE#7448]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7448
[Intel XE#7464]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7464
[Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
[Intel XE#7571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7571
[Intel XE#7622]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7622
[Intel XE#7636]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7636
[Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
[Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
[Intel XE#7695]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7695
[Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776
[Intel XE#7774]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7774
[Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
[Intel XE#7795]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7795
[Intel XE#7809]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7809
[Intel XE#7850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7850
[Intel XE#7865]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7865
[Intel XE#7892]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7892
[Intel XE#7905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7905
[Intel XE#7954]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7954
[Intel XE#7992]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7992
[Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007
[Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
[Intel XE#8339]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8339
[Intel XE#8355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8355
[Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
[Intel XE#8365]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8365
[Intel XE#8369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8369
[Intel XE#8370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8370
[Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374
[Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378
[Intel XE#8395]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8395
[Intel XE#8396]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8396
[Intel XE#8480]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8480
[Intel XE#8517]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8517
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* Linux: xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f -> xe-pw-169511v1
IGT_8988: 8988
xe-5309-a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f: a2d82f27ac35c691c1c65b40c72b13d8b2a7f91f
xe-pw-169511v1: 169511v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169511v1/index.html
[-- Attachment #2: Type: text/html, Size: 69145 bytes --]
^ permalink raw reply [flat|nested] 34+ messages in thread