* [PATCH v2 1/6] drm/xe/xe_ras: Handle page offline requests for device memory ecc errors
2026-09-07 9:47 [PATCH v2 0/6] Add support to handle memory double-bit ecc errors Riana Tauro
@ 2026-09-07 9:47 ` Riana Tauro
2026-09-07 10:14 ` sashiko-bot
2026-09-07 17:35 ` Ghimiray, Himal Prasad
2026-09-07 9:47 ` [PATCH v2 2/6] drm/xe/xe_ras: Add support to query page offline queue and list Riana Tauro
` (7 subsequent siblings)
8 siblings, 2 replies; 25+ messages in thread
From: Riana Tauro @ 2026-09-07 9:47 UTC (permalink / raw)
To: intel-xe
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, aravind.iddamsetty,
badal.nilawar, raag.jadav, ravi.kishore.koppuravuri,
mallesh.koujalagi, soham.purkait, tejas.upadhyay,
Himal Prasad Ghimiray
Add basic support for sending page offline/decline requests to system
controller and use it for device memory ECC error handling.
Pages that belong to critical BOs cannot be handled by offlining and
require a SBR (Secondary Bus Reset).
Pages that are configured for log-only handling are not marked as bad by
firmware.
For all other valid page addresses, the first occurrence of error
indicates a poison error and the page is offlined only by software.
Firmware avoids permanently marking the page as bad. The second occurrence
of an error indicates a Double-bit ECC error and the firmware
permanently marks the page as bad.
Cc: Tejas Upadhyay <tejas.upadhyay@intel.com>
Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
---
v2: use ret in sigid logging (Mallesh)
remove additional log
use xe_assert (Michal)
---
drivers/gpu/drm/xe/xe_ras.c | 118 +++++++++++++++++-
drivers/gpu/drm/xe/xe_ras_types.h | 35 ++++++
drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 2 +
3 files changed, 150 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
index 7a85735c57d5..94ffd0852938 100644
--- a/drivers/gpu/drm/xe/xe_ras.c
+++ b/drivers/gpu/drm/xe/xe_ras.c
@@ -3,6 +3,8 @@
* Copyright © 2026 Intel Corporation
*/
+#include "xe_assert.h"
+#include "xe_bo.h"
#include "xe_configfs.h"
#include "xe_debugfs.h"
#include "xe_device.h"
@@ -16,6 +18,7 @@
#include "xe_sysctrl_event_types.h"
#include "xe_sysctrl_mailbox.h"
#include "xe_sysctrl_mailbox_types.h"
+#include "xe_ttm_vram_mgr.h"
#define CORE_COMPUTE_UNCORR_TYPE GENMASK(26, 25)
/*
@@ -201,6 +204,110 @@ static inline const char *comp_to_str(u8 component)
return xe_ras_components[component];
}
+static int send_page_offline_cmd(struct xe_device *xe, u64 page_address,
+ enum xe_ras_page_action action)
+{
+ struct xe_sysctrl_mailbox_command command = {0};
+ struct xe_ras_page_offline_request request = {0};
+ struct xe_ras_page_offline_response response = {0};
+ size_t rlen;
+ int ret;
+
+ if (!xe->info.has_sysctrl)
+ return 0;
+
+ xe_assert(xe, action < XE_RAS_PAGE_ACTION_MAX);
+
+ request.page_address = page_address;
+ request.action = action;
+
+ xe_sysctrl_create_command(&command, XE_SYSCTRL_GROUP_GFSP, XE_SYSCTRL_CMD_PAGE_OFFLINE,
+ &request, sizeof(request), &response, sizeof(response));
+
+ ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
+ if (ret) {
+ xe_log_err(xe, SYSCTRL, ret, "failed to send page offline command\n");
+ return ret;
+ }
+
+ if (rlen != sizeof(response)) {
+ xe_log_err(xe, SYSCTRL, -EINVAL,
+ "unexpected page offline response length %zu (expected %zu)\n",
+ rlen, sizeof(response));
+ return -EINVAL;
+ }
+
+ ret = ras_status_to_errno(response.status);
+ if (ret) {
+ xe_log_err(xe, SYSCTRL, ret, "page offline command failed with status %u\n",
+ response.status);
+ return ret;
+ }
+
+ return ret;
+}
+
+static int handle_page_offline(struct xe_device *xe, u64 page_address, bool send_cmd)
+{
+ enum xe_ras_page_action action;
+ int ret = 0;
+
+ if (!IS_ALIGNED(page_address, XE_PAGE_SIZE)) {
+ xe_log_err(xe, SYSCTRL, -EINVAL, "Unaligned physical page address: 0x%llx\n",
+ page_address);
+ return -EINVAL;
+ }
+
+ ret = xe_ttm_vram_handle_addr_fault(xe, page_address);
+
+ /*
+ * Handle return code from address fault handling function:
+ * 0: Page soft offlined, decline to firmware
+ * -EIO: Address belongs to a critical BO/stolen area that cannot be offlined
+ * -EOPNOTSUPP: Address is valid and can be offlined but user policy is not to offline
+ * -EEXIST: Address is soft offlined but yet to be offlined by firmware for second
+ * occurrence
+ */
+
+ switch (ret) {
+ case 0:
+ action = XE_RAS_PAGE_ACTION_DECLINE;
+ xe_log_err(xe, DEVICE_MEMORY, ret,
+ "Poison detected at physical address 0x%llx, page software offlined\n",
+ page_address);
+ break;
+ /* User policy set to decline page offlining */
+ case -EOPNOTSUPP:
+ action = XE_RAS_PAGE_ACTION_DECLINE;
+ xe_log_err(xe, DEVICE_MEMORY, ret,
+ "User policy set to decline page offlining for physical address 0x%llx\n",
+ page_address);
+ break;
+ case -EIO:
+ xe_log_err(xe, DEVICE_MEMORY, ret,
+ "Physical page address belongs to critical BO: 0x%llx\n", page_address);
+ return ret;
+ case -EEXIST:
+ action = XE_RAS_PAGE_ACTION_OFFLINE;
+ xe_log_err(xe, DEVICE_MEMORY, ret,
+ "Double-bit ECC error detected at physical address 0x%llx, page already software offlined\n",
+ page_address);
+ break;
+ default:
+ xe_log_err(xe, DEVICE_MEMORY, ret, "Failed to handle address fault 0x%llx\n",
+ page_address);
+ return 0;
+ }
+
+ if (send_cmd) {
+ ret = send_page_offline_cmd(xe, page_address, action);
+ if (ret)
+ return ret;
+ }
+
+ return 0;
+}
+
static bool ras_counter_is_valid(struct xe_device *xe, struct xe_ras_error_class *counter)
{
u8 severity = counter->common.severity;
@@ -368,11 +475,12 @@ static u8 handle_soc_internal_errors(struct xe_device *xe, struct xe_ras_error_a
static u8 handle_device_memory_errors(struct xe_device *xe, struct xe_ras_error_array *arr)
{
struct xe_ras_memory_error *info = (void *)arr->details;
+ int ret;
/*
* For memory errors, the recovery action depends on the error category
*
- * TODO: Double-bit ECC errors: Page offlining
+ * Double-bit ECC errors: Page offlining
* Poison and data parity errors: Log only
* For any other memory errors, request a reset as recovery mechanism
*/
@@ -384,10 +492,10 @@ static u8 handle_device_memory_errors(struct xe_device *xe, struct xe_ras_error_
xe_info(xe, "[RAS]: Data parity error detected\n");
break;
case XE_RAS_MEMORY_DB_ECC:
- xe_info(xe, "[RAS]: Double-bit ECC error detected at sw address 0x%llx\n",
- info->sw_address);
- /* TODO: Add page offlining for Double-bit ECC error */
- fallthrough;
+ ret = handle_page_offline(xe, info->sw_address, true);
+ if (ret)
+ return XE_RAS_RECOVERY_ACTION_RESET;
+ break;
default:
return XE_RAS_RECOVERY_ACTION_RESET;
}
diff --git a/drivers/gpu/drm/xe/xe_ras_types.h b/drivers/gpu/drm/xe/xe_ras_types.h
index fe6f3658a2a4..20c74593ce05 100644
--- a/drivers/gpu/drm/xe/xe_ras_types.h
+++ b/drivers/gpu/drm/xe/xe_ras_types.h
@@ -17,6 +17,19 @@
#define XE_RAS_MEMORY_POISON BIT(2)
#define XE_RAS_MEMORY_DATA_PARITY BIT(5)
+/**
+ * enum xe_ras_page_action - Page offline actions for page offline request
+ *
+ * @XE_RAS_PAGE_ACTION_OFFLINE: Instruct firmware to offline the page
+ * @XE_RAS_PAGE_ACTION_DECLINE: Instruct firmware to remove the page from queue
+ * @XE_RAS_PAGE_ACTION_MAX: Max value
+ */
+enum xe_ras_page_action {
+ XE_RAS_PAGE_ACTION_OFFLINE,
+ XE_RAS_PAGE_ACTION_DECLINE,
+ XE_RAS_PAGE_ACTION_MAX
+};
+
/**
* enum xe_ras_recovery_action - RAS recovery actions
*
@@ -295,6 +308,28 @@ struct xe_ras_memory_error {
u32 reserved2[10];
} __packed;
+/**
+ * struct xe_ras_page_offline_request - Request for page offline command
+ */
+struct xe_ras_page_offline_request {
+ /** @page_address: Page address (4KB aligned) */
+ u64 page_address;
+ /** @action: Action to be performed, see &enum xe_ras_page_action */
+ u32 action;
+ /** @reserved: Reserved for future use */
+ u32 reserved;
+} __packed;
+
+/**
+ * struct xe_ras_page_offline_response - Response from page offline command
+ */
+struct xe_ras_page_offline_response {
+ /** @status: Status of the page offline request */
+ u32 status;
+ /** @reserved: Reserved for future use */
+ u32 reserved;
+} __packed;
+
/**
* struct xe_ras_get_health_request - Request structure for obtaining gpu health
*/
diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
index 66e7cbcc3f91..590dd408399c 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
+++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
@@ -28,6 +28,7 @@ enum xe_sysctrl_group {
* @XE_SYSCTRL_CMD_GET_THRESHOLD: Retrieve error threshold
* @XE_SYSCTRL_CMD_SET_THRESHOLD: Set error threshold
* @XE_SYSCTRL_CMD_GET_PENDING_EVENT: Retrieve pending event
+ * @XE_SYSCTRL_CMD_PAGE_OFFLINE: Instruct firmware to offline/decline a page
* @XE_SYSCTRL_CMD_GET_HEALTH: Retrieve gpu health
* @XE_SYSCTRL_CMD_SET_HEALTH: Set gpu health
*/
@@ -38,6 +39,7 @@ enum xe_sysctrl_gfsp_cmd {
XE_SYSCTRL_CMD_GET_THRESHOLD = 0x05,
XE_SYSCTRL_CMD_SET_THRESHOLD = 0x06,
XE_SYSCTRL_CMD_GET_PENDING_EVENT = 0x07,
+ XE_SYSCTRL_CMD_PAGE_OFFLINE = 0x08,
XE_SYSCTRL_CMD_GET_HEALTH = 0x0B,
XE_SYSCTRL_CMD_SET_HEALTH = 0x0C,
};
--
2.47.1
^ permalink raw reply related [flat|nested] 25+ messages in thread* Re: [PATCH v2 1/6] drm/xe/xe_ras: Handle page offline requests for device memory ecc errors
2026-09-07 9:47 ` [PATCH v2 1/6] drm/xe/xe_ras: Handle page offline requests for device memory " Riana Tauro
@ 2026-09-07 10:14 ` sashiko-bot
2026-09-07 17:35 ` Ghimiray, Himal Prasad
1 sibling, 0 replies; 25+ messages in thread
From: sashiko-bot @ 2026-09-07 10:14 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Unhandled errors from `xe_ttm_vram_handle_addr_fault` are silently converted to success (return 0) in `handle_page_offline`, bypassing the required device reset for Double-bit ECC errors.
- [High] Mismatch between hardware page size (XE_PAGE_SIZE) and CPU page size (PAGE_SIZE) causes page offlining to fail on non-4KB page architectures.
--
commit b5f7912325b590064c71dc561b34bee2f792f1f0
Author: Riana Tauro <riana.tauro@intel.com>
drm/xe/xe_ras: Handle page offline requests for device memory ecc errors
This commit adds basic support for sending page offline/decline requests to
the system controller. It uses this to handle device memory ECC errors.
> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
> index 7a85735c57d58..94ffd08529384 100644
> --- a/drivers/gpu/drm/xe/xe_ras.c
> +++ b/drivers/gpu/drm/xe/xe_ras.c
[ ... ]
> @@ -201,6 +204,110 @@ static inline const char *comp_to_str(u8 component)
[ ... ]
> +static int handle_page_offline(struct xe_device *xe, u64 page_address, bool send_cmd)
> +{
> + enum xe_ras_page_action action;
> + int ret = 0;
> +
> + if (!IS_ALIGNED(page_address, XE_PAGE_SIZE)) {
> + xe_log_err(xe, SYSCTRL, -EINVAL, "Unaligned physical page address: 0x%llx\n",
> + page_address);
> + return -EINVAL;
> + }
> +
> + ret = xe_ttm_vram_handle_addr_fault(xe, page_address);
[Severity: High]
Can this validation cause page offlining to fail on architectures where the
CPU page size is not 4KB?
Here, the address is validated using XE_PAGE_SIZE (4KB). However, the
downstream function xe_ttm_vram_handle_addr_fault() rejects addresses that
are not aligned to the system's PAGE_SIZE:
xe_ttm_vram_handle_addr_fault() {
/* Assert that the address is PAGE_SIZE aligned */
if (WARN_ON_ONCE(!IS_ALIGNED(addr, PAGE_SIZE))) {
...
return -EINVAL;
}
...
}
On architectures where the CPU page size is 16KB or 64KB, providing a
4KB-aligned page address will pass the XE_PAGE_SIZE check but fail in
xe_ttm_vram_handle_addr_fault(), returning -EINVAL.
> +
> + /*
> + * Handle return code from address fault handling function:
[ ... ]
> + switch (ret) {
[ ... ]
> + default:
> + xe_log_err(xe, DEVICE_MEMORY, ret, "Failed to handle address fault 0x%llx\n",
> + page_address);
> + return 0;
> + }
[Severity: High]
Does this default case incorrectly return 0 when an unhandled error occurs?
If xe_ttm_vram_handle_addr_fault() fails with an unexpected error (like
-ENOMEM or the -EINVAL from the alignment check above), returning 0 here
converts the failure into a success.
[ ... ]
> @@ -368,11 +475,12 @@ static u8 handle_soc_internal_errors(struct xe_device *xe, struct xe_ras_error_a
> static u8 handle_device_memory_errors(struct xe_device *xe, struct xe_ras_error_array *arr)
> {
> struct xe_ras_memory_error *info = (void *)arr->details;
> + int ret;
>
> /*
> * For memory errors, the recovery action depends on the error category
[ ... ]
> case XE_RAS_MEMORY_DB_ECC:
> - xe_info(xe, "[RAS]: Double-bit ECC error detected at sw address 0x%llx\n",
> - info->sw_address);
> - /* TODO: Add page offlining for Double-bit ECC error */
> - fallthrough;
> + ret = handle_page_offline(xe, info->sw_address, true);
> + if (ret)
> + return XE_RAS_RECOVERY_ACTION_RESET;
> + break;
[Severity: High]
Since handle_page_offline() returns 0 for unhandled errors, does this bypass
the required device reset for Double-bit ECC errors?
The caller relies on a non-zero return value to trigger the GPU reset on
unhandled DB-ECC errors. If the error is swallowed in the default case above,
memory corruption might remain unmitigated without a reset.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260907094706.1407436-8-riana.tauro@intel.com?part=1
^ permalink raw reply [flat|nested] 25+ messages in thread* Re: [PATCH v2 1/6] drm/xe/xe_ras: Handle page offline requests for device memory ecc errors
2026-09-07 9:47 ` [PATCH v2 1/6] drm/xe/xe_ras: Handle page offline requests for device memory " Riana Tauro
2026-09-07 10:14 ` sashiko-bot
@ 2026-09-07 17:35 ` Ghimiray, Himal Prasad
2026-09-11 6:45 ` Tauro, Riana
1 sibling, 1 reply; 25+ messages in thread
From: Ghimiray, Himal Prasad @ 2026-09-07 17:35 UTC (permalink / raw)
To: Riana Tauro, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, aravind.iddamsetty, badal.nilawar,
raag.jadav, ravi.kishore.koppuravuri, mallesh.koujalagi,
soham.purkait, tejas.upadhyay
On 07-09-2026 15:17, Riana Tauro wrote:
> Add basic support for sending page offline/decline requests to system
> controller and use it for device memory ECC error handling.
> Pages that belong to critical BOs cannot be handled by offlining and
> require a SBR (Secondary Bus Reset).
> Pages that are configured for log-only handling are not marked as bad by
> firmware.
>
> For all other valid page addresses, the first occurrence of error
> indicates a poison error and the page is offlined only by software.
> Firmware avoids permanently marking the page as bad. The second occurrence
> of an error indicates a Double-bit ECC error and the firmware
> permanently marks the page as bad.
>
> Cc: Tejas Upadhyay <tejas.upadhyay@intel.com>
> Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> ---
> v2: use ret in sigid logging (Mallesh)
> remove additional log
> use xe_assert (Michal)
> ---
> drivers/gpu/drm/xe/xe_ras.c | 118 +++++++++++++++++-
> drivers/gpu/drm/xe/xe_ras_types.h | 35 ++++++
> drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 2 +
> 3 files changed, 150 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
> index 7a85735c57d5..94ffd0852938 100644
> --- a/drivers/gpu/drm/xe/xe_ras.c
> +++ b/drivers/gpu/drm/xe/xe_ras.c
> @@ -3,6 +3,8 @@
> * Copyright © 2026 Intel Corporation
> */
>
> +#include "xe_assert.h"
> +#include "xe_bo.h"
> #include "xe_configfs.h"
> #include "xe_debugfs.h"
> #include "xe_device.h"
> @@ -16,6 +18,7 @@
> #include "xe_sysctrl_event_types.h"
> #include "xe_sysctrl_mailbox.h"
> #include "xe_sysctrl_mailbox_types.h"
> +#include "xe_ttm_vram_mgr.h"
>
> #define CORE_COMPUTE_UNCORR_TYPE GENMASK(26, 25)
> /*
> @@ -201,6 +204,110 @@ static inline const char *comp_to_str(u8 component)
> return xe_ras_components[component];
> }
>
> +static int send_page_offline_cmd(struct xe_device *xe, u64 page_address,
> + enum xe_ras_page_action action)
> +{
> + struct xe_sysctrl_mailbox_command command = {0};
> + struct xe_ras_page_offline_request request = {0};
> + struct xe_ras_page_offline_response response = {0};
> + size_t rlen;
> + int ret;
> +
> + if (!xe->info.has_sysctrl)
> + return 0;
> +
> + xe_assert(xe, action < XE_RAS_PAGE_ACTION_MAX);
> +
> + request.page_address = page_address;
> + request.action = action;
> +
> + xe_sysctrl_create_command(&command, XE_SYSCTRL_GROUP_GFSP, XE_SYSCTRL_CMD_PAGE_OFFLINE,
> + &request, sizeof(request), &response, sizeof(response));
> +
> + ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
> + if (ret) {
> + xe_log_err(xe, SYSCTRL, ret, "failed to send page offline command\n");
> + return ret;
> + }
> +
> + if (rlen != sizeof(response)) {
> + xe_log_err(xe, SYSCTRL, -EINVAL,
> + "unexpected page offline response length %zu (expected %zu)\n",
> + rlen, sizeof(response));
> + return -EINVAL;
> + }
> +
> + ret = ras_status_to_errno(response.status);
> + if (ret) {
> + xe_log_err(xe, SYSCTRL, ret, "page offline command failed with status %u\n",
> + response.status);
> + return ret;
> + }
> +
> + return ret;
> +}
> +
> +static int handle_page_offline(struct xe_device *xe, u64 page_address, bool send_cmd)
> +{
> + enum xe_ras_page_action action;
> + int ret = 0;
> +
> + if (!IS_ALIGNED(page_address, XE_PAGE_SIZE)) {
> + xe_log_err(xe, SYSCTRL, -EINVAL, "Unaligned physical page address: 0x%llx\n",
> + page_address);
> + return -EINVAL;
IS SBR right behaviour here, if FW sends unaligned addr ?
> + }
FW address format should still be validated as 4K aligned, but the
address handed to the current VRAM allocator path needs to be normalized
to PAGE_SIZE, because XE offlining is allocator-granularity
based(PAGE_SIZE, which can be different from 4K on some archs), not
4K-granularity based.
> +
> + ret = xe_ttm_vram_handle_addr_fault(xe, page_address);
> +
> + /*
> + * Handle return code from address fault handling function:
> + * 0: Page soft offlined, decline to firmware
> + * -EIO: Address belongs to a critical BO/stolen area that cannot be offlined
> + * -EOPNOTSUPP: Address is valid and can be offlined but user policy is not to offline
> + * -EEXIST: Address is soft offlined but yet to be offlined by firmware for second
> + * occurrence
> + */
> +
> + switch (ret) {
> + case 0:
> + action = XE_RAS_PAGE_ACTION_DECLINE;
Nit: The action name XE_RAS_PAGE_ACTION_DECLINE sounds inappropriate
here, the action requested to FW is to remove page from queue not
necessarily decline the offlining, the next error on same addr will show
as double bit ecc and we do offlining.
HOW about:
XE_RAS_PAGE_ACTION_REMOVE_FROM_QUEUE
Nit: How about Loging:
FW->KMD(BEHAVIOR), DRIVER HANDLING, KMD->FW(ACTION REQUEST)
case 0:
"Poison detected at physical address, page software offlined, requested
page removal from queue"
case -EOPNOTSUPP:
"Poison detected at physical address, User policy set to decline page
offlining, requested page removal from queue"
> + xe_log_err(xe, DEVICE_MEMORY, ret,
> + "Poison detected at physical address 0x%llx, page software offlined\n",
> + page_address);
> + break;
> + /* User policy set to decline page offlining */
> + case -EOPNOTSUPP:
> + action = XE_RAS_PAGE_ACTION_DECLINE;
> + xe_log_err(xe, DEVICE_MEMORY, ret,
> + "User policy set to decline page offlining for physical address 0x%llx\n",
> + page_address);
> + break;
> + case -EIO:
> + xe_log_err(xe, DEVICE_MEMORY, ret,
> + "Physical page address belongs to critical BO: 0x%llx\n", page_address);
> + return ret;
> + case -EEXIST:
> + action = XE_RAS_PAGE_ACTION_OFFLINE;
> + xe_log_err(xe, DEVICE_MEMORY, ret,
> + "Double-bit ECC error detected at physical address 0x%llx, page already software offlined\n",
> + page_address);
> + break;
> + default:
> + xe_log_err(xe, DEVICE_MEMORY, ret, "Failed to handle address fault 0x%llx\n",
> + page_address);
> + return 0;
Logically looks ok to return 0 here.
> + }
> +
> + if (send_cmd) {
> + ret = send_page_offline_cmd(xe, page_address, action);
Same question as above, does failure in send_page_offline_cmd should
lead to SBR ?
> + if (ret)
> + return ret;
> + }
> +
> + return 0;
> +}
> +
> static bool ras_counter_is_valid(struct xe_device *xe, struct xe_ras_error_class *counter)
> {
> u8 severity = counter->common.severity;
> @@ -368,11 +475,12 @@ static u8 handle_soc_internal_errors(struct xe_device *xe, struct xe_ras_error_a
> static u8 handle_device_memory_errors(struct xe_device *xe, struct xe_ras_error_array *arr)
> {
> struct xe_ras_memory_error *info = (void *)arr->details;
> + int ret;
>
> /*
> * For memory errors, the recovery action depends on the error category
> *
> - * TODO: Double-bit ECC errors: Page offlining
> + * Double-bit ECC errors: Page offlining
> * Poison and data parity errors: Log only
> * For any other memory errors, request a reset as recovery mechanism
> */
> @@ -384,10 +492,10 @@ static u8 handle_device_memory_errors(struct xe_device *xe, struct xe_ras_error_
> xe_info(xe, "[RAS]: Data parity error detected\n");
> break;
> case XE_RAS_MEMORY_DB_ECC:
> - xe_info(xe, "[RAS]: Double-bit ECC error detected at sw address 0x%llx\n",
> - info->sw_address);
> - /* TODO: Add page offlining for Double-bit ECC error */
> - fallthrough;
> + ret = handle_page_offline(xe, info->sw_address, true);
> + if (ret)
> + return XE_RAS_RECOVERY_ACTION_RESET;
> + break;
> default:
> return XE_RAS_RECOVERY_ACTION_RESET;
> }
> diff --git a/drivers/gpu/drm/xe/xe_ras_types.h b/drivers/gpu/drm/xe/xe_ras_types.h
> index fe6f3658a2a4..20c74593ce05 100644
> --- a/drivers/gpu/drm/xe/xe_ras_types.h
> +++ b/drivers/gpu/drm/xe/xe_ras_types.h
> @@ -17,6 +17,19 @@
> #define XE_RAS_MEMORY_POISON BIT(2)
> #define XE_RAS_MEMORY_DATA_PARITY BIT(5)
>
> +/**
> + * enum xe_ras_page_action - Page offline actions for page offline request
> + *
> + * @XE_RAS_PAGE_ACTION_OFFLINE: Instruct firmware to offline the page
> + * @XE_RAS_PAGE_ACTION_DECLINE: Instruct firmware to remove the page from queue
> + * @XE_RAS_PAGE_ACTION_MAX: Max value
> + */
> +enum xe_ras_page_action {
> + XE_RAS_PAGE_ACTION_OFFLINE,
> + XE_RAS_PAGE_ACTION_DECLINE,
> + XE_RAS_PAGE_ACTION_MAX
> +};
> +
> /**
> * enum xe_ras_recovery_action - RAS recovery actions
> *
> @@ -295,6 +308,28 @@ struct xe_ras_memory_error {
> u32 reserved2[10];
> } __packed;
>
> +/**
> + * struct xe_ras_page_offline_request - Request for page offline command
> + */
> +struct xe_ras_page_offline_request {
> + /** @page_address: Page address (4KB aligned) */
> + u64 page_address;
> + /** @action: Action to be performed, see &enum xe_ras_page_action */
> + u32 action;
> + /** @reserved: Reserved for future use */
> + u32 reserved;
> +} __packed;
> +
> +/**
> + * struct xe_ras_page_offline_response - Response from page offline command
> + */
> +struct xe_ras_page_offline_response {
> + /** @status: Status of the page offline request */
> + u32 status;
> + /** @reserved: Reserved for future use */
> + u32 reserved;
> +} __packed;
> +
> /**
> * struct xe_ras_get_health_request - Request structure for obtaining gpu health
> */
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> index 66e7cbcc3f91..590dd408399c 100644
> --- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> +++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> @@ -28,6 +28,7 @@ enum xe_sysctrl_group {
> * @XE_SYSCTRL_CMD_GET_THRESHOLD: Retrieve error threshold
> * @XE_SYSCTRL_CMD_SET_THRESHOLD: Set error threshold
> * @XE_SYSCTRL_CMD_GET_PENDING_EVENT: Retrieve pending event
> + * @XE_SYSCTRL_CMD_PAGE_OFFLINE: Instruct firmware to offline/decline a page
> * @XE_SYSCTRL_CMD_GET_HEALTH: Retrieve gpu health
> * @XE_SYSCTRL_CMD_SET_HEALTH: Set gpu health
> */
> @@ -38,6 +39,7 @@ enum xe_sysctrl_gfsp_cmd {
> XE_SYSCTRL_CMD_GET_THRESHOLD = 0x05,
> XE_SYSCTRL_CMD_SET_THRESHOLD = 0x06,
> XE_SYSCTRL_CMD_GET_PENDING_EVENT = 0x07,
> + XE_SYSCTRL_CMD_PAGE_OFFLINE = 0x08,
> XE_SYSCTRL_CMD_GET_HEALTH = 0x0B,
> XE_SYSCTRL_CMD_SET_HEALTH = 0x0C,
> };
^ permalink raw reply [flat|nested] 25+ messages in thread* Re: [PATCH v2 1/6] drm/xe/xe_ras: Handle page offline requests for device memory ecc errors
2026-09-07 17:35 ` Ghimiray, Himal Prasad
@ 2026-09-11 6:45 ` Tauro, Riana
0 siblings, 0 replies; 25+ messages in thread
From: Tauro, Riana @ 2026-09-11 6:45 UTC (permalink / raw)
To: Ghimiray, Himal Prasad, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, aravind.iddamsetty, badal.nilawar,
raag.jadav, ravi.kishore.koppuravuri, mallesh.koujalagi,
soham.purkait, tejas.upadhyay
On 07-09-2026 23:05, Ghimiray, Himal Prasad wrote:
>
>
> On 07-09-2026 15:17, Riana Tauro wrote:
>> Add basic support for sending page offline/decline requests to system
>> controller and use it for device memory ECC error handling.
>> Pages that belong to critical BOs cannot be handled by offlining and
>> require a SBR (Secondary Bus Reset).
>> Pages that are configured for log-only handling are not marked as bad by
>> firmware.
>>
>> For all other valid page addresses, the first occurrence of error
>> indicates a poison error and the page is offlined only by software.
>> Firmware avoids permanently marking the page as bad. The second
>> occurrence
>> of an error indicates a Double-bit ECC error and the firmware
>> permanently marks the page as bad.
>>
>> Cc: Tejas Upadhyay <tejas.upadhyay@intel.com>
>> Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>> ---
>> v2: use ret in sigid logging (Mallesh)
>> remove additional log
>> use xe_assert (Michal)
>> ---
>> drivers/gpu/drm/xe/xe_ras.c | 118 +++++++++++++++++-
>> drivers/gpu/drm/xe/xe_ras_types.h | 35 ++++++
>> drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 2 +
>> 3 files changed, 150 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
>> index 7a85735c57d5..94ffd0852938 100644
>> --- a/drivers/gpu/drm/xe/xe_ras.c
>> +++ b/drivers/gpu/drm/xe/xe_ras.c
>> @@ -3,6 +3,8 @@
>> * Copyright © 2026 Intel Corporation
>> */
>> +#include "xe_assert.h"
>> +#include "xe_bo.h"
>> #include "xe_configfs.h"
>> #include "xe_debugfs.h"
>> #include "xe_device.h"
>> @@ -16,6 +18,7 @@
>> #include "xe_sysctrl_event_types.h"
>> #include "xe_sysctrl_mailbox.h"
>> #include "xe_sysctrl_mailbox_types.h"
>> +#include "xe_ttm_vram_mgr.h"
>> #define CORE_COMPUTE_UNCORR_TYPE GENMASK(26, 25)
>> /*
>> @@ -201,6 +204,110 @@ static inline const char *comp_to_str(u8
>> component)
>> return xe_ras_components[component];
>> }
>> +static int send_page_offline_cmd(struct xe_device *xe, u64
>> page_address,
>> + enum xe_ras_page_action action)
>> +{
>> + struct xe_sysctrl_mailbox_command command = {0};
>> + struct xe_ras_page_offline_request request = {0};
>> + struct xe_ras_page_offline_response response = {0};
>> + size_t rlen;
>> + int ret;
>> +
>> + if (!xe->info.has_sysctrl)
>> + return 0;
>> +
>> + xe_assert(xe, action < XE_RAS_PAGE_ACTION_MAX);
>> +
>> + request.page_address = page_address;
>> + request.action = action;
>> +
>> + xe_sysctrl_create_command(&command, XE_SYSCTRL_GROUP_GFSP,
>> XE_SYSCTRL_CMD_PAGE_OFFLINE,
>> + &request, sizeof(request), &response,
>> sizeof(response));
>> +
>> + ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
>> + if (ret) {
>> + xe_log_err(xe, SYSCTRL, ret, "failed to send page offline
>> command\n");
>> + return ret;
>> + }
>> +
>> + if (rlen != sizeof(response)) {
>> + xe_log_err(xe, SYSCTRL, -EINVAL,
>> + "unexpected page offline response length %zu
>> (expected %zu)\n",
>> + rlen, sizeof(response));
>> + return -EINVAL;
>> + }
>> +
>> + ret = ras_status_to_errno(response.status);
>> + if (ret) {
>> + xe_log_err(xe, SYSCTRL, ret, "page offline command failed
>> with status %u\n",
>> + response.status);
>> + return ret;
>> + }
>> +
>> + return ret;
>> +}
>> +
>> +static int handle_page_offline(struct xe_device *xe, u64
>> page_address, bool send_cmd)
>> +{
>> + enum xe_ras_page_action action;
>> + int ret = 0;
>> +
>> + if (!IS_ALIGNED(page_address, XE_PAGE_SIZE)) {
>> + xe_log_err(xe, SYSCTRL, -EINVAL, "Unaligned physical page
>> address: 0x%llx\n",
>> + page_address);
>> + return -EINVAL;
>
> IS SBR right behaviour here, if FW sends unaligned addr ?
According to spec, FW should send only 4k aligned pages. If there is
mismatch, then it could be due
to a system controller error . That was my thought behind sbr
>
>> + }
>
>
> FW address format should still be validated as 4K aligned, but the
> address handed to the current VRAM allocator path needs to be
> normalized to PAGE_SIZE, because XE offlining is allocator-granularity
> based(PAGE_SIZE, which can be different from 4K on some archs), not
> 4K-granularity based.
The 4K alignment check is added because the FW spec explicitly states
that the address will be 4K-aligned and this patch mostly deals with
firmware interface. Regarding the normalization to PAGE_SIZE we can add
this as initial call within xe_ttm_vram_handle_addr_fault if required.
We can take this as a separate patch . Will reach out to you offline to
get some more details
>
>
>> +
>> + ret = xe_ttm_vram_handle_addr_fault(xe, page_address);
>> +
>> + /*
>> + * Handle return code from address fault handling function:
>> + * 0: Page soft offlined, decline to firmware
>> + * -EIO: Address belongs to a critical BO/stolen area that
>> cannot be offlined
>> + * -EOPNOTSUPP: Address is valid and can be offlined but user
>> policy is not to offline
>> + * -EEXIST: Address is soft offlined but yet to be offlined by
>> firmware for second
>> + * occurrence
>> + */
>> +
>> + switch (ret) {
>> + case 0:
>> + action = XE_RAS_PAGE_ACTION_DECLINE;
>
> Nit: The action name XE_RAS_PAGE_ACTION_DECLINE sounds inappropriate
> here, the action requested to FW is to remove page from queue not
> necessarily decline the offlining, the next error on same addr will
> show as double bit ecc and we do offlining.
> HOW about:
> XE_RAS_PAGE_ACTION_REMOVE_FROM_QUEUE
Had retained the spec enum . XE_RAS_PAGE_ACTION_REMOVE_FROM_QUEUE is
quite verbose . How about just XE_RAS_PAGE_ACTION_REMOVE?
>
>
> Nit: How about Loging:
> FW->KMD(BEHAVIOR), DRIVER HANDLING, KMD->FW(ACTION REQUEST)
> case 0:
> "Poison detected at physical address, page software offlined,
> requested page removal from queue"
> case -EOPNOTSUPP:
> "Poison detected at physical address, User policy set to decline page
> offlining, requested page removal from queue"
Sure. Will add this in new rev
>
>
>
>> + xe_log_err(xe, DEVICE_MEMORY, ret,
>> + "Poison detected at physical address 0x%llx, page
>> software offlined\n",
>> + page_address);
>> + break;
>> + /* User policy set to decline page offlining */
>> + case -EOPNOTSUPP:
>> + action = XE_RAS_PAGE_ACTION_DECLINE;
>> + xe_log_err(xe, DEVICE_MEMORY, ret,
>> + "User policy set to decline page offlining for
>> physical address 0x%llx\n",
>> + page_address);
>> + break;
>> + case -EIO:
>> + xe_log_err(xe, DEVICE_MEMORY, ret,
>> + "Physical page address belongs to critical BO:
>> 0x%llx\n", page_address);
>> + return ret;
>> + case -EEXIST:
>> + action = XE_RAS_PAGE_ACTION_OFFLINE;
>> + xe_log_err(xe, DEVICE_MEMORY, ret,
>> + "Double-bit ECC error detected at physical address
>> 0x%llx, page already software offlined\n",
>> + page_address);
>> + break;
>> + default:
>> + xe_log_err(xe, DEVICE_MEMORY, ret, "Failed to handle address
>> fault 0x%llx\n",
>> + page_address);
>> + return 0;
>
> Logically looks ok to return 0 here.
>> + }
>> +
>> + if (send_cmd) {
>> + ret = send_page_offline_cmd(xe, page_address, action);
>
> Same question as above, does failure in send_page_offline_cmd should
> lead to SBR ?
Any system controller failure can be due to a hang or error in system
controller.
This is a standard behaviour for all errors.
We request a SBR for response mismatches or errors in system controller.
Thanks
Riana
>
>> + if (ret)
>> + return ret;
>> + }
>> +
>> + return 0;
>> +}
>> +
>> static bool ras_counter_is_valid(struct xe_device *xe, struct
>> xe_ras_error_class *counter)
>> {
>> u8 severity = counter->common.severity;
>> @@ -368,11 +475,12 @@ static u8 handle_soc_internal_errors(struct
>> xe_device *xe, struct xe_ras_error_a
>> static u8 handle_device_memory_errors(struct xe_device *xe, struct
>> xe_ras_error_array *arr)
>> {
>> struct xe_ras_memory_error *info = (void *)arr->details;
>> + int ret;
>> /*
>> * For memory errors, the recovery action depends on the error
>> category
>> *
>> - * TODO: Double-bit ECC errors: Page offlining
>> + * Double-bit ECC errors: Page offlining
>> * Poison and data parity errors: Log only
>> * For any other memory errors, request a reset as recovery
>> mechanism
>> */
>> @@ -384,10 +492,10 @@ static u8 handle_device_memory_errors(struct
>> xe_device *xe, struct xe_ras_error_
>> xe_info(xe, "[RAS]: Data parity error detected\n");
>> break;
>> case XE_RAS_MEMORY_DB_ECC:
>> - xe_info(xe, "[RAS]: Double-bit ECC error detected at sw
>> address 0x%llx\n",
>> - info->sw_address);
>> - /* TODO: Add page offlining for Double-bit ECC error */
>> - fallthrough;
>> + ret = handle_page_offline(xe, info->sw_address, true);
>> + if (ret)
>> + return XE_RAS_RECOVERY_ACTION_RESET;
>> + break;
>> default:
>> return XE_RAS_RECOVERY_ACTION_RESET;
>> }
>> diff --git a/drivers/gpu/drm/xe/xe_ras_types.h
>> b/drivers/gpu/drm/xe/xe_ras_types.h
>> index fe6f3658a2a4..20c74593ce05 100644
>> --- a/drivers/gpu/drm/xe/xe_ras_types.h
>> +++ b/drivers/gpu/drm/xe/xe_ras_types.h
>> @@ -17,6 +17,19 @@
>> #define XE_RAS_MEMORY_POISON BIT(2)
>> #define XE_RAS_MEMORY_DATA_PARITY BIT(5)
>> +/**
>> + * enum xe_ras_page_action - Page offline actions for page offline
>> request
>> + *
>> + * @XE_RAS_PAGE_ACTION_OFFLINE: Instruct firmware to offline the page
>> + * @XE_RAS_PAGE_ACTION_DECLINE: Instruct firmware to remove the page
>> from queue
>> + * @XE_RAS_PAGE_ACTION_MAX: Max value
>> + */
>> +enum xe_ras_page_action {
>> + XE_RAS_PAGE_ACTION_OFFLINE,
>> + XE_RAS_PAGE_ACTION_DECLINE,
>> + XE_RAS_PAGE_ACTION_MAX
>> +};
>> +
>> /**
>> * enum xe_ras_recovery_action - RAS recovery actions
>> *
>> @@ -295,6 +308,28 @@ struct xe_ras_memory_error {
>> u32 reserved2[10];
>> } __packed;
>> +/**
>> + * struct xe_ras_page_offline_request - Request for page offline
>> command
>> + */
>> +struct xe_ras_page_offline_request {
>> + /** @page_address: Page address (4KB aligned) */
>> + u64 page_address;
>> + /** @action: Action to be performed, see &enum
>> xe_ras_page_action */
>> + u32 action;
>> + /** @reserved: Reserved for future use */
>> + u32 reserved;
>> +} __packed;
>> +
>> +/**
>> + * struct xe_ras_page_offline_response - Response from page offline
>> command
>> + */
>> +struct xe_ras_page_offline_response {
>> + /** @status: Status of the page offline request */
>> + u32 status;
>> + /** @reserved: Reserved for future use */
>> + u32 reserved;
>> +} __packed;
>> +
>> /**
>> * struct xe_ras_get_health_request - Request structure for
>> obtaining gpu health
>> */
>> diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
>> b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
>> index 66e7cbcc3f91..590dd408399c 100644
>> --- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
>> +++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
>> @@ -28,6 +28,7 @@ enum xe_sysctrl_group {
>> * @XE_SYSCTRL_CMD_GET_THRESHOLD: Retrieve error threshold
>> * @XE_SYSCTRL_CMD_SET_THRESHOLD: Set error threshold
>> * @XE_SYSCTRL_CMD_GET_PENDING_EVENT: Retrieve pending event
>> + * @XE_SYSCTRL_CMD_PAGE_OFFLINE: Instruct firmware to
>> offline/decline a page
>> * @XE_SYSCTRL_CMD_GET_HEALTH: Retrieve gpu health
>> * @XE_SYSCTRL_CMD_SET_HEALTH: Set gpu health
>> */
>> @@ -38,6 +39,7 @@ enum xe_sysctrl_gfsp_cmd {
>> XE_SYSCTRL_CMD_GET_THRESHOLD = 0x05,
>> XE_SYSCTRL_CMD_SET_THRESHOLD = 0x06,
>> XE_SYSCTRL_CMD_GET_PENDING_EVENT = 0x07,
>> + XE_SYSCTRL_CMD_PAGE_OFFLINE = 0x08,
>> XE_SYSCTRL_CMD_GET_HEALTH = 0x0B,
>> XE_SYSCTRL_CMD_SET_HEALTH = 0x0C,
>> };
>
^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH v2 2/6] drm/xe/xe_ras: Add support to query page offline queue and list
2026-09-07 9:47 [PATCH v2 0/6] Add support to handle memory double-bit ecc errors Riana Tauro
2026-09-07 9:47 ` [PATCH v2 1/6] drm/xe/xe_ras: Handle page offline requests for device memory " Riana Tauro
@ 2026-09-07 9:47 ` Riana Tauro
2026-09-07 10:00 ` sashiko-bot
2026-09-07 18:25 ` Ghimiray, Himal Prasad
2026-09-07 9:47 ` [PATCH v2 3/6] drm/xe: Separate drm-ras netlink data from device and firmware RAS state Riana Tauro
` (6 subsequent siblings)
8 siblings, 2 replies; 25+ messages in thread
From: Riana Tauro @ 2026-09-07 9:47 UTC (permalink / raw)
To: intel-xe
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, aravind.iddamsetty,
badal.nilawar, raag.jadav, ravi.kishore.koppuravuri,
mallesh.koujalagi, soham.purkait, tejas.upadhyay
Add support to query page offline list and queue from firmware
during module load. The page offline list command retrieves pages that
are already offlined by the firmware. The page offline queue command
retrieves the pages pending to be offlined by the firmware.
Cc: Tejas Upadhyay <tejas.upadhyay@intel.com>
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
---
v2: rebase
store total pages once per response (Sashiko)
---
drivers/gpu/drm/xe/xe_ras.c | 105 ++++++++++++++++++
drivers/gpu/drm/xe/xe_ras_types.h | 43 +++++++
drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 4 +
3 files changed, 152 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
index 94ffd0852938..648e46df831d 100644
--- a/drivers/gpu/drm/xe/xe_ras.c
+++ b/drivers/gpu/drm/xe/xe_ras.c
@@ -326,6 +326,108 @@ static bool ras_counter_is_valid(struct xe_device *xe, struct xe_ras_error_class
return true;
}
+static void get_queued_pages(struct xe_device *xe)
+{
+ struct xe_sysctrl_mailbox_command command = {0};
+ struct xe_ras_page_offline_queue response = {0};
+ u32 count = 0, total_pages = 0;
+ size_t rlen;
+ int ret, i;
+
+ /* Supported only on platforms with system controller */
+ if (!xe->info.has_sysctrl)
+ return;
+
+ xe_sysctrl_create_command(&command, XE_SYSCTRL_GROUP_GFSP,
+ XE_SYSCTRL_CMD_GET_OFFLINE_QUEUE, NULL, 0, &response,
+ sizeof(response));
+
+ do {
+ memset(&response, 0, sizeof(response));
+
+ ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
+ if (ret) {
+ xe_log_err(xe, SYSCTRL, ret, "failed to get page offline queue\n");
+ return;
+ }
+ if (rlen != sizeof(response)) {
+ xe_log_err(xe, SYSCTRL, -EINVAL,
+ "unexpected page offline queue response length %zu (expected %zu)\n",
+ rlen, sizeof(response));
+ return;
+ }
+
+ for (i = 0; i < response.pages_returned && i < XE_RAS_NUM_PAGES; i++)
+ handle_page_offline(xe, response.page_addresses[i], true);
+
+ count += response.pages_returned;
+ if (!response.pages_returned)
+ break;
+
+ if (!total_pages)
+ total_pages = response.total_pages;
+
+ if (count > total_pages) {
+ xe_log_err(xe, SYSCTRL, -EINVAL,
+ "Pages returned from queue exceed total pages %u, returned %u\n",
+ total_pages, count);
+ return;
+ }
+ } while (response.additional_data);
+}
+
+static void get_offlined_list(struct xe_device *xe)
+{
+ struct xe_sysctrl_mailbox_command command = {0};
+ struct xe_ras_offline_list_response response = {0};
+ struct xe_ras_offline_list_request request = {0};
+ u32 count = 0, total_pages = 0;
+ size_t rlen;
+ int ret, i;
+
+ /* Supported only on platforms with system controller */
+ if (!xe->info.has_sysctrl)
+ return;
+
+ xe_sysctrl_create_command(&command, XE_SYSCTRL_GROUP_GFSP, XE_SYSCTRL_CMD_GET_OFFLINE_LIST,
+ &request, sizeof(request), &response, sizeof(response));
+
+ do {
+ memset(&response, 0, sizeof(response));
+ request.index = count;
+
+ ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
+ if (ret) {
+ xe_log_err(xe, SYSCTRL, ret, "failed to get page offline list\n");
+ return;
+ }
+
+ if (rlen != sizeof(response)) {
+ xe_log_err(xe, SYSCTRL, -EINVAL,
+ "unexpected page offline list response length %zu (expected %zu)\n",
+ rlen, sizeof(response));
+ return;
+ }
+
+ for (i = 0; i < response.pages_returned && i < XE_RAS_NUM_PAGES; i++)
+ handle_page_offline(xe, response.page_addresses[i], false);
+
+ count += response.pages_returned;
+ if (!response.pages_returned)
+ break;
+
+ if (!total_pages)
+ total_pages = response.total_pages;
+
+ if (count > total_pages) {
+ xe_log_err(xe, SYSCTRL, -EINVAL,
+ "Pages returned from list exceed total pages %u, returned %u\n",
+ total_pages, count);
+ return;
+ }
+ } while (response.additional_data);
+}
+
static struct pci_dev *find_usp_dev(struct pci_dev *pdev)
{
struct pci_dev *vsp;
@@ -1040,6 +1142,9 @@ void xe_ras_init(struct xe_device *xe)
if (IS_ENABLED(CONFIG_PCIEAER))
ras_usp_aer_init(xe);
+ get_queued_pages(xe);
+ get_offlined_list(xe);
+
ret = devm_device_add_group(xe->drm.dev, &gpu_health_group);
if (ret)
xe_err(xe, "Failed to create GPU health sysfs, err=%d\n", ret);
diff --git a/drivers/gpu/drm/xe/xe_ras_types.h b/drivers/gpu/drm/xe/xe_ras_types.h
index 20c74593ce05..7bfd86c9d135 100644
--- a/drivers/gpu/drm/xe/xe_ras_types.h
+++ b/drivers/gpu/drm/xe/xe_ras_types.h
@@ -10,6 +10,7 @@
#define XE_RAS_NUM_COUNTERS 16
#define XE_RAS_NUM_ERROR_ARR 3
+#define XE_RAS_NUM_PAGES 25
/* Error bits in IEH global error status register */
#define XE_RAS_SOC_IEH_PUNIT BIT(1)
/* Device memory error categories */
@@ -330,6 +331,48 @@ struct xe_ras_page_offline_response {
u32 reserved;
} __packed;
+/**
+ * struct xe_ras_offline_list_request - Request for get offline list command
+ */
+struct xe_ras_offline_list_request {
+ /** @index: Zero-based index into the offline page list */
+ u32 index;
+} __packed;
+
+/**
+ * struct xe_ras_offline_list_response - Response from get offline list command
+ */
+struct xe_ras_offline_list_response {
+ /** @max_entries: Total no of pages that can be stored in flash */
+ u32 max_entries;
+ /** @total_pages: Total number of permanently offlined pages */
+ u32 total_pages;
+ /** @pages_returned: Number of pages returned in this response */
+ u32 pages_returned;
+ /** @page_addresses: Array of permanently offlined page addresses (4KB aligned) */
+ u64 page_addresses[XE_RAS_NUM_PAGES];
+ /** @additional_data: Indicates if more data is available */
+ u8 additional_data;
+ /** @reserved: Reserved for future use */
+ u8 reserved[3];
+} __packed;
+
+/**
+ * struct xe_ras_page_offline_queue - Response from get offline queue command
+ */
+struct xe_ras_page_offline_queue {
+ /** @total_pages: Total number of queued pages */
+ u32 total_pages;
+ /** @pages_returned: Number of pages returned in this response */
+ u32 pages_returned;
+ /** @page_addresses: Array of page addresses (4KB aligned) */
+ u64 page_addresses[XE_RAS_NUM_PAGES];
+ /** @additional_data: Indicates if more data is available */
+ u8 additional_data;
+ /** @reserved: Reserved for future use */
+ u8 reserved[3];
+} __packed;
+
/**
* struct xe_ras_get_health_request - Request structure for obtaining gpu health
*/
diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
index 590dd408399c..a96aeb11d061 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
+++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
@@ -29,6 +29,8 @@ enum xe_sysctrl_group {
* @XE_SYSCTRL_CMD_SET_THRESHOLD: Set error threshold
* @XE_SYSCTRL_CMD_GET_PENDING_EVENT: Retrieve pending event
* @XE_SYSCTRL_CMD_PAGE_OFFLINE: Instruct firmware to offline/decline a page
+ * @XE_SYSCTRL_CMD_GET_OFFLINE_LIST: Retrieve list of all offlined pages from flash
+ * @XE_SYSCTRL_CMD_GET_OFFLINE_QUEUE: Retrieve list of offlined queued pages from firmware
* @XE_SYSCTRL_CMD_GET_HEALTH: Retrieve gpu health
* @XE_SYSCTRL_CMD_SET_HEALTH: Set gpu health
*/
@@ -40,6 +42,8 @@ enum xe_sysctrl_gfsp_cmd {
XE_SYSCTRL_CMD_SET_THRESHOLD = 0x06,
XE_SYSCTRL_CMD_GET_PENDING_EVENT = 0x07,
XE_SYSCTRL_CMD_PAGE_OFFLINE = 0x08,
+ XE_SYSCTRL_CMD_GET_OFFLINE_LIST = 0x09,
+ XE_SYSCTRL_CMD_GET_OFFLINE_QUEUE = 0x0A,
XE_SYSCTRL_CMD_GET_HEALTH = 0x0B,
XE_SYSCTRL_CMD_SET_HEALTH = 0x0C,
};
--
2.47.1
^ permalink raw reply related [flat|nested] 25+ messages in thread* Re: [PATCH v2 2/6] drm/xe/xe_ras: Add support to query page offline queue and list
2026-09-07 9:47 ` [PATCH v2 2/6] drm/xe/xe_ras: Add support to query page offline queue and list Riana Tauro
@ 2026-09-07 10:00 ` sashiko-bot
2026-09-07 18:25 ` Ghimiray, Himal Prasad
1 sibling, 0 replies; 25+ messages in thread
From: sashiko-bot @ 2026-09-07 10:00 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Spurious failure if firmware page offline queue or list grows during readout.
--
commit ecb51c4744892bd663ca44008b7aac2eca7280e9
Author: Riana Tauro <riana.tauro@intel.com>
Subject: drm/xe/xe_ras: Add support to query page offline queue and list
This commit adds support to query the page offline list and queue from the
firmware during module load. The command retrieves pages that are already
offlined or pending to be offlined by the firmware.
> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
> --- a/drivers/gpu/drm/xe/xe_ras.c
> +++ b/drivers/gpu/drm/xe/xe_ras.c
[ ... ]
> +static void get_queued_pages(struct xe_device *xe)
> +{
[ ... ]
> + do {
> + memset(&response, 0, sizeof(response));
> +
> + ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
[ ... ]
> + count += response.pages_returned;
> + if (!response.pages_returned)
> + break;
> +
> + if (!total_pages)
> + total_pages = response.total_pages;
> +
> + if (count > total_pages) {
> + xe_log_err(xe, SYSCTRL, -EINVAL,
[Severity: Medium]
If a memory RAS error occurs during the window when xe_ras_init() is querying
the offline queue, causing the firmware to append to the queue while the
driver is iterating, can this cause a spurious failure?
Since total_pages is latched on the first response and strictly enforced
against the growing count over multiple responses, it looks like an actively
growing queue could cause count to exceed total_pages, aborting the
initialization of offlined pages and leaving the RAS offline state incomplete.
> + "Pages returned from queue exceed total pages %u, returned %u\n",
> + total_pages, count);
> + return;
> + }
> + } while (response.additional_data);
> +}
> +
> +static void get_offlined_list(struct xe_device *xe)
> +{
[ ... ]
> + do {
> + memset(&response, 0, sizeof(response));
> + request.index = count;
> +
> + ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
[ ... ]
> + count += response.pages_returned;
> + if (!response.pages_returned)
> + break;
> +
> + if (!total_pages)
> + total_pages = response.total_pages;
> +
> + if (count > total_pages) {
> + xe_log_err(xe, SYSCTRL, -EINVAL,
[Severity: Medium]
Does the same vulnerability apply here in get_offlined_list() if new pages are
offlined concurrently by the firmware?
If the list grows while reading, enforcing the originally latched total_pages
against the total returned count could similarly result in a spurious error
and abort the list iteration.
> + "Pages returned from list exceed total pages %u, returned %u\n",
> + total_pages, count);
> + return;
> + }
> + } while (response.additional_data);
> +}
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260907094706.1407436-8-riana.tauro@intel.com?part=2
^ permalink raw reply [flat|nested] 25+ messages in thread* Re: [PATCH v2 2/6] drm/xe/xe_ras: Add support to query page offline queue and list
2026-09-07 9:47 ` [PATCH v2 2/6] drm/xe/xe_ras: Add support to query page offline queue and list Riana Tauro
2026-09-07 10:00 ` sashiko-bot
@ 2026-09-07 18:25 ` Ghimiray, Himal Prasad
2026-09-11 6:11 ` Tauro, Riana
1 sibling, 1 reply; 25+ messages in thread
From: Ghimiray, Himal Prasad @ 2026-09-07 18:25 UTC (permalink / raw)
To: Riana Tauro, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, aravind.iddamsetty, badal.nilawar,
raag.jadav, ravi.kishore.koppuravuri, mallesh.koujalagi,
soham.purkait, tejas.upadhyay
On 07-09-2026 15:17, Riana Tauro wrote:
> Add support to query page offline list and queue from firmware
> during module load. The page offline list command retrieves pages that
> are already offlined by the firmware. The page offline queue command
> retrieves the pages pending to be offlined by the firmware.
>
> Cc: Tejas Upadhyay <tejas.upadhyay@intel.com>
> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> ---
> v2: rebase
> store total pages once per response (Sashiko)
> ---
> drivers/gpu/drm/xe/xe_ras.c | 105 ++++++++++++++++++
> drivers/gpu/drm/xe/xe_ras_types.h | 43 +++++++
> drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 4 +
> 3 files changed, 152 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
> index 94ffd0852938..648e46df831d 100644
> --- a/drivers/gpu/drm/xe/xe_ras.c
> +++ b/drivers/gpu/drm/xe/xe_ras.c
> @@ -326,6 +326,108 @@ static bool ras_counter_is_valid(struct xe_device *xe, struct xe_ras_error_class
> return true;
> }
>
> +static void get_queued_pages(struct xe_device *xe)
> +{
> + struct xe_sysctrl_mailbox_command command = {0};
> + struct xe_ras_page_offline_queue response = {0};
> + u32 count = 0, total_pages = 0;
> + size_t rlen;
> + int ret, i;
> +
> + /* Supported only on platforms with system controller */
> + if (!xe->info.has_sysctrl)
> + return;
move to caller, single check helps for both get_queued_pages and
get_offlined_list.
> +
> + xe_sysctrl_create_command(&command, XE_SYSCTRL_GROUP_GFSP,
> + XE_SYSCTRL_CMD_GET_OFFLINE_QUEUE, NULL, 0, &response,
> + sizeof(response));
> +
> + do {
> + memset(&response, 0, sizeof(response));
> +
> + ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
> + if (ret) {
> + xe_log_err(xe, SYSCTRL, ret, "failed to get page offline queue\n");
> + return;
> + }
> + if (rlen != sizeof(response)) {
> + xe_log_err(xe, SYSCTRL, -EINVAL,
> + "unexpected page offline queue response length %zu (expected %zu)\n",
> + rlen, sizeof(response));
> + return;
> + }
> +
How about helper function for below part avoids code duplication ?
> + for (i = 0; i < response.pages_returned && i < XE_RAS_NUM_PAGES; i++)
> + handle_page_offline(xe, response.page_addresses[i], true);
> +
> + count += response.pages_returned;
> + if (!response.pages_returned)
> + break;
> +
> + if (!total_pages)
> + total_pages = response.total_pages;
> +
> + if (count > total_pages) {
> + xe_log_err(xe, SYSCTRL, -EINVAL,
> + "Pages returned from queue exceed total pages %u, returned %u\n",
> + total_pages, count);
> + return;
> + }
> + } while (response.additional_data);
> +}
> +
> +static void get_offlined_list(struct xe_device *xe)
> +{
> + struct xe_sysctrl_mailbox_command command = {0};
> + struct xe_ras_offline_list_response response = {0};
> + struct xe_ras_offline_list_request request = {0};
> + u32 count = 0, total_pages = 0;
> + size_t rlen;
> + int ret, i;
> +
> + /* Supported only on platforms with system controller */
> + if (!xe->info.has_sysctrl)
> + return;
> +
> + xe_sysctrl_create_command(&command, XE_SYSCTRL_GROUP_GFSP, XE_SYSCTRL_CMD_GET_OFFLINE_LIST,
> + &request, sizeof(request), &response, sizeof(response));
> +
> + do {
> + memset(&response, 0, sizeof(response));
> + request.index = count;
> +
> + ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
> + if (ret) {
> + xe_log_err(xe, SYSCTRL, ret, "failed to get page offline list\n");
> + return;
> + }
> +
> + if (rlen != sizeof(response)) {
> + xe_log_err(xe, SYSCTRL, -EINVAL,
> + "unexpected page offline list response length %zu (expected %zu)\n",
> + rlen, sizeof(response));
> + return;
> + }
> +
> + for (i = 0; i < response.pages_returned && i < XE_RAS_NUM_PAGES; i++)
> + handle_page_offline(xe, response.page_addresses[i], false);
> +
> + count += response.pages_returned;
> + if (!response.pages_returned)
> + break;
> +
> + if (!total_pages)
> + total_pages = response.total_pages;
> +
> + if (count > total_pages) {
> + xe_log_err(xe, SYSCTRL, -EINVAL,
> + "Pages returned from list exceed total pages %u, returned %u\n",
> + total_pages, count);
> + return;
> + }
> + } while (response.additional_data);
> +}
> +
> static struct pci_dev *find_usp_dev(struct pci_dev *pdev)
> {
> struct pci_dev *vsp;
> @@ -1040,6 +1142,9 @@ void xe_ras_init(struct xe_device *xe)
> if (IS_ENABLED(CONFIG_PCIEAER))
> ras_usp_aer_init(xe);
>
> + get_queued_pages(xe);
> + get_offlined_list(xe);
> +
> ret = devm_device_add_group(xe->drm.dev, &gpu_health_group);
> if (ret)
> xe_err(xe, "Failed to create GPU health sysfs, err=%d\n", ret);
> diff --git a/drivers/gpu/drm/xe/xe_ras_types.h b/drivers/gpu/drm/xe/xe_ras_types.h
> index 20c74593ce05..7bfd86c9d135 100644
> --- a/drivers/gpu/drm/xe/xe_ras_types.h
> +++ b/drivers/gpu/drm/xe/xe_ras_types.h
> @@ -10,6 +10,7 @@
>
> #define XE_RAS_NUM_COUNTERS 16
> #define XE_RAS_NUM_ERROR_ARR 3
> +#define XE_RAS_NUM_PAGES 25
> /* Error bits in IEH global error status register */
> #define XE_RAS_SOC_IEH_PUNIT BIT(1)
> /* Device memory error categories */
> @@ -330,6 +331,48 @@ struct xe_ras_page_offline_response {
> u32 reserved;
> } __packed;
>
> +/**
> + * struct xe_ras_offline_list_request - Request for get offline list command
> + */
> +struct xe_ras_offline_list_request {
> + /** @index: Zero-based index into the offline page list */
> + u32 index;
> +} __packed;
> +
> +/**
> + * struct xe_ras_offline_list_response - Response from get offline list command
> + */
> +struct xe_ras_offline_list_response {
> + /** @max_entries: Total no of pages that can be stored in flash */
> + u32 max_entries;
> + /** @total_pages: Total number of permanently offlined pages */
> + u32 total_pages;
> + /** @pages_returned: Number of pages returned in this response */
> + u32 pages_returned;
> + /** @page_addresses: Array of permanently offlined page addresses (4KB aligned) */
> + u64 page_addresses[XE_RAS_NUM_PAGES];
> + /** @additional_data: Indicates if more data is available */
> + u8 additional_data;
> + /** @reserved: Reserved for future use */
> + u8 reserved[3];
> +} __packed;
> +
> +/**
> + * struct xe_ras_page_offline_queue - Response from get offline queue command
> + */
> +struct xe_ras_page_offline_queue {
> + /** @total_pages: Total number of queued pages */
> + u32 total_pages;
> + /** @pages_returned: Number of pages returned in this response */
> + u32 pages_returned;
> + /** @page_addresses: Array of page addresses (4KB aligned) */
> + u64 page_addresses[XE_RAS_NUM_PAGES];
> + /** @additional_data: Indicates if more data is available */
> + u8 additional_data;
> + /** @reserved: Reserved for future use */
> + u8 reserved[3];
> +} __packed;
> +
> /**
> * struct xe_ras_get_health_request - Request structure for obtaining gpu health
> */
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> index 590dd408399c..a96aeb11d061 100644
> --- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> +++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> @@ -29,6 +29,8 @@ enum xe_sysctrl_group {
> * @XE_SYSCTRL_CMD_SET_THRESHOLD: Set error threshold
> * @XE_SYSCTRL_CMD_GET_PENDING_EVENT: Retrieve pending event
> * @XE_SYSCTRL_CMD_PAGE_OFFLINE: Instruct firmware to offline/decline a page
> + * @XE_SYSCTRL_CMD_GET_OFFLINE_LIST: Retrieve list of all offlined pages from flash
> + * @XE_SYSCTRL_CMD_GET_OFFLINE_QUEUE: Retrieve list of offlined queued pages from firmware
> * @XE_SYSCTRL_CMD_GET_HEALTH: Retrieve gpu health
> * @XE_SYSCTRL_CMD_SET_HEALTH: Set gpu health
> */
> @@ -40,6 +42,8 @@ enum xe_sysctrl_gfsp_cmd {
> XE_SYSCTRL_CMD_SET_THRESHOLD = 0x06,
> XE_SYSCTRL_CMD_GET_PENDING_EVENT = 0x07,
> XE_SYSCTRL_CMD_PAGE_OFFLINE = 0x08,
> + XE_SYSCTRL_CMD_GET_OFFLINE_LIST = 0x09,
> + XE_SYSCTRL_CMD_GET_OFFLINE_QUEUE = 0x0A,
> XE_SYSCTRL_CMD_GET_HEALTH = 0x0B,
> XE_SYSCTRL_CMD_SET_HEALTH = 0x0C,
> };
^ permalink raw reply [flat|nested] 25+ messages in thread* Re: [PATCH v2 2/6] drm/xe/xe_ras: Add support to query page offline queue and list
2026-09-07 18:25 ` Ghimiray, Himal Prasad
@ 2026-09-11 6:11 ` Tauro, Riana
2026-09-11 6:39 ` Ghimiray, Himal Prasad
0 siblings, 1 reply; 25+ messages in thread
From: Tauro, Riana @ 2026-09-11 6:11 UTC (permalink / raw)
To: Ghimiray, Himal Prasad, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, aravind.iddamsetty, badal.nilawar,
raag.jadav, ravi.kishore.koppuravuri, mallesh.koujalagi,
soham.purkait, tejas.upadhyay
On 07-09-2026 23:55, Ghimiray, Himal Prasad wrote:
>
>
> On 07-09-2026 15:17, Riana Tauro wrote:
>> Add support to query page offline list and queue from firmware
>> during module load. The page offline list command retrieves pages that
>> are already offlined by the firmware. The page offline queue command
>> retrieves the pages pending to be offlined by the firmware.
>>
>> Cc: Tejas Upadhyay <tejas.upadhyay@intel.com>
>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>> ---
>> v2: rebase
>> store total pages once per response (Sashiko)
>> ---
>> drivers/gpu/drm/xe/xe_ras.c | 105 ++++++++++++++++++
>> drivers/gpu/drm/xe/xe_ras_types.h | 43 +++++++
>> drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 4 +
>> 3 files changed, 152 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
>> index 94ffd0852938..648e46df831d 100644
>> --- a/drivers/gpu/drm/xe/xe_ras.c
>> +++ b/drivers/gpu/drm/xe/xe_ras.c
>> @@ -326,6 +326,108 @@ static bool ras_counter_is_valid(struct
>> xe_device *xe, struct xe_ras_error_class
>> return true;
>> }
>> +static void get_queued_pages(struct xe_device *xe)
>> +{
>> + struct xe_sysctrl_mailbox_command command = {0};
>> + struct xe_ras_page_offline_queue response = {0};
>> + u32 count = 0, total_pages = 0;
>> + size_t rlen;
>> + int ret, i;
>> +
>> + /* Supported only on platforms with system controller */
>> + if (!xe->info.has_sysctrl)
>> + return;
>
> move to caller, single check helps for both get_queued_pages and
> get_offlined_list.
This is already part of caller. Added here in case there is a re-use.
>
>> +
>> + xe_sysctrl_create_command(&command, XE_SYSCTRL_GROUP_GFSP,
>> + XE_SYSCTRL_CMD_GET_OFFLINE_QUEUE, NULL, 0, &response,
>> + sizeof(response));
>> +
>> + do {
>> + memset(&response, 0, sizeof(response));
>> +
>> + ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
>> + if (ret) {
>> + xe_log_err(xe, SYSCTRL, ret, "failed to get page offline
>> queue\n");
>> + return;
>> + }
>> + if (rlen != sizeof(response)) {
>> + xe_log_err(xe, SYSCTRL, -EINVAL,
>> + "unexpected page offline queue response length
>> %zu (expected %zu)\n",
>> + rlen, sizeof(response));
>> + return;
>> + }
>> +
>
> How about helper function for below part avoids code duplication ?
I did try it before sending this. But due to difference in
request/response structures it is not very clean.
And there is max_entries cached in the next patch in offline list.
Thanks
Riana
>
>
>> + for (i = 0; i < response.pages_returned && i <
>> XE_RAS_NUM_PAGES; i++)
>> + handle_page_offline(xe, response.page_addresses[i], true);
>> +
>> + count += response.pages_returned;
>> + if (!response.pages_returned)
>> + break;
>> +
>> + if (!total_pages)
>> + total_pages = response.total_pages;
>> +
>> + if (count > total_pages) {
>> + xe_log_err(xe, SYSCTRL, -EINVAL,
>> + "Pages returned from queue exceed total pages %u,
>> returned %u\n",
>> + total_pages, count);
>> + return;
>> + }
>> + } while (response.additional_data);
>> +}
>> +
>> +static void get_offlined_list(struct xe_device *xe)
>> +{
>> + struct xe_sysctrl_mailbox_command command = {0};
>> + struct xe_ras_offline_list_response response = {0};
>> + struct xe_ras_offline_list_request request = {0};
>> + u32 count = 0, total_pages = 0;
>> + size_t rlen;
>> + int ret, i;
>> +
>> + /* Supported only on platforms with system controller */
>> + if (!xe->info.has_sysctrl)
>> + return;
>> +
>> + xe_sysctrl_create_command(&command, XE_SYSCTRL_GROUP_GFSP,
>> XE_SYSCTRL_CMD_GET_OFFLINE_LIST,
>> + &request, sizeof(request), &response,
>> sizeof(response));
>> +
>> + do {
>> + memset(&response, 0, sizeof(response));
>> + request.index = count;
>> +
>> + ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
>> + if (ret) {
>> + xe_log_err(xe, SYSCTRL, ret, "failed to get page offline
>> list\n");
>> + return;
>> + }
>> +
>> + if (rlen != sizeof(response)) {
>> + xe_log_err(xe, SYSCTRL, -EINVAL,
>> + "unexpected page offline list response length %zu
>> (expected %zu)\n",
>> + rlen, sizeof(response));
>> + return;
>> + }
>> +
>> + for (i = 0; i < response.pages_returned && i <
>> XE_RAS_NUM_PAGES; i++)
>> + handle_page_offline(xe, response.page_addresses[i], false);
>> +
>> + count += response.pages_returned;
>> + if (!response.pages_returned)
>> + break;
>> +
>> + if (!total_pages)
>> + total_pages = response.total_pages;
>> +
>> + if (count > total_pages) {
>> + xe_log_err(xe, SYSCTRL, -EINVAL,
>> + "Pages returned from list exceed total pages %u,
>> returned %u\n",
>> + total_pages, count);
>> + return;
>> + }
>> + } while (response.additional_data);
>> +}
>> +
>> static struct pci_dev *find_usp_dev(struct pci_dev *pdev)
>> {
>> struct pci_dev *vsp;
>> @@ -1040,6 +1142,9 @@ void xe_ras_init(struct xe_device *xe)
>> if (IS_ENABLED(CONFIG_PCIEAER))
>> ras_usp_aer_init(xe);
>> + get_queued_pages(xe);
>> + get_offlined_list(xe);
>> +
>> ret = devm_device_add_group(xe->drm.dev, &gpu_health_group);
>> if (ret)
>> xe_err(xe, "Failed to create GPU health sysfs, err=%d\n",
>> ret);
>> diff --git a/drivers/gpu/drm/xe/xe_ras_types.h
>> b/drivers/gpu/drm/xe/xe_ras_types.h
>> index 20c74593ce05..7bfd86c9d135 100644
>> --- a/drivers/gpu/drm/xe/xe_ras_types.h
>> +++ b/drivers/gpu/drm/xe/xe_ras_types.h
>> @@ -10,6 +10,7 @@
>> #define XE_RAS_NUM_COUNTERS 16
>> #define XE_RAS_NUM_ERROR_ARR 3
>> +#define XE_RAS_NUM_PAGES 25
>> /* Error bits in IEH global error status register */
>> #define XE_RAS_SOC_IEH_PUNIT BIT(1)
>> /* Device memory error categories */
>> @@ -330,6 +331,48 @@ struct xe_ras_page_offline_response {
>> u32 reserved;
>> } __packed;
>> +/**
>> + * struct xe_ras_offline_list_request - Request for get offline list
>> command
>> + */
>> +struct xe_ras_offline_list_request {
>> + /** @index: Zero-based index into the offline page list */
>> + u32 index;
>> +} __packed;
>> +
>> +/**
>> + * struct xe_ras_offline_list_response - Response from get offline
>> list command
>> + */
>> +struct xe_ras_offline_list_response {
>> + /** @max_entries: Total no of pages that can be stored in flash */
>> + u32 max_entries;
>> + /** @total_pages: Total number of permanently offlined pages */
>> + u32 total_pages;
>> + /** @pages_returned: Number of pages returned in this response */
>> + u32 pages_returned;
>> + /** @page_addresses: Array of permanently offlined page
>> addresses (4KB aligned) */
>> + u64 page_addresses[XE_RAS_NUM_PAGES];
>> + /** @additional_data: Indicates if more data is available */
>> + u8 additional_data;
>> + /** @reserved: Reserved for future use */
>> + u8 reserved[3];
>> +} __packed;
>> +
>> +/**
>> + * struct xe_ras_page_offline_queue - Response from get offline
>> queue command
>> + */
>> +struct xe_ras_page_offline_queue {
>> + /** @total_pages: Total number of queued pages */
>> + u32 total_pages;
>> + /** @pages_returned: Number of pages returned in this response */
>> + u32 pages_returned;
>> + /** @page_addresses: Array of page addresses (4KB aligned) */
>> + u64 page_addresses[XE_RAS_NUM_PAGES];
>> + /** @additional_data: Indicates if more data is available */
>> + u8 additional_data;
>> + /** @reserved: Reserved for future use */
>> + u8 reserved[3];
>> +} __packed;
>> +
>> /**
>> * struct xe_ras_get_health_request - Request structure for
>> obtaining gpu health
>> */
>> diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
>> b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
>> index 590dd408399c..a96aeb11d061 100644
>> --- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
>> +++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
>> @@ -29,6 +29,8 @@ enum xe_sysctrl_group {
>> * @XE_SYSCTRL_CMD_SET_THRESHOLD: Set error threshold
>> * @XE_SYSCTRL_CMD_GET_PENDING_EVENT: Retrieve pending event
>> * @XE_SYSCTRL_CMD_PAGE_OFFLINE: Instruct firmware to
>> offline/decline a page
>> + * @XE_SYSCTRL_CMD_GET_OFFLINE_LIST: Retrieve list of all offlined
>> pages from flash
>> + * @XE_SYSCTRL_CMD_GET_OFFLINE_QUEUE: Retrieve list of offlined
>> queued pages from firmware
>> * @XE_SYSCTRL_CMD_GET_HEALTH: Retrieve gpu health
>> * @XE_SYSCTRL_CMD_SET_HEALTH: Set gpu health
>> */
>> @@ -40,6 +42,8 @@ enum xe_sysctrl_gfsp_cmd {
>> XE_SYSCTRL_CMD_SET_THRESHOLD = 0x06,
>> XE_SYSCTRL_CMD_GET_PENDING_EVENT = 0x07,
>> XE_SYSCTRL_CMD_PAGE_OFFLINE = 0x08,
>> + XE_SYSCTRL_CMD_GET_OFFLINE_LIST = 0x09,
>> + XE_SYSCTRL_CMD_GET_OFFLINE_QUEUE = 0x0A,
>> XE_SYSCTRL_CMD_GET_HEALTH = 0x0B,
>> XE_SYSCTRL_CMD_SET_HEALTH = 0x0C,
>> };
>
^ permalink raw reply [flat|nested] 25+ messages in thread* Re: [PATCH v2 2/6] drm/xe/xe_ras: Add support to query page offline queue and list
2026-09-11 6:11 ` Tauro, Riana
@ 2026-09-11 6:39 ` Ghimiray, Himal Prasad
0 siblings, 0 replies; 25+ messages in thread
From: Ghimiray, Himal Prasad @ 2026-09-11 6:39 UTC (permalink / raw)
To: Tauro, Riana, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, aravind.iddamsetty, badal.nilawar,
raag.jadav, ravi.kishore.koppuravuri, mallesh.koujalagi,
soham.purkait, tejas.upadhyay
On 11-09-2026 11:41, Tauro, Riana wrote:
>
> On 07-09-2026 23:55, Ghimiray, Himal Prasad wrote:
>>
>>
>> On 07-09-2026 15:17, Riana Tauro wrote:
>>> Add support to query page offline list and queue from firmware
>>> during module load. The page offline list command retrieves pages that
>>> are already offlined by the firmware. The page offline queue command
>>> retrieves the pages pending to be offlined by the firmware.
>>>
>>> Cc: Tejas Upadhyay <tejas.upadhyay@intel.com>
>>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>>> ---
>>> v2: rebase
>>> store total pages once per response (Sashiko)
>>> ---
>>> drivers/gpu/drm/xe/xe_ras.c | 105 ++++++++++++++++++
>>> drivers/gpu/drm/xe/xe_ras_types.h | 43 +++++++
>>> drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 4 +
>>> 3 files changed, 152 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
>>> index 94ffd0852938..648e46df831d 100644
>>> --- a/drivers/gpu/drm/xe/xe_ras.c
>>> +++ b/drivers/gpu/drm/xe/xe_ras.c
>>> @@ -326,6 +326,108 @@ static bool ras_counter_is_valid(struct
>>> xe_device *xe, struct xe_ras_error_class
>>> return true;
>>> }
>>> +static void get_queued_pages(struct xe_device *xe)
>>> +{
>>> + struct xe_sysctrl_mailbox_command command = {0};
>>> + struct xe_ras_page_offline_queue response = {0};
>>> + u32 count = 0, total_pages = 0;
>>> + size_t rlen;
>>> + int ret, i;
>>> +
>>> + /* Supported only on platforms with system controller */
>>> + if (!xe->info.has_sysctrl)
>>> + return;
>>
>> move to caller, single check helps for both get_queued_pages and
>> get_offlined_list.
>
> This is already part of caller. Added here in case there is a re-use.
>
>>
>>> +
>>> + xe_sysctrl_create_command(&command, XE_SYSCTRL_GROUP_GFSP,
>>> + XE_SYSCTRL_CMD_GET_OFFLINE_QUEUE, NULL, 0, &response,
>>> + sizeof(response));
>>> +
>>> + do {
>>> + memset(&response, 0, sizeof(response));
>>> +
>>> + ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
>>> + if (ret) {
>>> + xe_log_err(xe, SYSCTRL, ret, "failed to get page offline
>>> queue\n");
>>> + return;
>>> + }
>>> + if (rlen != sizeof(response)) {
>>> + xe_log_err(xe, SYSCTRL, -EINVAL,
>>> + "unexpected page offline queue response length
>>> %zu (expected %zu)\n",
>>> + rlen, sizeof(response));
>>> + return;
>>> + }
>>> +
>>
>> How about helper function for below part avoids code duplication ?
>
> I did try it before sending this. But due to difference in request/
> response structures it is not very clean.
> And there is max_entries cached in the next patch in offline list.
>
Look at below code snippet, if it makes sense to use it. Ignore it if
feels overkill.
/**
* struct xe_ras_pages_response - Common page-address response payload
*/
struct xe_ras_page_response {
/** @total_pages: Total number of pages */
u32 total_pages;
/** @pages_returned: Number of pages returned in this response */
u32 pages_returned;
/** @page_addresses: Array of page addresses (4KB aligned) */
u64 page_addresses[XE_RAS_NUM_PAGES];
/** @additional_data: Indicates if more data is available */
u8 additional_data;
/** @reserved: Reserved for future use */
u8 reserved[3];
} __packed;
/**
* struct xe_ras_offline_list_response - Response from get offline list
command
*/
struct xe_ras_offline_list_response {
/** @max_entries: Total no of pages that can be stored in flash */
u32 max_entries;
/** @pages: Permanently offlined page-address payload */
struct xe_ras_pages_response pages;
} __packed;
#define xe_ras_page_offline_queue xe_ras_page_response
static int get_offline_pages(struct xe_device *xe, u32 cmd, bool
offline_pending, void *request, size_t req_size, u32 *req_index,
void *response, size_t resp_size, struct xe_ras_page_response *pages,
const char *print_str)
{
}
static void get_queued_pages(struct xe_device *xe)
{
struct xe_ras_pages_response response = {0};
get_offline_pages(xe, XE_SYSCTRL_CMD_GET_OFFLINE_QUEUE, true,
NULL, 0, NULL,
&response, sizeof(response), &response, "queue");
}
static void get_offlined_list(struct xe_device *xe)
{
struct xe_ras_offline_list_response response = {0};
struct xe_ras_offline_list_request request = {0};
struct xe_ras_state *state = &xe->ras.state;
if (!get_offline_pages(xe, XE_SYSCTRL_CMD_GET_OFFLINE_LIST, false,
&request, sizeof(request), &request.index,
&response, sizeof(response), &response.pages, "list") &&
!state->max_pages)
state->max_pages = response.max_entries;
}
> Thanks
> Riana
>
>>
>>
>>> + for (i = 0; i < response.pages_returned && i <
>>> XE_RAS_NUM_PAGES; i++)
>>> + handle_page_offline(xe, response.page_addresses[i], true);
>>> +
>>> + count += response.pages_returned;
>>> + if (!response.pages_returned)
>>> + break;
>>> +
>>> + if (!total_pages)
>>> + total_pages = response.total_pages;
>>> +
>>> + if (count > total_pages) {
>>> + xe_log_err(xe, SYSCTRL, -EINVAL,
>>> + "Pages returned from queue exceed total pages %u,
>>> returned %u\n",
>>> + total_pages, count);
>>> + return;
>>> + }
>>> + } while (response.additional_data);
>>> +}
>>> +
>>> +static void get_offlined_list(struct xe_device *xe)
>>> +{
>>> + struct xe_sysctrl_mailbox_command command = {0};
>>> + struct xe_ras_offline_list_response response = {0};
>>> + struct xe_ras_offline_list_request request = {0};
>>> + u32 count = 0, total_pages = 0;
>>> + size_t rlen;
>>> + int ret, i;
>>> +
>>> + /* Supported only on platforms with system controller */
>>> + if (!xe->info.has_sysctrl)
>>> + return;
>>> +
>>> + xe_sysctrl_create_command(&command, XE_SYSCTRL_GROUP_GFSP,
>>> XE_SYSCTRL_CMD_GET_OFFLINE_LIST,
>>> + &request, sizeof(request), &response,
>>> sizeof(response));
>>> +
>>> + do {
>>> + memset(&response, 0, sizeof(response));
>>> + request.index = count;
>>> +
>>> + ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
>>> + if (ret) {
>>> + xe_log_err(xe, SYSCTRL, ret, "failed to get page offline
>>> list\n");
>>> + return;
>>> + }
>>> +
>>> + if (rlen != sizeof(response)) {
>>> + xe_log_err(xe, SYSCTRL, -EINVAL,
>>> + "unexpected page offline list response length %zu
>>> (expected %zu)\n",
>>> + rlen, sizeof(response));
>>> + return;
>>> + }
>>> +
>>> + for (i = 0; i < response.pages_returned && i <
>>> XE_RAS_NUM_PAGES; i++)
>>> + handle_page_offline(xe, response.page_addresses[i], false);
>>> +
>>> + count += response.pages_returned;
>>> + if (!response.pages_returned)
>>> + break;
>>> +
>>> + if (!total_pages)
>>> + total_pages = response.total_pages;
>>> +
>>> + if (count > total_pages) {
>>> + xe_log_err(xe, SYSCTRL, -EINVAL,
>>> + "Pages returned from list exceed total pages %u,
>>> returned %u\n",
>>> + total_pages, count);
>>> + return;
>>> + }
>>> + } while (response.additional_data);
>>> +}
>>> +
>>> static struct pci_dev *find_usp_dev(struct pci_dev *pdev)
>>> {
>>> struct pci_dev *vsp;
>>> @@ -1040,6 +1142,9 @@ void xe_ras_init(struct xe_device *xe)
>>> if (IS_ENABLED(CONFIG_PCIEAER))
>>> ras_usp_aer_init(xe);
>>> + get_queued_pages(xe);
>>> + get_offlined_list(xe);
>>> +
>>> ret = devm_device_add_group(xe->drm.dev, &gpu_health_group);
>>> if (ret)
>>> xe_err(xe, "Failed to create GPU health sysfs, err=%d\n",
>>> ret);
>>> diff --git a/drivers/gpu/drm/xe/xe_ras_types.h b/drivers/gpu/drm/xe/
>>> xe_ras_types.h
>>> index 20c74593ce05..7bfd86c9d135 100644
>>> --- a/drivers/gpu/drm/xe/xe_ras_types.h
>>> +++ b/drivers/gpu/drm/xe/xe_ras_types.h
>>> @@ -10,6 +10,7 @@
>>> #define XE_RAS_NUM_COUNTERS 16
>>> #define XE_RAS_NUM_ERROR_ARR 3
>>> +#define XE_RAS_NUM_PAGES 25
>>> /* Error bits in IEH global error status register */
>>> #define XE_RAS_SOC_IEH_PUNIT BIT(1)
>>> /* Device memory error categories */
>>> @@ -330,6 +331,48 @@ struct xe_ras_page_offline_response {
>>> u32 reserved;
>>> } __packed;
>>> +/**
>>> + * struct xe_ras_offline_list_request - Request for get offline list
>>> command
>>> + */
>>> +struct xe_ras_offline_list_request {
>>> + /** @index: Zero-based index into the offline page list */
>>> + u32 index;
>>> +} __packed;
>>> +
>>> +/**
>>> + * struct xe_ras_offline_list_response - Response from get offline
>>> list command
>>> + */
>>> +struct xe_ras_offline_list_response {
>>> + /** @max_entries: Total no of pages that can be stored in flash */
>>> + u32 max_entries;
>>> + /** @total_pages: Total number of permanently offlined pages */
>>> + u32 total_pages;
>>> + /** @pages_returned: Number of pages returned in this response */
>>> + u32 pages_returned;
>>> + /** @page_addresses: Array of permanently offlined page
>>> addresses (4KB aligned) */
>>> + u64 page_addresses[XE_RAS_NUM_PAGES];
>>> + /** @additional_data: Indicates if more data is available */
>>> + u8 additional_data;
>>> + /** @reserved: Reserved for future use */
>>> + u8 reserved[3];
>>> +} __packed;
>>> +
>>> +/**
>>> + * struct xe_ras_page_offline_queue - Response from get offline
>>> queue command
>>> + */
>>> +struct xe_ras_page_offline_queue {
>>> + /** @total_pages: Total number of queued pages */
>>> + u32 total_pages;
>>> + /** @pages_returned: Number of pages returned in this response */
>>> + u32 pages_returned;
>>> + /** @page_addresses: Array of page addresses (4KB aligned) */
>>> + u64 page_addresses[XE_RAS_NUM_PAGES];
>>> + /** @additional_data: Indicates if more data is available */
>>> + u8 additional_data;
>>> + /** @reserved: Reserved for future use */
>>> + u8 reserved[3];
>>> +} __packed;
>>> +
>>> /**
>>> * struct xe_ras_get_health_request - Request structure for
>>> obtaining gpu health
>>> */
>>> diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h b/drivers/
>>> gpu/drm/xe/xe_sysctrl_mailbox_types.h
>>> index 590dd408399c..a96aeb11d061 100644
>>> --- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
>>> +++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
>>> @@ -29,6 +29,8 @@ enum xe_sysctrl_group {
>>> * @XE_SYSCTRL_CMD_SET_THRESHOLD: Set error threshold
>>> * @XE_SYSCTRL_CMD_GET_PENDING_EVENT: Retrieve pending event
>>> * @XE_SYSCTRL_CMD_PAGE_OFFLINE: Instruct firmware to offline/
>>> decline a page
>>> + * @XE_SYSCTRL_CMD_GET_OFFLINE_LIST: Retrieve list of all offlined
>>> pages from flash
>>> + * @XE_SYSCTRL_CMD_GET_OFFLINE_QUEUE: Retrieve list of offlined
>>> queued pages from firmware
>>> * @XE_SYSCTRL_CMD_GET_HEALTH: Retrieve gpu health
>>> * @XE_SYSCTRL_CMD_SET_HEALTH: Set gpu health
>>> */
>>> @@ -40,6 +42,8 @@ enum xe_sysctrl_gfsp_cmd {
>>> XE_SYSCTRL_CMD_SET_THRESHOLD = 0x06,
>>> XE_SYSCTRL_CMD_GET_PENDING_EVENT = 0x07,
>>> XE_SYSCTRL_CMD_PAGE_OFFLINE = 0x08,
>>> + XE_SYSCTRL_CMD_GET_OFFLINE_LIST = 0x09,
>>> + XE_SYSCTRL_CMD_GET_OFFLINE_QUEUE = 0x0A,
>>> XE_SYSCTRL_CMD_GET_HEALTH = 0x0B,
>>> XE_SYSCTRL_CMD_SET_HEALTH = 0x0C,
>>> };
>>
^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH v2 3/6] drm/xe: Separate drm-ras netlink data from device and firmware RAS state
2026-09-07 9:47 [PATCH v2 0/6] Add support to handle memory double-bit ecc errors Riana Tauro
2026-09-07 9:47 ` [PATCH v2 1/6] drm/xe/xe_ras: Handle page offline requests for device memory " Riana Tauro
2026-09-07 9:47 ` [PATCH v2 2/6] drm/xe/xe_ras: Add support to query page offline queue and list Riana Tauro
@ 2026-09-07 9:47 ` Riana Tauro
2026-09-07 19:04 ` Ghimiray, Himal Prasad
2026-09-07 9:47 ` [PATCH v2 4/6] drm/xe/xe_ras: Add function to get maximum pages firmware can store Riana Tauro
` (5 subsequent siblings)
8 siblings, 1 reply; 25+ messages in thread
From: Riana Tauro @ 2026-09-07 9:47 UTC (permalink / raw)
To: intel-xe
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, aravind.iddamsetty,
badal.nilawar, raag.jadav, ravi.kishore.koppuravuri,
mallesh.koujalagi, soham.purkait, tejas.upadhyay
Keep the DRM RAS data used for netlink reporting separate from the
device and firmware RAS state in xe_device.
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
---
drivers/gpu/drm/xe/xe_device_types.h | 11 +++++++++--
drivers/gpu/drm/xe/xe_drm_ras.c | 16 ++++++++--------
drivers/gpu/drm/xe/xe_drm_ras_types.h | 3 ---
drivers/gpu/drm/xe/xe_hw_error.c | 6 +++---
drivers/gpu/drm/xe/xe_ras.c | 15 +++++++--------
drivers/gpu/drm/xe/xe_ras.h | 6 ++++++
drivers/gpu/drm/xe/xe_ras_types.h | 10 ++++++++++
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 3 ++-
8 files changed, 45 insertions(+), 25 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 180d450a6deb..f9dd65d94417 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -21,6 +21,7 @@
#include "xe_platform_types.h"
#include "xe_pmu_types.h"
#include "xe_pt_types.h"
+#include "xe_ras_types.h"
#include "xe_sriov_pf_types.h"
#include "xe_sriov_types.h"
#include "xe_sriov_vf_types.h"
@@ -550,8 +551,14 @@ struct xe_device {
/** @pmu: performance monitoring unit */
struct xe_pmu pmu;
- /** @ras: RAS structure for device */
- struct xe_drm_ras ras;
+ /** @ras: RAS (Reliability, Availability, Serviceability) structures */
+ struct {
+ /** @ras.nl_data: drm-ras netlink data */
+ struct xe_drm_ras nl_data;
+
+ /** @ras.state: RAS device and firmware state */
+ struct xe_ras_state state;
+ } ras;
/** @i2c: I2C host controller */
struct xe_i2c *i2c;
diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/xe_drm_ras.c
index 7f3695707611..38d77561facf 100644
--- a/drivers/gpu/drm/xe/xe_drm_ras.c
+++ b/drivers/gpu/drm/xe/xe_drm_ras.c
@@ -20,7 +20,7 @@ static int query_error_counter(struct xe_device *xe,
enum drm_xe_ras_error_severity severity,
u32 error_id, const char **name, u32 *val)
{
- struct xe_drm_ras *ras = &xe->ras;
+ struct xe_drm_ras *ras = &xe->ras.nl_data;
struct xe_drm_ras_counter *info = ras->info[severity];
if (!info || !info[error_id].name)
@@ -41,7 +41,7 @@ static int clear_error_counter(struct xe_device *xe,
enum drm_xe_ras_error_severity severity,
u32 error_id)
{
- struct xe_drm_ras *ras = &xe->ras;
+ struct xe_drm_ras *ras = &xe->ras.nl_data;
struct xe_drm_ras_counter *info = ras->info[severity];
if (!info || !info[error_id].name)
@@ -90,7 +90,7 @@ static int query_correctable_error_threshold(struct drm_ras_node *ep, u32 error_
const char **name, u32 *threshold)
{
struct xe_device *xe = ep->priv;
- struct xe_drm_ras *ras = &xe->ras;
+ struct xe_drm_ras *ras = &xe->ras.nl_data;
struct xe_drm_ras_counter *info = ras->info[DRM_XE_RAS_ERR_SEV_CORRECTABLE];
if (!info || !info[error_id].name)
@@ -106,7 +106,7 @@ static int query_correctable_error_threshold(struct drm_ras_node *ep, u32 error_
static int set_correctable_error_threshold(struct drm_ras_node *ep, u32 error_id, u32 threshold)
{
struct xe_device *xe = ep->priv;
- struct xe_drm_ras *ras = &xe->ras;
+ struct xe_drm_ras *ras = &xe->ras.nl_data;
struct xe_drm_ras_counter *info = ras->info[DRM_XE_RAS_ERR_SEV_CORRECTABLE];
if (!info || !info[error_id].name)
@@ -142,7 +142,7 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
const enum drm_xe_ras_error_severity severity)
{
struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
- struct xe_drm_ras *ras = &xe->ras;
+ struct xe_drm_ras *ras = &xe->ras.nl_data;
const char *device_name;
device_name = kasprintf(GFP_KERNEL, "%04x:%02x:%02x.%d",
@@ -190,7 +190,7 @@ static void cleanup_node(struct drm_device *drm, void *node)
static int register_nodes(struct xe_device *xe)
{
- struct xe_drm_ras *ras = &xe->ras;
+ struct xe_drm_ras *ras = &xe->ras.nl_data;
struct drm_ras_node *node;
int i, ret;
@@ -230,7 +230,7 @@ static int register_nodes(struct xe_device *xe)
*/
void xe_drm_ras_event(struct xe_device *xe, u32 component, u32 severity, u32 value)
{
- struct xe_drm_ras *ras = &xe->ras;
+ struct xe_drm_ras *ras = &xe->ras.nl_data;
struct xe_drm_ras_counter *info = ras->info[severity];
struct drm_ras_node *node;
int ret;
@@ -260,7 +260,7 @@ void xe_drm_ras_event(struct xe_device *xe, u32 component, u32 severity, u32 val
*/
int xe_drm_ras_init(struct xe_device *xe)
{
- struct xe_drm_ras *ras = &xe->ras;
+ struct xe_drm_ras *ras = &xe->ras.nl_data;
struct drm_ras_node *node;
int err;
diff --git a/drivers/gpu/drm/xe/xe_drm_ras_types.h b/drivers/gpu/drm/xe/xe_drm_ras_types.h
index 0be218ba2db7..8d729ad6a264 100644
--- a/drivers/gpu/drm/xe/xe_drm_ras_types.h
+++ b/drivers/gpu/drm/xe/xe_drm_ras_types.h
@@ -43,9 +43,6 @@ struct xe_drm_ras {
/** @info: info array for all types of errors */
struct xe_drm_ras_counter *info[DRM_XE_RAS_ERR_SEV_MAX];
-
- /** @disable_vram_page_offline: cached configfs policy, immutable after init */
- bool disable_vram_page_offline;
};
#endif
diff --git a/drivers/gpu/drm/xe/xe_hw_error.c b/drivers/gpu/drm/xe/xe_hw_error.c
index 5f2abc9485ff..f53a6b3055de 100644
--- a/drivers/gpu/drm/xe/xe_hw_error.c
+++ b/drivers/gpu/drm/xe/xe_hw_error.c
@@ -240,7 +240,7 @@ static void log_soc_error(struct xe_tile *tile, const char * const *reg_info,
{
const char *severity_str = error_severity[severity];
struct xe_device *xe = tile_to_xe(tile);
- struct xe_drm_ras *ras = &xe->ras;
+ struct xe_drm_ras *ras = &xe->ras.nl_data;
struct xe_drm_ras_counter *info = ras->info[severity];
const char *name;
@@ -260,7 +260,7 @@ static void gt_hw_error_handler(struct xe_tile *tile, const enum hardware_error
{
const enum drm_xe_ras_error_severity severity = hw_err_to_severity(hw_err);
struct xe_device *xe = tile_to_xe(tile);
- struct xe_drm_ras *ras = &xe->ras;
+ struct xe_drm_ras *ras = &xe->ras.nl_data;
struct xe_drm_ras_counter *info = ras->info[severity];
struct xe_mmio *mmio = &tile->mmio;
unsigned long err_stat = 0;
@@ -422,7 +422,7 @@ static void hw_error_source_handler(struct xe_tile *tile, const enum hardware_er
const enum drm_xe_ras_error_severity severity = hw_err_to_severity(hw_err);
const char *severity_str = error_severity[severity];
struct xe_device *xe = tile_to_xe(tile);
- struct xe_drm_ras *ras = &xe->ras;
+ struct xe_drm_ras *ras = &xe->ras.nl_data;
struct xe_drm_ras_counter *info = ras->info[severity];
unsigned long flags, err_src;
u32 err_bit;
diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
index 648e46df831d..b5b0c1a3a663 100644
--- a/drivers/gpu/drm/xe/xe_ras.c
+++ b/drivers/gpu/drm/xe/xe_ras.c
@@ -1126,19 +1126,18 @@ void xe_ras_init(struct xe_device *xe)
{
int ret;
- /*
- * TODO: Replace platform check with xe->info.has_disable_vram_page_offline
- * once the feature flag is plumbed through device info.
- */
- if (xe->info.platform == XE_CRESCENTISLAND)
- xe->ras.disable_vram_page_offline =
- xe_configfs_get_disable_vram_page_offline(to_pci_dev(xe->drm.dev));
-
xe_drm_ras_init(xe);
if (!xe->info.has_sysctrl)
return;
+ /*
+ * TODO: Replace platform check with xe->info.has_disable_vram_page_offline
+ * once the feature flag is plumbed through device info.
+ */
+ xe->ras.state.disable_page_offline =
+ xe_configfs_get_disable_vram_page_offline(to_pci_dev(xe->drm.dev));
+
if (IS_ENABLED(CONFIG_PCIEAER))
ras_usp_aer_init(xe);
diff --git a/drivers/gpu/drm/xe/xe_ras.h b/drivers/gpu/drm/xe/xe_ras.h
index 0b8669f28d56..6e65443cd262 100644
--- a/drivers/gpu/drm/xe/xe_ras.h
+++ b/drivers/gpu/drm/xe/xe_ras.h
@@ -7,6 +7,7 @@
#define _XE_RAS_H_
#include <linux/types.h>
+#include "xe_device_types.h"
#include "xe_ras_types.h"
struct xe_device;
@@ -21,4 +22,9 @@ int xe_ras_set_threshold(struct xe_device *xe, u8 severity, u8 component, u32 th
void xe_ras_init(struct xe_device *xe);
enum xe_ras_recovery_action xe_ras_process_errors(struct xe_device *xe);
+static inline bool xe_ras_get_disable_page_offline(struct xe_device *xe)
+{
+ return xe->ras.state.disable_page_offline;
+}
+
#endif
diff --git a/drivers/gpu/drm/xe/xe_ras_types.h b/drivers/gpu/drm/xe/xe_ras_types.h
index 7bfd86c9d135..ca459e785add 100644
--- a/drivers/gpu/drm/xe/xe_ras_types.h
+++ b/drivers/gpu/drm/xe/xe_ras_types.h
@@ -414,4 +414,14 @@ struct xe_ras_set_health_response {
/** @reserved1: Reserved for future use */
u32 reserved1[2];
} __packed;
+
+/* Device structures */
+
+/**
+ * struct xe_ras_state - RAS device and firmware state
+ */
+struct xe_ras_state {
+ /** @disable_page_offline: cached configfs policy, immutable after init */
+ bool disable_page_offline;
+};
#endif
diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
index 9a514d983e90..2c4722a956a0 100644
--- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
+++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
@@ -24,6 +24,7 @@
#include "xe_mmio.h"
#include "xe_pm.h"
#include "xe_printk.h"
+#include "xe_ras.h"
#include "xe_res_cursor.h"
#include "xe_ttm_stolen_mgr.h"
#include "xe_ttm_vram_mgr.h"
@@ -933,7 +934,7 @@ int xe_ttm_vram_handle_addr_fault(struct xe_device *xe, u64 addr)
vram_mgr = &vr->ttm;
mm = &vram_mgr->mm;
- if (xe->ras.disable_vram_page_offline) {
+ if (xe_ras_get_disable_page_offline(xe)) {
xe_err(xe, "0x%llx is reported as corrupted address by HW\n",
addr);
return -EOPNOTSUPP;
--
2.47.1
^ permalink raw reply related [flat|nested] 25+ messages in thread* Re: [PATCH v2 3/6] drm/xe: Separate drm-ras netlink data from device and firmware RAS state
2026-09-07 9:47 ` [PATCH v2 3/6] drm/xe: Separate drm-ras netlink data from device and firmware RAS state Riana Tauro
@ 2026-09-07 19:04 ` Ghimiray, Himal Prasad
2026-09-07 19:21 ` Ghimiray, Himal Prasad
0 siblings, 1 reply; 25+ messages in thread
From: Ghimiray, Himal Prasad @ 2026-09-07 19:04 UTC (permalink / raw)
To: Riana Tauro, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, aravind.iddamsetty, badal.nilawar,
raag.jadav, ravi.kishore.koppuravuri, mallesh.koujalagi,
soham.purkait, tejas.upadhyay
On 07-09-2026 15:17, Riana Tauro wrote:
> Keep the DRM RAS data used for netlink reporting separate from the
> device and firmware RAS state in xe_device.
>
> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> ---
> drivers/gpu/drm/xe/xe_device_types.h | 11 +++++++++--
> drivers/gpu/drm/xe/xe_drm_ras.c | 16 ++++++++--------
> drivers/gpu/drm/xe/xe_drm_ras_types.h | 3 ---
> drivers/gpu/drm/xe/xe_hw_error.c | 6 +++---
> drivers/gpu/drm/xe/xe_ras.c | 15 +++++++--------
> drivers/gpu/drm/xe/xe_ras.h | 6 ++++++
> drivers/gpu/drm/xe/xe_ras_types.h | 10 ++++++++++
> drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 3 ++-
> 8 files changed, 45 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
> index 180d450a6deb..f9dd65d94417 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -21,6 +21,7 @@
> #include "xe_platform_types.h"
> #include "xe_pmu_types.h"
> #include "xe_pt_types.h"
> +#include "xe_ras_types.h"
> #include "xe_sriov_pf_types.h"
> #include "xe_sriov_types.h"
> #include "xe_sriov_vf_types.h"
> @@ -550,8 +551,14 @@ struct xe_device {
> /** @pmu: performance monitoring unit */
> struct xe_pmu pmu;
>
> - /** @ras: RAS structure for device */
> - struct xe_drm_ras ras;
> + /** @ras: RAS (Reliability, Availability, Serviceability) structures */
> + struct {
> + /** @ras.nl_data: drm-ras netlink data */
> + struct xe_drm_ras nl_data;
> +
> + /** @ras.state: RAS device and firmware state */
> + struct xe_ras_state state;
> + } ras;
+1 for this separation. Looks much cleaner
>
> /** @i2c: I2C host controller */
> struct xe_i2c *i2c;
> diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/xe_drm_ras.c
> index 7f3695707611..38d77561facf 100644
> --- a/drivers/gpu/drm/xe/xe_drm_ras.c
> +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
> @@ -20,7 +20,7 @@ static int query_error_counter(struct xe_device *xe,
> enum drm_xe_ras_error_severity severity,
> u32 error_id, const char **name, u32 *val)
> {
> - struct xe_drm_ras *ras = &xe->ras;
> + struct xe_drm_ras *ras = &xe->ras.nl_data;
> struct xe_drm_ras_counter *info = ras->info[severity];
>
> if (!info || !info[error_id].name)
> @@ -41,7 +41,7 @@ static int clear_error_counter(struct xe_device *xe,
> enum drm_xe_ras_error_severity severity,
> u32 error_id)
> {
> - struct xe_drm_ras *ras = &xe->ras;
> + struct xe_drm_ras *ras = &xe->ras.nl_data;
> struct xe_drm_ras_counter *info = ras->info[severity];
>
> if (!info || !info[error_id].name)
> @@ -90,7 +90,7 @@ static int query_correctable_error_threshold(struct drm_ras_node *ep, u32 error_
> const char **name, u32 *threshold)
> {
> struct xe_device *xe = ep->priv;
> - struct xe_drm_ras *ras = &xe->ras;
> + struct xe_drm_ras *ras = &xe->ras.nl_data;
> struct xe_drm_ras_counter *info = ras->info[DRM_XE_RAS_ERR_SEV_CORRECTABLE];
>
> if (!info || !info[error_id].name)
> @@ -106,7 +106,7 @@ static int query_correctable_error_threshold(struct drm_ras_node *ep, u32 error_
> static int set_correctable_error_threshold(struct drm_ras_node *ep, u32 error_id, u32 threshold)
> {
> struct xe_device *xe = ep->priv;
> - struct xe_drm_ras *ras = &xe->ras;
> + struct xe_drm_ras *ras = &xe->ras.nl_data;
> struct xe_drm_ras_counter *info = ras->info[DRM_XE_RAS_ERR_SEV_CORRECTABLE];
>
> if (!info || !info[error_id].name)
> @@ -142,7 +142,7 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
> const enum drm_xe_ras_error_severity severity)
> {
> struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
> - struct xe_drm_ras *ras = &xe->ras;
> + struct xe_drm_ras *ras = &xe->ras.nl_data;
> const char *device_name;
>
> device_name = kasprintf(GFP_KERNEL, "%04x:%02x:%02x.%d",
> @@ -190,7 +190,7 @@ static void cleanup_node(struct drm_device *drm, void *node)
>
> static int register_nodes(struct xe_device *xe)
> {
> - struct xe_drm_ras *ras = &xe->ras;
> + struct xe_drm_ras *ras = &xe->ras.nl_data;
> struct drm_ras_node *node;
> int i, ret;
>
> @@ -230,7 +230,7 @@ static int register_nodes(struct xe_device *xe)
> */
> void xe_drm_ras_event(struct xe_device *xe, u32 component, u32 severity, u32 value)
> {
> - struct xe_drm_ras *ras = &xe->ras;
> + struct xe_drm_ras *ras = &xe->ras.nl_data;
> struct xe_drm_ras_counter *info = ras->info[severity];
> struct drm_ras_node *node;
> int ret;
> @@ -260,7 +260,7 @@ void xe_drm_ras_event(struct xe_device *xe, u32 component, u32 severity, u32 val
> */
> int xe_drm_ras_init(struct xe_device *xe)
> {
> - struct xe_drm_ras *ras = &xe->ras;
> + struct xe_drm_ras *ras = &xe->ras.nl_data;
> struct drm_ras_node *node;
> int err;
>
> diff --git a/drivers/gpu/drm/xe/xe_drm_ras_types.h b/drivers/gpu/drm/xe/xe_drm_ras_types.h
> index 0be218ba2db7..8d729ad6a264 100644
> --- a/drivers/gpu/drm/xe/xe_drm_ras_types.h
> +++ b/drivers/gpu/drm/xe/xe_drm_ras_types.h
> @@ -43,9 +43,6 @@ struct xe_drm_ras {
>
> /** @info: info array for all types of errors */
> struct xe_drm_ras_counter *info[DRM_XE_RAS_ERR_SEV_MAX];
> -
> - /** @disable_vram_page_offline: cached configfs policy, immutable after init */
> - bool disable_vram_page_offline;
> };
>
> #endif
> diff --git a/drivers/gpu/drm/xe/xe_hw_error.c b/drivers/gpu/drm/xe/xe_hw_error.c
> index 5f2abc9485ff..f53a6b3055de 100644
> --- a/drivers/gpu/drm/xe/xe_hw_error.c
> +++ b/drivers/gpu/drm/xe/xe_hw_error.c
> @@ -240,7 +240,7 @@ static void log_soc_error(struct xe_tile *tile, const char * const *reg_info,
> {
> const char *severity_str = error_severity[severity];
> struct xe_device *xe = tile_to_xe(tile);
> - struct xe_drm_ras *ras = &xe->ras;
> + struct xe_drm_ras *ras = &xe->ras.nl_data;
> struct xe_drm_ras_counter *info = ras->info[severity];
> const char *name;
>
> @@ -260,7 +260,7 @@ static void gt_hw_error_handler(struct xe_tile *tile, const enum hardware_error
> {
> const enum drm_xe_ras_error_severity severity = hw_err_to_severity(hw_err);
> struct xe_device *xe = tile_to_xe(tile);
> - struct xe_drm_ras *ras = &xe->ras;
> + struct xe_drm_ras *ras = &xe->ras.nl_data;
> struct xe_drm_ras_counter *info = ras->info[severity];
> struct xe_mmio *mmio = &tile->mmio;
> unsigned long err_stat = 0;
> @@ -422,7 +422,7 @@ static void hw_error_source_handler(struct xe_tile *tile, const enum hardware_er
> const enum drm_xe_ras_error_severity severity = hw_err_to_severity(hw_err);
> const char *severity_str = error_severity[severity];
> struct xe_device *xe = tile_to_xe(tile);
> - struct xe_drm_ras *ras = &xe->ras;
> + struct xe_drm_ras *ras = &xe->ras.nl_data;
> struct xe_drm_ras_counter *info = ras->info[severity];
> unsigned long flags, err_src;
> u32 err_bit;
> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
> index 648e46df831d..b5b0c1a3a663 100644
> --- a/drivers/gpu/drm/xe/xe_ras.c
> +++ b/drivers/gpu/drm/xe/xe_ras.c
> @@ -1126,19 +1126,18 @@ void xe_ras_init(struct xe_device *xe)
> {
> int ret;
>
> - /*
> - * TODO: Replace platform check with xe->info.has_disable_vram_page_offline
> - * once the feature flag is plumbed through device info.
> - */
> - if (xe->info.platform == XE_CRESCENTISLAND)
> - xe->ras.disable_vram_page_offline =
> - xe_configfs_get_disable_vram_page_offline(to_pci_dev(xe->drm.dev));
> -
> xe_drm_ras_init(xe);
>
> if (!xe->info.has_sysctrl)
> return;
>
I believe has_sysctrl is currently enabled only for CRI. Is it possible
that future platforms will support sysctrl but not VRAM page offlining?
If so, it would be better to have a separate device-info flag for that,
or at least keep a TODO here.
> + /*
> + * TODO: Replace platform check with xe->info.has_disable_vram_page_offline
> + * once the feature flag is plumbed through device info.
> + */
> + xe->ras.state.disable_page_offline =
> + xe_configfs_get_disable_vram_page_offline(to_pci_dev(xe->drm.dev));
> +
> if (IS_ENABLED(CONFIG_PCIEAER))
> ras_usp_aer_init(xe);
>
> diff --git a/drivers/gpu/drm/xe/xe_ras.h b/drivers/gpu/drm/xe/xe_ras.h
> index 0b8669f28d56..6e65443cd262 100644
> --- a/drivers/gpu/drm/xe/xe_ras.h
> +++ b/drivers/gpu/drm/xe/xe_ras.h
> @@ -7,6 +7,7 @@
> #define _XE_RAS_H_
>
> #include <linux/types.h>
> +#include "xe_device_types.h"
No, please. Let's not bring this dependency here. Move the function
definition to xe_ras.c.
> #include "xe_ras_types.h"
>
> struct xe_device;
> @@ -21,4 +22,9 @@ int xe_ras_set_threshold(struct xe_device *xe, u8 severity, u8 component, u32 th
> void xe_ras_init(struct xe_device *xe);
> enum xe_ras_recovery_action xe_ras_process_errors(struct xe_device *xe);
>
> +static inline bool xe_ras_get_disable_page_offline(struct xe_device *xe)
> +{
> + return xe->ras.state.disable_page_offline;
> +}
> +
> #endif
> diff --git a/drivers/gpu/drm/xe/xe_ras_types.h b/drivers/gpu/drm/xe/xe_ras_types.h
> index 7bfd86c9d135..ca459e785add 100644
> --- a/drivers/gpu/drm/xe/xe_ras_types.h
> +++ b/drivers/gpu/drm/xe/xe_ras_types.h
> @@ -414,4 +414,14 @@ struct xe_ras_set_health_response {
> /** @reserved1: Reserved for future use */
> u32 reserved1[2];
> } __packed;
> +
> +/* Device structures */
> +
> +/**
> + * struct xe_ras_state - RAS device and firmware state
> + */
> +struct xe_ras_state {
> + /** @disable_page_offline: cached configfs policy, immutable after init */
> + bool disable_page_offline;
> +};
> #endif
> diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> index 9a514d983e90..2c4722a956a0 100644
> --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> @@ -24,6 +24,7 @@
> #include "xe_mmio.h"
> #include "xe_pm.h"
> #include "xe_printk.h"
> +#include "xe_ras.h"
> #include "xe_res_cursor.h"
> #include "xe_ttm_stolen_mgr.h"
> #include "xe_ttm_vram_mgr.h"
> @@ -933,7 +934,7 @@ int xe_ttm_vram_handle_addr_fault(struct xe_device *xe, u64 addr)
> vram_mgr = &vr->ttm;
> mm = &vram_mgr->mm;
>
> - if (xe->ras.disable_vram_page_offline) {
> + if (xe_ras_get_disable_page_offline(xe)) {
> xe_err(xe, "0x%llx is reported as corrupted address by HW\n",
> addr);
> return -EOPNOTSUPP;
^ permalink raw reply [flat|nested] 25+ messages in thread* Re: [PATCH v2 3/6] drm/xe: Separate drm-ras netlink data from device and firmware RAS state
2026-09-07 19:04 ` Ghimiray, Himal Prasad
@ 2026-09-07 19:21 ` Ghimiray, Himal Prasad
2026-09-09 5:43 ` Tauro, Riana
0 siblings, 1 reply; 25+ messages in thread
From: Ghimiray, Himal Prasad @ 2026-09-07 19:21 UTC (permalink / raw)
To: Riana Tauro, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, aravind.iddamsetty, badal.nilawar,
raag.jadav, ravi.kishore.koppuravuri, mallesh.koujalagi,
soham.purkait, tejas.upadhyay
On 08-09-2026 00:34, Ghimiray, Himal Prasad wrote:
>
>
> On 07-09-2026 15:17, Riana Tauro wrote:
>> Keep the DRM RAS data used for netlink reporting separate from the
>> device and firmware RAS state in xe_device.
>>
>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_device_types.h | 11 +++++++++--
>> drivers/gpu/drm/xe/xe_drm_ras.c | 16 ++++++++--------
>> drivers/gpu/drm/xe/xe_drm_ras_types.h | 3 ---
>> drivers/gpu/drm/xe/xe_hw_error.c | 6 +++---
>> drivers/gpu/drm/xe/xe_ras.c | 15 +++++++--------
>> drivers/gpu/drm/xe/xe_ras.h | 6 ++++++
>> drivers/gpu/drm/xe/xe_ras_types.h | 10 ++++++++++
>> drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 3 ++-
>> 8 files changed, 45 insertions(+), 25 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/
>> xe/xe_device_types.h
>> index 180d450a6deb..f9dd65d94417 100644
>> --- a/drivers/gpu/drm/xe/xe_device_types.h
>> +++ b/drivers/gpu/drm/xe/xe_device_types.h
>> @@ -21,6 +21,7 @@
>> #include "xe_platform_types.h"
>> #include "xe_pmu_types.h"
>> #include "xe_pt_types.h"
>> +#include "xe_ras_types.h"
>> #include "xe_sriov_pf_types.h"
>> #include "xe_sriov_types.h"
>> #include "xe_sriov_vf_types.h"
>> @@ -550,8 +551,14 @@ struct xe_device {
>> /** @pmu: performance monitoring unit */
>> struct xe_pmu pmu;
>> - /** @ras: RAS structure for device */
>> - struct xe_drm_ras ras;
>> + /** @ras: RAS (Reliability, Availability, Serviceability)
>> structures */
>> + struct {
>> + /** @ras.nl_data: drm-ras netlink data */
>> + struct xe_drm_ras nl_data;
>> +
>> + /** @ras.state: RAS device and firmware state */
>> + struct xe_ras_state state;
>> + } ras;
>
> +1 for this separation. Looks much cleaner
>
>> /** @i2c: I2C host controller */
>> struct xe_i2c *i2c;
>> diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/
>> xe_drm_ras.c
>> index 7f3695707611..38d77561facf 100644
>> --- a/drivers/gpu/drm/xe/xe_drm_ras.c
>> +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
>> @@ -20,7 +20,7 @@ static int query_error_counter(struct xe_device *xe,
>> enum drm_xe_ras_error_severity severity,
>> u32 error_id, const char **name, u32 *val)
>> {
>> - struct xe_drm_ras *ras = &xe->ras;
>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>> struct xe_drm_ras_counter *info = ras->info[severity];
>> if (!info || !info[error_id].name)
>> @@ -41,7 +41,7 @@ static int clear_error_counter(struct xe_device *xe,
>> enum drm_xe_ras_error_severity severity,
>> u32 error_id)
>> {
>> - struct xe_drm_ras *ras = &xe->ras;
>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>> struct xe_drm_ras_counter *info = ras->info[severity];
>> if (!info || !info[error_id].name)
>> @@ -90,7 +90,7 @@ static int query_correctable_error_threshold(struct
>> drm_ras_node *ep, u32 error_
>> const char **name, u32 *threshold)
>> {
>> struct xe_device *xe = ep->priv;
>> - struct xe_drm_ras *ras = &xe->ras;
>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>> struct xe_drm_ras_counter *info = ras-
>> >info[DRM_XE_RAS_ERR_SEV_CORRECTABLE];
>> if (!info || !info[error_id].name)
>> @@ -106,7 +106,7 @@ static int
>> query_correctable_error_threshold(struct drm_ras_node *ep, u32 error_
>> static int set_correctable_error_threshold(struct drm_ras_node *ep,
>> u32 error_id, u32 threshold)
>> {
>> struct xe_device *xe = ep->priv;
>> - struct xe_drm_ras *ras = &xe->ras;
>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>> struct xe_drm_ras_counter *info = ras-
>> >info[DRM_XE_RAS_ERR_SEV_CORRECTABLE];
>> if (!info || !info[error_id].name)
>> @@ -142,7 +142,7 @@ static int assign_node_params(struct xe_device
>> *xe, struct drm_ras_node *node,
>> const enum drm_xe_ras_error_severity severity)
>> {
>> struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>> - struct xe_drm_ras *ras = &xe->ras;
>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>> const char *device_name;
>> device_name = kasprintf(GFP_KERNEL, "%04x:%02x:%02x.%d",
>> @@ -190,7 +190,7 @@ static void cleanup_node(struct drm_device *drm,
>> void *node)
>> static int register_nodes(struct xe_device *xe)
>> {
>> - struct xe_drm_ras *ras = &xe->ras;
>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>> struct drm_ras_node *node;
>> int i, ret;
>> @@ -230,7 +230,7 @@ static int register_nodes(struct xe_device *xe)
>> */
>> void xe_drm_ras_event(struct xe_device *xe, u32 component, u32
>> severity, u32 value)
>> {
>> - struct xe_drm_ras *ras = &xe->ras;
>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>> struct xe_drm_ras_counter *info = ras->info[severity];
>> struct drm_ras_node *node;
>> int ret;
>> @@ -260,7 +260,7 @@ void xe_drm_ras_event(struct xe_device *xe, u32
>> component, u32 severity, u32 val
>> */
>> int xe_drm_ras_init(struct xe_device *xe)
>> {
>> - struct xe_drm_ras *ras = &xe->ras;
>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>> struct drm_ras_node *node;
>> int err;
>> diff --git a/drivers/gpu/drm/xe/xe_drm_ras_types.h b/drivers/gpu/drm/
>> xe/xe_drm_ras_types.h
>> index 0be218ba2db7..8d729ad6a264 100644
>> --- a/drivers/gpu/drm/xe/xe_drm_ras_types.h
>> +++ b/drivers/gpu/drm/xe/xe_drm_ras_types.h
>> @@ -43,9 +43,6 @@ struct xe_drm_ras {
>> /** @info: info array for all types of errors */
>> struct xe_drm_ras_counter *info[DRM_XE_RAS_ERR_SEV_MAX];
>> -
>> - /** @disable_vram_page_offline: cached configfs policy, immutable
>> after init */
>> - bool disable_vram_page_offline;
>> };
>> #endif
>> diff --git a/drivers/gpu/drm/xe/xe_hw_error.c b/drivers/gpu/drm/xe/
>> xe_hw_error.c
>> index 5f2abc9485ff..f53a6b3055de 100644
>> --- a/drivers/gpu/drm/xe/xe_hw_error.c
>> +++ b/drivers/gpu/drm/xe/xe_hw_error.c
>> @@ -240,7 +240,7 @@ static void log_soc_error(struct xe_tile *tile,
>> const char * const *reg_info,
>> {
>> const char *severity_str = error_severity[severity];
>> struct xe_device *xe = tile_to_xe(tile);
>> - struct xe_drm_ras *ras = &xe->ras;
>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>> struct xe_drm_ras_counter *info = ras->info[severity];
>> const char *name;
>> @@ -260,7 +260,7 @@ static void gt_hw_error_handler(struct xe_tile
>> *tile, const enum hardware_error
>> {
>> const enum drm_xe_ras_error_severity severity =
>> hw_err_to_severity(hw_err);
>> struct xe_device *xe = tile_to_xe(tile);
>> - struct xe_drm_ras *ras = &xe->ras;
>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>> struct xe_drm_ras_counter *info = ras->info[severity];
>> struct xe_mmio *mmio = &tile->mmio;
>> unsigned long err_stat = 0;
>> @@ -422,7 +422,7 @@ static void hw_error_source_handler(struct xe_tile
>> *tile, const enum hardware_er
>> const enum drm_xe_ras_error_severity severity =
>> hw_err_to_severity(hw_err);
>> const char *severity_str = error_severity[severity];
>> struct xe_device *xe = tile_to_xe(tile);
>> - struct xe_drm_ras *ras = &xe->ras;
>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>> struct xe_drm_ras_counter *info = ras->info[severity];
>> unsigned long flags, err_src;
>> u32 err_bit;
>> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
>> index 648e46df831d..b5b0c1a3a663 100644
>> --- a/drivers/gpu/drm/xe/xe_ras.c
>> +++ b/drivers/gpu/drm/xe/xe_ras.c
>> @@ -1126,19 +1126,18 @@ void xe_ras_init(struct xe_device *xe)
>> {
>> int ret;
>> - /*
>> - * TODO: Replace platform check with xe-
>> >info.has_disable_vram_page_offline
>> - * once the feature flag is plumbed through device info.
>> - */
>> - if (xe->info.platform == XE_CRESCENTISLAND)
>> - xe->ras.disable_vram_page_offline =
>> - xe_configfs_get_disable_vram_page_offline(to_pci_dev(xe-
>> >drm.dev));
>> -
>> xe_drm_ras_init(xe);
>> if (!xe->info.has_sysctrl)
>> return;
>
> I believe has_sysctrl is currently enabled only for CRI. Is it possible
> that future platforms will support sysctrl but not VRAM page offlining?
> If so, it would be better to have a separate device-info flag for that,
> or at least keep a TODO here.
>
>> + /*
>> + * TODO: Replace platform check with xe-
>> >info.has_disable_vram_page_offline
>> + * once the feature flag is plumbed through device info.
>> + */
>> + xe->ras.state.disable_page_offline =
>> + xe_configfs_get_disable_vram_page_offline(to_pci_dev(xe-
>> >drm.dev));
>> +
>> if (IS_ENABLED(CONFIG_PCIEAER))
>> ras_usp_aer_init(xe);
>> diff --git a/drivers/gpu/drm/xe/xe_ras.h b/drivers/gpu/drm/xe/xe_ras.h
>> index 0b8669f28d56..6e65443cd262 100644
>> --- a/drivers/gpu/drm/xe/xe_ras.h
>> +++ b/drivers/gpu/drm/xe/xe_ras.h
>> @@ -7,6 +7,7 @@
>> #define _XE_RAS_H_
>> #include <linux/types.h>
>> +#include "xe_device_types.h"
>
> No, please. Let's not bring this dependency here. Move the function
> definition to xe_ras.c.
Seems next patch also adding xe_ras_get_max_pages as inlined. I am Ok
with #include "xe_device_types.h".
>
>> #include "xe_ras_types.h"
>> struct xe_device;
>> @@ -21,4 +22,9 @@ int xe_ras_set_threshold(struct xe_device *xe, u8
>> severity, u8 component, u32 th
>> void xe_ras_init(struct xe_device *xe);
>> enum xe_ras_recovery_action xe_ras_process_errors(struct xe_device
>> *xe);
>> +static inline bool xe_ras_get_disable_page_offline(struct xe_device *xe)
>> +{
>> + return xe->ras.state.disable_page_offline;
>> +}
>> +
>> #endif
>> diff --git a/drivers/gpu/drm/xe/xe_ras_types.h b/drivers/gpu/drm/xe/
>> xe_ras_types.h
>> index 7bfd86c9d135..ca459e785add 100644
>> --- a/drivers/gpu/drm/xe/xe_ras_types.h
>> +++ b/drivers/gpu/drm/xe/xe_ras_types.h
>> @@ -414,4 +414,14 @@ struct xe_ras_set_health_response {
>> /** @reserved1: Reserved for future use */
>> u32 reserved1[2];
>> } __packed;
>> +
>> +/* Device structures */
>> +
>> +/**
>> + * struct xe_ras_state - RAS device and firmware state
>> + */
>> +struct xe_ras_state {
>> + /** @disable_page_offline: cached configfs policy, immutable
>> after init */
>> + bool disable_page_offline;
>> +};
>> #endif
>> diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/
>> xe/xe_ttm_vram_mgr.c
>> index 9a514d983e90..2c4722a956a0 100644
>> --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
>> +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
>> @@ -24,6 +24,7 @@
>> #include "xe_mmio.h"
>> #include "xe_pm.h"
>> #include "xe_printk.h"
>> +#include "xe_ras.h"
>> #include "xe_res_cursor.h"
>> #include "xe_ttm_stolen_mgr.h"
>> #include "xe_ttm_vram_mgr.h"
>> @@ -933,7 +934,7 @@ int xe_ttm_vram_handle_addr_fault(struct xe_device
>> *xe, u64 addr)
>> vram_mgr = &vr->ttm;
>> mm = &vram_mgr->mm;
>> - if (xe->ras.disable_vram_page_offline) {
>> + if (xe_ras_get_disable_page_offline(xe)) {
>> xe_err(xe, "0x%llx is reported as corrupted address by HW\n",
>> addr);
>> return -EOPNOTSUPP;
>
^ permalink raw reply [flat|nested] 25+ messages in thread* Re: [PATCH v2 3/6] drm/xe: Separate drm-ras netlink data from device and firmware RAS state
2026-09-07 19:21 ` Ghimiray, Himal Prasad
@ 2026-09-09 5:43 ` Tauro, Riana
0 siblings, 0 replies; 25+ messages in thread
From: Tauro, Riana @ 2026-09-09 5:43 UTC (permalink / raw)
To: Ghimiray, Himal Prasad, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, aravind.iddamsetty, badal.nilawar,
raag.jadav, ravi.kishore.koppuravuri, mallesh.koujalagi,
soham.purkait, tejas.upadhyay
On 08-09-2026 00:51, Ghimiray, Himal Prasad wrote:
>
>
> On 08-09-2026 00:34, Ghimiray, Himal Prasad wrote:
>>
>>
>> On 07-09-2026 15:17, Riana Tauro wrote:
>>> Keep the DRM RAS data used for netlink reporting separate from the
>>> device and firmware RAS state in xe_device.
>>>
>>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>>> ---
>>> drivers/gpu/drm/xe/xe_device_types.h | 11 +++++++++--
>>> drivers/gpu/drm/xe/xe_drm_ras.c | 16 ++++++++--------
>>> drivers/gpu/drm/xe/xe_drm_ras_types.h | 3 ---
>>> drivers/gpu/drm/xe/xe_hw_error.c | 6 +++---
>>> drivers/gpu/drm/xe/xe_ras.c | 15 +++++++--------
>>> drivers/gpu/drm/xe/xe_ras.h | 6 ++++++
>>> drivers/gpu/drm/xe/xe_ras_types.h | 10 ++++++++++
>>> drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 3 ++-
>>> 8 files changed, 45 insertions(+), 25 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/
>>> xe/xe_device_types.h
>>> index 180d450a6deb..f9dd65d94417 100644
>>> --- a/drivers/gpu/drm/xe/xe_device_types.h
>>> +++ b/drivers/gpu/drm/xe/xe_device_types.h
>>> @@ -21,6 +21,7 @@
>>> #include "xe_platform_types.h"
>>> #include "xe_pmu_types.h"
>>> #include "xe_pt_types.h"
>>> +#include "xe_ras_types.h"
>>> #include "xe_sriov_pf_types.h"
>>> #include "xe_sriov_types.h"
>>> #include "xe_sriov_vf_types.h"
>>> @@ -550,8 +551,14 @@ struct xe_device {
>>> /** @pmu: performance monitoring unit */
>>> struct xe_pmu pmu;
>>> - /** @ras: RAS structure for device */
>>> - struct xe_drm_ras ras;
>>> + /** @ras: RAS (Reliability, Availability, Serviceability)
>>> structures */
>>> + struct {
>>> + /** @ras.nl_data: drm-ras netlink data */
>>> + struct xe_drm_ras nl_data;
>>> +
>>> + /** @ras.state: RAS device and firmware state */
>>> + struct xe_ras_state state;
>>> + } ras;
>>
>> +1 for this separation. Looks much cleaner
>>
>>> /** @i2c: I2C host controller */
>>> struct xe_i2c *i2c;
>>> diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/
>>> xe_drm_ras.c
>>> index 7f3695707611..38d77561facf 100644
>>> --- a/drivers/gpu/drm/xe/xe_drm_ras.c
>>> +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
>>> @@ -20,7 +20,7 @@ static int query_error_counter(struct xe_device *xe,
>>> enum drm_xe_ras_error_severity severity,
>>> u32 error_id, const char **name, u32 *val)
>>> {
>>> - struct xe_drm_ras *ras = &xe->ras;
>>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>>> struct xe_drm_ras_counter *info = ras->info[severity];
>>> if (!info || !info[error_id].name)
>>> @@ -41,7 +41,7 @@ static int clear_error_counter(struct xe_device *xe,
>>> enum drm_xe_ras_error_severity severity,
>>> u32 error_id)
>>> {
>>> - struct xe_drm_ras *ras = &xe->ras;
>>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>>> struct xe_drm_ras_counter *info = ras->info[severity];
>>> if (!info || !info[error_id].name)
>>> @@ -90,7 +90,7 @@ static int
>>> query_correctable_error_threshold(struct drm_ras_node *ep, u32 error_
>>> const char **name, u32 *threshold)
>>> {
>>> struct xe_device *xe = ep->priv;
>>> - struct xe_drm_ras *ras = &xe->ras;
>>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>>> struct xe_drm_ras_counter *info = ras-
>>> >info[DRM_XE_RAS_ERR_SEV_CORRECTABLE];
>>> if (!info || !info[error_id].name)
>>> @@ -106,7 +106,7 @@ static int
>>> query_correctable_error_threshold(struct drm_ras_node *ep, u32 error_
>>> static int set_correctable_error_threshold(struct drm_ras_node
>>> *ep, u32 error_id, u32 threshold)
>>> {
>>> struct xe_device *xe = ep->priv;
>>> - struct xe_drm_ras *ras = &xe->ras;
>>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>>> struct xe_drm_ras_counter *info = ras-
>>> >info[DRM_XE_RAS_ERR_SEV_CORRECTABLE];
>>> if (!info || !info[error_id].name)
>>> @@ -142,7 +142,7 @@ static int assign_node_params(struct xe_device
>>> *xe, struct drm_ras_node *node,
>>> const enum drm_xe_ras_error_severity severity)
>>> {
>>> struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>>> - struct xe_drm_ras *ras = &xe->ras;
>>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>>> const char *device_name;
>>> device_name = kasprintf(GFP_KERNEL, "%04x:%02x:%02x.%d",
>>> @@ -190,7 +190,7 @@ static void cleanup_node(struct drm_device *drm,
>>> void *node)
>>> static int register_nodes(struct xe_device *xe)
>>> {
>>> - struct xe_drm_ras *ras = &xe->ras;
>>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>>> struct drm_ras_node *node;
>>> int i, ret;
>>> @@ -230,7 +230,7 @@ static int register_nodes(struct xe_device *xe)
>>> */
>>> void xe_drm_ras_event(struct xe_device *xe, u32 component, u32
>>> severity, u32 value)
>>> {
>>> - struct xe_drm_ras *ras = &xe->ras;
>>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>>> struct xe_drm_ras_counter *info = ras->info[severity];
>>> struct drm_ras_node *node;
>>> int ret;
>>> @@ -260,7 +260,7 @@ void xe_drm_ras_event(struct xe_device *xe, u32
>>> component, u32 severity, u32 val
>>> */
>>> int xe_drm_ras_init(struct xe_device *xe)
>>> {
>>> - struct xe_drm_ras *ras = &xe->ras;
>>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>>> struct drm_ras_node *node;
>>> int err;
>>> diff --git a/drivers/gpu/drm/xe/xe_drm_ras_types.h
>>> b/drivers/gpu/drm/ xe/xe_drm_ras_types.h
>>> index 0be218ba2db7..8d729ad6a264 100644
>>> --- a/drivers/gpu/drm/xe/xe_drm_ras_types.h
>>> +++ b/drivers/gpu/drm/xe/xe_drm_ras_types.h
>>> @@ -43,9 +43,6 @@ struct xe_drm_ras {
>>> /** @info: info array for all types of errors */
>>> struct xe_drm_ras_counter *info[DRM_XE_RAS_ERR_SEV_MAX];
>>> -
>>> - /** @disable_vram_page_offline: cached configfs policy,
>>> immutable after init */
>>> - bool disable_vram_page_offline;
>>> };
>>> #endif
>>> diff --git a/drivers/gpu/drm/xe/xe_hw_error.c b/drivers/gpu/drm/xe/
>>> xe_hw_error.c
>>> index 5f2abc9485ff..f53a6b3055de 100644
>>> --- a/drivers/gpu/drm/xe/xe_hw_error.c
>>> +++ b/drivers/gpu/drm/xe/xe_hw_error.c
>>> @@ -240,7 +240,7 @@ static void log_soc_error(struct xe_tile *tile,
>>> const char * const *reg_info,
>>> {
>>> const char *severity_str = error_severity[severity];
>>> struct xe_device *xe = tile_to_xe(tile);
>>> - struct xe_drm_ras *ras = &xe->ras;
>>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>>> struct xe_drm_ras_counter *info = ras->info[severity];
>>> const char *name;
>>> @@ -260,7 +260,7 @@ static void gt_hw_error_handler(struct xe_tile
>>> *tile, const enum hardware_error
>>> {
>>> const enum drm_xe_ras_error_severity severity =
>>> hw_err_to_severity(hw_err);
>>> struct xe_device *xe = tile_to_xe(tile);
>>> - struct xe_drm_ras *ras = &xe->ras;
>>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>>> struct xe_drm_ras_counter *info = ras->info[severity];
>>> struct xe_mmio *mmio = &tile->mmio;
>>> unsigned long err_stat = 0;
>>> @@ -422,7 +422,7 @@ static void hw_error_source_handler(struct
>>> xe_tile *tile, const enum hardware_er
>>> const enum drm_xe_ras_error_severity severity =
>>> hw_err_to_severity(hw_err);
>>> const char *severity_str = error_severity[severity];
>>> struct xe_device *xe = tile_to_xe(tile);
>>> - struct xe_drm_ras *ras = &xe->ras;
>>> + struct xe_drm_ras *ras = &xe->ras.nl_data;
>>> struct xe_drm_ras_counter *info = ras->info[severity];
>>> unsigned long flags, err_src;
>>> u32 err_bit;
>>> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
>>> index 648e46df831d..b5b0c1a3a663 100644
>>> --- a/drivers/gpu/drm/xe/xe_ras.c
>>> +++ b/drivers/gpu/drm/xe/xe_ras.c
>>> @@ -1126,19 +1126,18 @@ void xe_ras_init(struct xe_device *xe)
>>> {
>>> int ret;
>>> - /*
>>> - * TODO: Replace platform check with xe-
>>> >info.has_disable_vram_page_offline
>>> - * once the feature flag is plumbed through device info.
>>> - */
>>> - if (xe->info.platform == XE_CRESCENTISLAND)
>>> - xe->ras.disable_vram_page_offline =
>>> - xe_configfs_get_disable_vram_page_offline(to_pci_dev(xe- >drm.dev));
>>> -
>>> xe_drm_ras_init(xe);
>>> if (!xe->info.has_sysctrl)
>>> return;
>>
>> I believe has_sysctrl is currently enabled only for CRI. Is it
>> possible that future platforms will support sysctrl but not VRAM page
>> offlining? If so, it would be better to have a separate device-info
>> flag for that, or at least keep a TODO here.
Currently sysctrl is supported only in CRI. Yeah the TODO added by
Tejas in his series has been retained.
We can replace it with a device info flag if we have a case where page
offlining is not supported in future.
>>
>>> + /*
>>> + * TODO: Replace platform check with xe-
>>> >info.has_disable_vram_page_offline
>>> + * once the feature flag is plumbed through device info.
>>> + */
>>> + xe->ras.state.disable_page_offline =
>>> + xe_configfs_get_disable_vram_page_offline(to_pci_dev(xe- >drm.dev));
>>> +
>>> if (IS_ENABLED(CONFIG_PCIEAER))
>>> ras_usp_aer_init(xe);
>>> diff --git a/drivers/gpu/drm/xe/xe_ras.h b/drivers/gpu/drm/xe/xe_ras.h
>>> index 0b8669f28d56..6e65443cd262 100644
>>> --- a/drivers/gpu/drm/xe/xe_ras.h
>>> +++ b/drivers/gpu/drm/xe/xe_ras.h
>>> @@ -7,6 +7,7 @@
>>> #define _XE_RAS_H_
>>> #include <linux/types.h>
>>> +#include "xe_device_types.h"
>>
>> No, please. Let's not bring this dependency here. Move the function
>> definition to xe_ras.c.
>
> Seems next patch also adding xe_ras_get_max_pages as inlined. I am Ok
> with #include "xe_device_types.h".
It is better to use a abstracted function instead of directly accessing
in the xe_ttm layer.
I can move both to xe_ras.c if this is not okay.
Thanks
Riana
>
>>
>>> #include "xe_ras_types.h"
>>> struct xe_device;
>>> @@ -21,4 +22,9 @@ int xe_ras_set_threshold(struct xe_device *xe, u8
>>> severity, u8 component, u32 th
>>> void xe_ras_init(struct xe_device *xe);
>>> enum xe_ras_recovery_action xe_ras_process_errors(struct xe_device
>>> *xe);
>>> +static inline bool xe_ras_get_disable_page_offline(struct xe_device
>>> *xe)
>>> +{
>>> + return xe->ras.state.disable_page_offline;
>>> +}
>>> +
>>> #endif
>>> diff --git a/drivers/gpu/drm/xe/xe_ras_types.h b/drivers/gpu/drm/xe/
>>> xe_ras_types.h
>>> index 7bfd86c9d135..ca459e785add 100644
>>> --- a/drivers/gpu/drm/xe/xe_ras_types.h
>>> +++ b/drivers/gpu/drm/xe/xe_ras_types.h
>>> @@ -414,4 +414,14 @@ struct xe_ras_set_health_response {
>>> /** @reserved1: Reserved for future use */
>>> u32 reserved1[2];
>>> } __packed;
>>> +
>>> +/* Device structures */
>>> +
>>> +/**
>>> + * struct xe_ras_state - RAS device and firmware state
>>> + */
>>> +struct xe_ras_state {
>>> + /** @disable_page_offline: cached configfs policy, immutable
>>> after init */
>>> + bool disable_page_offline;
>>> +};
>>> #endif
>>> diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/
>>> xe/xe_ttm_vram_mgr.c
>>> index 9a514d983e90..2c4722a956a0 100644
>>> --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
>>> +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
>>> @@ -24,6 +24,7 @@
>>> #include "xe_mmio.h"
>>> #include "xe_pm.h"
>>> #include "xe_printk.h"
>>> +#include "xe_ras.h"
>>> #include "xe_res_cursor.h"
>>> #include "xe_ttm_stolen_mgr.h"
>>> #include "xe_ttm_vram_mgr.h"
>>> @@ -933,7 +934,7 @@ int xe_ttm_vram_handle_addr_fault(struct
>>> xe_device *xe, u64 addr)
>>> vram_mgr = &vr->ttm;
>>> mm = &vram_mgr->mm;
>>> - if (xe->ras.disable_vram_page_offline) {
>>> + if (xe_ras_get_disable_page_offline(xe)) {
>>> xe_err(xe, "0x%llx is reported as corrupted address by HW\n",
>>> addr);
>>> return -EOPNOTSUPP;
>>
>
^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH v2 4/6] drm/xe/xe_ras: Add function to get maximum pages firmware can store
2026-09-07 9:47 [PATCH v2 0/6] Add support to handle memory double-bit ecc errors Riana Tauro
` (2 preceding siblings ...)
2026-09-07 9:47 ` [PATCH v2 3/6] drm/xe: Separate drm-ras netlink data from device and firmware RAS state Riana Tauro
@ 2026-09-07 9:47 ` Riana Tauro
2026-09-07 19:21 ` Ghimiray, Himal Prasad
2026-09-07 9:47 ` [PATCH v2 5/6] drm/xe/xe_ttm_vram: Report max_pages reported by firmware in debugfs Riana Tauro
` (4 subsequent siblings)
8 siblings, 1 reply; 25+ messages in thread
From: Riana Tauro @ 2026-09-07 9:47 UTC (permalink / raw)
To: intel-xe
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, aravind.iddamsetty,
badal.nilawar, raag.jadav, ravi.kishore.koppuravuri,
mallesh.koujalagi, soham.purkait, tejas.upadhyay
Add function to get maximum number of pages that firmware can store for
offline tracking. This will be used in sysfs while reporting bad pages.
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
---
drivers/gpu/drm/xe/xe_ras.c | 4 ++++
drivers/gpu/drm/xe/xe_ras.h | 5 +++++
drivers/gpu/drm/xe/xe_ras_types.h | 2 ++
3 files changed, 11 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
index b5b0c1a3a663..7058482e32a9 100644
--- a/drivers/gpu/drm/xe/xe_ras.c
+++ b/drivers/gpu/drm/xe/xe_ras.c
@@ -381,6 +381,7 @@ static void get_offlined_list(struct xe_device *xe)
struct xe_sysctrl_mailbox_command command = {0};
struct xe_ras_offline_list_response response = {0};
struct xe_ras_offline_list_request request = {0};
+ struct xe_ras_state *state = &xe->ras.state;
u32 count = 0, total_pages = 0;
size_t rlen;
int ret, i;
@@ -412,6 +413,9 @@ static void get_offlined_list(struct xe_device *xe)
for (i = 0; i < response.pages_returned && i < XE_RAS_NUM_PAGES; i++)
handle_page_offline(xe, response.page_addresses[i], false);
+ if (!state->max_pages)
+ state->max_pages = response.max_entries;
+
count += response.pages_returned;
if (!response.pages_returned)
break;
diff --git a/drivers/gpu/drm/xe/xe_ras.h b/drivers/gpu/drm/xe/xe_ras.h
index 6e65443cd262..c411a6cb3731 100644
--- a/drivers/gpu/drm/xe/xe_ras.h
+++ b/drivers/gpu/drm/xe/xe_ras.h
@@ -27,4 +27,9 @@ static inline bool xe_ras_get_disable_page_offline(struct xe_device *xe)
return xe->ras.state.disable_page_offline;
}
+static inline u32 xe_ras_get_max_pages(struct xe_device *xe)
+{
+ return xe->ras.state.max_pages;
+}
+
#endif
diff --git a/drivers/gpu/drm/xe/xe_ras_types.h b/drivers/gpu/drm/xe/xe_ras_types.h
index ca459e785add..9f23970fd5a1 100644
--- a/drivers/gpu/drm/xe/xe_ras_types.h
+++ b/drivers/gpu/drm/xe/xe_ras_types.h
@@ -423,5 +423,7 @@ struct xe_ras_set_health_response {
struct xe_ras_state {
/** @disable_page_offline: cached configfs policy, immutable after init */
bool disable_page_offline;
+ /** @max_pages: Total number of pages that can be stored by firmware */
+ u32 max_pages;
};
#endif
--
2.47.1
^ permalink raw reply related [flat|nested] 25+ messages in thread* Re: [PATCH v2 4/6] drm/xe/xe_ras: Add function to get maximum pages firmware can store
2026-09-07 9:47 ` [PATCH v2 4/6] drm/xe/xe_ras: Add function to get maximum pages firmware can store Riana Tauro
@ 2026-09-07 19:21 ` Ghimiray, Himal Prasad
2026-09-07 19:24 ` Ghimiray, Himal Prasad
0 siblings, 1 reply; 25+ messages in thread
From: Ghimiray, Himal Prasad @ 2026-09-07 19:21 UTC (permalink / raw)
To: Riana Tauro, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, aravind.iddamsetty, badal.nilawar,
raag.jadav, ravi.kishore.koppuravuri, mallesh.koujalagi,
soham.purkait, tejas.upadhyay
On 07-09-2026 15:17, Riana Tauro wrote:
> Add function to get maximum number of pages that firmware can store for
> offline tracking. This will be used in sysfs while reporting bad pages.
>
> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> ---
> drivers/gpu/drm/xe/xe_ras.c | 4 ++++
> drivers/gpu/drm/xe/xe_ras.h | 5 +++++
> drivers/gpu/drm/xe/xe_ras_types.h | 2 ++
> 3 files changed, 11 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
> index b5b0c1a3a663..7058482e32a9 100644
> --- a/drivers/gpu/drm/xe/xe_ras.c
> +++ b/drivers/gpu/drm/xe/xe_ras.c
> @@ -381,6 +381,7 @@ static void get_offlined_list(struct xe_device *xe)
> struct xe_sysctrl_mailbox_command command = {0};
> struct xe_ras_offline_list_response response = {0};
> struct xe_ras_offline_list_request request = {0};
> + struct xe_ras_state *state = &xe->ras.state;
> u32 count = 0, total_pages = 0;
> size_t rlen;
> int ret, i;
> @@ -412,6 +413,9 @@ static void get_offlined_list(struct xe_device *xe)
> for (i = 0; i < response.pages_returned && i < XE_RAS_NUM_PAGES; i++)
> handle_page_offline(xe, response.page_addresses[i], false);
>
> + if (!state->max_pages)
> + state->max_pages = response.max_entries;
> +
> count += response.pages_returned;
> if (!response.pages_returned)
> break;
> diff --git a/drivers/gpu/drm/xe/xe_ras.h b/drivers/gpu/drm/xe/xe_ras.h
> index 6e65443cd262..c411a6cb3731 100644
> --- a/drivers/gpu/drm/xe/xe_ras.h
> +++ b/drivers/gpu/drm/xe/xe_ras.h
> @@ -27,4 +27,9 @@ static inline bool xe_ras_get_disable_page_offline(struct xe_device *xe)
> return xe->ras.state.disable_page_offline;
> }
>
> +static inline u32 xe_ras_get_max_pages(struct xe_device *xe)
> +{
> + return xe->ras.state.max_pages;
> +}
> +
> #endif
> diff --git a/drivers/gpu/drm/xe/xe_ras_types.h b/drivers/gpu/drm/xe/xe_ras_types.h
> index ca459e785add..9f23970fd5a1 100644
> --- a/drivers/gpu/drm/xe/xe_ras_types.h
> +++ b/drivers/gpu/drm/xe/xe_ras_types.h
> @@ -423,5 +423,7 @@ struct xe_ras_set_health_response {
> struct xe_ras_state {
> /** @disable_page_offline: cached configfs policy, immutable after init */
> bool disable_page_offline;
> + /** @max_pages: Total number of pages that can be stored by firmware */
> + u32 max_pages;
LGTM
Reviewed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
> };
> #endif
^ permalink raw reply [flat|nested] 25+ messages in thread* Re: [PATCH v2 4/6] drm/xe/xe_ras: Add function to get maximum pages firmware can store
2026-09-07 19:21 ` Ghimiray, Himal Prasad
@ 2026-09-07 19:24 ` Ghimiray, Himal Prasad
2026-09-09 5:23 ` Tauro, Riana
0 siblings, 1 reply; 25+ messages in thread
From: Ghimiray, Himal Prasad @ 2026-09-07 19:24 UTC (permalink / raw)
To: Riana Tauro, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, aravind.iddamsetty, badal.nilawar,
raag.jadav, ravi.kishore.koppuravuri, mallesh.koujalagi,
soham.purkait, tejas.upadhyay
On 08-09-2026 00:51, Ghimiray, Himal Prasad wrote:
>
>
> On 07-09-2026 15:17, Riana Tauro wrote:
>> Add function to get maximum number of pages that firmware can store for
>> offline tracking. This will be used in sysfs while reporting bad pages.
currently reporting in debugfs, and we might move to netlink, rectify
commit message.
With this Nit addressed. RB holds.
>>
>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_ras.c | 4 ++++
>> drivers/gpu/drm/xe/xe_ras.h | 5 +++++
>> drivers/gpu/drm/xe/xe_ras_types.h | 2 ++
>> 3 files changed, 11 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
>> index b5b0c1a3a663..7058482e32a9 100644
>> --- a/drivers/gpu/drm/xe/xe_ras.c
>> +++ b/drivers/gpu/drm/xe/xe_ras.c
>> @@ -381,6 +381,7 @@ static void get_offlined_list(struct xe_device *xe)
>> struct xe_sysctrl_mailbox_command command = {0};
>> struct xe_ras_offline_list_response response = {0};
>> struct xe_ras_offline_list_request request = {0};
>> + struct xe_ras_state *state = &xe->ras.state;
>> u32 count = 0, total_pages = 0;
>> size_t rlen;
>> int ret, i;
>> @@ -412,6 +413,9 @@ static void get_offlined_list(struct xe_device *xe)
>> for (i = 0; i < response.pages_returned && i <
>> XE_RAS_NUM_PAGES; i++)
>> handle_page_offline(xe, response.page_addresses[i], false);
>> + if (!state->max_pages)
>> + state->max_pages = response.max_entries;
>> +
>> count += response.pages_returned;
>> if (!response.pages_returned)
>> break;
>> diff --git a/drivers/gpu/drm/xe/xe_ras.h b/drivers/gpu/drm/xe/xe_ras.h
>> index 6e65443cd262..c411a6cb3731 100644
>> --- a/drivers/gpu/drm/xe/xe_ras.h
>> +++ b/drivers/gpu/drm/xe/xe_ras.h
>> @@ -27,4 +27,9 @@ static inline bool
>> xe_ras_get_disable_page_offline(struct xe_device *xe)
>> return xe->ras.state.disable_page_offline;
>> }
>> +static inline u32 xe_ras_get_max_pages(struct xe_device *xe)
>> +{
>> + return xe->ras.state.max_pages;
>> +}
>> +
>> #endif
>> diff --git a/drivers/gpu/drm/xe/xe_ras_types.h b/drivers/gpu/drm/xe/
>> xe_ras_types.h
>> index ca459e785add..9f23970fd5a1 100644
>> --- a/drivers/gpu/drm/xe/xe_ras_types.h
>> +++ b/drivers/gpu/drm/xe/xe_ras_types.h
>> @@ -423,5 +423,7 @@ struct xe_ras_set_health_response {
>> struct xe_ras_state {
>> /** @disable_page_offline: cached configfs policy, immutable
>> after init */
>> bool disable_page_offline;
>> + /** @max_pages: Total number of pages that can be stored by
>> firmware */
>> + u32 max_pages;
>
> LGTM
> Reviewed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
>
>> };
>> #endif
>
^ permalink raw reply [flat|nested] 25+ messages in thread* Re: [PATCH v2 4/6] drm/xe/xe_ras: Add function to get maximum pages firmware can store
2026-09-07 19:24 ` Ghimiray, Himal Prasad
@ 2026-09-09 5:23 ` Tauro, Riana
0 siblings, 0 replies; 25+ messages in thread
From: Tauro, Riana @ 2026-09-09 5:23 UTC (permalink / raw)
To: Ghimiray, Himal Prasad, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, aravind.iddamsetty, badal.nilawar,
raag.jadav, ravi.kishore.koppuravuri, mallesh.koujalagi,
soham.purkait, tejas.upadhyay
On 08-09-2026 00:54, Ghimiray, Himal Prasad wrote:
>
>
> On 08-09-2026 00:51, Ghimiray, Himal Prasad wrote:
>>
>>
>> On 07-09-2026 15:17, Riana Tauro wrote:
>>> Add function to get maximum number of pages that firmware can store for
>>> offline tracking. This will be used in sysfs while reporting bad pages.
>
> currently reporting in debugfs, and we might move to netlink, rectify
> commit message.
Retained the previous version commit message by mistake.
Will fix it with general commit message in v3. Thank you for the Rb.
Thanks
Riana
>
> With this Nit addressed. RB holds.
>
>>>
>>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>>> ---
>>> drivers/gpu/drm/xe/xe_ras.c | 4 ++++
>>> drivers/gpu/drm/xe/xe_ras.h | 5 +++++
>>> drivers/gpu/drm/xe/xe_ras_types.h | 2 ++
>>> 3 files changed, 11 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
>>> index b5b0c1a3a663..7058482e32a9 100644
>>> --- a/drivers/gpu/drm/xe/xe_ras.c
>>> +++ b/drivers/gpu/drm/xe/xe_ras.c
>>> @@ -381,6 +381,7 @@ static void get_offlined_list(struct xe_device *xe)
>>> struct xe_sysctrl_mailbox_command command = {0};
>>> struct xe_ras_offline_list_response response = {0};
>>> struct xe_ras_offline_list_request request = {0};
>>> + struct xe_ras_state *state = &xe->ras.state;
>>> u32 count = 0, total_pages = 0;
>>> size_t rlen;
>>> int ret, i;
>>> @@ -412,6 +413,9 @@ static void get_offlined_list(struct xe_device *xe)
>>> for (i = 0; i < response.pages_returned && i <
>>> XE_RAS_NUM_PAGES; i++)
>>> handle_page_offline(xe, response.page_addresses[i],
>>> false);
>>> + if (!state->max_pages)
>>> + state->max_pages = response.max_entries;
>>> +
>>> count += response.pages_returned;
>>> if (!response.pages_returned)
>>> break;
>>> diff --git a/drivers/gpu/drm/xe/xe_ras.h b/drivers/gpu/drm/xe/xe_ras.h
>>> index 6e65443cd262..c411a6cb3731 100644
>>> --- a/drivers/gpu/drm/xe/xe_ras.h
>>> +++ b/drivers/gpu/drm/xe/xe_ras.h
>>> @@ -27,4 +27,9 @@ static inline bool
>>> xe_ras_get_disable_page_offline(struct xe_device *xe)
>>> return xe->ras.state.disable_page_offline;
>>> }
>>> +static inline u32 xe_ras_get_max_pages(struct xe_device *xe)
>>> +{
>>> + return xe->ras.state.max_pages;
>>> +}
>>> +
>>> #endif
>>> diff --git a/drivers/gpu/drm/xe/xe_ras_types.h b/drivers/gpu/drm/xe/
>>> xe_ras_types.h
>>> index ca459e785add..9f23970fd5a1 100644
>>> --- a/drivers/gpu/drm/xe/xe_ras_types.h
>>> +++ b/drivers/gpu/drm/xe/xe_ras_types.h
>>> @@ -423,5 +423,7 @@ struct xe_ras_set_health_response {
>>> struct xe_ras_state {
>>> /** @disable_page_offline: cached configfs policy, immutable
>>> after init */
>>> bool disable_page_offline;
>>> + /** @max_pages: Total number of pages that can be stored by
>>> firmware */
>>> + u32 max_pages;
>>
>> LGTM
>> Reviewed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
>>
>>> };
>>> #endif
>>
>
^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH v2 5/6] drm/xe/xe_ttm_vram: Report max_pages reported by firmware in debugfs
2026-09-07 9:47 [PATCH v2 0/6] Add support to handle memory double-bit ecc errors Riana Tauro
` (3 preceding siblings ...)
2026-09-07 9:47 ` [PATCH v2 4/6] drm/xe/xe_ras: Add function to get maximum pages firmware can store Riana Tauro
@ 2026-09-07 9:47 ` Riana Tauro
2026-09-07 19:26 ` Ghimiray, Himal Prasad
2026-09-07 9:47 ` [PATCH v2 6/6] drm/xe/xe_ras: Track offlined pages by firmware to avoid duplicates Riana Tauro
` (3 subsequent siblings)
8 siblings, 1 reply; 25+ messages in thread
From: Riana Tauro @ 2026-09-07 9:47 UTC (permalink / raw)
To: intel-xe
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, aravind.iddamsetty,
badal.nilawar, raag.jadav, ravi.kishore.koppuravuri,
mallesh.koujalagi, soham.purkait, tejas.upadhyay,
Himal Prasad Ghimiray
Report the maximum number of pages returned by firmware at probe,
resolving the existing TODO.
Cc: Tejas Upadhyay <tejas.upadhyay@intel.com>
Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
---
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 6 +-----
drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h | 2 --
2 files changed, 1 insertion(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
index 2c4722a956a0..cc33ba7e23c2 100644
--- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
+++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
@@ -1012,11 +1012,7 @@ static int vram_bad_pages_show(struct seq_file *m, void *unused)
struct xe_tile *tile;
u8 id;
- man = ttm_manager_type(&xe->ttm, XE_PL_VRAM0);
- if (man)
- /* TODO Hook with RAS to show max_pages fetched from FW */
- seq_printf(m, "max_pages: %d\n",
- to_xe_ttm_vram_mgr(man)->max_pages);
+ seq_printf(m, "max_pages: %u\n", xe_ras_get_max_pages(xe));
for_each_tile(tile, xe, id) {
struct xe_vram_region *vr = tile->mem.vram;
diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h b/drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h
index efcf3e1d4e80..dc97b0ad0e51 100644
--- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h
+++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h
@@ -37,8 +37,6 @@ struct xe_ttm_vram_mgr {
struct mutex lock;
/** @mem_type: The TTM memory type */
u32 mem_type;
- /** @max_pages: max pages that can be in offline queue retrieved from FW */
- u16 max_pages;
};
/**
--
2.47.1
^ permalink raw reply related [flat|nested] 25+ messages in thread* Re: [PATCH v2 5/6] drm/xe/xe_ttm_vram: Report max_pages reported by firmware in debugfs
2026-09-07 9:47 ` [PATCH v2 5/6] drm/xe/xe_ttm_vram: Report max_pages reported by firmware in debugfs Riana Tauro
@ 2026-09-07 19:26 ` Ghimiray, Himal Prasad
0 siblings, 0 replies; 25+ messages in thread
From: Ghimiray, Himal Prasad @ 2026-09-07 19:26 UTC (permalink / raw)
To: Riana Tauro, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, aravind.iddamsetty, badal.nilawar,
raag.jadav, ravi.kishore.koppuravuri, mallesh.koujalagi,
soham.purkait, tejas.upadhyay
On 07-09-2026 15:17, Riana Tauro wrote:
> Report the maximum number of pages returned by firmware at probe,
> resolving the existing TODO.
>
> Cc: Tejas Upadhyay <tejas.upadhyay@intel.com>
> Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> ---
> drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 6 +-----
> drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h | 2 --
> 2 files changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> index 2c4722a956a0..cc33ba7e23c2 100644
> --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> @@ -1012,11 +1012,7 @@ static int vram_bad_pages_show(struct seq_file *m, void *unused)
> struct xe_tile *tile;
> u8 id;
>
> - man = ttm_manager_type(&xe->ttm, XE_PL_VRAM0);
> - if (man)
> - /* TODO Hook with RAS to show max_pages fetched from FW */
> - seq_printf(m, "max_pages: %d\n",
> - to_xe_ttm_vram_mgr(man)->max_pages);
> + seq_printf(m, "max_pages: %u\n", xe_ras_get_max_pages(xe));
LGTM
Reviewed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
>
> for_each_tile(tile, xe, id) {
> struct xe_vram_region *vr = tile->mem.vram;
> diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h b/drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h
> index efcf3e1d4e80..dc97b0ad0e51 100644
> --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h
> +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h
> @@ -37,8 +37,6 @@ struct xe_ttm_vram_mgr {
> struct mutex lock;
> /** @mem_type: The TTM memory type */
> u32 mem_type;
> - /** @max_pages: max pages that can be in offline queue retrieved from FW */
> - u16 max_pages;
> };
>
> /**
^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH v2 6/6] drm/xe/xe_ras: Track offlined pages by firmware to avoid duplicates
2026-09-07 9:47 [PATCH v2 0/6] Add support to handle memory double-bit ecc errors Riana Tauro
` (4 preceding siblings ...)
2026-09-07 9:47 ` [PATCH v2 5/6] drm/xe/xe_ttm_vram: Report max_pages reported by firmware in debugfs Riana Tauro
@ 2026-09-07 9:47 ` Riana Tauro
2026-09-07 10:02 ` sashiko-bot
2026-09-07 11:01 ` ✓ CI.KUnit: success for Add support to handle memory double-bit ecc errors (rev2) Patchwork
` (2 subsequent siblings)
8 siblings, 1 reply; 25+ messages in thread
From: Riana Tauro @ 2026-09-07 9:47 UTC (permalink / raw)
To: intel-xe
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, aravind.iddamsetty,
badal.nilawar, raag.jadav, ravi.kishore.koppuravuri,
mallesh.koujalagi, soham.purkait, tejas.upadhyay
A memory scrubber can report multiple errors at the same address. Track
pages already successfully offlined by the firmware so that subsequent
reports for the same address are declined and removed from the firmware
queue instead of issuing redundant page offline requests.
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
---
drivers/gpu/drm/xe/xe_device.c | 4 +++-
drivers/gpu/drm/xe/xe_ras.c | 36 +++++++++++++++++++++++++++----
drivers/gpu/drm/xe/xe_ras.h | 2 +-
drivers/gpu/drm/xe/xe_ras_types.h | 3 +++
4 files changed, 39 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 8583b2e9ecf4..ff4a17d30461 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -1039,7 +1039,9 @@ int xe_device_probe(struct xe_device *xe)
if (err)
return err;
- xe_ras_init(xe);
+ err = xe_ras_init(xe);
+ if (err)
+ return err;
/*
* Now that GT is initialized (TTM in particular),
diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
index 7058482e32a9..0ca395ac81e6 100644
--- a/drivers/gpu/drm/xe/xe_ras.c
+++ b/drivers/gpu/drm/xe/xe_ras.c
@@ -20,6 +20,9 @@
#include "xe_sysctrl_mailbox_types.h"
#include "xe_ttm_vram_mgr.h"
+/* Any non-null entry marks the page as offlined by firmware */
+#define XE_RAS_PAGE_OFFLINED xa_mk_value(1)
+
#define CORE_COMPUTE_UNCORR_TYPE GENMASK(26, 25)
/*
* Uncorrectable error type for core compute errors.
@@ -210,6 +213,7 @@ static int send_page_offline_cmd(struct xe_device *xe, u64 page_address,
struct xe_sysctrl_mailbox_command command = {0};
struct xe_ras_page_offline_request request = {0};
struct xe_ras_page_offline_response response = {0};
+ struct xe_ras_state *state = &xe->ras.state;
size_t rlen;
int ret;
@@ -244,11 +248,16 @@ static int send_page_offline_cmd(struct xe_device *xe, u64 page_address,
return ret;
}
+ if (action == XE_RAS_PAGE_ACTION_OFFLINE)
+ xa_store(&state->offlined_pages, page_address >> PAGE_SHIFT,
+ XE_RAS_PAGE_OFFLINED, GFP_KERNEL);
+
return ret;
}
static int handle_page_offline(struct xe_device *xe, u64 page_address, bool send_cmd)
{
+ struct xe_ras_state *state = &xe->ras.state;
enum xe_ras_page_action action;
int ret = 0;
@@ -288,7 +297,11 @@ static int handle_page_offline(struct xe_device *xe, u64 page_address, bool send
"Physical page address belongs to critical BO: 0x%llx\n", page_address);
return ret;
case -EEXIST:
- action = XE_RAS_PAGE_ACTION_OFFLINE;
+ if (xa_load(&state->offlined_pages, page_address >> PAGE_SHIFT))
+ action = XE_RAS_PAGE_ACTION_DECLINE;
+ else
+ action = XE_RAS_PAGE_ACTION_OFFLINE;
+
xe_log_err(xe, DEVICE_MEMORY, ret,
"Double-bit ECC error detected at physical address 0x%llx, page already software offlined\n",
page_address);
@@ -410,8 +423,11 @@ static void get_offlined_list(struct xe_device *xe)
return;
}
- for (i = 0; i < response.pages_returned && i < XE_RAS_NUM_PAGES; i++)
+ for (i = 0; i < response.pages_returned && i < XE_RAS_NUM_PAGES; i++) {
handle_page_offline(xe, response.page_addresses[i], false);
+ xa_store(&state->offlined_pages, response.page_addresses[i] >> PAGE_SHIFT,
+ XE_RAS_PAGE_OFFLINED, GFP_KERNEL);
+ }
if (!state->max_pages)
state->max_pages = response.max_entries;
@@ -1120,20 +1136,28 @@ static const struct attribute_group gpu_health_group = {
.attrs = gpu_health_attrs,
};
+static void ras_fini(void *arg)
+{
+ struct xe_device *xe = arg;
+
+ xa_destroy(&xe->ras.state.offlined_pages);
+}
+
/**
* xe_ras_init - Initialize Xe RAS
* @xe: xe device instance
*
* Initialize Xe RAS
*/
-void xe_ras_init(struct xe_device *xe)
+int xe_ras_init(struct xe_device *xe)
{
+ struct xe_ras_state *state = &xe->ras.state;
int ret;
xe_drm_ras_init(xe);
if (!xe->info.has_sysctrl)
- return;
+ return 0;
/*
* TODO: Replace platform check with xe->info.has_disable_vram_page_offline
@@ -1145,10 +1169,14 @@ void xe_ras_init(struct xe_device *xe)
if (IS_ENABLED(CONFIG_PCIEAER))
ras_usp_aer_init(xe);
+ xa_init(&state->offlined_pages);
+
get_queued_pages(xe);
get_offlined_list(xe);
ret = devm_device_add_group(xe->drm.dev, &gpu_health_group);
if (ret)
xe_err(xe, "Failed to create GPU health sysfs, err=%d\n", ret);
+
+ return devm_add_action_or_reset(xe->drm.dev, ras_fini, xe);
}
diff --git a/drivers/gpu/drm/xe/xe_ras.h b/drivers/gpu/drm/xe/xe_ras.h
index c411a6cb3731..b0f7ebc14ec6 100644
--- a/drivers/gpu/drm/xe/xe_ras.h
+++ b/drivers/gpu/drm/xe/xe_ras.h
@@ -19,7 +19,7 @@ int xe_ras_get_counter(struct xe_device *xe, u8 severity, u8 component, u32 *val
int xe_ras_clear_counter(struct xe_device *xe, u8 severity, u8 component);
int xe_ras_get_threshold(struct xe_device *xe, u8 severity, u8 component, u32 *threshold);
int xe_ras_set_threshold(struct xe_device *xe, u8 severity, u8 component, u32 threshold);
-void xe_ras_init(struct xe_device *xe);
+int xe_ras_init(struct xe_device *xe);
enum xe_ras_recovery_action xe_ras_process_errors(struct xe_device *xe);
static inline bool xe_ras_get_disable_page_offline(struct xe_device *xe)
diff --git a/drivers/gpu/drm/xe/xe_ras_types.h b/drivers/gpu/drm/xe/xe_ras_types.h
index 9f23970fd5a1..dfee83d558ed 100644
--- a/drivers/gpu/drm/xe/xe_ras_types.h
+++ b/drivers/gpu/drm/xe/xe_ras_types.h
@@ -7,6 +7,7 @@
#define _XE_RAS_TYPES_H_
#include <linux/types.h>
+#include <linux/xarray.h>
#define XE_RAS_NUM_COUNTERS 16
#define XE_RAS_NUM_ERROR_ARR 3
@@ -425,5 +426,7 @@ struct xe_ras_state {
bool disable_page_offline;
/** @max_pages: Total number of pages that can be stored by firmware */
u32 max_pages;
+ /** @offlined_pages: XArray of pages offlined by firmware */
+ struct xarray offlined_pages;
};
#endif
--
2.47.1
^ permalink raw reply related [flat|nested] 25+ messages in thread* Re: [PATCH v2 6/6] drm/xe/xe_ras: Track offlined pages by firmware to avoid duplicates
2026-09-07 9:47 ` [PATCH v2 6/6] drm/xe/xe_ras: Track offlined pages by firmware to avoid duplicates Riana Tauro
@ 2026-09-07 10:02 ` sashiko-bot
0 siblings, 0 replies; 25+ messages in thread
From: sashiko-bot @ 2026-09-07 10:02 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Incorrect bit shift used to calculate XArray index for device physical addresses.
--
commit cb65d57e28d4e4a8f1d6464c1a918d7392d5e460
Author: Riana Tauro <riana.tauro@intel.com>
drm/xe/xe_ras: Track offlined pages by firmware to avoid duplicates
This commit introduces tracking for pages successfully offlined by the
firmware using an XArray. This prevents the memory scrubber from issuing
redundant page offline requests for the same address.
> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
> --- a/drivers/gpu/drm/xe/xe_ras.c
> +++ b/drivers/gpu/drm/xe/xe_ras.c
[ ... ]
> @@ -244,11 +248,16 @@ static int send_page_offline_cmd(struct xe_device *xe, u64 page_address,
> return ret;
> }
>
> + if (action == XE_RAS_PAGE_ACTION_OFFLINE)
> + xa_store(&state->offlined_pages, page_address >> PAGE_SHIFT,
> + XE_RAS_PAGE_OFFLINED, GFP_KERNEL);
[Severity: High]
Does this code use the correct page shift for device physical addresses?
PAGE_SHIFT is the host's page shift, which could be 64K depending on the
kernel build, whereas the device page size is likely 4K. If the host uses 64K
pages, shifting by PAGE_SHIFT would truncate the lower bits of the device
address, causing multiple distinct 4K device pages to hash to the exact same
XArray index.
> +
> return ret;
> }
>
> static int handle_page_offline(struct xe_device *xe, u64 page_address, bool send_cmd)
> {
> + struct xe_ras_state *state = &xe->ras.state;
> enum xe_ras_page_action action;
> int ret = 0;
>
[ ... ]
> @@ -288,7 +297,11 @@ static int handle_page_offline(struct xe_device *xe, u64 page_address, bool send
> "Physical page address belongs to critical BO: 0x%llx\n", page_address);
> return ret;
> case -EEXIST:
> - action = XE_RAS_PAGE_ACTION_OFFLINE;
> + if (xa_load(&state->offlined_pages, page_address >> PAGE_SHIFT))
[Severity: High]
Will this check cause false positives on non-4K kernel page builds?
If a hardware memory error occurs on a different 4K device page that falls
within the same 64K host page as a previously offlined page, this lookup
will find the existing entry. The driver might then mistakenly conclude this
specific device page is already offlined and skip sending the command to the
firmware.
> + action = XE_RAS_PAGE_ACTION_DECLINE;
> + else
> + action = XE_RAS_PAGE_ACTION_OFFLINE;
> +
> xe_log_err(xe, DEVICE_MEMORY, ret,
> "Double-bit ECC error detected at physical address 0x%llx, page already software offlined\n",
> page_address);
[ ... ]
> @@ -410,8 +423,11 @@ static void get_offlined_list(struct xe_device *xe)
> return;
> }
>
> - for (i = 0; i < response.pages_returned && i < XE_RAS_NUM_PAGES; i++)
> + for (i = 0; i < response.pages_returned && i < XE_RAS_NUM_PAGES; i++) {
> handle_page_offline(xe, response.page_addresses[i], false);
> + xa_store(&state->offlined_pages, response.page_addresses[i] >> PAGE_SHIFT,
> + XE_RAS_PAGE_OFFLINED, GFP_KERNEL);
[Severity: High]
Could this initialization also suffer from the same device vs. host page shift
mismatch?
Using PAGE_SHIFT here would populate the cache with indices that may group
multiple device pages into a single host page index.
> + }
>
> if (!state->max_pages)
> state->max_pages = response.max_entries;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260907094706.1407436-8-riana.tauro@intel.com?part=6
^ permalink raw reply [flat|nested] 25+ messages in thread
* ✓ CI.KUnit: success for Add support to handle memory double-bit ecc errors (rev2)
2026-09-07 9:47 [PATCH v2 0/6] Add support to handle memory double-bit ecc errors Riana Tauro
` (5 preceding siblings ...)
2026-09-07 9:47 ` [PATCH v2 6/6] drm/xe/xe_ras: Track offlined pages by firmware to avoid duplicates Riana Tauro
@ 2026-09-07 11:01 ` Patchwork
2026-09-07 11:45 ` ✓ Xe.CI.BAT: " Patchwork
2026-09-07 13:41 ` ✓ Xe.CI.FULL: " Patchwork
8 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2026-09-07 11:01 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
== Series Details ==
Series: Add support to handle memory double-bit ecc errors (rev2)
URL : https://patchwork.freedesktop.org/series/172710/
State : success
== Summary ==
+ trap cleanup EXIT
+ kunitconfigs=('/kernel/drivers/gpu/tests/.kunitconfig' '/kernel/drivers/gpu/drm/xe/.kunitconfig' '/kernel/drivers/gpu/drm/tests/.kunitconfig' '/kernel/drivers/gpu/drm/ttm/tests/.kunitconfig' '/kernel/drivers/dma-buf/.kunitconfig')
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/tests/.kunitconfig
[10:59:14] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:59:19] 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
[10:59:39] Starting KUnit Kernel (1/1)...
[10:59:39] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:59:39] ============= refcount_interrupt (4 subtests) ==============
[10:59:39] [PASSED] test_single_irq_change
[10:59:39] [PASSED] test_nested_irq_change
[10:59:39] [PASSED] test_multiple_irq_change
[10:59:39] [PASSED] test_irq_save
[10:59:39] =============== [PASSED] refcount_interrupt ================
[10:59:39] ================= gpu_buddy (14 subtests) ==================
[10:59:39] [PASSED] gpu_test_buddy_alloc_limit
[10:59:39] [PASSED] gpu_test_buddy_alloc_optimistic
[10:59:39] [PASSED] gpu_test_buddy_alloc_pessimistic
[10:59:39] [PASSED] gpu_test_buddy_alloc_pathological
[10:59:39] [PASSED] gpu_test_buddy_alloc_contiguous
[10:59:39] [PASSED] gpu_test_buddy_alloc_clear
[10:59:39] [PASSED] gpu_test_buddy_alloc_range
[10:59:40] [PASSED] gpu_test_buddy_alloc_range_bias
[10:59:40] [PASSED] gpu_test_buddy_fragmentation_performance
[10:59:41] [PASSED] gpu_test_buddy_dirty_tracker_performance
[10:59:41] [PASSED] gpu_test_buddy_alloc_exceeds_max_order
[10:59:41] [PASSED] gpu_test_buddy_offset_aligned_allocation
[10:59:41] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress
[10:59:41] [PASSED] gpu_test_buddy_addr_to_block
[10:59:41] ==================== [PASSED] gpu_buddy ====================
[10:59:41] ============================================================
[10:59:41] Testing complete. Ran 18 tests: passed: 18
[10:59:41] Elapsed time: 26.870s total, 4.379s configuring, 20.572s building, 1.871s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/xe/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[10:59:41] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:59:43] 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
[11:00:17] Starting KUnit Kernel (1/1)...
[11:00:17] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[11:00:17] ============= refcount_interrupt (4 subtests) ==============
[11:00:17] [PASSED] test_single_irq_change
[11:00:17] [PASSED] test_nested_irq_change
[11:00:17] [PASSED] test_multiple_irq_change
[11:00:17] [PASSED] test_irq_save
[11:00:17] =============== [PASSED] refcount_interrupt ================
[11:00:17] ================== guc_buf (11 subtests) ===================
[11:00:17] [PASSED] test_smallest
[11:00:17] [PASSED] test_largest
[11:00:17] [PASSED] test_granular
[11:00:17] [PASSED] test_unique
[11:00:17] [PASSED] test_overlap
[11:00:17] [PASSED] test_reusable
[11:00:17] [PASSED] test_too_big
[11:00:17] [PASSED] test_flush
[11:00:17] [PASSED] test_lookup
[11:00:17] [PASSED] test_data
[11:00:17] [PASSED] test_class
[11:00:17] ===================== [PASSED] guc_buf =====================
[11:00:17] =================== guc_dbm (7 subtests) ===================
[11:00:17] [PASSED] test_empty
[11:00:17] [PASSED] test_default
[11:00:17] ======================== test_size ========================
[11:00:17] [PASSED] 4
[11:00:17] [PASSED] 8
[11:00:17] [PASSED] 32
[11:00:17] [PASSED] 256
[11:00:17] ==================== [PASSED] test_size ====================
[11:00:17] ======================= test_reuse ========================
[11:00:17] [PASSED] 4
[11:00:17] [PASSED] 8
[11:00:17] [PASSED] 32
[11:00:17] [PASSED] 256
[11:00:17] =================== [PASSED] test_reuse ====================
[11:00:17] =================== test_range_overlap ====================
[11:00:17] [PASSED] 4
[11:00:17] [PASSED] 8
[11:00:17] [PASSED] 32
[11:00:17] [PASSED] 256
[11:00:17] =============== [PASSED] test_range_overlap ================
[11:00:17] =================== test_range_compact ====================
[11:00:17] [PASSED] 4
[11:00:17] [PASSED] 8
[11:00:17] [PASSED] 32
[11:00:17] [PASSED] 256
[11:00:17] =============== [PASSED] test_range_compact ================
[11:00:17] ==================== test_range_spare =====================
[11:00:17] [PASSED] 4
[11:00:17] [PASSED] 8
[11:00:17] [PASSED] 32
[11:00:17] [PASSED] 256
[11:00:17] ================ [PASSED] test_range_spare =================
[11:00:17] ===================== [PASSED] guc_dbm =====================
[11:00:17] =================== guc_idm (6 subtests) ===================
[11:00:17] [PASSED] bad_init
[11:00:17] [PASSED] no_init
[11:00:17] [PASSED] init_fini
[11:00:17] [PASSED] check_used
[11:00:17] [PASSED] check_quota
[11:00:17] [PASSED] check_all
[11:00:17] ===================== [PASSED] guc_idm =====================
[11:00:17] =============== guc_klv_helpers (9 subtests) ===============
[11:00:17] [PASSED] test_count
[11:00:17] [PASSED] test_encode_u32
[11:00:17] [PASSED] test_encode_u64
[11:00:17] [PASSED] test_encode_string
[11:00:17] [PASSED] test_encode_object_raw
[11:00:17] [PASSED] test_encode_object_klv
[11:00:17] [PASSED] test_encode_object_nested
[11:00:17] [PASSED] test_encode_object_basic
[11:00:17] [PASSED] test_print
[11:00:17] ================= [PASSED] guc_klv_helpers =================
[11:00:17] =================== xe_log (4 subtests) ====================
[11:00:17] [PASSED] demo_cper
[11:00:17] [PASSED] demo_dmesg
[11:00:17] ======================= test_dmesg ========================
[11:00:17] [PASSED] test_fatal
[11:00:17] [PASSED] test_fatal_tile
[11:00:17] [PASSED] test_fatal_gt
[11:00:17] [PASSED] test_fatal_comp
[11:00:17] [PASSED] test_fatal_comp_tile
[11:00:17] [PASSED] test_fatal_comp_gt
[11:00:17] [PASSED] test_fatal_all
[11:00:17] [PASSED] test_recoverable
[11:00:17] [PASSED] test_recoverable_tile
[11:00:17] [PASSED] test_recoverable_gt
[11:00:17] [PASSED] test_recoverable_comp
[11:00:17] [PASSED] test_recoverable_comp_tile
[11:00:17] [PASSED] test_recoverable_comp_gt
[11:00:17] [PASSED] test_recoverable_all
[11:00:17] [PASSED] test_info
[11:00:17] [PASSED] test_info_tile
[11:00:17] [PASSED] test_info_gt
[11:00:17] [PASSED] test_info_err
[11:00:17] [PASSED] test_info_comp
[11:00:17] [PASSED] test_info_comp_tile
[11:00:17] [PASSED] test_info_comp_gt
[11:00:17] [PASSED] test_info_all
[11:00:17] [PASSED] test_hw_fatal
[11:00:17] [PASSED] test_hw_recoverable
[11:00:17] [PASSED] test_hw_corrected
[11:00:17] [PASSED] test_hw_informational
[11:00:17] =================== [PASSED] test_dmesg ====================
[11:00:17] ====================== test_invalid =======================
[11:00:17] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG)
[11:00:17] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG)
[11:00:17] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG)
[11:00:17] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG)
[11:00:17] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG)
[11:00:17] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG)
[11:00:17] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG)
[11:00:17] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG)
[11:00:17] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG)
[11:00:17] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG)
[11:00:17] ================== [SKIPPED] test_invalid ==================
[11:00:17] ===================== [PASSED] xe_log ======================
[11:00:17] ================== no_relay (3 subtests) ===================
[11:00:17] [PASSED] xe_drops_guc2pf_if_not_ready
[11:00:17] [PASSED] xe_drops_guc2vf_if_not_ready
[11:00:17] [PASSED] xe_rejects_send_if_not_ready
[11:00:17] ==================== [PASSED] no_relay =====================
[11:00:17] ================== pf_relay (14 subtests) ==================
[11:00:17] [PASSED] pf_rejects_guc2pf_too_short
[11:00:17] [PASSED] pf_rejects_guc2pf_too_long
[11:00:17] [PASSED] pf_rejects_guc2pf_no_payload
[11:00:17] [PASSED] pf_fails_no_payload
[11:00:17] [PASSED] pf_fails_bad_origin
[11:00:17] [PASSED] pf_fails_bad_type
[11:00:17] [PASSED] pf_txn_reports_error
[11:00:17] [PASSED] pf_txn_sends_pf2guc
[11:00:17] [PASSED] pf_sends_pf2guc
[11:00:17] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[11:00:17] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[11:00:17] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[11:00:17] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[11:00:17] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[11:00:17] ==================== [PASSED] pf_relay =====================
[11:00:17] ================== vf_relay (3 subtests) ===================
[11:00:17] [PASSED] vf_rejects_guc2vf_too_short
[11:00:17] [PASSED] vf_rejects_guc2vf_too_long
[11:00:17] [PASSED] vf_rejects_guc2vf_no_payload
[11:00:17] ==================== [PASSED] vf_relay =====================
[11:00:17] ================ pf_gt_config (9 subtests) =================
[11:00:17] [PASSED] fair_contexts_1vf
[11:00:17] [PASSED] fair_doorbells_1vf
[11:00:17] [PASSED] fair_ggtt_1vf
[11:00:17] ====================== fair_vram_1vf ======================
[11:00:17] [PASSED] 3.50 GiB
[11:00:17] [PASSED] 11.5 GiB
[11:00:17] [PASSED] 15.5 GiB
[11:00:17] [PASSED] 31.5 GiB
[11:00:17] [PASSED] 63.5 GiB
[11:00:17] [PASSED] 1.91 GiB
[11:00:17] ================== [PASSED] fair_vram_1vf ==================
[11:00:17] ================ fair_vram_1vf_admin_only =================
[11:00:17] [PASSED] 3.50 GiB
[11:00:17] [PASSED] 11.5 GiB
[11:00:17] [PASSED] 15.5 GiB
[11:00:17] [PASSED] 31.5 GiB
[11:00:17] [PASSED] 63.5 GiB
[11:00:17] [PASSED] 1.91 GiB
[11:00:17] ============ [PASSED] fair_vram_1vf_admin_only =============
[11:00:17] ====================== fair_contexts ======================
[11:00:17] [PASSED] 1 VF
[11:00:17] [PASSED] 2 VFs
[11:00:17] [PASSED] 3 VFs
[11:00:17] [PASSED] 4 VFs
[11:00:17] [PASSED] 5 VFs
[11:00:17] [PASSED] 6 VFs
[11:00:17] [PASSED] 7 VFs
[11:00:17] [PASSED] 8 VFs
[11:00:17] [PASSED] 9 VFs
[11:00:17] [PASSED] 10 VFs
[11:00:17] [PASSED] 11 VFs
[11:00:17] [PASSED] 12 VFs
[11:00:17] [PASSED] 13 VFs
[11:00:17] [PASSED] 14 VFs
[11:00:17] [PASSED] 15 VFs
[11:00:17] [PASSED] 16 VFs
[11:00:17] [PASSED] 17 VFs
[11:00:17] [PASSED] 18 VFs
[11:00:17] [PASSED] 19 VFs
[11:00:17] [PASSED] 20 VFs
[11:00:17] [PASSED] 21 VFs
[11:00:17] [PASSED] 22 VFs
[11:00:17] [PASSED] 23 VFs
[11:00:17] [PASSED] 24 VFs
[11:00:17] [PASSED] 25 VFs
[11:00:17] [PASSED] 26 VFs
[11:00:17] [PASSED] 27 VFs
[11:00:17] [PASSED] 28 VFs
[11:00:17] [PASSED] 29 VFs
[11:00:17] [PASSED] 30 VFs
[11:00:17] [PASSED] 31 VFs
[11:00:17] [PASSED] 32 VFs
[11:00:17] [PASSED] 33 VFs
[11:00:17] [PASSED] 34 VFs
[11:00:17] [PASSED] 35 VFs
[11:00:17] [PASSED] 36 VFs
[11:00:17] [PASSED] 37 VFs
[11:00:17] [PASSED] 38 VFs
[11:00:17] [PASSED] 39 VFs
[11:00:17] [PASSED] 40 VFs
[11:00:17] [PASSED] 41 VFs
[11:00:17] [PASSED] 42 VFs
[11:00:17] [PASSED] 43 VFs
[11:00:17] [PASSED] 44 VFs
[11:00:17] [PASSED] 45 VFs
[11:00:17] [PASSED] 46 VFs
[11:00:17] [PASSED] 47 VFs
[11:00:17] [PASSED] 48 VFs
[11:00:17] [PASSED] 49 VFs
[11:00:17] [PASSED] 50 VFs
[11:00:17] [PASSED] 51 VFs
[11:00:17] [PASSED] 52 VFs
[11:00:17] [PASSED] 53 VFs
[11:00:17] [PASSED] 54 VFs
[11:00:17] [PASSED] 55 VFs
[11:00:17] [PASSED] 56 VFs
[11:00:17] [PASSED] 57 VFs
[11:00:17] [PASSED] 58 VFs
[11:00:17] [PASSED] 59 VFs
[11:00:17] [PASSED] 60 VFs
[11:00:17] [PASSED] 61 VFs
[11:00:17] [PASSED] 62 VFs
[11:00:17] [PASSED] 63 VFs
[11:00:17] ================== [PASSED] fair_contexts ==================
[11:00:17] ===================== fair_doorbells ======================
[11:00:17] [PASSED] 1 VF
[11:00:17] [PASSED] 2 VFs
[11:00:17] [PASSED] 3 VFs
[11:00:17] [PASSED] 4 VFs
[11:00:17] [PASSED] 5 VFs
[11:00:17] [PASSED] 6 VFs
[11:00:17] [PASSED] 7 VFs
[11:00:17] [PASSED] 8 VFs
[11:00:17] [PASSED] 9 VFs
[11:00:17] [PASSED] 10 VFs
[11:00:17] [PASSED] 11 VFs
[11:00:17] [PASSED] 12 VFs
[11:00:17] [PASSED] 13 VFs
[11:00:17] [PASSED] 14 VFs
[11:00:17] [PASSED] 15 VFs
[11:00:17] [PASSED] 16 VFs
[11:00:17] [PASSED] 17 VFs
[11:00:17] [PASSED] 18 VFs
[11:00:17] [PASSED] 19 VFs
[11:00:17] [PASSED] 20 VFs
[11:00:17] [PASSED] 21 VFs
[11:00:17] [PASSED] 22 VFs
[11:00:17] [PASSED] 23 VFs
[11:00:17] [PASSED] 24 VFs
[11:00:17] [PASSED] 25 VFs
[11:00:17] [PASSED] 26 VFs
[11:00:17] [PASSED] 27 VFs
[11:00:17] [PASSED] 28 VFs
[11:00:17] [PASSED] 29 VFs
[11:00:17] [PASSED] 30 VFs
[11:00:17] [PASSED] 31 VFs
[11:00:17] [PASSED] 32 VFs
[11:00:17] [PASSED] 33 VFs
[11:00:17] [PASSED] 34 VFs
[11:00:17] [PASSED] 35 VFs
[11:00:17] [PASSED] 36 VFs
[11:00:17] [PASSED] 37 VFs
[11:00:17] [PASSED] 38 VFs
[11:00:17] [PASSED] 39 VFs
[11:00:17] [PASSED] 40 VFs
[11:00:17] [PASSED] 41 VFs
[11:00:17] [PASSED] 42 VFs
[11:00:17] [PASSED] 43 VFs
[11:00:17] [PASSED] 44 VFs
[11:00:17] [PASSED] 45 VFs
[11:00:17] [PASSED] 46 VFs
[11:00:17] [PASSED] 47 VFs
[11:00:17] [PASSED] 48 VFs
[11:00:17] [PASSED] 49 VFs
[11:00:17] [PASSED] 50 VFs
[11:00:17] [PASSED] 51 VFs
[11:00:17] [PASSED] 52 VFs
[11:00:17] [PASSED] 53 VFs
[11:00:17] [PASSED] 54 VFs
[11:00:17] [PASSED] 55 VFs
[11:00:17] [PASSED] 56 VFs
[11:00:17] [PASSED] 57 VFs
[11:00:17] [PASSED] 58 VFs
[11:00:17] [PASSED] 59 VFs
[11:00:17] [PASSED] 60 VFs
[11:00:17] [PASSED] 61 VFs
[11:00:17] [PASSED] 62 VFs
[11:00:17] [PASSED] 63 VFs
[11:00:17] ================= [PASSED] fair_doorbells ==================
[11:00:17] ======================== fair_ggtt ========================
[11:00:17] [PASSED] 1 VF
[11:00:17] [PASSED] 2 VFs
[11:00:17] [PASSED] 3 VFs
[11:00:17] [PASSED] 4 VFs
[11:00:17] [PASSED] 5 VFs
[11:00:17] [PASSED] 6 VFs
[11:00:17] [PASSED] 7 VFs
[11:00:17] [PASSED] 8 VFs
[11:00:17] [PASSED] 9 VFs
[11:00:17] [PASSED] 10 VFs
[11:00:17] [PASSED] 11 VFs
[11:00:17] [PASSED] 12 VFs
[11:00:17] [PASSED] 13 VFs
[11:00:17] [PASSED] 14 VFs
[11:00:17] [PASSED] 15 VFs
[11:00:17] [PASSED] 16 VFs
[11:00:17] [PASSED] 17 VFs
[11:00:17] [PASSED] 18 VFs
[11:00:17] [PASSED] 19 VFs
[11:00:17] [PASSED] 20 VFs
[11:00:17] [PASSED] 21 VFs
[11:00:17] [PASSED] 22 VFs
[11:00:17] [PASSED] 23 VFs
[11:00:17] [PASSED] 24 VFs
[11:00:17] [PASSED] 25 VFs
[11:00:17] [PASSED] 26 VFs
[11:00:17] [PASSED] 27 VFs
[11:00:17] [PASSED] 28 VFs
[11:00:17] [PASSED] 29 VFs
[11:00:17] [PASSED] 30 VFs
[11:00:17] [PASSED] 31 VFs
[11:00:17] [PASSED] 32 VFs
[11:00:17] [PASSED] 33 VFs
[11:00:17] [PASSED] 34 VFs
[11:00:17] [PASSED] 35 VFs
[11:00:17] [PASSED] 36 VFs
[11:00:17] [PASSED] 37 VFs
[11:00:17] [PASSED] 38 VFs
[11:00:17] [PASSED] 39 VFs
[11:00:17] [PASSED] 40 VFs
[11:00:17] [PASSED] 41 VFs
[11:00:17] [PASSED] 42 VFs
[11:00:17] [PASSED] 43 VFs
[11:00:17] [PASSED] 44 VFs
[11:00:17] [PASSED] 45 VFs
[11:00:17] [PASSED] 46 VFs
[11:00:17] [PASSED] 47 VFs
[11:00:17] [PASSED] 48 VFs
[11:00:17] [PASSED] 49 VFs
[11:00:17] [PASSED] 50 VFs
[11:00:17] [PASSED] 51 VFs
[11:00:17] [PASSED] 52 VFs
[11:00:17] [PASSED] 53 VFs
[11:00:17] [PASSED] 54 VFs
[11:00:17] [PASSED] 55 VFs
[11:00:17] [PASSED] 56 VFs
[11:00:17] [PASSED] 57 VFs
[11:00:17] [PASSED] 58 VFs
[11:00:17] [PASSED] 59 VFs
[11:00:17] [PASSED] 60 VFs
[11:00:17] [PASSED] 61 VFs
[11:00:17] [PASSED] 62 VFs
[11:00:17] [PASSED] 63 VFs
[11:00:17] ==================== [PASSED] fair_ggtt ====================
[11:00:17] ======================== fair_vram ========================
[11:00:17] [PASSED] 1 VF
[11:00:17] [PASSED] 2 VFs
[11:00:17] [PASSED] 3 VFs
[11:00:17] [PASSED] 4 VFs
[11:00:17] [PASSED] 5 VFs
[11:00:17] [PASSED] 6 VFs
[11:00:17] [PASSED] 7 VFs
[11:00:17] [PASSED] 8 VFs
[11:00:17] [PASSED] 9 VFs
[11:00:17] [PASSED] 10 VFs
[11:00:17] [PASSED] 11 VFs
[11:00:17] [PASSED] 12 VFs
[11:00:17] [PASSED] 13 VFs
[11:00:17] [PASSED] 14 VFs
[11:00:17] [PASSED] 15 VFs
[11:00:17] [PASSED] 16 VFs
[11:00:17] [PASSED] 17 VFs
[11:00:17] [PASSED] 18 VFs
[11:00:17] [PASSED] 19 VFs
[11:00:17] [PASSED] 20 VFs
[11:00:17] [PASSED] 21 VFs
[11:00:17] [PASSED] 22 VFs
[11:00:17] [PASSED] 23 VFs
[11:00:17] [PASSED] 24 VFs
[11:00:17] [PASSED] 25 VFs
[11:00:17] [PASSED] 26 VFs
[11:00:17] [PASSED] 27 VFs
[11:00:17] [PASSED] 28 VFs
[11:00:17] [PASSED] 29 VFs
[11:00:17] [PASSED] 30 VFs
[11:00:17] [PASSED] 31 VFs
[11:00:17] [PASSED] 32 VFs
[11:00:17] [PASSED] 33 VFs
[11:00:17] [PASSED] 34 VFs
[11:00:17] [PASSED] 35 VFs
[11:00:17] [PASSED] 36 VFs
[11:00:17] [PASSED] 37 VFs
[11:00:17] [PASSED] 38 VFs
[11:00:17] [PASSED] 39 VFs
[11:00:17] [PASSED] 40 VFs
[11:00:17] [PASSED] 41 VFs
[11:00:17] [PASSED] 42 VFs
[11:00:17] [PASSED] 43 VFs
[11:00:17] [PASSED] 44 VFs
[11:00:17] [PASSED] 45 VFs
[11:00:17] [PASSED] 46 VFs
[11:00:17] [PASSED] 47 VFs
[11:00:17] [PASSED] 48 VFs
[11:00:17] [PASSED] 49 VFs
[11:00:17] [PASSED] 50 VFs
[11:00:17] [PASSED] 51 VFs
[11:00:17] [PASSED] 52 VFs
[11:00:17] [PASSED] 53 VFs
[11:00:17] [PASSED] 54 VFs
[11:00:17] [PASSED] 55 VFs
[11:00:17] [PASSED] 56 VFs
[11:00:17] [PASSED] 57 VFs
[11:00:17] [PASSED] 58 VFs
[11:00:17] [PASSED] 59 VFs
[11:00:17] [PASSED] 60 VFs
[11:00:17] [PASSED] 61 VFs
[11:00:17] [PASSED] 62 VFs
[11:00:17] [PASSED] 63 VFs
[11:00:17] ==================== [PASSED] fair_vram ====================
[11:00:17] ================== [PASSED] pf_gt_config ===================
[11:00:17] ===================== lmtt (1 subtest) =====================
[11:00:17] ======================== test_ops =========================
[11:00:17] [PASSED] 2-level
[11:00:17] [PASSED] multi-level
[11:00:17] ==================== [PASSED] test_ops =====================
[11:00:17] ====================== [PASSED] lmtt =======================
[11:00:17] ================= sriov_packet (1 subtest) =================
[11:00:17] [PASSED] test_descriptor_init
[11:00:17] ================== [PASSED] sriov_packet ===================
[11:00:17] ================= pf_service (11 subtests) =================
[11:00:17] [PASSED] pf_negotiate_any
[11:00:17] [PASSED] pf_negotiate_base_match
[11:00:17] [PASSED] pf_negotiate_base_newer
[11:00:17] [PASSED] pf_negotiate_base_next
[11:00:17] [SKIPPED] pf_negotiate_base_older (no older minor)
[11:00:17] [PASSED] pf_negotiate_base_prev
[11:00:17] [PASSED] pf_negotiate_latest_match
[11:00:17] [PASSED] pf_negotiate_latest_newer
[11:00:17] [PASSED] pf_negotiate_latest_next
[11:00:17] [SKIPPED] pf_negotiate_latest_older (no older minor)
[11:00:17] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[11:00:17] =================== [PASSED] pf_service ====================
[11:00:17] ================= xe_guc_g2g (2 subtests) ==================
[11:00:17] ============== xe_live_guc_g2g_kunit_default ==============
[11:00:17] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[11:00:17] ============== xe_live_guc_g2g_kunit_allmem ===============
[11:00:17] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[11:00:17] =================== [SKIPPED] xe_guc_g2g ===================
[11:00:17] =================== xe_mocs (2 subtests) ===================
[11:00:17] ================ xe_live_mocs_kernel_kunit ================
[11:00:17] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[11:00:17] ================ xe_live_mocs_reset_kunit =================
[11:00:17] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[11:00:17] ==================== [SKIPPED] xe_mocs =====================
[11:00:17] ================= xe_migrate (2 subtests) ==================
[11:00:17] ================= xe_migrate_sanity_kunit =================
[11:00:17] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[11:00:17] ================== xe_validate_ccs_kunit ==================
[11:00:17] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[11:00:17] =================== [SKIPPED] xe_migrate ===================
[11:00:17] ================== xe_dma_buf (1 subtest) ==================
[11:00:17] ==================== xe_dma_buf_kunit =====================
[11:00:17] ================ [SKIPPED] xe_dma_buf_kunit ================
[11:00:17] =================== [SKIPPED] xe_dma_buf ===================
[11:00:17] ================= xe_bo_shrink (1 subtest) =================
[11:00:17] =================== xe_bo_shrink_kunit ====================
[11:00:17] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[11:00:17] ================== [SKIPPED] xe_bo_shrink ==================
[11:00:17] ==================== xe_bo (2 subtests) ====================
[11:00:17] ================== xe_ccs_migrate_kunit ===================
[11:00:17] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[11:00:17] ==================== xe_bo_evict_kunit ====================
[11:00:17] =============== [SKIPPED] xe_bo_evict_kunit ================
[11:00:17] ===================== [SKIPPED] xe_bo ======================
[11:00:17] =================== xe_any (9 subtests) ====================
[11:00:17] [PASSED] test_to_xe
[11:00:17] [PASSED] test_to_dev
[11:00:17] [PASSED] test_to_pdev
[11:00:17] [PASSED] test_to_drm
[11:00:17] [PASSED] test_if_pdev
[11:00:17] [PASSED] test_if_xe
[11:00:17] [PASSED] test_if_tile
[11:00:17] [PASSED] test_if_gt
[11:00:17] [PASSED] test_to_id
[11:00:17] ===================== [PASSED] xe_any ======================
[11:00:17] ==================== args (13 subtests) ====================
[11:00:17] [PASSED] count_args_test
[11:00:17] [PASSED] call_args_example
[11:00:17] [PASSED] call_args_test
[11:00:17] [PASSED] drop_first_arg_example
[11:00:17] [PASSED] drop_first_arg_test
[11:00:17] [PASSED] first_arg_example
[11:00:17] [PASSED] first_arg_test
[11:00:17] [PASSED] last_arg_example
[11:00:17] [PASSED] last_arg_test
[11:00:17] [PASSED] pick_arg_example
[11:00:17] [PASSED] if_args_example
[11:00:17] [PASSED] if_args_test
[11:00:17] [PASSED] sep_comma_example
[11:00:17] ====================== [PASSED] args =======================
[11:00:17] =================== xe_pci (3 subtests) ====================
[11:00:17] ==================== check_graphics_ip ====================
[11:00:17] [PASSED] 12.00 Xe_LP
[11:00:17] [PASSED] 12.10 Xe_LP+
[11:00:17] [PASSED] 12.55 Xe_HPG
[11:00:17] [PASSED] 12.60 Xe_HPC
[11:00:17] [PASSED] 12.70 Xe_LPG
[11:00:17] [PASSED] 12.71 Xe_LPG
[11:00:17] [PASSED] 12.74 Xe_LPG+
[11:00:17] [PASSED] 20.01 Xe2_HPG
[11:00:17] [PASSED] 20.02 Xe2_HPG
[11:00:17] [PASSED] 20.04 Xe2_LPG
[11:00:17] [PASSED] 30.00 Xe3_LPG
[11:00:17] [PASSED] 30.01 Xe3_LPG
[11:00:17] [PASSED] 30.03 Xe3_LPG
[11:00:17] [PASSED] 30.04 Xe3_LPG
[11:00:17] [PASSED] 30.05 Xe3_LPG
[11:00:17] [PASSED] 35.10 Xe3p_LPG
[11:00:17] [PASSED] 35.11 Xe3p_XPC
[11:00:17] ================ [PASSED] check_graphics_ip ================
[11:00:17] ===================== check_media_ip ======================
[11:00:17] [PASSED] 12.00 Xe_M
[11:00:17] [PASSED] 12.55 Xe_HPM
[11:00:17] [PASSED] 13.00 Xe_LPM+
[11:00:17] [PASSED] 13.01 Xe2_HPM
[11:00:17] [PASSED] 20.00 Xe2_LPM
[11:00:17] [PASSED] 30.00 Xe3_LPM
[11:00:17] [PASSED] 30.02 Xe3_LPM
[11:00:17] [PASSED] 35.00 Xe3p_LPM
[11:00:17] [PASSED] 35.03 Xe3p_HPM
[11:00:17] ================= [PASSED] check_media_ip ==================
[11:00:17] =================== check_platform_desc ===================
[11:00:17] [PASSED] 0x9A60 (TIGERLAKE)
[11:00:17] [PASSED] 0x9A68 (TIGERLAKE)
[11:00:17] [PASSED] 0x9A70 (TIGERLAKE)
[11:00:17] [PASSED] 0x9A40 (TIGERLAKE)
[11:00:17] [PASSED] 0x9A49 (TIGERLAKE)
[11:00:17] [PASSED] 0x9A59 (TIGERLAKE)
[11:00:17] [PASSED] 0x9A78 (TIGERLAKE)
[11:00:17] [PASSED] 0x9AC0 (TIGERLAKE)
[11:00:17] [PASSED] 0x9AC9 (TIGERLAKE)
[11:00:17] [PASSED] 0x9AD9 (TIGERLAKE)
[11:00:17] [PASSED] 0x9AF8 (TIGERLAKE)
[11:00:17] [PASSED] 0x4C80 (ROCKETLAKE)
[11:00:17] [PASSED] 0x4C8A (ROCKETLAKE)
[11:00:17] [PASSED] 0x4C8B (ROCKETLAKE)
[11:00:17] [PASSED] 0x4C8C (ROCKETLAKE)
[11:00:17] [PASSED] 0x4C90 (ROCKETLAKE)
[11:00:17] [PASSED] 0x4C9A (ROCKETLAKE)
[11:00:17] [PASSED] 0x4680 (ALDERLAKE_S)
[11:00:17] [PASSED] 0x4682 (ALDERLAKE_S)
[11:00:17] [PASSED] 0x4688 (ALDERLAKE_S)
[11:00:17] [PASSED] 0x468A (ALDERLAKE_S)
[11:00:17] [PASSED] 0x468B (ALDERLAKE_S)
[11:00:17] [PASSED] 0x4690 (ALDERLAKE_S)
[11:00:17] [PASSED] 0x4692 (ALDERLAKE_S)
[11:00:17] [PASSED] 0x4693 (ALDERLAKE_S)
[11:00:17] [PASSED] 0x46A0 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x46A1 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x46A2 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x46A3 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x46A6 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x46A8 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x46AA (ALDERLAKE_P)
[11:00:17] [PASSED] 0x462A (ALDERLAKE_P)
[11:00:17] [PASSED] 0x4626 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x4628 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x46B0 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x46B1 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x46B2 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x46B3 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x46C0 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x46C1 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x46C2 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x46C3 (ALDERLAKE_P)
[11:00:17] [PASSED] 0x46D0 (ALDERLAKE_N)
[11:00:17] [PASSED] 0x46D1 (ALDERLAKE_N)
[11:00:17] [PASSED] 0x46D2 (ALDERLAKE_N)
[11:00:17] [PASSED] 0x46D3 (ALDERLAKE_N)
[11:00:17] [PASSED] 0x46D4 (ALDERLAKE_N)
[11:00:17] [PASSED] 0xA721 (ALDERLAKE_P)
[11:00:17] [PASSED] 0xA7A1 (ALDERLAKE_P)
[11:00:17] [PASSED] 0xA7A9 (ALDERLAKE_P)
[11:00:17] [PASSED] 0xA7AC (ALDERLAKE_P)
[11:00:17] [PASSED] 0xA7AD (ALDERLAKE_P)
[11:00:17] [PASSED] 0xA720 (ALDERLAKE_P)
[11:00:17] [PASSED] 0xA7A0 (ALDERLAKE_P)
[11:00:17] [PASSED] 0xA7A8 (ALDERLAKE_P)
[11:00:17] [PASSED] 0xA7AA (ALDERLAKE_P)
[11:00:17] [PASSED] 0xA7AB (ALDERLAKE_P)
[11:00:17] [PASSED] 0xA780 (ALDERLAKE_S)
[11:00:17] [PASSED] 0xA781 (ALDERLAKE_S)
[11:00:17] [PASSED] 0xA782 (ALDERLAKE_S)
[11:00:17] [PASSED] 0xA783 (ALDERLAKE_S)
[11:00:17] [PASSED] 0xA788 (ALDERLAKE_S)
[11:00:17] [PASSED] 0xA789 (ALDERLAKE_S)
[11:00:17] [PASSED] 0xA78A (ALDERLAKE_S)
[11:00:17] [PASSED] 0xA78B (ALDERLAKE_S)
[11:00:17] [PASSED] 0x4905 (DG1)
[11:00:17] [PASSED] 0x4906 (DG1)
[11:00:17] [PASSED] 0x4907 (DG1)
[11:00:17] [PASSED] 0x4908 (DG1)
[11:00:17] [PASSED] 0x4909 (DG1)
[11:00:17] [PASSED] 0x56C0 (DG2)
[11:00:17] [PASSED] 0x56C2 (DG2)
[11:00:17] [PASSED] 0x56C1 (DG2)
[11:00:17] [PASSED] 0x7D51 (METEORLAKE)
[11:00:17] [PASSED] 0x7DD1 (METEORLAKE)
[11:00:17] [PASSED] 0x7D41 (METEORLAKE)
[11:00:17] [PASSED] 0x7D67 (METEORLAKE)
[11:00:17] [PASSED] 0xB640 (METEORLAKE)
[11:00:17] [PASSED] 0x56A0 (DG2)
[11:00:17] [PASSED] 0x56A1 (DG2)
[11:00:17] [PASSED] 0x56A2 (DG2)
[11:00:17] [PASSED] 0x56BE (DG2)
[11:00:17] [PASSED] 0x56BF (DG2)
[11:00:17] [PASSED] 0x5690 (DG2)
[11:00:17] [PASSED] 0x5691 (DG2)
[11:00:17] [PASSED] 0x5692 (DG2)
[11:00:17] [PASSED] 0x56A5 (DG2)
[11:00:17] [PASSED] 0x56A6 (DG2)
[11:00:17] [PASSED] 0x56B0 (DG2)
[11:00:17] [PASSED] 0x56B1 (DG2)
[11:00:17] [PASSED] 0x56BA (DG2)
[11:00:17] [PASSED] 0x56BB (DG2)
[11:00:17] [PASSED] 0x56BC (DG2)
[11:00:17] [PASSED] 0x56BD (DG2)
[11:00:17] [PASSED] 0x5693 (DG2)
[11:00:17] [PASSED] 0x5694 (DG2)
[11:00:17] [PASSED] 0x5695 (DG2)
[11:00:17] [PASSED] 0x56A3 (DG2)
[11:00:17] [PASSED] 0x56A4 (DG2)
[11:00:17] [PASSED] 0x56B2 (DG2)
[11:00:17] [PASSED] 0x56B3 (DG2)
[11:00:17] [PASSED] 0x5696 (DG2)
[11:00:17] [PASSED] 0x5697 (DG2)
[11:00:17] [PASSED] 0xB69 (PVC)
[11:00:17] [PASSED] 0xB6E (PVC)
[11:00:17] [PASSED] 0xBD4 (PVC)
[11:00:17] [PASSED] 0xBD5 (PVC)
[11:00:17] [PASSED] 0xBD6 (PVC)
[11:00:17] [PASSED] 0xBD7 (PVC)
[11:00:17] [PASSED] 0xBD8 (PVC)
[11:00:17] [PASSED] 0xBD9 (PVC)
[11:00:17] [PASSED] 0xBDA (PVC)
[11:00:17] [PASSED] 0xBDB (PVC)
[11:00:17] [PASSED] 0xBE0 (PVC)
[11:00:17] [PASSED] 0xBE1 (PVC)
[11:00:17] [PASSED] 0xBE5 (PVC)
[11:00:17] [PASSED] 0x7D40 (METEORLAKE)
[11:00:17] [PASSED] 0x7D45 (METEORLAKE)
[11:00:17] [PASSED] 0x7D55 (METEORLAKE)
[11:00:17] [PASSED] 0x7D60 (METEORLAKE)
[11:00:17] [PASSED] 0x7DD5 (METEORLAKE)
[11:00:17] [PASSED] 0x6420 (LUNARLAKE)
[11:00:17] [PASSED] 0x64A0 (LUNARLAKE)
[11:00:17] [PASSED] 0x64B0 (LUNARLAKE)
[11:00:17] [PASSED] 0xE202 (BATTLEMAGE)
[11:00:17] [PASSED] 0xE209 (BATTLEMAGE)
[11:00:17] [PASSED] 0xE20B (BATTLEMAGE)
[11:00:17] [PASSED] 0xE20C (BATTLEMAGE)
[11:00:17] [PASSED] 0xE20D (BATTLEMAGE)
[11:00:17] [PASSED] 0xE210 (BATTLEMAGE)
[11:00:17] [PASSED] 0xE211 (BATTLEMAGE)
[11:00:17] [PASSED] 0xE212 (BATTLEMAGE)
[11:00:17] [PASSED] 0xE216 (BATTLEMAGE)
[11:00:17] [PASSED] 0xE220 (BATTLEMAGE)
[11:00:17] [PASSED] 0xE221 (BATTLEMAGE)
[11:00:17] [PASSED] 0xE222 (BATTLEMAGE)
[11:00:17] [PASSED] 0xE223 (BATTLEMAGE)
[11:00:17] [PASSED] 0xB080 (PANTHERLAKE)
[11:00:17] [PASSED] 0xB081 (PANTHERLAKE)
[11:00:17] [PASSED] 0xB082 (PANTHERLAKE)
[11:00:17] [PASSED] 0xB083 (PANTHERLAKE)
[11:00:17] [PASSED] 0xB084 (PANTHERLAKE)
[11:00:17] [PASSED] 0xB085 (PANTHERLAKE)
[11:00:17] [PASSED] 0xB086 (PANTHERLAKE)
[11:00:17] [PASSED] 0xB087 (PANTHERLAKE)
[11:00:17] [PASSED] 0xB08F (PANTHERLAKE)
[11:00:17] [PASSED] 0xB090 (PANTHERLAKE)
[11:00:17] [PASSED] 0xB0A0 (PANTHERLAKE)
[11:00:17] [PASSED] 0xB0B0 (PANTHERLAKE)
[11:00:17] [PASSED] 0xFD80 (PANTHERLAKE)
[11:00:17] [PASSED] 0xFD81 (PANTHERLAKE)
[11:00:17] [PASSED] 0xD740 (NOVALAKE_S)
[11:00:17] [PASSED] 0xD741 (NOVALAKE_S)
[11:00:17] [PASSED] 0xD742 (NOVALAKE_S)
[11:00:17] [PASSED] 0xD743 (NOVALAKE_S)
[11:00:17] [PASSED] 0xD745 (NOVALAKE_S)
[11:00:17] [PASSED] 0xD74A (NOVALAKE_S)
[11:00:17] [PASSED] 0xD74B (NOVALAKE_S)
[11:00:17] [PASSED] 0x674C (CRESCENTISLAND)
[11:00:17] [PASSED] 0x674D (CRESCENTISLAND)
[11:00:17] [PASSED] 0x674E (CRESCENTISLAND)
[11:00:17] [PASSED] 0x674F (CRESCENTISLAND)
[11:00:17] [PASSED] 0x6750 (CRESCENTISLAND)
[11:00:17] [PASSED] 0xD750 (NOVALAKE_P)
[11:00:17] [PASSED] 0xD751 (NOVALAKE_P)
[11:00:17] [PASSED] 0xD752 (NOVALAKE_P)
[11:00:17] [PASSED] 0xD753 (NOVALAKE_P)
[11:00:17] [PASSED] 0xD754 (NOVALAKE_P)
[11:00:17] [PASSED] 0xD755 (NOVALAKE_P)
[11:00:17] [PASSED] 0xD756 (NOVALAKE_P)
[11:00:17] [PASSED] 0xD757 (NOVALAKE_P)
[11:00:17] [PASSED] 0xD75F (NOVALAKE_P)
[11:00:17] =============== [PASSED] check_platform_desc ===============
[11:00:17] ===================== [PASSED] xe_pci ======================
[11:00:17] ============= xe_rtp_tables_test (5 subtests) ==============
[11:00:17] ================== xe_rtp_table_gt_test ===================
[11:00:17] [PASSED] gt_was/14011060649
[11:00:17] [PASSED] gt_was/14011059788
[11:00:17] [PASSED] gt_was/14015795083
[11:00:17] [PASSED] gt_was/16021867713
[11:00:17] [PASSED] gt_was/14019449301
[11:00:17] [PASSED] gt_was/16028005424
[11:00:17] [PASSED] gt_was/14026578760
[11:00:17] [PASSED] gt_was/1409420604
[11:00:17] [PASSED] gt_was/1408615072
[11:00:17] [PASSED] gt_was/22010523718
[11:00:17] [PASSED] gt_was/14011006942
[11:00:18] [PASSED] gt_was/14014830051
[11:00:18] [PASSED] gt_was/18018781329
[11:00:18] [PASSED] gt_was/1509235366
[11:00:18] [PASSED] gt_was/18018781329
[11:00:18] [PASSED] gt_was/16016694945
[11:00:18] [PASSED] gt_was/14018575942
[11:00:18] [PASSED] gt_was/22016670082
[11:00:18] [PASSED] gt_was/22016670082
[11:00:18] [PASSED] gt_was/14017421178
[11:00:18] [PASSED] gt_was/16025250150
[11:00:18] [PASSED] gt_was/14021871409
[11:00:18] [PASSED] gt_was/16021865536
[11:00:18] [PASSED] gt_was/14021486841
[11:00:18] [PASSED] gt_was/14025160223
[11:00:18] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[11:00:18] [PASSED] gt_was/14025635424
[11:00:18] [PASSED] gt_was/16028005424
[11:00:18] ============== [PASSED] xe_rtp_table_gt_test ===============
[11:00:18] ================== xe_rtp_table_gt_test ===================
[11:00:18] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[11:00:18] [PASSED] gt_tunings/Tuning: 32B Access Enable
[11:00:18] [PASSED] gt_tunings/Tuning: L3 cache
[11:00:18] [PASSED] gt_tunings/Tuning: L3 cache - media
[11:00:18] [PASSED] gt_tunings/Tuning: Compression Overfetch
[11:00:18] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[11:00:18] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[11:00:18] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[11:00:18] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[11:00:18] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[11:00:18] [PASSED] gt_tunings/Tuning: Stateless compression control
[11:00:18] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[11:00:18] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[11:00:18] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[11:00:18] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[11:00:18] ============== [PASSED] xe_rtp_table_gt_test ===============
[11:00:18] ================== xe_rtp_table_oob_test ==================
[11:00:18] [PASSED] oob_was/1607983814
[11:00:18] [PASSED] oob_was/16010904313
[11:00:18] [PASSED] oob_was/18022495364
[11:00:18] [PASSED] oob_was/22012773006
[11:00:18] [PASSED] oob_was/14014475959
[11:00:18] [PASSED] oob_was/22011391025
[11:00:18] [PASSED] oob_was/22012727170
[11:00:18] [PASSED] oob_was/22012727685
[11:00:18] [PASSED] oob_was/22016596838
[11:00:18] [PASSED] oob_was/18020744125
[11:00:18] [PASSED] oob_was/1409600907
[11:00:18] [PASSED] oob_was/22014953428
[11:00:18] [PASSED] oob_was/16017236439
[11:00:18] [PASSED] oob_was/14019821291
[11:00:18] [PASSED] oob_was/14015076503
[11:00:18] [PASSED] oob_was/14018913170
[11:00:18] [PASSED] oob_was/14018094691
[11:00:18] [PASSED] oob_was/18024947630
[11:00:18] [PASSED] oob_was/16022287689
[11:00:18] [PASSED] oob_was/13011645652
[11:00:18] [PASSED] oob_was/14022293748
[11:00:18] [PASSED] oob_was/22019794406
[11:00:18] [PASSED] oob_was/22019338487
[11:00:18] [PASSED] oob_was/16023588340
[11:00:18] [PASSED] oob_was/14019789679
[11:00:18] [PASSED] oob_was/14022866841
[11:00:18] [PASSED] oob_was/16021333562
[11:00:18] [PASSED] oob_was/14016712196
[11:00:18] [PASSED] oob_was/14015568240
[11:00:18] [PASSED] oob_was/18013179988
[11:00:18] [PASSED] oob_was/1508761755
[11:00:18] [PASSED] oob_was/16023105232
[11:00:18] [PASSED] oob_was/16026508708
[11:00:18] [PASSED] oob_was/14020001231
[11:00:18] [PASSED] oob_was/16023683509
[11:00:18] [PASSED] oob_was/14025515070
[11:00:18] [PASSED] oob_was/15015404425_disable
[11:00:18] [PASSED] oob_was/16026007364
[11:00:18] [PASSED] oob_was/14020316580
[11:00:18] [PASSED] oob_was/14025883347
[11:00:18] [PASSED] oob_was/16029380221
[11:00:18] [PASSED] oob_was/22022079272
[11:00:18] [PASSED] oob_was/16029897822
[11:00:18] [PASSED] oob_was/14027054324
[11:00:18] ============== [PASSED] xe_rtp_table_oob_test ==============
[11:00:18] ================ xe_rtp_table_dev_oob_test ================
[11:00:18] [PASSED] device_oob_was/22010954014
[11:00:18] [PASSED] device_oob_was/15015404425
[11:00:18] [PASSED] device_oob_was/22019338487_display
[11:00:18] [PASSED] device_oob_was/14022085890
[11:00:18] [PASSED] device_oob_was/14026539277
[11:00:18] [PASSED] device_oob_was/14026633728
[11:00:18] [PASSED] device_oob_was/14026746987
[11:00:18] [PASSED] device_oob_was/14026779378
[11:00:18] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[11:00:18] ========== xe_rtp_table_missing_upper_bound_test ==========
[11:00:18] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[11:00:18] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[11:00:18] [PASSED] register_whitelist/1806527549
[11:00:18] [PASSED] register_whitelist/allow_read_ctx_timestamp
[11:00:18] [PASSED] register_whitelist/allow_read_queue_timestamp
[11:00:18] [PASSED] register_whitelist/16014440446
[11:00:18] [PASSED] register_whitelist/16017236439
[11:00:18] [PASSED] register_whitelist/16020183090
[11:00:18] [PASSED] register_whitelist/14024997852
[11:00:18] [PASSED] register_whitelist/14024997852
[11:00:18] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[11:00:18] =============== [PASSED] xe_rtp_tables_test ================
[11:00:18] =================== xe_rtp (3 subtests) ====================
[11:00:18] =================== xe_rtp_rules_tests ====================
[11:00:18] [PASSED] no
[11:00:18] [PASSED] yes
[11:00:18] [PASSED] no-and-no
[11:00:18] [PASSED] no-and-yes
[11:00:18] [PASSED] yes-and-no
[11:00:18] [PASSED] yes-and-yes
[11:00:18] [PASSED] no-or-no
[11:00:18] [PASSED] no-or-yes
[11:00:18] [PASSED] yes-or-no
[11:00:18] [PASSED] yes-or-yes
[11:00:18] [PASSED] no-yes-or-yes-no
[11:00:18] [PASSED] no-yes-or-yes-yes
[11:00:18] [PASSED] yes-yes-or-no-yes
[11:00:18] [PASSED] yes-yes-or-yes-yes
[11:00:18] [PASSED] no-no-or-yes-or-no
[11:00:18] [PASSED] or
[11:00:18] [PASSED] or-yes
[11:00:18] [PASSED] or-no
[11:00:18] [PASSED] yes-or
[11:00:18] [PASSED] no-or
[11:00:18] [PASSED] no-or-or-yes
[11:00:18] [PASSED] yes-or-or-no
[11:00:18] [PASSED] no-or-or-no
[11:00:18] [PASSED] missing-context-engine-class
[11:00:18] [PASSED] missing-context-engine-class-or-yes
[11:00:18] [PASSED] missing-context-engine-class-or-or-yes
[11:00:18] =============== [PASSED] xe_rtp_rules_tests ================
[11:00:18] =============== xe_rtp_process_to_sr_tests ================
[11:00:18] [PASSED] coalesce-same-reg
[11:00:18] [PASSED] coalesce-same-reg-literal-and-func
[11:00:18] [PASSED] no-match-no-add
[11:00:18] [PASSED] two-regs-two-entries
[11:00:18] [PASSED] clr-one-set-other
[11:00:18] [PASSED] set-field
[11:00:18] [PASSED] conflict-duplicate
[11:00:18] [PASSED] conflict-not-disjoint
[11:00:18] [PASSED] conflict-not-disjoint-literal-and-func
[11:00:18] [PASSED] conflict-reg-type
[11:00:18] [PASSED] bad-mcr-reg-forced-to-regular
[11:00:18] [PASSED] bad-regular-reg-forced-to-mcr
[11:00:18] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[11:00:18] ================== xe_rtp_process_tests ===================
[11:00:18] [PASSED] active1
[11:00:18] [PASSED] active2
[11:00:18] [PASSED] active-inactive
[11:00:18] [PASSED] inactive-active
[11:00:18] [PASSED] inactive-active-inactive
[11:00:18] [PASSED] inactive-inactive-inactive
[11:00:18] ============== [PASSED] xe_rtp_process_tests ===============
[11:00:18] ===================== [PASSED] xe_rtp ======================
[11:00:18] ==================== xe_wa (1 subtest) =====================
[11:00:18] ======================== xe_wa_gt =========================
[11:00:18] [PASSED] TIGERLAKE B0
[11:00:18] [PASSED] DG1 A0
[11:00:18] [PASSED] DG1 B0
[11:00:18] [PASSED] ALDERLAKE_S A0
[11:00:18] [PASSED] ALDERLAKE_S B0
[11:00:18] [PASSED] ALDERLAKE_S C0
[11:00:18] [PASSED] ALDERLAKE_S D0
[11:00:18] [PASSED] ALDERLAKE_P A0
[11:00:18] [PASSED] ALDERLAKE_P B0
[11:00:18] [PASSED] ALDERLAKE_P C0
[11:00:18] [PASSED] ALDERLAKE_S RPLS D0
[11:00:18] [PASSED] ALDERLAKE_P RPLU E0
[11:00:18] [PASSED] DG2 G10 C0
[11:00:18] [PASSED] DG2 G11 B1
[11:00:18] [PASSED] DG2 G12 A1
[11:00:18] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[11:00:18] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[11:00:18] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[11:00:18] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[11:00:18] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[11:00:18] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[11:00:18] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[11:00:18] ==================== [PASSED] xe_wa_gt =====================
[11:00:18] ====================== [PASSED] xe_wa ======================
[11:00:18] ============================================================
[11:00:18] Testing complete. Ran 793 tests: passed: 765, skipped: 28
[11:00:18] Elapsed time: 36.328s total, 1.836s configuring, 33.776s building, 0.702s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[11:00:18] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[11:00:20] 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
[11:00:45] Starting KUnit Kernel (1/1)...
[11:00:45] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[11:00:45] ============= refcount_interrupt (4 subtests) ==============
[11:00:45] [PASSED] test_single_irq_change
[11:00:45] [PASSED] test_nested_irq_change
[11:00:45] [PASSED] test_multiple_irq_change
[11:00:45] [PASSED] test_irq_save
[11:00:45] =============== [PASSED] refcount_interrupt ================
[11:00:45] ============ drm_test_pick_cmdline (2 subtests) ============
[11:00:45] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[11:00:45] =============== drm_test_pick_cmdline_named ===============
[11:00:45] [PASSED] NTSC
[11:00:45] [PASSED] NTSC-J
[11:00:45] [PASSED] PAL
[11:00:45] [PASSED] PAL-M
[11:00:45] =========== [PASSED] drm_test_pick_cmdline_named ===========
[11:00:45] ============== [PASSED] drm_test_pick_cmdline ==============
[11:00:45] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[11:00:45] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[11:00:45] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[11:00:45] =========== drm_validate_clone_mode (2 subtests) ===========
[11:00:45] ============== drm_test_check_in_clone_mode ===============
[11:00:45] [PASSED] in_clone_mode
[11:00:45] [PASSED] not_in_clone_mode
[11:00:45] ========== [PASSED] drm_test_check_in_clone_mode ===========
[11:00:45] =============== drm_test_check_valid_clones ===============
[11:00:45] [PASSED] not_in_clone_mode
[11:00:45] [PASSED] valid_clone
[11:00:45] [PASSED] invalid_clone
[11:00:45] =========== [PASSED] drm_test_check_valid_clones ===========
[11:00:45] ============= [PASSED] drm_validate_clone_mode =============
[11:00:45] ============= drm_validate_modeset (1 subtest) =============
[11:00:45] [PASSED] drm_test_check_connector_changed_modeset
[11:00:45] ============== [PASSED] drm_validate_modeset ===============
[11:00:45] ====== drm_test_bridge_get_current_state (1 subtest) =======
[11:00:45] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[11:00:45] ======== [PASSED] drm_test_bridge_get_current_state ========
[11:00:45] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[11:00:45] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[11:00:45] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[11:00:45] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[11:00:45] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[11:00:45] ============== drm_bridge_alloc (2 subtests) ===============
[11:00:45] [PASSED] drm_test_drm_bridge_alloc_basic
[11:00:45] [PASSED] drm_test_drm_bridge_alloc_get_put
[11:00:45] ================ [PASSED] drm_bridge_alloc =================
[11:00:45] ============= drm_bridge_bus_fmt (5 subtests) ==============
[11:00:45] [PASSED] drm_test_bridge_rgb_yuv_rgb
[11:00:45] [PASSED] drm_test_bridge_must_convert_to_yuv444
[11:00:45] [PASSED] drm_test_bridge_hdmi_auto_rgb
[11:00:45] [PASSED] drm_test_bridge_auto_first
[11:00:45] [PASSED] drm_test_bridge_rgb_yuv_no_path
[11:00:45] =============== [PASSED] drm_bridge_bus_fmt ================
[11:00:45] ============= drm_cmdline_parser (40 subtests) =============
[11:00:45] [PASSED] drm_test_cmdline_force_d_only
[11:00:45] [PASSED] drm_test_cmdline_force_D_only_dvi
[11:00:45] [PASSED] drm_test_cmdline_force_D_only_hdmi
[11:00:45] [PASSED] drm_test_cmdline_force_D_only_not_digital
[11:00:45] [PASSED] drm_test_cmdline_force_e_only
[11:00:45] [PASSED] drm_test_cmdline_res
[11:00:45] [PASSED] drm_test_cmdline_res_vesa
[11:00:45] [PASSED] drm_test_cmdline_res_vesa_rblank
[11:00:45] [PASSED] drm_test_cmdline_res_rblank
[11:00:45] [PASSED] drm_test_cmdline_res_bpp
[11:00:45] [PASSED] drm_test_cmdline_res_refresh
[11:00:45] [PASSED] drm_test_cmdline_res_bpp_refresh
[11:00:45] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[11:00:45] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[11:00:45] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[11:00:45] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[11:00:45] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[11:00:45] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[11:00:45] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[11:00:45] [PASSED] drm_test_cmdline_res_margins_force_on
[11:00:45] [PASSED] drm_test_cmdline_res_vesa_margins
[11:00:45] [PASSED] drm_test_cmdline_name
[11:00:45] [PASSED] drm_test_cmdline_name_bpp
[11:00:45] [PASSED] drm_test_cmdline_name_option
[11:00:45] [PASSED] drm_test_cmdline_name_bpp_option
[11:00:45] [PASSED] drm_test_cmdline_rotate_0
[11:00:45] [PASSED] drm_test_cmdline_rotate_90
[11:00:45] [PASSED] drm_test_cmdline_rotate_180
[11:00:45] [PASSED] drm_test_cmdline_rotate_270
[11:00:45] [PASSED] drm_test_cmdline_hmirror
[11:00:45] [PASSED] drm_test_cmdline_vmirror
[11:00:45] [PASSED] drm_test_cmdline_margin_options
[11:00:45] [PASSED] drm_test_cmdline_multiple_options
[11:00:45] [PASSED] drm_test_cmdline_bpp_extra_and_option
[11:00:45] [PASSED] drm_test_cmdline_extra_and_option
[11:00:45] [PASSED] drm_test_cmdline_freestanding_options
[11:00:45] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[11:00:45] [PASSED] drm_test_cmdline_panel_orientation
[11:00:45] ================ drm_test_cmdline_invalid =================
[11:00:45] [PASSED] margin_only
[11:00:45] [PASSED] interlace_only
[11:00:45] [PASSED] res_missing_x
[11:00:45] [PASSED] res_missing_y
[11:00:45] [PASSED] res_bad_y
[11:00:45] [PASSED] res_missing_y_bpp
[11:00:45] [PASSED] res_bad_bpp
[11:00:45] [PASSED] res_bad_refresh
[11:00:45] [PASSED] res_bpp_refresh_force_on_off
[11:00:45] [PASSED] res_invalid_mode
[11:00:45] [PASSED] res_bpp_wrong_place_mode
[11:00:45] [PASSED] name_bpp_refresh
[11:00:45] [PASSED] name_refresh
[11:00:45] [PASSED] name_refresh_wrong_mode
[11:00:45] [PASSED] name_refresh_invalid_mode
[11:00:45] [PASSED] rotate_multiple
[11:00:45] [PASSED] rotate_invalid_val
[11:00:45] [PASSED] rotate_truncated
[11:00:45] [PASSED] invalid_option
[11:00:45] [PASSED] invalid_tv_option
[11:00:45] [PASSED] truncated_tv_option
[11:00:45] ============ [PASSED] drm_test_cmdline_invalid =============
[11:00:45] =============== drm_test_cmdline_tv_options ===============
[11:00:45] [PASSED] NTSC
[11:00:45] [PASSED] NTSC_443
[11:00:45] [PASSED] NTSC_J
[11:00:45] [PASSED] PAL
[11:00:45] [PASSED] PAL_M
[11:00:45] [PASSED] PAL_N
[11:00:45] [PASSED] SECAM
[11:00:45] [PASSED] MONO_525
[11:00:45] [PASSED] MONO_625
[11:00:45] =========== [PASSED] drm_test_cmdline_tv_options ===========
[11:00:45] =============== [PASSED] drm_cmdline_parser ================
[11:00:45] ========== drmm_connector_hdmi_init (20 subtests) ==========
[11:00:45] [PASSED] drm_test_connector_hdmi_init_valid
[11:00:45] [PASSED] drm_test_connector_hdmi_init_bpc_8
[11:00:45] [PASSED] drm_test_connector_hdmi_init_bpc_10
[11:00:45] [PASSED] drm_test_connector_hdmi_init_bpc_12
[11:00:45] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[11:00:45] [PASSED] drm_test_connector_hdmi_init_bpc_null
[11:00:45] [PASSED] drm_test_connector_hdmi_init_formats_empty
[11:00:45] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[11:00:45] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[11:00:45] [PASSED] supported_formats=0x9 yuv420_allowed=1
[11:00:45] [PASSED] supported_formats=0x9 yuv420_allowed=0
[11:00:45] [PASSED] supported_formats=0x5 yuv420_allowed=1
[11:00:45] [PASSED] supported_formats=0x5 yuv420_allowed=0
[11:00:45] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[11:00:45] [PASSED] drm_test_connector_hdmi_init_null_ddc
[11:00:45] [PASSED] drm_test_connector_hdmi_init_null_product
[11:00:45] [PASSED] drm_test_connector_hdmi_init_null_vendor
[11:00:45] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[11:00:45] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[11:00:45] [PASSED] drm_test_connector_hdmi_init_product_valid
[11:00:45] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[11:00:45] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[11:00:45] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[11:00:45] ========= drm_test_connector_hdmi_init_type_valid =========
[11:00:45] [PASSED] HDMI-A
[11:00:45] [PASSED] HDMI-B
[11:00:45] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[11:00:45] ======== drm_test_connector_hdmi_init_type_invalid ========
[11:00:45] [PASSED] Unknown
[11:00:45] [PASSED] VGA
[11:00:45] [PASSED] DVI-I
[11:00:45] [PASSED] DVI-D
[11:00:45] [PASSED] DVI-A
[11:00:45] [PASSED] Composite
[11:00:45] [PASSED] SVIDEO
[11:00:45] [PASSED] LVDS
[11:00:45] [PASSED] Component
[11:00:45] [PASSED] DIN
[11:00:45] [PASSED] DP
[11:00:45] [PASSED] TV
[11:00:45] [PASSED] eDP
[11:00:45] [PASSED] Virtual
[11:00:45] [PASSED] DSI
[11:00:45] [PASSED] DPI
[11:00:45] [PASSED] Writeback
[11:00:45] [PASSED] SPI
[11:00:45] [PASSED] USB
[11:00:45] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[11:00:45] ============ [PASSED] drmm_connector_hdmi_init =============
[11:00:45] ============= drmm_connector_init (3 subtests) =============
[11:00:45] [PASSED] drm_test_drmm_connector_init
[11:00:45] [PASSED] drm_test_drmm_connector_init_null_ddc
[11:00:45] ========= drm_test_drmm_connector_init_type_valid =========
[11:00:45] [PASSED] Unknown
[11:00:45] [PASSED] VGA
[11:00:45] [PASSED] DVI-I
[11:00:45] [PASSED] DVI-D
[11:00:45] [PASSED] DVI-A
[11:00:45] [PASSED] Composite
[11:00:45] [PASSED] SVIDEO
[11:00:45] [PASSED] LVDS
[11:00:45] [PASSED] Component
[11:00:45] [PASSED] DIN
[11:00:45] [PASSED] DP
[11:00:45] [PASSED] HDMI-A
[11:00:45] [PASSED] HDMI-B
[11:00:45] [PASSED] TV
[11:00:45] [PASSED] eDP
[11:00:45] [PASSED] Virtual
[11:00:45] [PASSED] DSI
[11:00:45] [PASSED] DPI
[11:00:45] [PASSED] Writeback
[11:00:45] [PASSED] SPI
[11:00:45] [PASSED] USB
[11:00:45] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[11:00:45] =============== [PASSED] drmm_connector_init ===============
[11:00:45] ========= drm_connector_dynamic_init (6 subtests) ==========
[11:00:45] [PASSED] drm_test_drm_connector_dynamic_init
[11:00:45] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[11:00:45] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[11:00:45] [PASSED] drm_test_drm_connector_dynamic_init_properties
[11:00:45] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[11:00:45] [PASSED] Unknown
[11:00:45] [PASSED] VGA
[11:00:45] [PASSED] DVI-I
[11:00:45] [PASSED] DVI-D
[11:00:45] [PASSED] DVI-A
[11:00:45] [PASSED] Composite
[11:00:45] [PASSED] SVIDEO
[11:00:45] [PASSED] LVDS
[11:00:45] [PASSED] Component
[11:00:45] [PASSED] DIN
[11:00:45] [PASSED] DP
[11:00:45] [PASSED] HDMI-A
[11:00:45] [PASSED] HDMI-B
[11:00:45] [PASSED] TV
[11:00:45] [PASSED] eDP
[11:00:45] [PASSED] Virtual
[11:00:45] [PASSED] DSI
[11:00:45] [PASSED] DPI
[11:00:45] [PASSED] Writeback
[11:00:45] [PASSED] SPI
[11:00:45] [PASSED] USB
[11:00:45] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[11:00:45] ======== drm_test_drm_connector_dynamic_init_name =========
[11:00:45] [PASSED] Unknown
[11:00:45] [PASSED] VGA
[11:00:45] [PASSED] DVI-I
[11:00:45] [PASSED] DVI-D
[11:00:45] [PASSED] DVI-A
[11:00:45] [PASSED] Composite
[11:00:45] [PASSED] SVIDEO
[11:00:45] [PASSED] LVDS
[11:00:45] [PASSED] Component
[11:00:45] [PASSED] DIN
[11:00:45] [PASSED] DP
[11:00:45] [PASSED] HDMI-A
[11:00:45] [PASSED] HDMI-B
[11:00:45] [PASSED] TV
[11:00:45] [PASSED] eDP
[11:00:45] [PASSED] Virtual
[11:00:45] [PASSED] DSI
[11:00:45] [PASSED] DPI
[11:00:45] [PASSED] Writeback
[11:00:45] [PASSED] SPI
[11:00:45] [PASSED] USB
[11:00:45] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[11:00:45] =========== [PASSED] drm_connector_dynamic_init ============
[11:00:45] ==== drm_connector_dynamic_register_early (4 subtests) =====
[11:00:45] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[11:00:45] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[11:00:45] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[11:00:45] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[11:00:45] ====== [PASSED] drm_connector_dynamic_register_early =======
[11:00:45] ======= drm_connector_dynamic_register (7 subtests) ========
[11:00:45] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[11:00:45] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[11:00:45] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[11:00:45] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[11:00:45] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[11:00:45] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[11:00:45] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[11:00:45] ========= [PASSED] drm_connector_dynamic_register ==========
[11:00:45] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[11:00:45] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[11:00:45] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[11:00:45] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[11:00:45] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[11:00:45] ========== drm_test_get_tv_mode_from_name_valid ===========
[11:00:45] [PASSED] NTSC
[11:00:45] [PASSED] NTSC-443
[11:00:45] [PASSED] NTSC-J
[11:00:45] [PASSED] PAL
[11:00:45] [PASSED] PAL-M
[11:00:45] [PASSED] PAL-N
[11:00:45] [PASSED] SECAM
[11:00:45] [PASSED] Mono
[11:00:45] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[11:00:45] [PASSED] drm_test_get_tv_mode_from_name_truncated
[11:00:45] ============ [PASSED] drm_get_tv_mode_from_name ============
[11:00:45] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[11:00:45] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[11:00:45] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[11:00:45] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[11:00:45] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[11:00:45] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[11:00:45] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[11:00:45] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[11:00:45] [PASSED] VIC 96
[11:00:45] [PASSED] VIC 97
[11:00:45] [PASSED] VIC 101
[11:00:45] [PASSED] VIC 102
[11:00:45] [PASSED] VIC 106
[11:00:45] [PASSED] VIC 107
[11:00:45] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[11:00:45] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[11:00:45] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[11:00:45] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[11:00:45] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[11:00:45] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[11:00:45] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[11:00:45] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[11:00:45] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[11:00:45] [PASSED] Automatic
[11:00:45] [PASSED] Full
[11:00:45] [PASSED] Limited 16:235
[11:00:45] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[11:00:45] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[11:00:45] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[11:00:45] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[11:00:45] === drm_test_drm_hdmi_connector_get_output_format_name ====
[11:00:45] [PASSED] RGB
[11:00:45] [PASSED] YUV 4:2:0
[11:00:45] [PASSED] YUV 4:2:2
[11:00:45] [PASSED] YUV 4:4:4
[11:00:45] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[11:00:45] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[11:00:45] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[11:00:45] ============= drm_damage_helper (21 subtests) ==============
[11:00:45] [PASSED] drm_test_damage_iter_no_damage
[11:00:45] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[11:00:45] [PASSED] drm_test_damage_iter_no_damage_src_moved
[11:00:45] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[11:00:45] [PASSED] drm_test_damage_iter_no_damage_not_visible
[11:00:45] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[11:00:45] [PASSED] drm_test_damage_iter_no_damage_no_fb
[11:00:45] [PASSED] drm_test_damage_iter_simple_damage
[11:00:45] [PASSED] drm_test_damage_iter_single_damage
[11:00:45] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[11:00:45] [PASSED] drm_test_damage_iter_single_damage_outside_src
[11:00:45] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[11:00:45] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[11:00:45] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[11:00:45] [PASSED] drm_test_damage_iter_single_damage_src_moved
[11:00:45] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[11:00:45] [PASSED] drm_test_damage_iter_damage
[11:00:45] [PASSED] drm_test_damage_iter_damage_one_intersect
[11:00:45] [PASSED] drm_test_damage_iter_damage_one_outside
[11:00:45] [PASSED] drm_test_damage_iter_damage_src_moved
[11:00:45] [PASSED] drm_test_damage_iter_damage_not_visible
[11:00:45] ================ [PASSED] drm_damage_helper ================
[11:00:45] ============== drm_dp_mst_helper (3 subtests) ==============
[11:00:45] ============== drm_test_dp_mst_calc_pbn_mode ==============
[11:00:45] [PASSED] Clock 154000 BPP 30 DSC disabled
[11:00:45] [PASSED] Clock 234000 BPP 30 DSC disabled
[11:00:45] [PASSED] Clock 297000 BPP 24 DSC disabled
[11:00:45] [PASSED] Clock 332880 BPP 24 DSC enabled
[11:00:45] [PASSED] Clock 324540 BPP 24 DSC enabled
[11:00:45] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[11:00:45] ============== drm_test_dp_mst_calc_pbn_div ===============
[11:00:45] [PASSED] Link rate 2000000 lane count 4
[11:00:45] [PASSED] Link rate 2000000 lane count 2
[11:00:45] [PASSED] Link rate 2000000 lane count 1
[11:00:45] [PASSED] Link rate 1350000 lane count 4
[11:00:45] [PASSED] Link rate 1350000 lane count 2
[11:00:45] [PASSED] Link rate 1350000 lane count 1
[11:00:45] [PASSED] Link rate 1000000 lane count 4
[11:00:45] [PASSED] Link rate 1000000 lane count 2
[11:00:45] [PASSED] Link rate 1000000 lane count 1
[11:00:45] [PASSED] Link rate 810000 lane count 4
[11:00:45] [PASSED] Link rate 810000 lane count 2
[11:00:45] [PASSED] Link rate 810000 lane count 1
[11:00:45] [PASSED] Link rate 540000 lane count 4
[11:00:45] [PASSED] Link rate 540000 lane count 2
[11:00:45] [PASSED] Link rate 540000 lane count 1
[11:00:45] [PASSED] Link rate 270000 lane count 4
[11:00:45] [PASSED] Link rate 270000 lane count 2
[11:00:45] [PASSED] Link rate 270000 lane count 1
[11:00:45] [PASSED] Link rate 162000 lane count 4
[11:00:45] [PASSED] Link rate 162000 lane count 2
[11:00:45] [PASSED] Link rate 162000 lane count 1
[11:00:45] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[11:00:45] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[11:00:45] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[11:00:45] [PASSED] DP_POWER_UP_PHY with port number
[11:00:45] [PASSED] DP_POWER_DOWN_PHY with port number
[11:00:45] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[11:00:45] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[11:00:45] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[11:00:45] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[11:00:45] [PASSED] DP_QUERY_PAYLOAD with port number
[11:00:45] [PASSED] DP_QUERY_PAYLOAD with VCPI
[11:00:45] [PASSED] DP_REMOTE_DPCD_READ with port number
[11:00:45] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[11:00:45] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[11:00:45] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[11:00:45] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[11:00:45] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[11:00:45] [PASSED] DP_REMOTE_I2C_READ with port number
[11:00:45] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[11:00:45] [PASSED] DP_REMOTE_I2C_READ with transactions array
[11:00:45] [PASSED] DP_REMOTE_I2C_WRITE with port number
[11:00:45] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[11:00:45] [PASSED] DP_REMOTE_I2C_WRITE with data array
[11:00:45] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[11:00:45] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[11:00:45] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[11:00:45] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[11:00:45] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[11:00:45] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[11:00:45] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[11:00:45] ================ [PASSED] drm_dp_mst_helper ================
[11:00:45] ================== drm_exec (7 subtests) ===================
[11:00:45] [PASSED] sanitycheck
[11:00:45] [PASSED] test_lock
[11:00:45] [PASSED] test_lock_unlock
[11:00:45] [PASSED] test_duplicates
[11:00:45] [PASSED] test_prepare
[11:00:45] [PASSED] test_prepare_array
[11:00:45] [PASSED] test_multiple_loops
[11:00:45] ==================== [PASSED] drm_exec =====================
[11:00:45] =========== drm_format_helper_test (17 subtests) ===========
[11:00:45] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[11:00:45] [PASSED] single_pixel_source_buffer
[11:00:45] [PASSED] single_pixel_clip_rectangle
[11:00:45] [PASSED] well_known_colors
[11:00:45] [PASSED] destination_pitch
[11:00:45] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[11:00:45] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[11:00:45] [PASSED] single_pixel_source_buffer
[11:00:45] [PASSED] single_pixel_clip_rectangle
[11:00:45] [PASSED] well_known_colors
[11:00:45] [PASSED] destination_pitch
[11:00:45] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[11:00:45] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[11:00:45] [PASSED] single_pixel_source_buffer
[11:00:45] [PASSED] single_pixel_clip_rectangle
[11:00:45] [PASSED] well_known_colors
[11:00:45] [PASSED] destination_pitch
[11:00:45] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[11:00:45] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[11:00:45] [PASSED] single_pixel_source_buffer
[11:00:45] [PASSED] single_pixel_clip_rectangle
[11:00:45] [PASSED] well_known_colors
[11:00:45] [PASSED] destination_pitch
[11:00:45] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[11:00:45] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[11:00:45] [PASSED] single_pixel_source_buffer
[11:00:45] [PASSED] single_pixel_clip_rectangle
[11:00:45] [PASSED] well_known_colors
[11:00:45] [PASSED] destination_pitch
[11:00:45] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[11:00:45] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[11:00:45] [PASSED] single_pixel_source_buffer
[11:00:45] [PASSED] single_pixel_clip_rectangle
[11:00:45] [PASSED] well_known_colors
[11:00:45] [PASSED] destination_pitch
[11:00:45] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[11:00:45] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[11:00:45] [PASSED] single_pixel_source_buffer
[11:00:45] [PASSED] single_pixel_clip_rectangle
[11:00:45] [PASSED] well_known_colors
[11:00:45] [PASSED] destination_pitch
[11:00:45] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[11:00:45] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[11:00:45] [PASSED] single_pixel_source_buffer
[11:00:45] [PASSED] single_pixel_clip_rectangle
[11:00:45] [PASSED] well_known_colors
[11:00:45] [PASSED] destination_pitch
[11:00:45] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[11:00:45] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[11:00:45] [PASSED] single_pixel_source_buffer
[11:00:45] [PASSED] single_pixel_clip_rectangle
[11:00:45] [PASSED] well_known_colors
[11:00:45] [PASSED] destination_pitch
[11:00:45] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[11:00:45] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[11:00:45] [PASSED] single_pixel_source_buffer
[11:00:45] [PASSED] single_pixel_clip_rectangle
[11:00:45] [PASSED] well_known_colors
[11:00:45] [PASSED] destination_pitch
[11:00:45] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[11:00:45] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[11:00:45] [PASSED] single_pixel_source_buffer
[11:00:45] [PASSED] single_pixel_clip_rectangle
[11:00:45] [PASSED] well_known_colors
[11:00:45] [PASSED] destination_pitch
[11:00:45] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[11:00:45] ============== drm_test_fb_xrgb8888_to_mono ===============
[11:00:45] [PASSED] single_pixel_source_buffer
[11:00:45] [PASSED] single_pixel_clip_rectangle
[11:00:45] [PASSED] well_known_colors
[11:00:45] [PASSED] destination_pitch
[11:00:45] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[11:00:45] ==================== drm_test_fb_swab =====================
[11:00:45] [PASSED] single_pixel_source_buffer
[11:00:45] [PASSED] single_pixel_clip_rectangle
[11:00:45] [PASSED] well_known_colors
[11:00:45] [PASSED] destination_pitch
[11:00:45] ================ [PASSED] drm_test_fb_swab =================
[11:00:45] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[11:00:45] [PASSED] single_pixel_source_buffer
[11:00:45] [PASSED] single_pixel_clip_rectangle
[11:00:45] [PASSED] well_known_colors
[11:00:45] [PASSED] destination_pitch
[11:00:45] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[11:00:45] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[11:00:45] [PASSED] single_pixel_source_buffer
[11:00:45] [PASSED] single_pixel_clip_rectangle
[11:00:45] [PASSED] well_known_colors
[11:00:45] [PASSED] destination_pitch
[11:00:45] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[11:00:45] ================= drm_test_fb_clip_offset =================
[11:00:45] [PASSED] pass through
[11:00:45] [PASSED] horizontal offset
[11:00:45] [PASSED] vertical offset
[11:00:45] [PASSED] horizontal and vertical offset
[11:00:45] [PASSED] horizontal offset (custom pitch)
[11:00:45] [PASSED] vertical offset (custom pitch)
[11:00:45] [PASSED] horizontal and vertical offset (custom pitch)
[11:00:45] ============= [PASSED] drm_test_fb_clip_offset =============
[11:00:45] =================== drm_test_fb_memcpy ====================
[11:00:45] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[11:00:45] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[11:00:45] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[11:00:45] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[11:00:45] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[11:00:45] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[11:00:45] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[11:00:45] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[11:00:45] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[11:00:45] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[11:00:45] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[11:00:45] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[11:00:45] =============== [PASSED] drm_test_fb_memcpy ================
[11:00:45] ============= [PASSED] drm_format_helper_test ==============
[11:00:45] ================= drm_format (18 subtests) =================
[11:00:45] [PASSED] drm_test_format_block_width_invalid
[11:00:45] [PASSED] drm_test_format_block_width_one_plane
[11:00:45] [PASSED] drm_test_format_block_width_two_plane
[11:00:45] [PASSED] drm_test_format_block_width_three_plane
[11:00:45] [PASSED] drm_test_format_block_width_tiled
[11:00:45] [PASSED] drm_test_format_block_height_invalid
[11:00:45] [PASSED] drm_test_format_block_height_one_plane
[11:00:45] [PASSED] drm_test_format_block_height_two_plane
[11:00:45] [PASSED] drm_test_format_block_height_three_plane
[11:00:45] [PASSED] drm_test_format_block_height_tiled
[11:00:45] [PASSED] drm_test_format_min_pitch_invalid
[11:00:45] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[11:00:45] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[11:00:45] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[11:00:45] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[11:00:45] [PASSED] drm_test_format_min_pitch_two_plane
[11:00:45] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[11:00:45] [PASSED] drm_test_format_min_pitch_tiled
[11:00:45] =================== [PASSED] drm_format ====================
[11:00:45] ============== drm_framebuffer (10 subtests) ===============
[11:00:45] ========== drm_test_framebuffer_check_src_coords ==========
[11:00:45] [PASSED] Success: source fits into fb
[11:00:45] [PASSED] Fail: overflowing fb with x-axis coordinate
[11:00:45] [PASSED] Fail: overflowing fb with y-axis coordinate
[11:00:45] [PASSED] Fail: overflowing fb with source width
[11:00:45] [PASSED] Fail: overflowing fb with source height
[11:00:45] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[11:00:45] [PASSED] drm_test_framebuffer_cleanup
[11:00:45] =============== drm_test_framebuffer_create ===============
[11:00:45] [PASSED] ABGR8888 normal sizes
[11:00:45] [PASSED] ABGR8888 max sizes
[11:00:45] [PASSED] ABGR8888 pitch greater than min required
[11:00:45] [PASSED] ABGR8888 pitch less than min required
[11:00:45] [PASSED] ABGR8888 Invalid width
[11:00:45] [PASSED] ABGR8888 Invalid buffer handle
[11:00:45] [PASSED] No pixel format
[11:00:45] [PASSED] ABGR8888 Width 0
[11:00:45] [PASSED] ABGR8888 Height 0
[11:00:45] [PASSED] ABGR8888 Out of bound height * pitch combination
[11:00:45] [PASSED] ABGR8888 Large buffer offset
[11:00:45] [PASSED] ABGR8888 Buffer offset for inexistent plane
[11:00:45] [PASSED] ABGR8888 Invalid flag
[11:00:45] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[11:00:45] [PASSED] ABGR8888 Valid buffer modifier
[11:00:45] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[11:00:45] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[11:00:45] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[11:00:45] [PASSED] NV12 Normal sizes
[11:00:45] [PASSED] NV12 Max sizes
[11:00:45] [PASSED] NV12 Invalid pitch
[11:00:45] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[11:00:45] [PASSED] NV12 different modifier per-plane
[11:00:45] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[11:00:45] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[11:00:45] [PASSED] NV12 Modifier for inexistent plane
[11:00:45] [PASSED] NV12 Handle for inexistent plane
[11:00:45] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[11:00:45] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[11:00:45] [PASSED] YVU420 Normal sizes
[11:00:45] [PASSED] YVU420 Max sizes
[11:00:45] [PASSED] YVU420 Invalid pitch
[11:00:45] [PASSED] YVU420 Different pitches
[11:00:45] [PASSED] YVU420 Different buffer offsets/pitches
[11:00:45] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[11:00:45] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[11:00:45] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[11:00:45] [PASSED] YVU420 Valid modifier
[11:00:45] [PASSED] YVU420 Different modifiers per plane
[11:00:45] [PASSED] YVU420 Modifier for inexistent plane
[11:00:45] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[11:00:45] [PASSED] X0L2 Normal sizes
[11:00:45] [PASSED] X0L2 Max sizes
[11:00:45] [PASSED] X0L2 Invalid pitch
[11:00:45] [PASSED] X0L2 Pitch greater than minimum required
[11:00:45] [PASSED] X0L2 Handle for inexistent plane
[11:00:45] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[11:00:45] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[11:00:45] [PASSED] X0L2 Valid modifier
[11:00:45] [PASSED] X0L2 Modifier for inexistent plane
[11:00:45] =========== [PASSED] drm_test_framebuffer_create ===========
[11:00:45] [PASSED] drm_test_framebuffer_free
[11:00:45] [PASSED] drm_test_framebuffer_init
[11:00:45] [PASSED] drm_test_framebuffer_init_bad_format
[11:00:45] [PASSED] drm_test_framebuffer_init_dev_mismatch
[11:00:45] [PASSED] drm_test_framebuffer_lookup
[11:00:45] [PASSED] drm_test_framebuffer_lookup_inexistent
[11:00:45] [PASSED] drm_test_framebuffer_modifiers_not_supported
[11:00:45] ================= [PASSED] drm_framebuffer =================
[11:00:45] ================ drm_gem_shmem (8 subtests) ================
[11:00:45] [PASSED] drm_gem_shmem_test_obj_create
[11:00:45] [PASSED] drm_gem_shmem_test_obj_create_private
[11:00:45] [PASSED] drm_gem_shmem_test_pin_pages
[11:00:45] [PASSED] drm_gem_shmem_test_vmap
[11:00:45] [PASSED] drm_gem_shmem_test_get_sg_table
[11:00:45] [PASSED] drm_gem_shmem_test_get_pages_sgt
[11:00:45] [PASSED] drm_gem_shmem_test_madvise
[11:00:45] [PASSED] drm_gem_shmem_test_purge
[11:00:45] ================== [PASSED] drm_gem_shmem ==================
[11:00:45] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[11:00:45] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[11:00:45] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[11:00:45] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[11:00:45] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[11:00:45] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[11:00:45] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[11:00:45] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[11:00:45] [PASSED] Automatic
[11:00:45] [PASSED] Full
[11:00:45] [PASSED] Limited 16:235
[11:00:45] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[11:00:45] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[11:00:45] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[11:00:45] [PASSED] drm_test_check_disable_connector
[11:00:45] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[11:00:45] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[11:00:45] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[11:00:45] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[11:00:45] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[11:00:45] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[11:00:45] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[11:00:45] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[11:00:45] [PASSED] drm_test_check_output_bpc_dvi
[11:00:45] [PASSED] drm_test_check_output_bpc_format_vic_1
[11:00:45] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[11:00:45] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[11:00:45] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[11:00:45] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[11:00:45] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[11:00:45] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[11:00:45] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[11:00:45] ============ drm_test_check_hdmi_color_format =============
[11:00:45] [PASSED] AUTO -> RGB
[11:00:45] [PASSED] YCBCR422 -> YUV422
[11:00:45] [PASSED] YCBCR420 -> YUV420
[11:00:45] [PASSED] YCBCR444 -> YUV444
[11:00:45] [PASSED] RGB -> RGB
[11:00:45] ======== [PASSED] drm_test_check_hdmi_color_format =========
[11:00:45] ======== drm_test_check_hdmi_color_format_420_only ========
[11:00:45] [PASSED] RGB should fail
[11:00:45] [PASSED] YUV444 should fail
[11:00:45] [PASSED] YUV422 should fail
[11:00:45] [PASSED] YUV420 should work
[11:00:45] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[11:00:45] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[11:00:45] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[11:00:45] [PASSED] drm_test_check_broadcast_rgb_value
[11:00:45] [PASSED] drm_test_check_bpc_8_value
[11:00:45] [PASSED] drm_test_check_bpc_10_value
[11:00:45] [PASSED] drm_test_check_bpc_12_value
[11:00:45] [PASSED] drm_test_check_format_value
[11:00:45] [PASSED] drm_test_check_tmds_char_value
[11:00:45] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[11:00:45] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[11:00:45] [PASSED] drm_test_check_mode_valid
[11:00:45] [PASSED] drm_test_check_mode_valid_reject
[11:00:45] [PASSED] drm_test_check_mode_valid_reject_rate
[11:00:45] [PASSED] drm_test_check_mode_valid_reject_max_clock
[11:00:45] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[11:00:45] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[11:00:45] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[11:00:45] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[11:00:45] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[11:00:45] [PASSED] drm_test_check_infoframes
[11:00:45] [PASSED] drm_test_check_reject_avi_infoframe
[11:00:45] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[11:00:45] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[11:00:45] [PASSED] drm_test_check_reject_audio_infoframe
[11:00:45] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[11:00:45] ================= drm_managed (2 subtests) =================
[11:00:45] [PASSED] drm_test_managed_release_action
[11:00:45] [PASSED] drm_test_managed_run_action
[11:00:45] =================== [PASSED] drm_managed ===================
[11:00:45] =================== drm_mm (6 subtests) ====================
[11:00:45] [PASSED] drm_test_mm_init
[11:00:45] [PASSED] drm_test_mm_debug
[11:00:45] [PASSED] drm_test_mm_align32
[11:00:45] [PASSED] drm_test_mm_align64
[11:00:45] [PASSED] drm_test_mm_lowest
[11:00:45] [PASSED] drm_test_mm_highest
[11:00:45] ===================== [PASSED] drm_mm ======================
[11:00:45] ============= drm_modes_analog_tv (5 subtests) =============
[11:00:45] [PASSED] drm_test_modes_analog_tv_mono_576i
[11:00:45] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[11:00:45] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[11:00:45] [PASSED] drm_test_modes_analog_tv_pal_576i
[11:00:45] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[11:00:45] =============== [PASSED] drm_modes_analog_tv ===============
[11:00:45] ============== drm_plane_helper (2 subtests) ===============
[11:00:45] =============== drm_test_check_plane_state ================
[11:00:45] [PASSED] clipping_simple
[11:00:45] [PASSED] clipping_rotate_reflect
[11:00:45] [PASSED] positioning_simple
[11:00:45] [PASSED] upscaling
[11:00:45] [PASSED] downscaling
[11:00:45] [PASSED] rounding1
[11:00:45] [PASSED] rounding2
[11:00:45] [PASSED] rounding3
[11:00:45] [PASSED] rounding4
[11:00:45] =========== [PASSED] drm_test_check_plane_state ============
[11:00:45] =========== drm_test_check_invalid_plane_state ============
[11:00:45] [PASSED] positioning_invalid
[11:00:45] [PASSED] upscaling_invalid
[11:00:45] [PASSED] downscaling_invalid
[11:00:45] ======= [PASSED] drm_test_check_invalid_plane_state ========
[11:00:45] ================ [PASSED] drm_plane_helper =================
[11:00:45] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[11:00:45] ====== drm_test_connector_helper_tv_get_modes_check =======
[11:00:45] [PASSED] None
[11:00:45] [PASSED] PAL
[11:00:45] [PASSED] NTSC
[11:00:45] [PASSED] Both, NTSC Default
[11:00:45] [PASSED] Both, PAL Default
[11:00:45] [PASSED] Both, NTSC Default, with PAL on command-line
[11:00:45] [PASSED] Both, PAL Default, with NTSC on command-line
[11:00:45] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[11:00:45] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[11:00:45] ================== drm_rect (9 subtests) ===================
[11:00:45] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[11:00:45] [PASSED] drm_test_rect_clip_scaled_not_clipped
[11:00:45] [PASSED] drm_test_rect_clip_scaled_clipped
[11:00:45] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[11:00:45] ================= drm_test_rect_intersect =================
[11:00:45] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[11:00:45] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[11:00:45] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[11:00:45] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[11:00:45] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[11:00:45] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[11:00:45] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[11:00:45] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[11:00:45] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[11:00:45] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[11:00:45] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[11:00:45] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[11:00:45] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[11:00:45] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[11:00:45] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[11:00:45] ============= [PASSED] drm_test_rect_intersect =============
[11:00:45] ================ drm_test_rect_calc_hscale ================
[11:00:45] [PASSED] normal use
[11:00:45] [PASSED] out of max range
[11:00:45] [PASSED] out of min range
[11:00:45] [PASSED] zero dst
[11:00:45] [PASSED] negative src
[11:00:45] [PASSED] negative dst
[11:00:45] ============ [PASSED] drm_test_rect_calc_hscale ============
[11:00:45] ================ drm_test_rect_calc_vscale ================
[11:00:45] [PASSED] normal use
[11:00:45] [PASSED] out of max range
[11:00:45] [PASSED] out of min range
[11:00:45] [PASSED] zero dst
[11:00:45] [PASSED] negative src
[11:00:45] [PASSED] negative dst
[11:00:45] ============ [PASSED] drm_test_rect_calc_vscale ============
[11:00:45] ================== drm_test_rect_rotate ===================
[11:00:45] [PASSED] reflect-x
[11:00:45] [PASSED] reflect-y
[11:00:45] [PASSED] rotate-0
[11:00:45] [PASSED] rotate-90
[11:00:45] [PASSED] rotate-180
[11:00:45] [PASSED] rotate-270
[11:00:45] ============== [PASSED] drm_test_rect_rotate ===============
[11:00:45] ================ drm_test_rect_rotate_inv =================
[11:00:45] [PASSED] reflect-x
[11:00:45] [PASSED] reflect-y
[11:00:45] [PASSED] rotate-0
[11:00:45] [PASSED] rotate-90
[11:00:45] [PASSED] rotate-180
[11:00:45] [PASSED] rotate-270
[11:00:45] ============ [PASSED] drm_test_rect_rotate_inv =============
[11:00:45] ==================== [PASSED] drm_rect =====================
[11:00:45] ============ drm_sysfb_modeset_test (1 subtest) ============
[11:00:45] ============ drm_test_sysfb_build_fourcc_list =============
[11:00:45] [PASSED] no native formats
[11:00:45] [PASSED] XRGB8888 as native format
[11:00:45] [PASSED] remove duplicates
[11:00:45] [PASSED] convert alpha formats
[11:00:45] [PASSED] random formats
[11:00:45] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[11:00:45] ============= [PASSED] drm_sysfb_modeset_test ==============
[11:00:45] ================== drm_fixp (2 subtests) ===================
[11:00:45] [PASSED] drm_test_int2fixp
[11:00:45] [PASSED] drm_test_sm2fixp
[11:00:45] ==================== [PASSED] drm_fixp =====================
[11:00:45] ============================================================
[11:00:45] Testing complete. Ran 641 tests: passed: 641
[11:00:45] Elapsed time: 26.989s total, 1.881s configuring, 24.940s building, 0.147s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[11:00:45] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[11:00:47] 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
[11:00:57] Starting KUnit Kernel (1/1)...
[11:00:57] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[11:00:57] ============= refcount_interrupt (4 subtests) ==============
[11:00:57] [PASSED] test_single_irq_change
[11:00:57] [PASSED] test_nested_irq_change
[11:00:57] [PASSED] test_multiple_irq_change
[11:00:57] [PASSED] test_irq_save
[11:00:57] =============== [PASSED] refcount_interrupt ================
[11:00:57] ================= ttm_device (5 subtests) ==================
[11:00:57] [PASSED] ttm_device_init_basic
[11:00:57] [PASSED] ttm_device_init_multiple
[11:00:57] [PASSED] ttm_device_fini_basic
[11:00:57] [PASSED] ttm_device_init_no_vma_man
[11:00:57] ================== ttm_device_init_pools ==================
[11:00:57] [PASSED] No DMA allocations, no DMA32 required
[11:00:57] [PASSED] DMA allocations, DMA32 required
[11:00:57] [PASSED] No DMA allocations, DMA32 required
[11:00:57] [PASSED] DMA allocations, no DMA32 required
[11:00:57] ============== [PASSED] ttm_device_init_pools ==============
[11:00:57] =================== [PASSED] ttm_device ====================
[11:00:57] ================== ttm_pool (8 subtests) ===================
[11:00:57] ================== ttm_pool_alloc_basic ===================
[11:00:57] [PASSED] One page
[11:00:57] [PASSED] More than one page
[11:00:57] [PASSED] Above the allocation limit
[11:00:57] [PASSED] One page, with coherent DMA mappings enabled
[11:00:57] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[11:00:57] ============== [PASSED] ttm_pool_alloc_basic ===============
[11:00:57] ============== ttm_pool_alloc_basic_dma_addr ==============
[11:00:57] [PASSED] One page
[11:00:57] [PASSED] More than one page
[11:00:57] [PASSED] Above the allocation limit
[11:00:57] [PASSED] One page, with coherent DMA mappings enabled
[11:00:57] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[11:00:57] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[11:00:57] [PASSED] ttm_pool_alloc_order_caching_match
[11:00:57] [PASSED] ttm_pool_alloc_caching_mismatch
[11:00:57] [PASSED] ttm_pool_alloc_order_mismatch
[11:00:57] [PASSED] ttm_pool_free_dma_alloc
[11:00:57] [PASSED] ttm_pool_free_no_dma_alloc
[11:00:57] [PASSED] ttm_pool_fini_basic
[11:00:57] ==================== [PASSED] ttm_pool =====================
[11:00:57] ================ ttm_resource (8 subtests) =================
[11:00:57] ================= ttm_resource_init_basic =================
[11:00:57] [PASSED] Init resource in TTM_PL_SYSTEM
[11:00:57] [PASSED] Init resource in TTM_PL_VRAM
[11:00:57] [PASSED] Init resource in a private placement
[11:00:57] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[11:00:57] ============= [PASSED] ttm_resource_init_basic =============
[11:00:57] [PASSED] ttm_resource_init_pinned
[11:00:57] [PASSED] ttm_resource_fini_basic
[11:00:57] [PASSED] ttm_resource_manager_init_basic
[11:00:57] [PASSED] ttm_resource_manager_usage_basic
[11:00:57] [PASSED] ttm_resource_manager_set_used_basic
[11:00:57] [PASSED] ttm_sys_man_alloc_basic
[11:00:57] [PASSED] ttm_sys_man_free_basic
[11:00:57] ================== [PASSED] ttm_resource ===================
[11:00:57] =================== ttm_tt (15 subtests) ===================
[11:00:57] ==================== ttm_tt_init_basic ====================
[11:00:57] [PASSED] Page-aligned size
[11:00:57] [PASSED] Extra pages requested
[11:00:57] ================ [PASSED] ttm_tt_init_basic ================
[11:00:57] [PASSED] ttm_tt_init_misaligned
[11:00:57] [PASSED] ttm_tt_fini_basic
[11:00:57] [PASSED] ttm_tt_fini_sg
[11:00:57] [PASSED] ttm_tt_fini_shmem
[11:00:57] [PASSED] ttm_tt_create_basic
[11:00:57] [PASSED] ttm_tt_create_invalid_bo_type
[11:00:57] [PASSED] ttm_tt_create_ttm_exists
[11:00:57] [PASSED] ttm_tt_create_failed
[11:00:57] [PASSED] ttm_tt_destroy_basic
[11:00:57] [PASSED] ttm_tt_populate_null_ttm
[11:00:57] [PASSED] ttm_tt_populate_populated_ttm
[11:00:57] [PASSED] ttm_tt_unpopulate_basic
[11:00:57] [PASSED] ttm_tt_unpopulate_empty_ttm
[11:00:57] [PASSED] ttm_tt_swapin_basic
[11:00:57] ===================== [PASSED] ttm_tt ======================
[11:00:57] =================== ttm_bo (14 subtests) ===================
[11:00:57] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[11:00:57] [PASSED] Cannot be interrupted and sleeps
[11:00:57] [PASSED] Cannot be interrupted, locks straight away
[11:00:57] [PASSED] Can be interrupted, sleeps
[11:00:57] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[11:00:57] [PASSED] ttm_bo_reserve_locked_no_sleep
[11:00:57] [PASSED] ttm_bo_reserve_no_wait_ticket
[11:00:57] [PASSED] ttm_bo_reserve_double_resv
[11:00:57] [PASSED] ttm_bo_reserve_interrupted
[11:00:57] [PASSED] ttm_bo_reserve_deadlock
[11:00:57] [PASSED] ttm_bo_unreserve_basic
[11:00:57] [PASSED] ttm_bo_unreserve_pinned
[11:00:57] [PASSED] ttm_bo_unreserve_bulk
[11:00:57] [PASSED] ttm_bo_fini_basic
[11:00:57] [PASSED] ttm_bo_fini_shared_resv
[11:00:57] [PASSED] ttm_bo_pin_basic
[11:00:57] [PASSED] ttm_bo_pin_unpin_resource
[11:00:57] [PASSED] ttm_bo_multiple_pin_one_unpin
[11:00:57] ===================== [PASSED] ttm_bo ======================
[11:00:57] ============== ttm_bo_validate (22 subtests) ===============
[11:00:57] ============== ttm_bo_init_reserved_sys_man ===============
[11:00:57] [PASSED] Buffer object for userspace
[11:00:57] [PASSED] Kernel buffer object
[11:00:57] [PASSED] Shared buffer object
[11:00:57] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[11:00:57] ============== ttm_bo_init_reserved_mock_man ==============
[11:00:57] [PASSED] Buffer object for userspace
[11:00:57] [PASSED] Kernel buffer object
[11:00:57] [PASSED] Shared buffer object
[11:00:57] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[11:00:57] [PASSED] ttm_bo_init_reserved_resv
[11:00:57] ================== ttm_bo_validate_basic ==================
[11:00:57] [PASSED] Buffer object for userspace
[11:00:57] [PASSED] Kernel buffer object
[11:00:57] [PASSED] Shared buffer object
[11:00:57] ============== [PASSED] ttm_bo_validate_basic ==============
[11:00:57] [PASSED] ttm_bo_validate_invalid_placement
[11:00:57] ============= ttm_bo_validate_same_placement ==============
[11:00:57] [PASSED] System manager
[11:00:57] [PASSED] VRAM manager
[11:00:57] ========= [PASSED] ttm_bo_validate_same_placement ==========
[11:00:57] [PASSED] ttm_bo_validate_failed_alloc
[11:00:57] [PASSED] ttm_bo_validate_pinned
[11:00:57] [PASSED] ttm_bo_validate_busy_placement
[11:00:57] ================ ttm_bo_validate_multihop =================
[11:00:57] [PASSED] Buffer object for userspace
[11:00:57] [PASSED] Kernel buffer object
[11:00:57] [PASSED] Shared buffer object
[11:00:57] ============ [PASSED] ttm_bo_validate_multihop =============
[11:00:57] ========== ttm_bo_validate_no_placement_signaled ==========
[11:00:57] [PASSED] Buffer object in system domain, no page vector
[11:00:57] [PASSED] Buffer object in system domain with an existing page vector
[11:00:57] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[11:00:57] ======== ttm_bo_validate_no_placement_not_signaled ========
[11:00:57] [PASSED] Buffer object for userspace
[11:00:57] [PASSED] Kernel buffer object
[11:00:57] [PASSED] Shared buffer object
[11:00:57] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[11:00:57] [PASSED] ttm_bo_validate_move_fence_signaled
[11:00:57] ========= ttm_bo_validate_move_fence_not_signaled =========
[11:00:57] [PASSED] Waits for GPU
[11:00:57] [PASSED] Tries to lock straight away
[11:00:57] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[11:00:57] [PASSED] ttm_bo_validate_swapout
[11:00:57] [PASSED] ttm_bo_validate_happy_evict
[11:00:57] [PASSED] ttm_bo_validate_all_pinned_evict
[11:00:57] [PASSED] ttm_bo_validate_allowed_only_evict
[11:00:57] [PASSED] ttm_bo_validate_deleted_evict
[11:00:57] [PASSED] ttm_bo_validate_busy_domain_evict
[11:00:57] [PASSED] ttm_bo_validate_evict_gutting
[11:00:57] [PASSED] ttm_bo_validate_recrusive_evict
[11:00:57] ================= [PASSED] ttm_bo_validate =================
[11:00:57] ============================================================
[11:00:57] Testing complete. Ran 106 tests: passed: 106
[11:00:57] Elapsed time: 12.081s total, 1.855s configuring, 9.962s building, 0.223s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/dma-buf/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig
[11:00:57] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[11:00:59] 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
[11:01:08] Starting KUnit Kernel (1/1)...
[11:01:08] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[11:01:08] ============= refcount_interrupt (4 subtests) ==============
[11:01:08] [PASSED] test_single_irq_change
[11:01:08] [PASSED] test_nested_irq_change
[11:01:08] [PASSED] test_multiple_irq_change
[11:01:08] [PASSED] test_irq_save
[11:01:08] =============== [PASSED] refcount_interrupt ================
[11:01:08] =============== dma-buf-fence (12 subtests) ================
[11:01:08] [PASSED] test_sanitycheck
[11:01:08] [PASSED] test_signaling
[11:01:08] [PASSED] test_add_callback
[11:01:08] [PASSED] test_late_add_callback
[11:01:08] [PASSED] test_rm_callback
[11:01:08] [PASSED] test_late_rm_callback
[11:01:08] [PASSED] test_status
[11:01:08] [PASSED] test_error
[11:01:08] [PASSED] test_wait
[11:01:08] [PASSED] test_wait_timeout
[11:01:08] [PASSED] test_stub
[11:01:08] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[11:01:08] ================== [PASSED] dma-buf-fence ==================
[11:01:08] ============ dma-buf-fence-chain (11 subtests) =============
[11:01:08] [PASSED] test_sanitycheck
[11:01:08] [PASSED] test_find_seqno
[11:01:08] [PASSED] test_find_signaled
[11:01:08] [PASSED] test_find_out_of_order
[11:01:13] [PASSED] test_find_gap
[11:01:13] [PASSED] test_find_race
[11:01:13] [PASSED] test_signal_forward
[11:01:13] [PASSED] test_signal_backward
[11:01:13] [PASSED] test_wait_forward
[11:01:13] [PASSED] test_wait_backward
[11:01:13] [PASSED] test_wait_random
[11:01:13] =============== [PASSED] dma-buf-fence-chain ===============
[11:01:13] ============ dma-buf-fence-unwrap (10 subtests) ============
[11:01:13] [PASSED] test_sanitycheck
[11:01:13] [PASSED] test_unwrap_array
[11:01:13] [PASSED] test_unwrap_chain
[11:01:13] [PASSED] test_unwrap_chain_array
[11:01:13] [PASSED] test_unwrap_merge
[11:01:13] [PASSED] test_unwrap_merge_duplicate
[11:01:13] [PASSED] test_unwrap_merge_seqno
[11:01:13] [PASSED] test_unwrap_merge_order
[11:01:13] [PASSED] test_unwrap_merge_complex
[11:01:13] [PASSED] test_unwrap_merge_complex_seqno
[11:01:13] ============== [PASSED] dma-buf-fence-unwrap ===============
[11:01:13] ================ dma-buf-resv (5 subtests) =================
[11:01:13] [PASSED] test_sanitycheck
[11:01:13] ===================== test_signaling ======================
[11:01:13] [PASSED] kernel
[11:01:13] [PASSED] write
[11:01:13] [PASSED] read
[11:01:13] [PASSED] bookkeep
[11:01:13] ================= [PASSED] test_signaling ==================
[11:01:13] ====================== test_for_each ======================
[11:01:13] [PASSED] kernel
[11:01:13] [PASSED] write
[11:01:13] [PASSED] read
[11:01:13] [PASSED] bookkeep
[11:01:13] ================== [PASSED] test_for_each ==================
[11:01:13] ================= test_for_each_unlocked ==================
[11:01:13] [PASSED] kernel
[11:01:13] [PASSED] write
[11:01:13] [PASSED] read
[11:01:13] [PASSED] bookkeep
[11:01:13] ============= [PASSED] test_for_each_unlocked ==============
[11:01:13] ===================== test_get_fences =====================
[11:01:13] [PASSED] kernel
[11:01:13] [PASSED] write
[11:01:13] [PASSED] read
[11:01:13] [PASSED] bookkeep
[11:01:13] ================= [PASSED] test_get_fences =================
[11:01:13] ================== [PASSED] dma-buf-resv ===================
[11:01:13] ============================================================
[11:01:13] Testing complete. Ran 54 tests: passed: 53, skipped: 1
[11:01:13] Elapsed time: 15.852s total, 1.853s configuring, 8.679s building, 5.276s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 25+ messages in thread* ✓ Xe.CI.BAT: success for Add support to handle memory double-bit ecc errors (rev2)
2026-09-07 9:47 [PATCH v2 0/6] Add support to handle memory double-bit ecc errors Riana Tauro
` (6 preceding siblings ...)
2026-09-07 11:01 ` ✓ CI.KUnit: success for Add support to handle memory double-bit ecc errors (rev2) Patchwork
@ 2026-09-07 11:45 ` Patchwork
2026-09-07 13:41 ` ✓ Xe.CI.FULL: " Patchwork
8 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2026-09-07 11:45 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 5817 bytes --]
== Series Details ==
Series: Add support to handle memory double-bit ecc errors (rev2)
URL : https://patchwork.freedesktop.org/series/172710/
State : success
== Summary ==
CI Bug Log - changes from xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db_BAT -> xe-pw-172710v2_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (13 -> 14)
------------------------------
Additional (1): bat-bmg-2
Known issues
------------
Here are the changes found in xe-pw-172710v2_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@core_hotunplug@unbind-rebind:
- bat-nvls-1: [PASS][1] -> [DMESG-WARN][2] ([Intel XE#8762] / [Intel XE#9069])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/bat-nvls-1/igt@core_hotunplug@unbind-rebind.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/bat-nvls-1/igt@core_hotunplug@unbind-rebind.html
* igt@fbdev@write:
- bat-bmg-2: NOTRUN -> [SKIP][3] ([Intel XE#2134]) +4 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/bat-bmg-2/igt@fbdev@write.html
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-bmg-2: NOTRUN -> [SKIP][4] ([Intel XE#2233])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/bat-bmg-2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
- bat-bmg-2: NOTRUN -> [SKIP][5] ([Intel XE#2489] / [Intel XE#3419]) +13 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/bat-bmg-2/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
* igt@kms_flip@basic-flip-vs-modeset:
- bat-bmg-2: NOTRUN -> [SKIP][6] ([Intel XE#2482]) +3 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/bat-bmg-2/igt@kms_flip@basic-flip-vs-modeset.html
* igt@kms_frontbuffer_tracking@basic:
- bat-bmg-2: NOTRUN -> [SKIP][7] ([Intel XE#2434] / [Intel XE#2548] / [Intel XE#6314])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/bat-bmg-2/igt@kms_frontbuffer_tracking@basic.html
* igt@kms_psr@psr-sprite-plane-onoff:
- bat-bmg-2: NOTRUN -> [SKIP][8] ([Intel XE#2234] / [Intel XE#2850]) +2 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/bat-bmg-2/igt@kms_psr@psr-sprite-plane-onoff.html
* igt@xe_exec_multi_queue@priority:
- bat-bmg-2: NOTRUN -> [SKIP][9] ([Intel XE#8364]) +13 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/bat-bmg-2/igt@xe_exec_multi_queue@priority.html
* igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit:
- bat-bmg-2: NOTRUN -> [SKIP][10] ([Intel XE#2229])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/bat-bmg-2/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html
* igt@xe_pat@pat-index-xehpc:
- bat-bmg-2: NOTRUN -> [SKIP][11] ([Intel XE#1420] / [Intel XE#7590])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/bat-bmg-2/igt@xe_pat@pat-index-xehpc.html
* igt@xe_pat@pat-index-xelp:
- bat-bmg-2: NOTRUN -> [SKIP][12] ([Intel XE#2245] / [Intel XE#7590])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/bat-bmg-2/igt@xe_pat@pat-index-xelp.html
* igt@xe_pat@pat-index-xelpg:
- bat-bmg-2: NOTRUN -> [SKIP][13] ([Intel XE#2236] / [Intel XE#7590])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/bat-bmg-2/igt@xe_pat@pat-index-xelpg.html
* igt@xe_waitfence@engine:
- bat-wcl-2: [PASS][14] -> [FAIL][15] ([Intel XE#9103])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/bat-wcl-2/igt@xe_waitfence@engine.html
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/bat-wcl-2/igt@xe_waitfence@engine.html
[Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420
[Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
[Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
[Intel XE#2233]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2233
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2236]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2236
[Intel XE#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245
[Intel XE#2434]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2434
[Intel XE#2482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2482
[Intel XE#2489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2489
[Intel XE#2548]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2548
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#3419]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3419
[Intel XE#6314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6314
[Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
[Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
[Intel XE#8762]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8762
[Intel XE#9069]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9069
[Intel XE#9103]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9103
Build changes
-------------
* Linux: xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db -> xe-pw-172710v2
IGT_9084: 9084
xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db: c60540b13d7bacc21848ed94fd368a968454d5db
xe-pw-172710v2: 172710v2
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/index.html
[-- Attachment #2: Type: text/html, Size: 6764 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread* ✓ Xe.CI.FULL: success for Add support to handle memory double-bit ecc errors (rev2)
2026-09-07 9:47 [PATCH v2 0/6] Add support to handle memory double-bit ecc errors Riana Tauro
` (7 preceding siblings ...)
2026-09-07 11:45 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-09-07 13:41 ` Patchwork
8 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2026-09-07 13:41 UTC (permalink / raw)
To: Tauro, Riana; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 93367 bytes --]
== Series Details ==
Series: Add support to handle memory double-bit ecc errors (rev2)
URL : https://patchwork.freedesktop.org/series/172710/
State : success
== Summary ==
CI Bug Log - changes from xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db_FULL -> xe-pw-172710v2_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-172710v2_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@fbdev@eof:
- shard-lnl: [PASS][1] -> [SKIP][2] ([Intel XE#2134])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@fbdev@eof.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@fbdev@eof.html
* igt@kms_big_fb@4-tiled-32bpp-rotate-90:
- shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#2327]) +4 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-16bpp-rotate-180:
- shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#1124]) +8 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-3/igt@kms_big_fb@y-tiled-16bpp-rotate-180.html
* igt@kms_bw@connected-linear-tiling-4-displays-target-3840x2160p:
- shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#7679]) +1 other test skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-3/igt@kms_bw@connected-linear-tiling-4-displays-target-3840x2160p.html
* igt@kms_bw@linear-tiling-2-displays-target-3840x2160p:
- shard-bmg: NOTRUN -> [SKIP][6] ([Intel XE#367]) +1 other test skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/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][7] ([Intel XE#2887]) +9 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-3/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs@pipe-a-edp-1:
- shard-lnl: NOTRUN -> [SKIP][8] ([Intel XE#2669] / [Intel XE#7389]) +2 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs@pipe-a-edp-1.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs@pipe-c-dp-2:
- shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#2652]) +8 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs@pipe-c-dp-2.html
* igt@kms_chamelium_audio@dp-audio-after-suspend:
- shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#2252]) +3 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_chamelium_audio@dp-audio-after-suspend.html
* igt@kms_chamelium_color@ctm-0-50:
- shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#2325] / [Intel XE#7358])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-3/igt@kms_chamelium_color@ctm-0-50.html
* igt@kms_chamelium_color@ctm-0-75:
- shard-lnl: NOTRUN -> [SKIP][12] ([Intel XE#306] / [Intel XE#7358])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_chamelium_color@ctm-0-75.html
* igt@kms_chamelium_color_pipeline@plane-lut1d:
- shard-bmg: NOTRUN -> [SKIP][13] ([Intel XE#7358])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@kms_chamelium_color_pipeline@plane-lut1d.html
* igt@kms_chamelium_edid@hdmi-mode-timings:
- shard-lnl: NOTRUN -> [SKIP][14] ([Intel XE#373]) +1 other test skip
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_chamelium_edid@hdmi-mode-timings.html
* igt@kms_color@deep-color:
- shard-lnl: [PASS][15] -> [SKIP][16] ([Intel XE#1511] / [Intel XE#3297])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_color@deep-color.html
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_color@deep-color.html
* igt@kms_color_pipeline@plane-ctm3x4:
- shard-lnl: NOTRUN -> [SKIP][17] ([Intel XE#7006])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_color_pipeline@plane-ctm3x4.html
* igt@kms_color_pipeline@plane-lut1d-lut1d:
- shard-lnl: [PASS][18] -> [SKIP][19] ([Intel XE#7006]) +1 other test skip
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_color_pipeline@plane-lut1d-lut1d.html
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_color_pipeline@plane-lut1d-lut1d.html
* igt@kms_color_pipeline@plane-lut3d-green-only@pipe-a-plane-1:
- shard-lnl: NOTRUN -> [SKIP][20] ([Intel XE#6969]) +7 other tests skip
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-a-plane-1.html
* igt@kms_color_pipeline@plane-lut3d-green-only@pipe-c-plane-2:
- shard-lnl: NOTRUN -> [SKIP][21] ([Intel XE#6969] / [Intel XE#7006])
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-c-plane-2.html
* igt@kms_content_protection@legacy:
- shard-bmg: NOTRUN -> [FAIL][22] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +3 other tests fail
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_content_protection@legacy.html
* igt@kms_cursor_crc@cursor-onscreen-32x10:
- shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#2320]) +3 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@kms_cursor_crc@cursor-onscreen-32x10.html
* igt@kms_cursor_crc@cursor-tearing-position-change:
- shard-lnl: NOTRUN -> [SKIP][24] ([Intel XE#9125]) +32 other tests skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_cursor_crc@cursor-tearing-position-change.html
* igt@kms_dsc@dsc-fractional-bpp-with-bpc-ultrajoiner:
- shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#8265])
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_dsc@dsc-fractional-bpp-with-bpc-ultrajoiner.html
* igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests:
- shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#4422] / [Intel XE#7442]) +1 other test skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html
* igt@kms_fbcon_fbt@fbc:
- shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#4156] / [Intel XE#7425])
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-3/igt@kms_fbcon_fbt@fbc.html
* igt@kms_fbcon_fbt@psr-suspend:
- shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#8680])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_fbcon_fbt@psr-suspend.html
* igt@kms_feature_discovery@dsc:
- shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#8586])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-3/igt@kms_feature_discovery@dsc.html
* igt@kms_feature_discovery@hdr:
- shard-lnl: NOTRUN -> [SKIP][30] ([Intel XE#8586])
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_feature_discovery@hdr.html
* igt@kms_feature_discovery@psr2:
- shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#2374] / [Intel XE#6128])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_feature_discovery@psr2.html
* igt@kms_flip@2x-dpms-vs-vblank-race-interruptible:
- shard-bmg: NOTRUN -> [FAIL][32] ([Intel XE#3098]) +1 other test fail
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-3/igt@kms_flip@2x-dpms-vs-vblank-race-interruptible.html
* igt@kms_flip@2x-flip-vs-suspend:
- shard-bmg: [PASS][33] -> [ABORT][34] ([Intel XE#9093]) +1 other test abort
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-bmg-7/igt@kms_flip@2x-flip-vs-suspend.html
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@kms_flip@2x-flip-vs-suspend.html
* igt@kms_flip@basic-flip-vs-modeset:
- shard-lnl: [PASS][35] -> [SKIP][36] ([Intel XE#2482]) +3 other tests skip
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_flip@basic-flip-vs-modeset.html
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_flip@basic-flip-vs-modeset.html
* igt@kms_flip@flip-vs-dpms-on-nop:
- shard-lnl: [PASS][37] -> [SKIP][38] ([Intel XE#9132])
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_flip@flip-vs-dpms-on-nop.html
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_flip@flip-vs-dpms-on-nop.html
* igt@kms_flip@flip-vs-expired-vblank@b-edp1:
- shard-lnl: [PASS][39] -> [FAIL][40] ([Intel XE#301])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-linear-to-32bpp-linear-reflect-x:
- shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#7179])
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-32bpp-linear-reflect-x.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling:
- shard-lnl: NOTRUN -> [SKIP][42] ([Intel XE#7178] / [Intel XE#7351])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling:
- shard-lnl: [PASS][43] -> [SKIP][44] ([Intel XE#1745] / [Intel XE#9144]) +1 other test skip
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][45] ([Intel XE#1397] / [Intel XE#7385] / [Intel XE#9144]) +2 other tests skip
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling:
- shard-lnl: NOTRUN -> [SKIP][46] ([Intel XE#1745] / [Intel XE#9144])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling:
- shard-bmg: NOTRUN -> [SKIP][47] ([Intel XE#7178] / [Intel XE#7351]) +1 other test skip
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-indfb-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][48] ([Intel XE#4141]) +13 other tests skip
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-render:
- shard-lnl: NOTRUN -> [SKIP][49] ([Intel XE#7779]) +24 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-argb161616f-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][50] ([Intel XE#7061] / [Intel XE#7356])
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-argb161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][51] ([Intel XE#2548] / [Intel XE#7779]) +18 other tests skip
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-primscrn-spr-indfb-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][52] ([Intel XE#2311]) +30 other tests skip
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary:
- shard-bmg: NOTRUN -> [SKIP][53] ([Intel XE#2313]) +35 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
- shard-lnl: [PASS][54] -> [SKIP][55] ([Intel XE#2548] / [Intel XE#7779]) +13 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-render:
- shard-lnl: [PASS][56] -> [SKIP][57] ([Intel XE#7779]) +2 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-render.html
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-render:
- shard-bmg: NOTRUN -> [SKIP][58] ([Intel XE#7061]) +3 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-render.html
* igt@kms_invalid_mode@bad-vsync-end:
- shard-lnl: NOTRUN -> [SKIP][59] ([Intel XE#2568])
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_invalid_mode@bad-vsync-end.html
* igt@kms_invalid_mode@zero-hdisplay:
- shard-lnl: [PASS][60] -> [SKIP][61] ([Intel XE#2568])
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_invalid_mode@zero-hdisplay.html
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_invalid_mode@zero-hdisplay.html
* igt@kms_joiner@basic-force-big-joiner:
- shard-lnl: NOTRUN -> [SKIP][62] ([Intel XE#7086] / [Intel XE#7390])
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_joiner@basic-force-big-joiner.html
* igt@kms_joiner@basic-force-ultra-joiner:
- shard-bmg: NOTRUN -> [SKIP][63] ([Intel XE#6911] / [Intel XE#7466])
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@kms_joiner@basic-force-ultra-joiner.html
* igt@kms_lease@lease-unleased-crtc:
- shard-lnl: [PASS][64] -> [SKIP][65] ([Intel XE#9125]) +33 other tests skip
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_lease@lease-unleased-crtc.html
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_lease@lease-unleased-crtc.html
* igt@kms_pipe_stress@stress-xrgb8888-ytiled:
- shard-bmg: NOTRUN -> [SKIP][66] ([Intel XE#4329] / [Intel XE#6912] / [Intel XE#7375])
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@kms_pipe_stress@stress-xrgb8888-ytiled.html
* igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier:
- shard-lnl: NOTRUN -> [SKIP][67] ([Intel XE#7283])
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier.html
* igt@kms_plane@pixel-format-4-tiled-modifier:
- shard-lnl: [PASS][68] -> [SKIP][69] ([Intel XE#7250] / [Intel XE#9128])
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_plane@pixel-format-4-tiled-modifier.html
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_plane@pixel-format-4-tiled-modifier.html
* igt@kms_plane@pixel-format-y-tiled-modifier:
- shard-bmg: NOTRUN -> [SKIP][70] ([Intel XE#7283]) +2 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_plane@pixel-format-y-tiled-modifier.html
* igt@kms_plane@planar-pixel-format-settings:
- shard-lnl: [PASS][71] -> [SKIP][72] ([Intel XE#7780] / [Intel XE#9125])
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_plane@planar-pixel-format-settings.html
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_plane@planar-pixel-format-settings.html
* igt@kms_plane@plane-panning-top-left:
- shard-lnl: [PASS][73] -> [SKIP][74] ([Intel XE#9128])
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_plane@plane-panning-top-left.html
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_plane@plane-panning-top-left.html
* igt@kms_plane@plane-position-covered:
- shard-lnl: NOTRUN -> [SKIP][75] ([Intel XE#9128]) +1 other test skip
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_plane@plane-position-covered.html
* igt@kms_plane_lowres@tiling-x@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][76] ([Intel XE#599] / [Intel XE#7382]) +2 other tests skip
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_plane_lowres@tiling-x@pipe-b-edp-1.html
* igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a:
- shard-lnl: [PASS][77] -> [SKIP][78] ([Intel XE#2763] / [Intel XE#6886]) +5 other tests skip
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a.html
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a.html
* igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-c:
- shard-lnl: [PASS][79] -> [SKIP][80] ([Intel XE#2763] / [Intel XE#6886] / [Intel XE#7687] / [Intel XE#9125]) +5 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-c.html
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-c.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b:
- shard-bmg: NOTRUN -> [SKIP][81] ([Intel XE#2763] / [Intel XE#6886]) +4 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25:
- shard-lnl: NOTRUN -> [SKIP][82] ([Intel XE#2763] / [Intel XE#6886] / [Intel XE#7687] / [Intel XE#9125]) +1 other test skip
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_plane_scaling@planes-upscale-factor-0-25.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25@pipe-b:
- shard-lnl: NOTRUN -> [SKIP][83] ([Intel XE#2763] / [Intel XE#6886]) +1 other test skip
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_plane_scaling@planes-upscale-factor-0-25@pipe-b.html
* igt@kms_pm_backlight@bad-brightness:
- shard-lnl: [PASS][84] -> [SKIP][85] ([Intel XE#870])
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_pm_backlight@bad-brightness.html
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_pm_backlight@bad-brightness.html
* igt@kms_pm_backlight@fade-with-suspend:
- shard-bmg: NOTRUN -> [SKIP][86] ([Intel XE#7376] / [Intel XE#7760] / [Intel XE#870])
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-3/igt@kms_pm_backlight@fade-with-suspend.html
* igt@kms_pm_dc@dc5-psr:
- shard-bmg: NOTRUN -> [SKIP][87] ([Intel XE#7794])
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@kms_pm_dc@dc5-psr.html
* igt@kms_pm_dc@dc6-dpms:
- shard-lnl: [PASS][88] -> [FAIL][89] ([Intel XE#8399])
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_pm_dc@dc6-dpms.html
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_pm_dc@dc6-dpms.html
* igt@kms_pm_rpm@drm-resources-equal:
- shard-lnl: [PASS][90] -> [SKIP][91] ([Intel XE#7106])
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_pm_rpm@drm-resources-equal.html
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_pm_rpm@drm-resources-equal.html
* igt@kms_pm_rpm@modeset-lpsp-stress:
- shard-lnl: NOTRUN -> [SKIP][92] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#7383] / [Intel XE#836])
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_pm_rpm@modeset-lpsp-stress.html
* igt@kms_pm_rpm@modeset-non-lpsp-stress:
- shard-lnl: NOTRUN -> [SKIP][93] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#7383])
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-sf:
- shard-lnl: NOTRUN -> [SKIP][94] ([Intel XE#1489])
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf:
- shard-bmg: NOTRUN -> [SKIP][95] ([Intel XE#1489]) +4 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area:
- shard-lnl: [PASS][96] -> [SKIP][97] ([Intel XE#1489]) +1 other test skip
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area.html
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area.html
* igt@kms_psr@fbc-psr2-sprite-render:
- shard-lnl: NOTRUN -> [SKIP][98] ([Intel XE#2850] / [Intel XE#929]) +3 other tests skip
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_psr@fbc-psr2-sprite-render.html
* igt@kms_psr@pr-sprite-plane-onoff:
- shard-bmg: NOTRUN -> [SKIP][99] ([Intel XE#2234] / [Intel XE#2850]) +6 other tests skip
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_psr@pr-sprite-plane-onoff.html
* igt@kms_psr@psr-sprite-plane-onoff:
- shard-lnl: [PASS][100] -> [SKIP][101] ([Intel XE#2850] / [Intel XE#929]) +5 other tests skip
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_psr@psr-sprite-plane-onoff.html
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_psr@psr-sprite-plane-onoff.html
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- shard-lnl: [PASS][102] -> [SKIP][103] ([Intel XE#7795])
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
- shard-bmg: NOTRUN -> [SKIP][104] ([Intel XE#2330] / [Intel XE#5813])
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html
* igt@kms_setmode@basic:
- shard-lnl: [PASS][105] -> [SKIP][106] ([Intel XE#1435] / [Intel XE#9142])
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_setmode@basic.html
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_setmode@basic.html
* igt@kms_sharpness_filter@invalid-filter-with-plane:
- shard-bmg: NOTRUN -> [SKIP][107] ([Intel XE#6503]) +1 other test skip
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@kms_sharpness_filter@invalid-filter-with-plane.html
* igt@xe_ccs@vm-bind-fault-mode-decompress:
- shard-lnl: NOTRUN -> [SKIP][108] ([Intel XE#7644])
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@xe_ccs@vm-bind-fault-mode-decompress.html
* igt@xe_evict@evict-beng-small-cm:
- shard-lnl: NOTRUN -> [SKIP][109] ([Intel XE#6540] / [Intel XE#688]) +1 other test skip
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@xe_evict@evict-beng-small-cm.html
* igt@xe_evict@evict-small-external-multi-queue-cm:
- shard-bmg: NOTRUN -> [SKIP][110] ([Intel XE#8370])
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-3/igt@xe_evict@evict-small-external-multi-queue-cm.html
* igt@xe_exec_balancer@many-cm-parallel-userptr-invalidate:
- shard-lnl: NOTRUN -> [SKIP][111] ([Intel XE#7482]) +4 other tests skip
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@xe_exec_balancer@many-cm-parallel-userptr-invalidate.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-basic-defer-bind:
- shard-lnl: NOTRUN -> [SKIP][112] ([Intel XE#1392]) +2 other tests skip
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-basic-defer-bind.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate:
- shard-bmg: NOTRUN -> [SKIP][113] ([Intel XE#2322] / [Intel XE#7372]) +4 other tests skip
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate.html
* igt@xe_exec_fault_mode@many-execqueues-multi-queue-prefetch:
- shard-lnl: NOTRUN -> [SKIP][114] ([Intel XE#8374])
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@xe_exec_fault_mode@many-execqueues-multi-queue-prefetch.html
* igt@xe_exec_fault_mode@many-multi-queue-rebind-prefetch:
- shard-bmg: NOTRUN -> [SKIP][115] ([Intel XE#8374]) +11 other tests skip
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@xe_exec_fault_mode@many-multi-queue-rebind-prefetch.html
* igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-userptr-invalidate:
- shard-bmg: NOTRUN -> [SKIP][116] ([Intel XE#8364]) +21 other tests skip
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-userptr-invalidate.html
* igt@xe_exec_multi_queue@two-queues-close-fd-smem:
- shard-lnl: NOTRUN -> [SKIP][117] ([Intel XE#8364]) +6 other tests skip
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@xe_exec_multi_queue@two-queues-close-fd-smem.html
* igt@xe_exec_reset@gt-stress-reset-mixed-engine-usage:
- shard-bmg: NOTRUN -> [INCOMPLETE][118] ([Intel XE#9041])
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@xe_exec_reset@gt-stress-reset-mixed-engine-usage.html
* igt@xe_exec_reset@multi-queue-close-execqueues:
- shard-bmg: NOTRUN -> [SKIP][119] ([Intel XE#8369]) +1 other test skip
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@xe_exec_reset@multi-queue-close-execqueues.html
* igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-userptr-rebind:
- shard-bmg: NOTRUN -> [SKIP][120] ([Intel XE#8378]) +5 other tests skip
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-userptr-rebind.html
* igt@xe_exec_threads@threads-multi-queue-userptr-invalidate-race:
- shard-lnl: NOTRUN -> [SKIP][121] ([Intel XE#8378]) +2 other tests skip
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@xe_exec_threads@threads-multi-queue-userptr-invalidate-race.html
* igt@xe_multigpu_svm@mgpu-latency-basic:
- shard-lnl: NOTRUN -> [SKIP][122] ([Intel XE#6964]) +1 other test skip
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@xe_multigpu_svm@mgpu-latency-basic.html
* igt@xe_multigpu_svm@mgpu-pagefault-prefetch:
- shard-bmg: NOTRUN -> [SKIP][123] ([Intel XE#6964])
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@xe_multigpu_svm@mgpu-pagefault-prefetch.html
* igt@xe_page_reclaim@prl-invalidate-full:
- shard-bmg: NOTRUN -> [SKIP][124] ([Intel XE#7793])
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@xe_page_reclaim@prl-invalidate-full.html
* igt@xe_pat@xa-app-transient-media-off:
- shard-bmg: NOTRUN -> [SKIP][125] ([Intel XE#7590]) +1 other test skip
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-3/igt@xe_pat@xa-app-transient-media-off.html
* igt@xe_pm@s3-d3cold-basic-exec:
- shard-lnl: NOTRUN -> [SKIP][126] ([Intel XE#2284] / [Intel XE#366] / [Intel XE#7370])
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@xe_pm@s3-d3cold-basic-exec.html
* igt@xe_pm_residency@aspm_link_residency:
- shard-lnl: NOTRUN -> [SKIP][127] ([Intel XE#7271])
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@xe_pm_residency@aspm_link_residency.html
* igt@xe_prefetch_fault@prefetch-fault:
- shard-bmg: NOTRUN -> [SKIP][128] ([Intel XE#7599])
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@xe_prefetch_fault@prefetch-fault.html
* igt@xe_pxp@pxp-stale-bo-exec-post-termination-irq:
- shard-bmg: NOTRUN -> [SKIP][129] ([Intel XE#4733] / [Intel XE#7417]) +3 other tests skip
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@xe_pxp@pxp-stale-bo-exec-post-termination-irq.html
* igt@xe_query@multigpu-query-hwconfig:
- shard-bmg: NOTRUN -> [SKIP][130] ([Intel XE#944])
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-3/igt@xe_query@multigpu-query-hwconfig.html
* igt@xe_query@multigpu-query-uc-fw-version-huc:
- shard-lnl: NOTRUN -> [SKIP][131] ([Intel XE#944])
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@xe_query@multigpu-query-uc-fw-version-huc.html
* igt@xe_sriov_admin@sched-priority-write-readback-vfs-disabled:
- shard-lnl: NOTRUN -> [SKIP][132] ([Intel XE#7174])
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@xe_sriov_admin@sched-priority-write-readback-vfs-disabled.html
#### Possible fixes ####
* igt@core_hotunplug@hotrebind-lateclose:
- shard-bmg: [ABORT][133] ([Intel XE#8007]) -> [PASS][134] +1 other test pass
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-bmg-3/igt@core_hotunplug@hotrebind-lateclose.html
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-3/igt@core_hotunplug@hotrebind-lateclose.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-bmg: [INCOMPLETE][135] ([Intel XE#7084] / [Intel XE#8150]) -> [PASS][136] +1 other test pass
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-bmg-7/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
* igt@kms_color@gamma:
- shard-lnl: [SKIP][137] ([Intel XE#3297]) -> [PASS][138]
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_color@gamma.html
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_color@gamma.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic:
- shard-bmg: [FAIL][139] ([Intel XE#7809]) -> [PASS][140]
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-bmg-10/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-5/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-lnl: [FAIL][141] ([Intel XE#7949] / [i915#4767]) -> [PASS][142]
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-2/igt@kms_fbcon_fbt@fbc-suspend.html
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-4/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_flip@busy-flip:
- shard-lnl: [SKIP][143] ([Intel XE#2482]) -> [PASS][144] +5 other tests pass
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_flip@busy-flip.html
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_flip@busy-flip.html
* igt@kms_flip@flip-vs-expired-vblank@c-edp1:
- shard-lnl: [FAIL][145] ([Intel XE#301] / [Intel XE#3149]) -> [PASS][146]
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling:
- shard-lnl: [SKIP][147] ([Intel XE#1745] / [Intel XE#9144]) -> [PASS][148]
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling.html
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-wc:
- shard-lnl: [SKIP][149] ([Intel XE#7779]) -> [PASS][150] +1 other test pass
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-wc.html
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt:
- shard-lnl: [SKIP][151] ([Intel XE#2548] / [Intel XE#7779]) -> [PASS][152] +11 other tests pass
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt.html
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt.html
* igt@kms_invalid_mode@bad-vtotal:
- shard-lnl: [SKIP][153] ([Intel XE#2568]) -> [PASS][154] +1 other test pass
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_invalid_mode@bad-vtotal.html
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_invalid_mode@bad-vtotal.html
* igt@kms_plane@plane-panning-bottom-right:
- shard-lnl: [SKIP][155] ([Intel XE#9128]) -> [PASS][156] +1 other test pass
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_plane@plane-panning-bottom-right.html
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_plane@plane-panning-bottom-right.html
* igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-a:
- shard-lnl: [SKIP][157] ([Intel XE#2763] / [Intel XE#6886]) -> [PASS][158] +5 other tests pass
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-a.html
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-a.html
* igt@kms_plane_scaling@planes-downscale-factor-0-75-unity-scaling:
- shard-lnl: [SKIP][159] ([Intel XE#2763] / [Intel XE#6886] / [Intel XE#7687] / [Intel XE#9125]) -> [PASS][160] +5 other tests pass
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_plane_scaling@planes-downscale-factor-0-75-unity-scaling.html
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_plane_scaling@planes-downscale-factor-0-75-unity-scaling.html
* igt@kms_pm_backlight@fade-with-dpms:
- shard-lnl: [SKIP][161] ([Intel XE#870]) -> [PASS][162]
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_pm_backlight@fade-with-dpms.html
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_pm_backlight@fade-with-dpms.html
* igt@kms_pm_dc@dc5-dpms-suspend-resume:
- shard-lnl: [FAIL][163] ([Intel XE#8399]) -> [PASS][164]
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_pm_dc@dc5-dpms-suspend-resume.html
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_pm_dc@dc5-dpms-suspend-resume.html
* igt@kms_pm_rpm@dpms-mode-unset-lpsp:
- shard-lnl: [SKIP][165] ([Intel XE#1439] / [Intel XE#7402] / [Intel XE#836]) -> [PASS][166]
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
* igt@kms_properties@plane-properties-legacy:
- shard-lnl: [SKIP][167] ([Intel XE#9129]) -> [PASS][168]
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_properties@plane-properties-legacy.html
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_properties@plane-properties-legacy.html
* igt@kms_psr@psr-no-drrs:
- shard-lnl: [SKIP][169] ([Intel XE#2850] / [Intel XE#929]) -> [PASS][170] +3 other tests pass
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_psr@psr-no-drrs.html
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_psr@psr-no-drrs.html
* igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
- shard-lnl: [SKIP][171] ([Intel XE#7795]) -> [PASS][172]
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
* igt@kms_rotation_crc@primary-x-tiled-reflect-x-180:
- shard-lnl: [SKIP][173] ([Intel XE#9125]) -> [PASS][174] +39 other tests pass
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_rotation_crc@primary-x-tiled-reflect-x-180.html
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_rotation_crc@primary-x-tiled-reflect-x-180.html
* igt@xe_exec_threads@threads-hang-userptr-invalidate-race:
- shard-lnl: [FAIL][175] ([Intel XE#9096]) -> [PASS][176]
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-1/igt@xe_exec_threads@threads-hang-userptr-invalidate-race.html
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-1/igt@xe_exec_threads@threads-hang-userptr-invalidate-race.html
#### Warnings ####
* igt@kms_atomic_transition@plane-all-modeset-transition:
- shard-lnl: [SKIP][177] ([Intel XE#3279]) -> [SKIP][178] ([Intel XE#9125])
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_atomic_transition@plane-all-modeset-transition.html
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_atomic_transition@plane-all-modeset-transition.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-lnl: [SKIP][179] ([Intel XE#1407]) -> [SKIP][180] ([Intel XE#9125]) +5 other tests skip
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip:
- shard-lnl: [SKIP][181] ([Intel XE#9125]) -> [SKIP][182] ([Intel XE#7059] / [Intel XE#7085]) +1 other test skip
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_big_fb@x-tiled-8bpp-rotate-270:
- shard-lnl: [SKIP][183] ([Intel XE#9125]) -> [SKIP][184] ([Intel XE#1407]) +1 other test skip
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html
* igt@kms_big_fb@yf-tiled-8bpp-rotate-0:
- shard-lnl: [SKIP][185] ([Intel XE#1124]) -> [SKIP][186] ([Intel XE#9125]) +8 other tests skip
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_big_fb@yf-tiled-8bpp-rotate-0.html
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_big_fb@yf-tiled-8bpp-rotate-0.html
* igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow:
- shard-lnl: [SKIP][187] ([Intel XE#9125]) -> [SKIP][188] ([Intel XE#1477] / [Intel XE#7361])
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
- shard-lnl: [SKIP][189] ([Intel XE#9125]) -> [SKIP][190] ([Intel XE#1124]) +7 other tests skip
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
* igt@kms_bw@connected-linear-tiling-2-displays-target-2160x1440p:
- shard-lnl: [SKIP][191] ([Intel XE#9125]) -> [SKIP][192] ([Intel XE#7679])
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_bw@connected-linear-tiling-2-displays-target-2160x1440p.html
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_bw@connected-linear-tiling-2-displays-target-2160x1440p.html
* igt@kms_bw@connected-linear-tiling-3-displays-target-2560x1440p:
- shard-lnl: [SKIP][193] ([Intel XE#7679]) -> [SKIP][194] ([Intel XE#9125])
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_bw@connected-linear-tiling-3-displays-target-2560x1440p.html
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_bw@connected-linear-tiling-3-displays-target-2560x1440p.html
* igt@kms_bw@connected-linear-tiling-4-displays-target-2160x1440p:
- shard-lnl: [SKIP][195] ([Intel XE#9125]) -> [SKIP][196] ([Intel XE#8365]) +1 other test skip
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_bw@connected-linear-tiling-4-displays-target-2160x1440p.html
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_bw@connected-linear-tiling-4-displays-target-2160x1440p.html
* igt@kms_bw@connected-linear-tiling-4-displays-target-2560x1440p:
- shard-lnl: [SKIP][197] ([Intel XE#8365]) -> [SKIP][198] ([Intel XE#9125]) +1 other test skip
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_bw@connected-linear-tiling-4-displays-target-2560x1440p.html
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_bw@connected-linear-tiling-4-displays-target-2560x1440p.html
* igt@kms_bw@linear-tiling-2-displays-target-2160x1440p:
- shard-lnl: [SKIP][199] ([Intel XE#367]) -> [SKIP][200] ([Intel XE#9125])
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_bw@linear-tiling-2-displays-target-2160x1440p.html
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_bw@linear-tiling-2-displays-target-2160x1440p.html
* igt@kms_bw@linear-tiling-2-displays-target-2560x1440p:
- shard-lnl: [SKIP][201] ([Intel XE#9125]) -> [SKIP][202] ([Intel XE#367])
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_bw@linear-tiling-2-displays-target-2560x1440p.html
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_bw@linear-tiling-2-displays-target-2560x1440p.html
* igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc:
- shard-lnl: [SKIP][203] ([Intel XE#2887]) -> [SKIP][204] ([Intel XE#9125]) +10 other tests skip
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc.html
[204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc.html
* igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs:
- shard-lnl: [SKIP][205] ([Intel XE#9125]) -> [SKIP][206] ([Intel XE#2669] / [Intel XE#7389])
[205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html
[206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs:
- shard-lnl: [SKIP][207] ([Intel XE#9125]) -> [SKIP][208] ([Intel XE#3432])
[207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
[208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs:
- shard-lnl: [SKIP][209] ([Intel XE#3432]) -> [SKIP][210] ([Intel XE#9125]) +2 other tests skip
[209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs.html
[210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs:
- shard-lnl: [SKIP][211] ([Intel XE#9125]) -> [SKIP][212] ([Intel XE#2887]) +11 other tests skip
[211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs.html
[212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs.html
* igt@kms_color_pipeline@plane-lut3d-green-only:
- shard-lnl: [SKIP][213] ([Intel XE#7006]) -> [SKIP][214] ([Intel XE#6969] / [Intel XE#7006])
[213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_color_pipeline@plane-lut3d-green-only.html
[214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_color_pipeline@plane-lut3d-green-only.html
* igt@kms_content_protection@dp-mst-lic-type-1:
- shard-lnl: [SKIP][215] ([Intel XE#307] / [Intel XE#6974]) -> [SKIP][216] ([Intel XE#9125])
[215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_content_protection@dp-mst-lic-type-1.html
[216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_content_protection@dp-mst-lic-type-1.html
* igt@kms_content_protection@dp-mst-type-0:
- shard-lnl: [SKIP][217] ([Intel XE#9125]) -> [SKIP][218] ([Intel XE#307] / [Intel XE#6974])
[217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_content_protection@dp-mst-type-0.html
[218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_content_protection@dp-mst-type-0.html
* igt@kms_content_protection@dp-mst-type-0-hdcp14:
- shard-lnl: [SKIP][219] ([Intel XE#9125]) -> [SKIP][220] ([Intel XE#6974])
[219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_content_protection@dp-mst-type-0-hdcp14.html
[220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_content_protection@dp-mst-type-0-hdcp14.html
* igt@kms_content_protection@lic-type-1:
- shard-lnl: [SKIP][221] ([Intel XE#9125]) -> [SKIP][222] ([Intel XE#7642]) +1 other test skip
[221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_content_protection@lic-type-1.html
[222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_content_protection@lic-type-1.html
* igt@kms_content_protection@srm:
- shard-lnl: [SKIP][223] ([Intel XE#7642]) -> [SKIP][224] ([Intel XE#9125]) +1 other test skip
[223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_content_protection@srm.html
[224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_content_protection@srm.html
* igt@kms_cursor_crc@cursor-onscreen-128x42:
- shard-lnl: [SKIP][225] ([Intel XE#9125]) -> [SKIP][226] ([Intel XE#1424]) +3 other tests skip
[225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_cursor_crc@cursor-onscreen-128x42.html
[226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_cursor_crc@cursor-onscreen-128x42.html
* igt@kms_cursor_crc@cursor-onscreen-512x170:
- shard-lnl: [SKIP][227] ([Intel XE#2321] / [Intel XE#7355]) -> [SKIP][228] ([Intel XE#9125])
[227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_cursor_crc@cursor-onscreen-512x170.html
[228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_cursor_crc@cursor-onscreen-512x170.html
* igt@kms_cursor_crc@cursor-random-512x512:
- shard-lnl: [SKIP][229] ([Intel XE#9125]) -> [SKIP][230] ([Intel XE#2321] / [Intel XE#7355])
[229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_cursor_crc@cursor-random-512x512.html
[230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_cursor_crc@cursor-random-512x512.html
* igt@kms_cursor_crc@cursor-rapid-movement-max-size:
- shard-lnl: [SKIP][231] ([Intel XE#1424]) -> [SKIP][232] ([Intel XE#9125]) +1 other test skip
[231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_cursor_crc@cursor-rapid-movement-max-size.html
[232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_cursor_crc@cursor-rapid-movement-max-size.html
* igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
- shard-lnl: [SKIP][233] ([Intel XE#9125]) -> [SKIP][234] ([Intel XE#309] / [Intel XE#7343]) +2 other tests skip
[233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html
[234]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
- shard-lnl: [SKIP][235] ([Intel XE#309] / [Intel XE#7343]) -> [SKIP][236] ([Intel XE#9125])
[235]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
[236]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
- shard-lnl: [SKIP][237] ([Intel XE#323] / [Intel XE#6035]) -> [SKIP][238] ([Intel XE#9125])
[237]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
[238]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
* igt@kms_dp_link_training@non-uhbr-mst:
- shard-lnl: [SKIP][239] ([Intel XE#9125]) -> [SKIP][240] ([Intel XE#4354] / [Intel XE#5882])
[239]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_dp_link_training@non-uhbr-mst.html
[240]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_dp_link_training@non-uhbr-mst.html
* igt@kms_dp_link_training@uhbr-mst:
- shard-lnl: [SKIP][241] ([Intel XE#4354] / [Intel XE#7386]) -> [SKIP][242] ([Intel XE#9125])
[241]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_dp_link_training@uhbr-mst.html
[242]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_dp_link_training@uhbr-mst.html
* igt@kms_dsc@dsc-with-output-formats-bigjoiner:
- shard-lnl: [SKIP][243] ([Intel XE#9125]) -> [SKIP][244] ([Intel XE#8265]) +2 other tests skip
[243]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_dsc@dsc-with-output-formats-bigjoiner.html
[244]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_dsc@dsc-with-output-formats-bigjoiner.html
* igt@kms_dsc@dsc-with-output-formats-with-bpc-bigjoiner:
- shard-lnl: [SKIP][245] ([Intel XE#8265]) -> [SKIP][246] ([Intel XE#9125]) +2 other tests skip
[245]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_dsc@dsc-with-output-formats-with-bpc-bigjoiner.html
[246]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_dsc@dsc-with-output-formats-with-bpc-bigjoiner.html
* igt@kms_flip@flip-vs-expired-vblank:
- shard-lnl: [FAIL][247] ([Intel XE#301] / [Intel XE#3149]) -> [FAIL][248] ([Intel XE#301])
[247]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank.html
[248]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank.html
* igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling:
- shard-lnl: [SKIP][249] ([Intel XE#1397] / [Intel XE#1745] / [Intel XE#7385] / [Intel XE#9144]) -> [SKIP][250] ([Intel XE#1745] / [Intel XE#9144]) +1 other test skip
[249]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling.html
[250]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling:
- shard-lnl: [SKIP][251] ([Intel XE#1745] / [Intel XE#9144]) -> [SKIP][252] ([Intel XE#1397] / [Intel XE#1745] / [Intel XE#7385] / [Intel XE#9144]) +2 other tests skip
[251]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling.html
[252]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling.html
* igt@kms_frontbuffer_tracking@drrs-argb161616f-draw-mmap-wc:
- shard-lnl: [SKIP][253] ([Intel XE#7061] / [Intel XE#7356]) -> [SKIP][254] ([Intel XE#7779]) +3 other tests skip
[253]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_frontbuffer_tracking@drrs-argb161616f-draw-mmap-wc.html
[254]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_frontbuffer_tracking@drrs-argb161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-blt:
- shard-lnl: [SKIP][255] ([Intel XE#656] / [Intel XE#7905]) -> [SKIP][256] ([Intel XE#2548] / [Intel XE#7779]) +33 other tests skip
[255]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-blt.html
[256]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-blt:
- shard-lnl: [SKIP][257] ([Intel XE#6312] / [Intel XE#651]) -> [SKIP][258] ([Intel XE#2548] / [Intel XE#7779]) +7 other tests skip
[257]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-blt.html
[258]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-tiling-linear:
- shard-lnl: [SKIP][259] ([Intel XE#2548] / [Intel XE#7779]) -> [SKIP][260] ([Intel XE#6312] / [Intel XE#651]) +11 other tests skip
[259]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-linear.html
[260]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-linear.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-offscreen-pri-shrfb-draw-blt:
- shard-lnl: [SKIP][261] ([Intel XE#6312]) -> [SKIP][262] ([Intel XE#7779]) +6 other tests skip
[261]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-offscreen-pri-shrfb-draw-blt.html
[262]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-offscreen-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-spr-indfb-onoff:
- shard-lnl: [SKIP][263] ([Intel XE#7779]) -> [SKIP][264] ([Intel XE#6312]) +14 other tests skip
[263]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-spr-indfb-onoff.html
[264]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-pri-indfb-draw-render:
- shard-lnl: [SKIP][265] ([Intel XE#7905]) -> [SKIP][266] ([Intel XE#7779]) +34 other tests skip
[265]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-pri-indfb-draw-render.html
[266]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbchdr-argb161616f-draw-blt:
- shard-lnl: [SKIP][267] ([Intel XE#7779]) -> [SKIP][268] ([Intel XE#7061]) +2 other tests skip
[267]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_frontbuffer_tracking@fbchdr-argb161616f-draw-blt.html
[268]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_frontbuffer_tracking@fbchdr-argb161616f-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-y:
- shard-lnl: [SKIP][269] ([Intel XE#2548] / [Intel XE#7779]) -> [SKIP][270] ([Intel XE#1469] / [Intel XE#7399])
[269]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
[270]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
* igt@kms_frontbuffer_tracking@fbcpsrhdr-suspend:
- shard-lnl: [SKIP][271] ([Intel XE#7779]) -> [SKIP][272] ([Intel XE#7865]) +19 other tests skip
[271]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-suspend.html
[272]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_frontbuffer_tracking@fbcpsrhdr-suspend.html
* igt@kms_frontbuffer_tracking@fbcpsrhdr-tiling-y:
- shard-lnl: [SKIP][273] ([Intel XE#7399]) -> [SKIP][274] ([Intel XE#7779])
[273]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcpsrhdr-tiling-y.html
[274]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-tiling-y.html
* igt@kms_frontbuffer_tracking@hdr-1p-primscrn-indfb-msflip-blt:
- shard-lnl: [SKIP][275] ([Intel XE#7865]) -> [SKIP][276] ([Intel XE#7779]) +21 other tests skip
[275]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-indfb-msflip-blt.html
[276]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-blt:
- shard-lnl: [SKIP][277] ([Intel XE#2548] / [Intel XE#7779]) -> [SKIP][278] ([Intel XE#656] / [Intel XE#7905]) +29 other tests skip
[277]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-blt.html
[278]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-move:
- shard-lnl: [SKIP][279] ([Intel XE#7779]) -> [SKIP][280] ([Intel XE#7905]) +33 other tests skip
[279]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-move.html
[280]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-move.html
* igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-blt:
- shard-lnl: [SKIP][281] ([Intel XE#7061]) -> [SKIP][282] ([Intel XE#7779]) +5 other tests skip
[281]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-blt.html
[282]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-blt.html
* igt@kms_hdr@static-toggle:
- shard-lnl: [SKIP][283] ([Intel XE#9125]) -> [SKIP][284] ([Intel XE#1503])
[283]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_hdr@static-toggle.html
[284]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_hdr@static-toggle.html
* igt@kms_plane_lowres@tiling-none:
- shard-lnl: [SKIP][285] ([Intel XE#599] / [Intel XE#7382]) -> [SKIP][286] ([Intel XE#9125])
[285]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_plane_lowres@tiling-none.html
[286]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_plane_lowres@tiling-none.html
* igt@kms_plane_lowres@tiling-x:
- shard-lnl: [SKIP][287] ([Intel XE#9125]) -> [SKIP][288] ([Intel XE#599] / [Intel XE#7382])
[287]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_plane_lowres@tiling-x.html
[288]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_plane_lowres@tiling-x.html
* igt@kms_plane_multiple@2x-tiling-x:
- shard-lnl: [SKIP][289] ([Intel XE#9125]) -> [SKIP][290] ([Intel XE#4596] / [Intel XE#5854])
[289]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_plane_multiple@2x-tiling-x.html
[290]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_plane_multiple@2x-tiling-x.html
* igt@kms_plane_multiple@2x-tiling-yf:
- shard-lnl: [SKIP][291] ([Intel XE#4596] / [Intel XE#5854]) -> [SKIP][292] ([Intel XE#9125])
[291]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_plane_multiple@2x-tiling-yf.html
[292]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_plane_multiple@2x-tiling-yf.html
* igt@kms_plane_multiple@tiling-yf:
- shard-lnl: [SKIP][293] ([Intel XE#9125]) -> [SKIP][294] ([Intel XE#5020] / [Intel XE#7348])
[293]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_plane_multiple@tiling-yf.html
[294]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_plane_multiple@tiling-yf.html
* igt@kms_plane_scaling@2x-scaler-multi-pipe:
- shard-lnl: [SKIP][295] ([Intel XE#309] / [Intel XE#7343]) -> [SKIP][296] ([Intel XE#7343] / [Intel XE#7687] / [Intel XE#9125])
[295]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
[296]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
* igt@kms_plane_scaling@plane-downscale-factor-0-5-with-modifiers:
- shard-lnl: [SKIP][297] ([Intel XE#2763] / [Intel XE#6886]) -> [SKIP][298] ([Intel XE#2763] / [Intel XE#6886] / [Intel XE#7687] / [Intel XE#9125]) +3 other tests skip
[297]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-modifiers.html
[298]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-modifiers.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75:
- shard-lnl: [SKIP][299] ([Intel XE#2763] / [Intel XE#6886] / [Intel XE#7687] / [Intel XE#9125]) -> [SKIP][300] ([Intel XE#2763] / [Intel XE#6886]) +1 other test skip
[299]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html
[300]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html
* igt@kms_pm_dc@deep-pkgc:
- shard-lnl: [SKIP][301] ([Intel XE#7778]) -> [FAIL][302] ([Intel XE#2029] / [Intel XE#7395])
[301]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_pm_dc@deep-pkgc.html
[302]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_pm_dc@deep-pkgc.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf:
- shard-lnl: [SKIP][303] ([Intel XE#2893] / [Intel XE#4608] / [Intel XE#7304]) -> [SKIP][304] ([Intel XE#1489]) +1 other test skip
[303]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html
[304]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-fully-sf:
- shard-lnl: [SKIP][305] ([Intel XE#2893] / [Intel XE#7304]) -> [SKIP][306] ([Intel XE#1489]) +2 other tests skip
[305]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-fully-sf.html
[306]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf:
- shard-lnl: [SKIP][307] ([Intel XE#1489]) -> [SKIP][308] ([Intel XE#2893] / [Intel XE#7304]) +4 other tests skip
[307]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html
[308]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html
* igt@kms_psr2_su@page_flip-p010:
- shard-lnl: [SKIP][309] ([Intel XE#1122] / [Intel XE#7429]) -> [SKIP][310] ([Intel XE#1128] / [Intel XE#7413])
[309]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_psr2_su@page_flip-p010.html
[310]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_psr2_su@page_flip-p010.html
* igt@kms_psr@fbc-pr-dpms:
- shard-lnl: [SKIP][311] ([Intel XE#1406]) -> [SKIP][312] ([Intel XE#2850] / [Intel XE#929])
[311]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_psr@fbc-pr-dpms.html
[312]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_psr@fbc-pr-dpms.html
* igt@kms_psr@fbc-pr-no-drrs:
- shard-lnl: [SKIP][313] ([Intel XE#2850] / [Intel XE#929]) -> [SKIP][314] ([Intel XE#1406]) +5 other tests skip
[313]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_psr@fbc-pr-no-drrs.html
[314]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_psr@fbc-pr-no-drrs.html
* igt@kms_psr@fbc-psr2-dpms:
- shard-lnl: [SKIP][315] ([Intel XE#1406] / [Intel XE#7345]) -> [SKIP][316] ([Intel XE#2850] / [Intel XE#929]) +1 other test skip
[315]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-3/igt@kms_psr@fbc-psr2-dpms.html
[316]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_psr@fbc-psr2-dpms.html
* igt@kms_rotation_crc@primary-rotation-270:
- shard-lnl: [SKIP][317] ([Intel XE#3414] / [Intel XE#3904] / [Intel XE#7342]) -> [SKIP][318] ([Intel XE#9125]) +1 other test skip
[317]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-4/igt@kms_rotation_crc@primary-rotation-270.html
[318]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-6/igt@kms_rotation_crc@primary-rotation-270.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
- shard-lnl: [SKIP][319] ([Intel XE#9125]) -> [SKIP][320] ([Intel XE#3414] / [Intel XE#3904] / [Intel XE#7342])
[319]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
[320]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [SKIP][321] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][322] ([Intel XE#1729] / [Intel XE#7424])
[321]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-bmg-9/igt@kms_tiled_display@basic-test-pattern.html
[322]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-3/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-bmg: [SKIP][323] ([Intel XE#2509] / [Intel XE#7437]) -> [SKIP][324] ([Intel XE#2426] / [Intel XE#5848])
[323]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[324]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-7/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@kms_vrr@seamless-rr-switch-vrr:
- shard-lnl: [SKIP][325] ([Intel XE#9125]) -> [SKIP][326] ([Intel XE#1499])
[325]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-lnl-6/igt@kms_vrr@seamless-rr-switch-vrr.html
[326]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-lnl-7/igt@kms_vrr@seamless-rr-switch-vrr.html
* igt@xe_exec_reset@gt-reset-fault-injection:
- shard-bmg: [ABORT][327] ([Intel XE#9131] / [Intel XE#9145]) -> [DMESG-WARN][328] ([Intel XE#9130])
[327]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db/shard-bmg-10/igt@xe_exec_reset@gt-reset-fault-injection.html
[328]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/shard-bmg-2/igt@xe_exec_reset@gt-reset-fault-injection.html
[Intel XE#1122]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1122
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1128
[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#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
[Intel XE#1469]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1469
[Intel XE#1477]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1477
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1511]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1511
[Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#2029]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2029
[Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
[Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
[Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2482
[Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
[Intel XE#2548]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2548
[Intel XE#2568]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2568
[Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
[Intel XE#2669]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2669
[Intel XE#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#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#3098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3098
[Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
[Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
[Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
[Intel XE#3279]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3279
[Intel XE#3297]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3297
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#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#4329]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4329
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
[Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
[Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#5020]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5020
[Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813
[Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
[Intel XE#5854]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5854
[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#6128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6128
[Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
[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#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
[Intel XE#6911]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6911
[Intel XE#6912]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6912
[Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
[Intel XE#6969]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6969
[Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
[Intel XE#7006]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7006
[Intel XE#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7084]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7084
[Intel XE#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085
[Intel XE#7086]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7086
[Intel XE#7106]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7106
[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#7250]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7250
[Intel XE#7271]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7271
[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#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#7348]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7348
[Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
[Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355
[Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
[Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
[Intel XE#7361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7361
[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#7376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7376
[Intel XE#7382]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7382
[Intel XE#7383]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7383
[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#7389]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7389
[Intel XE#7390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7390
[Intel XE#7395]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7395
[Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399
[Intel XE#7402]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7402
[Intel XE#7413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7413
[Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
[Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
[Intel XE#7425]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7425
[Intel XE#7429]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7429
[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#7466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7466
[Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
[Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
[Intel XE#7599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7599
[Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
[Intel XE#7644]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7644
[Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
[Intel XE#7687]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7687
[Intel XE#7760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7760
[Intel XE#7778]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7778
[Intel XE#7779]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7779
[Intel XE#7780]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7780
[Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
[Intel XE#7794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7794
[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#7865]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7865
[Intel XE#7905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7905
[Intel XE#7949]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7949
[Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007
[Intel XE#8150]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8150
[Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
[Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
[Intel XE#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#8399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8399
[Intel XE#8586]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8586
[Intel XE#8680]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8680
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
[Intel XE#9041]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9041
[Intel XE#9093]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9093
[Intel XE#9096]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9096
[Intel XE#9125]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9125
[Intel XE#9128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9128
[Intel XE#9129]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9129
[Intel XE#9130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9130
[Intel XE#9131]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9131
[Intel XE#9132]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9132
[Intel XE#9142]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9142
[Intel XE#9144]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9144
[Intel XE#9145]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9145
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
[i915#4767]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4767
Build changes
-------------
* Linux: xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db -> xe-pw-172710v2
IGT_9084: 9084
xe-5697-c60540b13d7bacc21848ed94fd368a968454d5db: c60540b13d7bacc21848ed94fd368a968454d5db
xe-pw-172710v2: 172710v2
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172710v2/index.html
[-- Attachment #2: Type: text/html, Size: 114218 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread