* [PATCH v2 0/2] drm/xe: Add support for GPU health indicator
@ 2026-04-23 17:39 Soham Purkait
2026-04-23 17:39 ` [PATCH v2 1/2] drm/xe/xe_ras: Add types and commands for RAS " Soham Purkait
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Soham Purkait @ 2026-04-23 17:39 UTC (permalink / raw)
To: intel-xe, riana.tauro, anshuman.gupta, aravind.iddamsetty,
badal.nilawar, raag.jadav, ravi.kishore.koppuravuri,
mallesh.koujalagi, andi.shyti, rodrigo.vivi
Cc: soham.purkait, anoop.c.vijay
GPUs commonly rely on various reactive health monitoring
approaches. The Xe GPU health indicator is intended to fit into
such reactive monitoring flows, where it could be used by
management tools to fetch and update GPU health status.
This series adds Xe GPU health indicator support as a RAS feature.
It introduces the health command IDs and request/response structures
used by the System Controller mailbox, and integrates the feature
into Xe through the gpu_health sysfs interface.
The sysfs file, gpu_health, is created at the device level and
provides a simple interface for observing and updating the reported
GPU health state. It is exposed as read-write on PF/native functions
and read-only on VFs.
The sysfs file (gpu_health) is placed at the device level and behaves
as follows:
$ cat /sys/.../device/gpu_health
ok
$ echo critical > /sys/.../device/gpu_health
$ cat /sys/.../device/gpu_health
critical
Soham Purkait (2):
drm/xe/xe_ras: Add types and commands for RAS GPU health indicator
drm/xe/xe_ras: Add RAS support for GPU health indicator
.../ABI/testing/sysfs-driver-intel-xe-ras | 33 +++
drivers/gpu/drm/xe/Makefile | 1 +
drivers/gpu/drm/xe/xe_device.c | 3 +
drivers/gpu/drm/xe/xe_ras.c | 202 ++++++++++++++++++
drivers/gpu/drm/xe/xe_ras.h | 13 ++
drivers/gpu/drm/xe/xe_ras_types.h | 83 +++++++
drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 15 ++
7 files changed, 350 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-driver-intel-xe-ras
create mode 100644 drivers/gpu/drm/xe/xe_ras.c
create mode 100644 drivers/gpu/drm/xe/xe_ras.h
create mode 100644 drivers/gpu/drm/xe/xe_ras_types.h
--
2.34.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/2] drm/xe/xe_ras: Add types and commands for RAS GPU health indicator
2026-04-23 17:39 [PATCH v2 0/2] drm/xe: Add support for GPU health indicator Soham Purkait
@ 2026-04-23 17:39 ` Soham Purkait
2026-04-23 17:39 ` [PATCH v2 2/2] drm/xe/xe_ras: Add RAS support for " Soham Purkait
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Soham Purkait @ 2026-04-23 17:39 UTC (permalink / raw)
To: intel-xe, riana.tauro, anshuman.gupta, aravind.iddamsetty,
badal.nilawar, raag.jadav, ravi.kishore.koppuravuri,
mallesh.koujalagi, andi.shyti, rodrigo.vivi
Cc: soham.purkait, anoop.c.vijay
Add System Controller GPU health status values, RAS response codes
and mailbox payload types for querying and updating GPU health.
GPU health states are encoded as numeric values defined by
enum xe_ras_health_status for use in System Controller commands.
The GET_HEALTH command fetches the current health state, while
the SET_HEALTH command updates it through the System Controller
mailbox.
struct xe_ras_health_get_input and struct xe_ras_health_get_response
describe the GET_HEALTH request and response payloads, respectively,
while struct xe_ras_health_set_input and
struct xe_ras_health_set_response describe the SET_HEALTH request
and response payloads, including the operation status and current
health state in the response.
v2:
- Add enum for health status instead of xe_ras_health_status_t.
(Andi), (Rodrigo)
Signed-off-by: Soham Purkait <soham.purkait@intel.com>
---
drivers/gpu/drm/xe/xe_ras_types.h | 83 +++++++++++++++++++
drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 15 ++++
2 files changed, 98 insertions(+)
create mode 100644 drivers/gpu/drm/xe/xe_ras_types.h
diff --git a/drivers/gpu/drm/xe/xe_ras_types.h b/drivers/gpu/drm/xe/xe_ras_types.h
new file mode 100644
index 000000000000..5f884d6e24de
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_ras_types.h
@@ -0,0 +1,83 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#ifndef _XE_RAS_TYPES_H_
+#define _XE_RAS_TYPES_H_
+
+#include <linux/types.h>
+
+/* RAS response status codes */
+enum xe_ras_response_status {
+ XE_RAS_STATUS_SUCCESS = 0,
+ XE_RAS_STATUS_INVALID_PARAM,
+ XE_RAS_STATUS_OP_NOT_SUPPORTED,
+ XE_RAS_STATUS_TIMEOUT,
+ XE_RAS_STATUS_HARDWARE_FAILURE,
+ XE_RAS_STATUS_INSUFFICIENT_RESOURCES,
+ XE_RAS_STATUS_UNKNOWN_ERROR,
+};
+
+/**
+ * enum xe_ras_health_status - Device health status values
+ *
+ * Health indicator status denoted by numeric values to be used in system
+ * controller mailbox commands.
+ *
+ * @XE_RAS_HEALTH_STATUS_OK: The device is healthy and operating within normal
+ * parameters.
+ * @XE_RAS_HEALTH_STATUS_WARNING: The device is experiencing minor issues but is
+ * still operational.
+ * @XE_RAS_HEALTH_STATUS_CRITICAL: The device is in a critical state and may not
+ * be operational.
+ */
+enum xe_ras_health_status {
+ XE_RAS_HEALTH_STATUS_OK = 0,
+ XE_RAS_HEALTH_STATUS_WARNING,
+ XE_RAS_HEALTH_STATUS_CRITICAL,
+};
+
+/**
+ * struct xe_ras_health_get_input - Input for XE_SYSCTRL_CMD_GET_HEALTH
+ */
+struct xe_ras_health_get_input {
+ /** @reserved: Reserved for future use, must be 0 */
+ u32 reserved[2];
+} __packed;
+
+/**
+ * struct xe_ras_health_get_response - Response for XE_SYSCTRL_CMD_GET_HEALTH
+ */
+struct xe_ras_health_get_response {
+ /** @current_health: Current health status (OK/WARNING/CRITICAL) */
+ u8 current_health;
+ /** @reserved: Reserved for alignment */
+ u8 reserved[3];
+} __packed;
+
+/**
+ * struct xe_ras_health_set_input - Input for XE_SYSCTRL_CMD_SET_HEALTH
+ */
+struct xe_ras_health_set_input {
+ /** @new_health: New health status to set */
+ u8 new_health;
+ /** @reserved: Reserved for alignment */
+ u8 reserved[3];
+} __packed;
+
+/**
+ * struct xe_ras_health_set_response - Response for XE_SYSCTRL_CMD_SET_HEALTH
+ */
+struct xe_ras_health_set_response {
+ /** @operation_status: Status of set operation (RAS_STATUS) */
+ u32 operation_status;
+ /** @current_health: Health status after this change */
+ u8 current_health;
+ /** @reserved: Reserved for alignment */
+ u8 reserved[3];
+ /** @reserved_2: Reserved for future expansion */
+ u32 reserved_2[2];
+} __packed;
+
+#endif /* _XE_RAS_TYPES_H_ */
diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
index 89456aec6097..fc73e02c3202 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
+++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
@@ -10,6 +10,21 @@
#include "abi/xe_sysctrl_abi.h"
+/**
+ * enum xe_sysctrl_mailbox_command_id - RAS Command ID's for GFSP group
+ *
+ * @XE_SYSCTRL_CMD_GET_HEALTH: Get current health status
+ * @XE_SYSCTRL_CMD_SET_HEALTH: Set new health status
+ */
+enum xe_sysctrl_mailbox_command_id {
+ XE_SYSCTRL_CMD_GET_HEALTH = 0x0B,
+ XE_SYSCTRL_CMD_SET_HEALTH = 0x0C
+};
+
+enum xe_sysctrl_group {
+ XE_SYSCTRL_GROUP_GFSP = 1
+};
+
/**
* struct xe_sysctrl_mailbox_command - System Controller mailbox command
*/
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/2] drm/xe/xe_ras: Add RAS support for GPU health indicator
2026-04-23 17:39 [PATCH v2 0/2] drm/xe: Add support for GPU health indicator Soham Purkait
2026-04-23 17:39 ` [PATCH v2 1/2] drm/xe/xe_ras: Add types and commands for RAS " Soham Purkait
@ 2026-04-23 17:39 ` Soham Purkait
2026-04-27 22:16 ` Rodrigo Vivi
2026-04-23 17:52 ` ✗ CI.checkpatch: warning for drm/xe: Add " Patchwork
` (3 subsequent siblings)
5 siblings, 1 reply; 8+ messages in thread
From: Soham Purkait @ 2026-04-23 17:39 UTC (permalink / raw)
To: intel-xe, riana.tauro, anshuman.gupta, aravind.iddamsetty,
badal.nilawar, raag.jadav, ravi.kishore.koppuravuri,
mallesh.koujalagi, andi.shyti, rodrigo.vivi
Cc: soham.purkait, anoop.c.vijay
GPU health indicator exposes a single sysfs interface, gpu_health,
at the device level, allowing administrators and management tools to
query the GPU health status. The interface permits both read and write
operations on PF and native functions, while on VFs it is exposed as
read-only.
The sysfs file (gpu_health) is placed at the device level and behaves as
follows:
$ cat /sys/.../device/gpu_health
ok
$ echo critical > /sys/.../device/gpu_health
$ cat /sys/.../device/gpu_health
critical
V2:
- Return error number instead of error message in _show and
_store. (Andi)
- Remove redundant VF check in _store callback. (Andi)
- Move GPU health sysfs init error logging to xe_ras_init. (Andi)
- Return only the current health state for sysfs read. (Andi, Rodrigo)
- Add documentation for sysfs interface. (Andi, Rodrigo)
Signed-off-by: Soham Purkait <soham.purkait@intel.com>
---
.../ABI/testing/sysfs-driver-intel-xe-ras | 33 +++
drivers/gpu/drm/xe/Makefile | 1 +
drivers/gpu/drm/xe/xe_device.c | 3 +
drivers/gpu/drm/xe/xe_ras.c | 202 ++++++++++++++++++
drivers/gpu/drm/xe/xe_ras.h | 13 ++
5 files changed, 252 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-driver-intel-xe-ras
create mode 100644 drivers/gpu/drm/xe/xe_ras.c
create mode 100644 drivers/gpu/drm/xe/xe_ras.h
diff --git a/Documentation/ABI/testing/sysfs-driver-intel-xe-ras b/Documentation/ABI/testing/sysfs-driver-intel-xe-ras
new file mode 100644
index 000000000000..085cb79a6e00
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-driver-intel-xe-ras
@@ -0,0 +1,33 @@
+What: /sys/bus/pci/drivers/.../gpu_health
+Date: April 2026
+KernelVersion: 7.0
+Contact: intel-xe@lists.freedesktop.org
+Description:
+ This file exposes the current GPU health state and, for Physical
+ Functions (PFs), allows GPU health state to be updated.
+
+ This sysfs file is only accessible to administrative users and is
+ present only on Intel Xe platforms that support the GPU health
+ indicator interface for RAS.
+
+ For Physical Functions (PFs), the file is read-write, while for
+ Virtual Functions (VFs), it is read-only and does not support GPU
+ health state updates.
+
+ Read return a single line containing one of the valid values for
+ the current device health state. Only for PFs, writing one of the
+ valid values updates the current device health state.
+
+ The valid values for the device health state are:
+
+ ok
+ The device is healthy and operating within normal
+ parameters.
+
+ warning
+ The device is experiencing minor issues but remains
+ operational.
+
+ critical
+ The device is in a critical state and may not be
+ operational.
diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index 95666f950a6f..28a09d06a44c 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -112,6 +112,7 @@ xe-y += xe_bb.o \
xe_pxp_debugfs.o \
xe_pxp_submit.o \
xe_query.o \
+ xe_ras.o \
xe_range_fence.o \
xe_reg_sr.o \
xe_reg_whitelist.o \
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 4b45b617a039..cb5484712f1c 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -62,6 +62,7 @@
#include "xe_psmi.h"
#include "xe_pxp.h"
#include "xe_query.h"
+#include "xe_ras.h"
#include "xe_shrinker.h"
#include "xe_soc_remapper.h"
#include "xe_survivability_mode.h"
@@ -1067,6 +1068,8 @@ int xe_device_probe(struct xe_device *xe)
xe_vsec_init(xe);
+ xe_ras_init(xe);
+
err = xe_sriov_init_late(xe);
if (err)
goto err_unregister_display;
diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
new file mode 100644
index 000000000000..25609257bd07
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_ras.c
@@ -0,0 +1,202 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#include <linux/minmax.h>
+
+#include "xe_device.h"
+#include "xe_device_types.h"
+#include "xe_pm.h"
+#include "xe_printk.h"
+#include "xe_ras.h"
+#include "xe_ras_types.h"
+#include "xe_sriov.h"
+#include "xe_sysctrl_mailbox.h"
+#include "xe_sysctrl_mailbox_types.h"
+
+static const char * const gpu_health_states[] = {
+ [XE_RAS_HEALTH_STATUS_OK] = "ok",
+ [XE_RAS_HEALTH_STATUS_WARNING] = "warning",
+ [XE_RAS_HEALTH_STATUS_CRITICAL] = "critical"
+};
+
+static const int ras_status_to_errno_map[] = {
+ [XE_RAS_STATUS_SUCCESS] = 0,
+ [XE_RAS_STATUS_INVALID_PARAM] = -EINVAL,
+ [XE_RAS_STATUS_OP_NOT_SUPPORTED] = -EOPNOTSUPP,
+ [XE_RAS_STATUS_TIMEOUT] = -ETIMEDOUT,
+ [XE_RAS_STATUS_HARDWARE_FAILURE] = -EIO,
+ [XE_RAS_STATUS_INSUFFICIENT_RESOURCES] = -ENAVAIL,
+ [XE_RAS_STATUS_UNKNOWN_ERROR] = -EREMOTEIO
+};
+
+static int ras_status_to_errno(u32 status)
+{
+ status = min_t(u32, status, XE_RAS_STATUS_UNKNOWN_ERROR);
+ return ras_status_to_errno_map[status];
+}
+
+static void prepare_sysctrl_command(struct xe_sysctrl_mailbox_command *command,
+ u32 cmd_mask, void *request, size_t request_len,
+ void *response, size_t response_len)
+{
+ struct xe_sysctrl_app_msg_hdr hdr = {0};
+
+ hdr.data = FIELD_PREP(APP_HDR_GROUP_ID_MASK, XE_SYSCTRL_GROUP_GFSP) |
+ FIELD_PREP(APP_HDR_COMMAND_MASK, cmd_mask);
+
+ command->header = hdr;
+ command->data_in = request;
+ command->data_in_len = request_len;
+ command->data_out = response;
+ command->data_out_len = response_len;
+}
+
+static ssize_t gpu_health_show(struct device *dev, struct device_attribute *attr, char *buf)
+{
+ struct xe_device *xe = kdev_to_xe_device(dev);
+ struct xe_sysctrl_mailbox_command command = {0};
+ struct xe_ras_health_get_response response = {0};
+ struct xe_ras_health_get_input request = {0};
+ enum xe_sysctrl_mailbox_command_id cmd = XE_SYSCTRL_CMD_GET_HEALTH;
+ enum xe_ras_health_status health;
+ int ret;
+ size_t rlen = 0;
+
+ prepare_sysctrl_command(&command, cmd, &request,
+ sizeof(request), &response, sizeof(response));
+ guard(xe_pm_runtime)(xe);
+ ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
+ if (ret)
+ return ret;
+
+ if (rlen != sizeof(response)) {
+ xe_err(xe,
+ "[RAS][GET_HEALTH]: invalid Sysctrl response length %zu (expected %zu)\n",
+ rlen, sizeof(response));
+ return -EPROTO;
+ }
+ if (response.current_health > XE_RAS_HEALTH_STATUS_CRITICAL) {
+ xe_err(xe, "[RAS][GET_HEALTH]: invalid health state %u from Sysctrl\n",
+ response.current_health);
+ return -EPROTO;
+ }
+
+ health = (enum xe_ras_health_status)response.current_health;
+
+ xe_dbg(xe, "[RAS][GET_HEALTH]: current GPU health state = %d (%s)\n",
+ health, gpu_health_states[health]);
+
+ return sysfs_emit(buf, "%s\n", gpu_health_states[health]);
+}
+
+static ssize_t gpu_health_store(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ struct xe_device *xe = kdev_to_xe_device(dev);
+ struct xe_sysctrl_mailbox_command command = {0};
+ struct xe_ras_health_set_input request = {0};
+ struct xe_ras_health_set_response response = {0};
+ enum xe_sysctrl_mailbox_command_id cmd = XE_SYSCTRL_CMD_SET_HEALTH;
+ enum xe_ras_health_status health;
+ int ret;
+ size_t rlen = 0;
+ int state;
+ int ras_status;
+
+ state = sysfs_match_string(gpu_health_states,
+ buf);
+ if (state < 0)
+ return -EINVAL;
+
+ request.new_health = (u8)state;
+
+ prepare_sysctrl_command(&command, cmd, &request,
+ sizeof(request), &response, sizeof(response));
+ guard(xe_pm_runtime)(xe);
+ ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
+ if (ret)
+ return ret;
+
+ if (rlen != sizeof(response)) {
+ xe_err(xe,
+ "[RAS][SET_HEALTH]: invalid Sysctrl response length %zu (expected %zu)\n",
+ rlen, sizeof(response));
+ return -EPROTO;
+ }
+
+ ras_status = ras_status_to_errno(response.operation_status);
+ if (ras_status) {
+ xe_err(xe,
+ "[RAS][SET_HEALTH]: cmd 0x%x failed: fw_status=%u errno=%pe\n",
+ cmd, response.operation_status, ERR_PTR(ras_status));
+ return ras_status;
+ }
+
+ if (response.current_health > XE_RAS_HEALTH_STATUS_CRITICAL) {
+ xe_err(xe, "[RAS][SET_HEALTH]: invalid health state %u from Sysctrl\n",
+ response.current_health);
+ return -EPROTO;
+ }
+
+ health = (enum xe_ras_health_status)response.current_health;
+
+ xe_dbg(xe, "[RAS][SET_HEALTH]: current GPU health state=%d (%s)\n",
+ health, gpu_health_states[health]);
+
+ return count;
+}
+
+static struct device_attribute dev_attr_gpu_health_rw =
+ __ATTR_RW_MODE(gpu_health, 0600);
+
+static struct device_attribute dev_attr_gpu_health_ro =
+ __ATTR_RO_MODE(gpu_health, 0400);
+
+static struct device_attribute *gpu_health_attr(struct xe_device *xe)
+{
+ return IS_SRIOV_VF(xe) ? &dev_attr_gpu_health_ro : &dev_attr_gpu_health_rw;
+}
+
+static void gpu_health_sysfs_fini(void *arg)
+{
+ struct device *dev = arg;
+ struct xe_device *xe = kdev_to_xe_device(dev);
+
+ device_remove_file(dev, gpu_health_attr(xe));
+}
+
+static int gpu_health_indicator_sysfs_init(struct xe_device *xe)
+{
+ struct device *dev = xe->drm.dev;
+ int err;
+
+ err = device_create_file(dev, gpu_health_attr(xe));
+ if (err)
+ return err;
+
+ err = devm_add_action_or_reset(dev, gpu_health_sysfs_fini, dev);
+ if (err)
+ return err;
+
+ return 0;
+}
+
+/**
+ * xe_ras_init - Initialize Xe RAS
+ * @xe: xe device instance
+ *
+ * Initialize Xe RAS
+ */
+void xe_ras_init(struct xe_device *xe)
+{
+ int ret;
+
+ if (!xe->info.has_sysctrl)
+ return;
+
+ ret = gpu_health_indicator_sysfs_init(xe);
+ if (ret)
+ xe_err(xe, "[RAS]: failed to initialize GPU health sysfs, err=%d\n", ret);
+}
diff --git a/drivers/gpu/drm/xe/xe_ras.h b/drivers/gpu/drm/xe/xe_ras.h
new file mode 100644
index 000000000000..14cb973603e7
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_ras.h
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#ifndef _XE_RAS_H_
+#define _XE_RAS_H_
+
+struct xe_device;
+
+void xe_ras_init(struct xe_device *xe);
+
+#endif
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* ✗ CI.checkpatch: warning for drm/xe: Add support for GPU health indicator
2026-04-23 17:39 [PATCH v2 0/2] drm/xe: Add support for GPU health indicator Soham Purkait
2026-04-23 17:39 ` [PATCH v2 1/2] drm/xe/xe_ras: Add types and commands for RAS " Soham Purkait
2026-04-23 17:39 ` [PATCH v2 2/2] drm/xe/xe_ras: Add RAS support for " Soham Purkait
@ 2026-04-23 17:52 ` Patchwork
2026-04-23 17:54 ` ✓ CI.KUnit: success " Patchwork
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2026-04-23 17:52 UTC (permalink / raw)
To: Soham Purkait; +Cc: intel-xe
== Series Details ==
Series: drm/xe: Add support for GPU health indicator
URL : https://patchwork.freedesktop.org/series/165378/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
1f57ba1afceae32108bd24770069f764d940a0e4
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit ff1507e8976895a1688ab1f49b2bfc0fa3782b39
Author: Soham Purkait <soham.purkait@intel.com>
Date: Thu Apr 23 23:09:25 2026 +0530
drm/xe/xe_ras: Add RAS support for GPU health indicator
GPU health indicator exposes a single sysfs interface, gpu_health,
at the device level, allowing administrators and management tools to
query the GPU health status. The interface permits both read and write
operations on PF and native functions, while on VFs it is exposed as
read-only.
The sysfs file (gpu_health) is placed at the device level and behaves as
follows:
$ cat /sys/.../device/gpu_health
ok
$ echo critical > /sys/.../device/gpu_health
$ cat /sys/.../device/gpu_health
critical
V2:
- Return error number instead of error message in _show and
_store. (Andi)
- Remove redundant VF check in _store callback. (Andi)
- Move GPU health sysfs init error logging to xe_ras_init. (Andi)
- Return only the current health state for sysfs read. (Andi, Rodrigo)
- Add documentation for sysfs interface. (Andi, Rodrigo)
Signed-off-by: Soham Purkait <soham.purkait@intel.com>
+ /mt/dim checkpatch ecb61ba4a1f619b6944f4d0741b4d8a0910f460c drm-intel
97583930f1c3 drm/xe/xe_ras: Add types and commands for RAS GPU health indicator
-:30: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#30:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 104 lines checked
ff1507e89768 drm/xe/xe_ras: Add RAS support for GPU health indicator
-:34: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#34:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 270 lines checked
^ permalink raw reply [flat|nested] 8+ messages in thread
* ✓ CI.KUnit: success for drm/xe: Add support for GPU health indicator
2026-04-23 17:39 [PATCH v2 0/2] drm/xe: Add support for GPU health indicator Soham Purkait
` (2 preceding siblings ...)
2026-04-23 17:52 ` ✗ CI.checkpatch: warning for drm/xe: Add " Patchwork
@ 2026-04-23 17:54 ` Patchwork
2026-04-23 19:02 ` ✓ Xe.CI.BAT: " Patchwork
2026-04-24 2:52 ` ✓ Xe.CI.FULL: " Patchwork
5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2026-04-23 17:54 UTC (permalink / raw)
To: Soham Purkait; +Cc: intel-xe
== Series Details ==
Series: drm/xe: Add support for GPU health indicator
URL : https://patchwork.freedesktop.org/series/165378/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[17:52:53] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[17:52:57] 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
[17:53:28] Starting KUnit Kernel (1/1)...
[17:53:28] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[17:53:29] ================== guc_buf (11 subtests) ===================
[17:53:29] [PASSED] test_smallest
[17:53:29] [PASSED] test_largest
[17:53:29] [PASSED] test_granular
[17:53:29] [PASSED] test_unique
[17:53:29] [PASSED] test_overlap
[17:53:29] [PASSED] test_reusable
[17:53:29] [PASSED] test_too_big
[17:53:29] [PASSED] test_flush
[17:53:29] [PASSED] test_lookup
[17:53:29] [PASSED] test_data
[17:53:29] [PASSED] test_class
[17:53:29] ===================== [PASSED] guc_buf =====================
[17:53:29] =================== guc_dbm (7 subtests) ===================
[17:53:29] [PASSED] test_empty
[17:53:29] [PASSED] test_default
[17:53:29] ======================== test_size ========================
[17:53:29] [PASSED] 4
[17:53:29] [PASSED] 8
[17:53:29] [PASSED] 32
[17:53:29] [PASSED] 256
[17:53:29] ==================== [PASSED] test_size ====================
[17:53:29] ======================= test_reuse ========================
[17:53:29] [PASSED] 4
[17:53:29] [PASSED] 8
[17:53:29] [PASSED] 32
[17:53:29] [PASSED] 256
[17:53:29] =================== [PASSED] test_reuse ====================
[17:53:29] =================== test_range_overlap ====================
[17:53:29] [PASSED] 4
[17:53:29] [PASSED] 8
[17:53:29] [PASSED] 32
[17:53:29] [PASSED] 256
[17:53:29] =============== [PASSED] test_range_overlap ================
[17:53:29] =================== test_range_compact ====================
[17:53:29] [PASSED] 4
[17:53:29] [PASSED] 8
[17:53:29] [PASSED] 32
[17:53:29] [PASSED] 256
[17:53:29] =============== [PASSED] test_range_compact ================
[17:53:29] ==================== test_range_spare =====================
[17:53:29] [PASSED] 4
[17:53:29] [PASSED] 8
[17:53:29] [PASSED] 32
[17:53:29] [PASSED] 256
[17:53:29] ================ [PASSED] test_range_spare =================
[17:53:29] ===================== [PASSED] guc_dbm =====================
[17:53:29] =================== guc_idm (6 subtests) ===================
[17:53:29] [PASSED] bad_init
[17:53:29] [PASSED] no_init
[17:53:29] [PASSED] init_fini
[17:53:29] [PASSED] check_used
[17:53:29] [PASSED] check_quota
[17:53:29] [PASSED] check_all
[17:53:29] ===================== [PASSED] guc_idm =====================
[17:53:29] ================== no_relay (3 subtests) ===================
[17:53:29] [PASSED] xe_drops_guc2pf_if_not_ready
[17:53:29] [PASSED] xe_drops_guc2vf_if_not_ready
[17:53:29] [PASSED] xe_rejects_send_if_not_ready
[17:53:29] ==================== [PASSED] no_relay =====================
[17:53:29] ================== pf_relay (14 subtests) ==================
[17:53:29] [PASSED] pf_rejects_guc2pf_too_short
[17:53:29] [PASSED] pf_rejects_guc2pf_too_long
[17:53:29] [PASSED] pf_rejects_guc2pf_no_payload
[17:53:29] [PASSED] pf_fails_no_payload
[17:53:29] [PASSED] pf_fails_bad_origin
[17:53:29] [PASSED] pf_fails_bad_type
[17:53:29] [PASSED] pf_txn_reports_error
[17:53:29] [PASSED] pf_txn_sends_pf2guc
[17:53:29] [PASSED] pf_sends_pf2guc
[17:53:29] [SKIPPED] pf_loopback_nop
[17:53:29] [SKIPPED] pf_loopback_echo
[17:53:29] [SKIPPED] pf_loopback_fail
[17:53:29] [SKIPPED] pf_loopback_busy
[17:53:29] [SKIPPED] pf_loopback_retry
[17:53:29] ==================== [PASSED] pf_relay =====================
[17:53:29] ================== vf_relay (3 subtests) ===================
[17:53:29] [PASSED] vf_rejects_guc2vf_too_short
[17:53:29] [PASSED] vf_rejects_guc2vf_too_long
[17:53:29] [PASSED] vf_rejects_guc2vf_no_payload
[17:53:29] ==================== [PASSED] vf_relay =====================
[17:53:29] ================ pf_gt_config (9 subtests) =================
[17:53:29] [PASSED] fair_contexts_1vf
[17:53:29] [PASSED] fair_doorbells_1vf
[17:53:29] [PASSED] fair_ggtt_1vf
[17:53:29] ====================== fair_vram_1vf ======================
[17:53:29] [PASSED] 3.50 GiB
[17:53:29] [PASSED] 11.5 GiB
[17:53:29] [PASSED] 15.5 GiB
[17:53:29] [PASSED] 31.5 GiB
[17:53:29] [PASSED] 63.5 GiB
[17:53:29] [PASSED] 1.91 GiB
[17:53:29] ================== [PASSED] fair_vram_1vf ==================
[17:53:29] ================ fair_vram_1vf_admin_only =================
[17:53:29] [PASSED] 3.50 GiB
[17:53:29] [PASSED] 11.5 GiB
[17:53:29] [PASSED] 15.5 GiB
[17:53:29] [PASSED] 31.5 GiB
[17:53:29] [PASSED] 63.5 GiB
[17:53:29] [PASSED] 1.91 GiB
[17:53:29] ============ [PASSED] fair_vram_1vf_admin_only =============
[17:53:29] ====================== fair_contexts ======================
[17:53:29] [PASSED] 1 VF
[17:53:29] [PASSED] 2 VFs
[17:53:29] [PASSED] 3 VFs
[17:53:29] [PASSED] 4 VFs
[17:53:29] [PASSED] 5 VFs
[17:53:29] [PASSED] 6 VFs
[17:53:29] [PASSED] 7 VFs
[17:53:29] [PASSED] 8 VFs
[17:53:29] [PASSED] 9 VFs
[17:53:29] [PASSED] 10 VFs
[17:53:29] [PASSED] 11 VFs
[17:53:29] [PASSED] 12 VFs
[17:53:29] [PASSED] 13 VFs
[17:53:29] [PASSED] 14 VFs
[17:53:29] [PASSED] 15 VFs
[17:53:29] [PASSED] 16 VFs
[17:53:29] [PASSED] 17 VFs
[17:53:29] [PASSED] 18 VFs
[17:53:29] [PASSED] 19 VFs
[17:53:29] [PASSED] 20 VFs
[17:53:29] [PASSED] 21 VFs
[17:53:29] [PASSED] 22 VFs
[17:53:29] [PASSED] 23 VFs
[17:53:29] [PASSED] 24 VFs
[17:53:29] [PASSED] 25 VFs
[17:53:29] [PASSED] 26 VFs
[17:53:29] [PASSED] 27 VFs
[17:53:29] [PASSED] 28 VFs
[17:53:29] [PASSED] 29 VFs
[17:53:29] [PASSED] 30 VFs
[17:53:29] [PASSED] 31 VFs
[17:53:29] [PASSED] 32 VFs
[17:53:29] [PASSED] 33 VFs
[17:53:29] [PASSED] 34 VFs
[17:53:29] [PASSED] 35 VFs
[17:53:29] [PASSED] 36 VFs
[17:53:29] [PASSED] 37 VFs
[17:53:29] [PASSED] 38 VFs
[17:53:29] [PASSED] 39 VFs
[17:53:29] [PASSED] 40 VFs
[17:53:29] [PASSED] 41 VFs
[17:53:29] [PASSED] 42 VFs
[17:53:29] [PASSED] 43 VFs
[17:53:29] [PASSED] 44 VFs
[17:53:29] [PASSED] 45 VFs
[17:53:29] [PASSED] 46 VFs
[17:53:29] [PASSED] 47 VFs
[17:53:29] [PASSED] 48 VFs
[17:53:29] [PASSED] 49 VFs
[17:53:29] [PASSED] 50 VFs
[17:53:29] [PASSED] 51 VFs
[17:53:29] [PASSED] 52 VFs
[17:53:29] [PASSED] 53 VFs
[17:53:29] [PASSED] 54 VFs
[17:53:29] [PASSED] 55 VFs
[17:53:29] [PASSED] 56 VFs
[17:53:29] [PASSED] 57 VFs
[17:53:29] [PASSED] 58 VFs
[17:53:29] [PASSED] 59 VFs
[17:53:29] [PASSED] 60 VFs
[17:53:29] [PASSED] 61 VFs
[17:53:29] [PASSED] 62 VFs
[17:53:29] [PASSED] 63 VFs
[17:53:29] ================== [PASSED] fair_contexts ==================
[17:53:29] ===================== fair_doorbells ======================
[17:53:29] [PASSED] 1 VF
[17:53:29] [PASSED] 2 VFs
[17:53:29] [PASSED] 3 VFs
[17:53:29] [PASSED] 4 VFs
[17:53:29] [PASSED] 5 VFs
[17:53:29] [PASSED] 6 VFs
[17:53:29] [PASSED] 7 VFs
[17:53:29] [PASSED] 8 VFs
[17:53:29] [PASSED] 9 VFs
[17:53:29] [PASSED] 10 VFs
[17:53:29] [PASSED] 11 VFs
[17:53:29] [PASSED] 12 VFs
[17:53:29] [PASSED] 13 VFs
[17:53:29] [PASSED] 14 VFs
[17:53:29] [PASSED] 15 VFs
[17:53:29] [PASSED] 16 VFs
[17:53:29] [PASSED] 17 VFs
[17:53:29] [PASSED] 18 VFs
[17:53:29] [PASSED] 19 VFs
[17:53:29] [PASSED] 20 VFs
[17:53:29] [PASSED] 21 VFs
[17:53:29] [PASSED] 22 VFs
[17:53:29] [PASSED] 23 VFs
[17:53:29] [PASSED] 24 VFs
[17:53:29] [PASSED] 25 VFs
[17:53:29] [PASSED] 26 VFs
[17:53:29] [PASSED] 27 VFs
[17:53:29] [PASSED] 28 VFs
[17:53:29] [PASSED] 29 VFs
[17:53:29] [PASSED] 30 VFs
[17:53:29] [PASSED] 31 VFs
[17:53:29] [PASSED] 32 VFs
[17:53:29] [PASSED] 33 VFs
[17:53:29] [PASSED] 34 VFs
[17:53:29] [PASSED] 35 VFs
[17:53:29] [PASSED] 36 VFs
[17:53:29] [PASSED] 37 VFs
[17:53:29] [PASSED] 38 VFs
[17:53:29] [PASSED] 39 VFs
[17:53:29] [PASSED] 40 VFs
[17:53:29] [PASSED] 41 VFs
[17:53:29] [PASSED] 42 VFs
[17:53:29] [PASSED] 43 VFs
[17:53:29] [PASSED] 44 VFs
[17:53:29] [PASSED] 45 VFs
[17:53:29] [PASSED] 46 VFs
[17:53:29] [PASSED] 47 VFs
[17:53:29] [PASSED] 48 VFs
[17:53:29] [PASSED] 49 VFs
[17:53:29] [PASSED] 50 VFs
[17:53:29] [PASSED] 51 VFs
[17:53:29] [PASSED] 52 VFs
[17:53:29] [PASSED] 53 VFs
[17:53:29] [PASSED] 54 VFs
[17:53:29] [PASSED] 55 VFs
[17:53:29] [PASSED] 56 VFs
[17:53:29] [PASSED] 57 VFs
[17:53:29] [PASSED] 58 VFs
[17:53:29] [PASSED] 59 VFs
[17:53:29] [PASSED] 60 VFs
[17:53:29] [PASSED] 61 VFs
[17:53:29] [PASSED] 62 VFs
[17:53:29] [PASSED] 63 VFs
[17:53:29] ================= [PASSED] fair_doorbells ==================
[17:53:29] ======================== fair_ggtt ========================
[17:53:29] [PASSED] 1 VF
[17:53:29] [PASSED] 2 VFs
[17:53:29] [PASSED] 3 VFs
[17:53:29] [PASSED] 4 VFs
[17:53:29] [PASSED] 5 VFs
[17:53:29] [PASSED] 6 VFs
[17:53:29] [PASSED] 7 VFs
[17:53:29] [PASSED] 8 VFs
[17:53:29] [PASSED] 9 VFs
[17:53:29] [PASSED] 10 VFs
[17:53:29] [PASSED] 11 VFs
[17:53:29] [PASSED] 12 VFs
[17:53:29] [PASSED] 13 VFs
[17:53:29] [PASSED] 14 VFs
[17:53:29] [PASSED] 15 VFs
[17:53:29] [PASSED] 16 VFs
[17:53:29] [PASSED] 17 VFs
[17:53:29] [PASSED] 18 VFs
[17:53:29] [PASSED] 19 VFs
[17:53:29] [PASSED] 20 VFs
[17:53:29] [PASSED] 21 VFs
[17:53:29] [PASSED] 22 VFs
[17:53:29] [PASSED] 23 VFs
[17:53:29] [PASSED] 24 VFs
[17:53:29] [PASSED] 25 VFs
[17:53:29] [PASSED] 26 VFs
[17:53:29] [PASSED] 27 VFs
[17:53:29] [PASSED] 28 VFs
[17:53:29] [PASSED] 29 VFs
[17:53:29] [PASSED] 30 VFs
[17:53:29] [PASSED] 31 VFs
[17:53:29] [PASSED] 32 VFs
[17:53:29] [PASSED] 33 VFs
[17:53:29] [PASSED] 34 VFs
[17:53:29] [PASSED] 35 VFs
[17:53:29] [PASSED] 36 VFs
[17:53:29] [PASSED] 37 VFs
[17:53:29] [PASSED] 38 VFs
[17:53:29] [PASSED] 39 VFs
[17:53:29] [PASSED] 40 VFs
[17:53:29] [PASSED] 41 VFs
[17:53:29] [PASSED] 42 VFs
[17:53:29] [PASSED] 43 VFs
[17:53:29] [PASSED] 44 VFs
[17:53:29] [PASSED] 45 VFs
[17:53:29] [PASSED] 46 VFs
[17:53:29] [PASSED] 47 VFs
[17:53:29] [PASSED] 48 VFs
[17:53:29] [PASSED] 49 VFs
[17:53:29] [PASSED] 50 VFs
[17:53:29] [PASSED] 51 VFs
[17:53:29] [PASSED] 52 VFs
[17:53:29] [PASSED] 53 VFs
[17:53:29] [PASSED] 54 VFs
[17:53:29] [PASSED] 55 VFs
[17:53:29] [PASSED] 56 VFs
[17:53:29] [PASSED] 57 VFs
[17:53:29] [PASSED] 58 VFs
[17:53:29] [PASSED] 59 VFs
[17:53:29] [PASSED] 60 VFs
[17:53:29] [PASSED] 61 VFs
[17:53:29] [PASSED] 62 VFs
[17:53:29] [PASSED] 63 VFs
[17:53:29] ==================== [PASSED] fair_ggtt ====================
[17:53:29] ======================== fair_vram ========================
[17:53:29] [PASSED] 1 VF
[17:53:29] [PASSED] 2 VFs
[17:53:29] [PASSED] 3 VFs
[17:53:29] [PASSED] 4 VFs
[17:53:29] [PASSED] 5 VFs
[17:53:29] [PASSED] 6 VFs
[17:53:29] [PASSED] 7 VFs
[17:53:29] [PASSED] 8 VFs
[17:53:29] [PASSED] 9 VFs
[17:53:29] [PASSED] 10 VFs
[17:53:29] [PASSED] 11 VFs
[17:53:29] [PASSED] 12 VFs
[17:53:29] [PASSED] 13 VFs
[17:53:29] [PASSED] 14 VFs
[17:53:29] [PASSED] 15 VFs
[17:53:29] [PASSED] 16 VFs
[17:53:29] [PASSED] 17 VFs
[17:53:29] [PASSED] 18 VFs
[17:53:29] [PASSED] 19 VFs
[17:53:29] [PASSED] 20 VFs
[17:53:29] [PASSED] 21 VFs
[17:53:29] [PASSED] 22 VFs
[17:53:29] [PASSED] 23 VFs
[17:53:29] [PASSED] 24 VFs
[17:53:29] [PASSED] 25 VFs
[17:53:29] [PASSED] 26 VFs
[17:53:29] [PASSED] 27 VFs
[17:53:29] [PASSED] 28 VFs
[17:53:29] [PASSED] 29 VFs
[17:53:29] [PASSED] 30 VFs
[17:53:29] [PASSED] 31 VFs
[17:53:29] [PASSED] 32 VFs
[17:53:29] [PASSED] 33 VFs
[17:53:29] [PASSED] 34 VFs
[17:53:29] [PASSED] 35 VFs
[17:53:29] [PASSED] 36 VFs
[17:53:29] [PASSED] 37 VFs
[17:53:29] [PASSED] 38 VFs
[17:53:29] [PASSED] 39 VFs
[17:53:29] [PASSED] 40 VFs
[17:53:29] [PASSED] 41 VFs
[17:53:29] [PASSED] 42 VFs
[17:53:29] [PASSED] 43 VFs
[17:53:29] [PASSED] 44 VFs
[17:53:29] [PASSED] 45 VFs
[17:53:29] [PASSED] 46 VFs
[17:53:29] [PASSED] 47 VFs
[17:53:29] [PASSED] 48 VFs
[17:53:29] [PASSED] 49 VFs
[17:53:29] [PASSED] 50 VFs
[17:53:29] [PASSED] 51 VFs
[17:53:29] [PASSED] 52 VFs
[17:53:29] [PASSED] 53 VFs
[17:53:29] [PASSED] 54 VFs
[17:53:29] [PASSED] 55 VFs
[17:53:29] [PASSED] 56 VFs
[17:53:29] [PASSED] 57 VFs
[17:53:29] [PASSED] 58 VFs
[17:53:29] [PASSED] 59 VFs
[17:53:29] [PASSED] 60 VFs
[17:53:29] [PASSED] 61 VFs
[17:53:29] [PASSED] 62 VFs
[17:53:29] [PASSED] 63 VFs
[17:53:29] ==================== [PASSED] fair_vram ====================
[17:53:29] ================== [PASSED] pf_gt_config ===================
[17:53:29] ===================== lmtt (1 subtest) =====================
[17:53:29] ======================== test_ops =========================
[17:53:29] [PASSED] 2-level
[17:53:29] [PASSED] multi-level
[17:53:29] ==================== [PASSED] test_ops =====================
[17:53:29] ====================== [PASSED] lmtt =======================
[17:53:29] ================= pf_service (11 subtests) =================
[17:53:29] [PASSED] pf_negotiate_any
[17:53:29] [PASSED] pf_negotiate_base_match
[17:53:29] [PASSED] pf_negotiate_base_newer
[17:53:29] [PASSED] pf_negotiate_base_next
[17:53:29] [SKIPPED] pf_negotiate_base_older
[17:53:29] [PASSED] pf_negotiate_base_prev
[17:53:29] [PASSED] pf_negotiate_latest_match
[17:53:29] [PASSED] pf_negotiate_latest_newer
[17:53:29] [PASSED] pf_negotiate_latest_next
[17:53:29] [SKIPPED] pf_negotiate_latest_older
[17:53:29] [SKIPPED] pf_negotiate_latest_prev
[17:53:29] =================== [PASSED] pf_service ====================
[17:53:29] ================= xe_guc_g2g (2 subtests) ==================
[17:53:29] ============== xe_live_guc_g2g_kunit_default ==============
[17:53:29] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[17:53:29] ============== xe_live_guc_g2g_kunit_allmem ===============
[17:53:29] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[17:53:29] =================== [SKIPPED] xe_guc_g2g ===================
[17:53:29] =================== xe_mocs (2 subtests) ===================
[17:53:29] ================ xe_live_mocs_kernel_kunit ================
[17:53:29] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[17:53:29] ================ xe_live_mocs_reset_kunit =================
[17:53:29] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[17:53:29] ==================== [SKIPPED] xe_mocs =====================
[17:53:29] ================= xe_migrate (2 subtests) ==================
[17:53:29] ================= xe_migrate_sanity_kunit =================
[17:53:29] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[17:53:29] ================== xe_validate_ccs_kunit ==================
[17:53:29] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[17:53:29] =================== [SKIPPED] xe_migrate ===================
[17:53:29] ================== xe_dma_buf (1 subtest) ==================
[17:53:29] ==================== xe_dma_buf_kunit =====================
[17:53:29] ================ [SKIPPED] xe_dma_buf_kunit ================
[17:53:29] =================== [SKIPPED] xe_dma_buf ===================
[17:53:29] ================= xe_bo_shrink (1 subtest) =================
[17:53:29] =================== xe_bo_shrink_kunit ====================
[17:53:29] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[17:53:29] ================== [SKIPPED] xe_bo_shrink ==================
[17:53:29] ==================== xe_bo (2 subtests) ====================
[17:53:29] ================== xe_ccs_migrate_kunit ===================
[17:53:29] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[17:53:29] ==================== xe_bo_evict_kunit ====================
[17:53:29] =============== [SKIPPED] xe_bo_evict_kunit ================
[17:53:29] ===================== [SKIPPED] xe_bo ======================
[17:53:29] ==================== args (13 subtests) ====================
[17:53:29] [PASSED] count_args_test
[17:53:29] [PASSED] call_args_example
[17:53:29] [PASSED] call_args_test
[17:53:29] [PASSED] drop_first_arg_example
[17:53:29] [PASSED] drop_first_arg_test
[17:53:29] [PASSED] first_arg_example
[17:53:29] [PASSED] first_arg_test
[17:53:29] [PASSED] last_arg_example
[17:53:29] [PASSED] last_arg_test
[17:53:29] [PASSED] pick_arg_example
[17:53:29] [PASSED] if_args_example
[17:53:29] [PASSED] if_args_test
[17:53:29] [PASSED] sep_comma_example
[17:53:29] ====================== [PASSED] args =======================
[17:53:29] =================== xe_pci (3 subtests) ====================
[17:53:29] ==================== check_graphics_ip ====================
[17:53:29] [PASSED] 12.00 Xe_LP
[17:53:29] [PASSED] 12.10 Xe_LP+
[17:53:29] [PASSED] 12.55 Xe_HPG
[17:53:29] [PASSED] 12.60 Xe_HPC
[17:53:29] [PASSED] 12.70 Xe_LPG
[17:53:29] [PASSED] 12.71 Xe_LPG
[17:53:29] [PASSED] 12.74 Xe_LPG+
[17:53:29] [PASSED] 20.01 Xe2_HPG
[17:53:29] [PASSED] 20.02 Xe2_HPG
[17:53:29] [PASSED] 20.04 Xe2_LPG
[17:53:29] [PASSED] 30.00 Xe3_LPG
[17:53:29] [PASSED] 30.01 Xe3_LPG
[17:53:29] [PASSED] 30.03 Xe3_LPG
[17:53:29] [PASSED] 30.04 Xe3_LPG
[17:53:29] [PASSED] 30.05 Xe3_LPG
[17:53:29] [PASSED] 35.10 Xe3p_LPG
[17:53:29] [PASSED] 35.11 Xe3p_XPC
[17:53:29] ================ [PASSED] check_graphics_ip ================
[17:53:29] ===================== check_media_ip ======================
[17:53:29] [PASSED] 12.00 Xe_M
[17:53:29] [PASSED] 12.55 Xe_HPM
[17:53:29] [PASSED] 13.00 Xe_LPM+
[17:53:29] [PASSED] 13.01 Xe2_HPM
[17:53:29] [PASSED] 20.00 Xe2_LPM
[17:53:29] [PASSED] 30.00 Xe3_LPM
[17:53:29] [PASSED] 30.02 Xe3_LPM
[17:53:29] [PASSED] 35.00 Xe3p_LPM
[17:53:29] [PASSED] 35.03 Xe3p_HPM
[17:53:29] ================= [PASSED] check_media_ip ==================
[17:53:29] =================== check_platform_desc ===================
[17:53:29] [PASSED] 0x9A60 (TIGERLAKE)
[17:53:29] [PASSED] 0x9A68 (TIGERLAKE)
[17:53:29] [PASSED] 0x9A70 (TIGERLAKE)
[17:53:29] [PASSED] 0x9A40 (TIGERLAKE)
[17:53:29] [PASSED] 0x9A49 (TIGERLAKE)
[17:53:29] [PASSED] 0x9A59 (TIGERLAKE)
[17:53:29] [PASSED] 0x9A78 (TIGERLAKE)
[17:53:29] [PASSED] 0x9AC0 (TIGERLAKE)
[17:53:29] [PASSED] 0x9AC9 (TIGERLAKE)
[17:53:29] [PASSED] 0x9AD9 (TIGERLAKE)
[17:53:29] [PASSED] 0x9AF8 (TIGERLAKE)
[17:53:29] [PASSED] 0x4C80 (ROCKETLAKE)
[17:53:29] [PASSED] 0x4C8A (ROCKETLAKE)
[17:53:29] [PASSED] 0x4C8B (ROCKETLAKE)
[17:53:29] [PASSED] 0x4C8C (ROCKETLAKE)
[17:53:29] [PASSED] 0x4C90 (ROCKETLAKE)
[17:53:29] [PASSED] 0x4C9A (ROCKETLAKE)
[17:53:29] [PASSED] 0x4680 (ALDERLAKE_S)
[17:53:29] [PASSED] 0x4682 (ALDERLAKE_S)
[17:53:29] [PASSED] 0x4688 (ALDERLAKE_S)
[17:53:29] [PASSED] 0x468A (ALDERLAKE_S)
[17:53:29] [PASSED] 0x468B (ALDERLAKE_S)
[17:53:29] [PASSED] 0x4690 (ALDERLAKE_S)
[17:53:29] [PASSED] 0x4692 (ALDERLAKE_S)
[17:53:29] [PASSED] 0x4693 (ALDERLAKE_S)
[17:53:29] [PASSED] 0x46A0 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x46A1 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x46A2 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x46A3 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x46A6 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x46A8 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x46AA (ALDERLAKE_P)
[17:53:29] [PASSED] 0x462A (ALDERLAKE_P)
[17:53:29] [PASSED] 0x4626 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x4628 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x46B0 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x46B1 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x46B2 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x46B3 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x46C0 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x46C1 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x46C2 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x46C3 (ALDERLAKE_P)
[17:53:29] [PASSED] 0x46D0 (ALDERLAKE_N)
[17:53:29] [PASSED] 0x46D1 (ALDERLAKE_N)
[17:53:29] [PASSED] 0x46D2 (ALDERLAKE_N)
[17:53:29] [PASSED] 0x46D3 (ALDERLAKE_N)
[17:53:29] [PASSED] 0x46D4 (ALDERLAKE_N)
[17:53:29] [PASSED] 0xA721 (ALDERLAKE_P)
[17:53:29] [PASSED] 0xA7A1 (ALDERLAKE_P)
[17:53:29] [PASSED] 0xA7A9 (ALDERLAKE_P)
[17:53:29] [PASSED] 0xA7AC (ALDERLAKE_P)
[17:53:29] [PASSED] 0xA7AD (ALDERLAKE_P)
[17:53:29] [PASSED] 0xA720 (ALDERLAKE_P)
[17:53:29] [PASSED] 0xA7A0 (ALDERLAKE_P)
[17:53:29] [PASSED] 0xA7A8 (ALDERLAKE_P)
[17:53:29] [PASSED] 0xA7AA (ALDERLAKE_P)
[17:53:29] [PASSED] 0xA7AB (ALDERLAKE_P)
[17:53:29] [PASSED] 0xA780 (ALDERLAKE_S)
[17:53:29] [PASSED] 0xA781 (ALDERLAKE_S)
[17:53:29] [PASSED] 0xA782 (ALDERLAKE_S)
[17:53:29] [PASSED] 0xA783 (ALDERLAKE_S)
[17:53:29] [PASSED] 0xA788 (ALDERLAKE_S)
[17:53:29] [PASSED] 0xA789 (ALDERLAKE_S)
[17:53:29] [PASSED] 0xA78A (ALDERLAKE_S)
[17:53:29] [PASSED] 0xA78B (ALDERLAKE_S)
[17:53:29] [PASSED] 0x4905 (DG1)
[17:53:29] [PASSED] 0x4906 (DG1)
[17:53:29] [PASSED] 0x4907 (DG1)
[17:53:29] [PASSED] 0x4908 (DG1)
[17:53:29] [PASSED] 0x4909 (DG1)
[17:53:29] [PASSED] 0x56C0 (DG2)
[17:53:29] [PASSED] 0x56C2 (DG2)
[17:53:29] [PASSED] 0x56C1 (DG2)
[17:53:29] [PASSED] 0x7D51 (METEORLAKE)
[17:53:29] [PASSED] 0x7DD1 (METEORLAKE)
[17:53:29] [PASSED] 0x7D41 (METEORLAKE)
[17:53:29] [PASSED] 0x7D67 (METEORLAKE)
[17:53:29] [PASSED] 0xB640 (METEORLAKE)
[17:53:29] [PASSED] 0x56A0 (DG2)
[17:53:29] [PASSED] 0x56A1 (DG2)
[17:53:29] [PASSED] 0x56A2 (DG2)
[17:53:29] [PASSED] 0x56BE (DG2)
[17:53:29] [PASSED] 0x56BF (DG2)
[17:53:29] [PASSED] 0x5690 (DG2)
[17:53:29] [PASSED] 0x5691 (DG2)
[17:53:29] [PASSED] 0x5692 (DG2)
[17:53:29] [PASSED] 0x56A5 (DG2)
[17:53:29] [PASSED] 0x56A6 (DG2)
[17:53:29] [PASSED] 0x56B0 (DG2)
[17:53:29] [PASSED] 0x56B1 (DG2)
[17:53:29] [PASSED] 0x56BA (DG2)
[17:53:29] [PASSED] 0x56BB (DG2)
[17:53:29] [PASSED] 0x56BC (DG2)
[17:53:29] [PASSED] 0x56BD (DG2)
[17:53:29] [PASSED] 0x5693 (DG2)
[17:53:29] [PASSED] 0x5694 (DG2)
[17:53:29] [PASSED] 0x5695 (DG2)
[17:53:29] [PASSED] 0x56A3 (DG2)
[17:53:29] [PASSED] 0x56A4 (DG2)
[17:53:29] [PASSED] 0x56B2 (DG2)
[17:53:29] [PASSED] 0x56B3 (DG2)
[17:53:29] [PASSED] 0x5696 (DG2)
[17:53:29] [PASSED] 0x5697 (DG2)
[17:53:29] [PASSED] 0xB69 (PVC)
[17:53:29] [PASSED] 0xB6E (PVC)
[17:53:29] [PASSED] 0xBD4 (PVC)
[17:53:29] [PASSED] 0xBD5 (PVC)
[17:53:29] [PASSED] 0xBD6 (PVC)
[17:53:29] [PASSED] 0xBD7 (PVC)
[17:53:29] [PASSED] 0xBD8 (PVC)
[17:53:29] [PASSED] 0xBD9 (PVC)
[17:53:29] [PASSED] 0xBDA (PVC)
[17:53:29] [PASSED] 0xBDB (PVC)
[17:53:29] [PASSED] 0xBE0 (PVC)
[17:53:29] [PASSED] 0xBE1 (PVC)
[17:53:29] [PASSED] 0xBE5 (PVC)
[17:53:29] [PASSED] 0x7D40 (METEORLAKE)
[17:53:29] [PASSED] 0x7D45 (METEORLAKE)
[17:53:29] [PASSED] 0x7D55 (METEORLAKE)
[17:53:29] [PASSED] 0x7D60 (METEORLAKE)
[17:53:29] [PASSED] 0x7DD5 (METEORLAKE)
[17:53:29] [PASSED] 0x6420 (LUNARLAKE)
[17:53:29] [PASSED] 0x64A0 (LUNARLAKE)
[17:53:29] [PASSED] 0x64B0 (LUNARLAKE)
[17:53:29] [PASSED] 0xE202 (BATTLEMAGE)
[17:53:29] [PASSED] 0xE209 (BATTLEMAGE)
[17:53:29] [PASSED] 0xE20B (BATTLEMAGE)
[17:53:29] [PASSED] 0xE20C (BATTLEMAGE)
[17:53:29] [PASSED] 0xE20D (BATTLEMAGE)
[17:53:29] [PASSED] 0xE210 (BATTLEMAGE)
[17:53:29] [PASSED] 0xE211 (BATTLEMAGE)
[17:53:29] [PASSED] 0xE212 (BATTLEMAGE)
[17:53:29] [PASSED] 0xE216 (BATTLEMAGE)
[17:53:29] [PASSED] 0xE220 (BATTLEMAGE)
[17:53:29] [PASSED] 0xE221 (BATTLEMAGE)
[17:53:29] [PASSED] 0xE222 (BATTLEMAGE)
[17:53:29] [PASSED] 0xE223 (BATTLEMAGE)
[17:53:29] [PASSED] 0xB080 (PANTHERLAKE)
[17:53:29] [PASSED] 0xB081 (PANTHERLAKE)
[17:53:29] [PASSED] 0xB082 (PANTHERLAKE)
[17:53:29] [PASSED] 0xB083 (PANTHERLAKE)
[17:53:29] [PASSED] 0xB084 (PANTHERLAKE)
[17:53:29] [PASSED] 0xB085 (PANTHERLAKE)
[17:53:29] [PASSED] 0xB086 (PANTHERLAKE)
[17:53:29] [PASSED] 0xB087 (PANTHERLAKE)
[17:53:29] [PASSED] 0xB08F (PANTHERLAKE)
[17:53:29] [PASSED] 0xB090 (PANTHERLAKE)
[17:53:29] [PASSED] 0xB0A0 (PANTHERLAKE)
[17:53:29] [PASSED] 0xB0B0 (PANTHERLAKE)
[17:53:29] [PASSED] 0xFD80 (PANTHERLAKE)
[17:53:29] [PASSED] 0xFD81 (PANTHERLAKE)
[17:53:29] [PASSED] 0xD740 (NOVALAKE_S)
[17:53:29] [PASSED] 0xD741 (NOVALAKE_S)
[17:53:29] [PASSED] 0xD742 (NOVALAKE_S)
[17:53:29] [PASSED] 0xD743 (NOVALAKE_S)
[17:53:29] [PASSED] 0xD744 (NOVALAKE_S)
[17:53:29] [PASSED] 0xD745 (NOVALAKE_S)
[17:53:29] [PASSED] 0x674C (CRESCENTISLAND)
[17:53:29] [PASSED] 0xD750 (NOVALAKE_P)
[17:53:29] [PASSED] 0xD751 (NOVALAKE_P)
[17:53:29] [PASSED] 0xD752 (NOVALAKE_P)
[17:53:29] [PASSED] 0xD753 (NOVALAKE_P)
[17:53:29] [PASSED] 0xD754 (NOVALAKE_P)
[17:53:29] [PASSED] 0xD755 (NOVALAKE_P)
[17:53:29] [PASSED] 0xD756 (NOVALAKE_P)
[17:53:29] [PASSED] 0xD757 (NOVALAKE_P)
[17:53:29] [PASSED] 0xD75F (NOVALAKE_P)
[17:53:29] =============== [PASSED] check_platform_desc ===============
[17:53:29] ===================== [PASSED] xe_pci ======================
[17:53:29] =================== xe_rtp (2 subtests) ====================
[17:53:29] =============== xe_rtp_process_to_sr_tests ================
[17:53:29] [PASSED] coalesce-same-reg
[17:53:29] [PASSED] no-match-no-add
[17:53:29] [PASSED] match-or
[17:53:29] [PASSED] match-or-xfail
[17:53:29] [PASSED] no-match-no-add-multiple-rules
[17:53:29] [PASSED] two-regs-two-entries
[17:53:29] [PASSED] clr-one-set-other
[17:53:29] [PASSED] set-field
[17:53:29] [PASSED] conflict-duplicate
stty: 'standard input': Inappropriate ioctl for device
[17:53:29] [PASSED] conflict-not-disjoint
[17:53:29] [PASSED] conflict-reg-type
[17:53:29] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[17:53:29] ================== xe_rtp_process_tests ===================
[17:53:29] [PASSED] active1
[17:53:29] [PASSED] active2
[17:53:29] [PASSED] active-inactive
[17:53:29] [PASSED] inactive-active
[17:53:29] [PASSED] inactive-1st_or_active-inactive
[17:53:29] [PASSED] inactive-2nd_or_active-inactive
[17:53:29] [PASSED] inactive-last_or_active-inactive
[17:53:29] [PASSED] inactive-no_or_active-inactive
[17:53:29] ============== [PASSED] xe_rtp_process_tests ===============
[17:53:29] ===================== [PASSED] xe_rtp ======================
[17:53:29] ==================== xe_wa (1 subtest) =====================
[17:53:29] ======================== xe_wa_gt =========================
[17:53:29] [PASSED] TIGERLAKE B0
[17:53:29] [PASSED] DG1 A0
[17:53:29] [PASSED] DG1 B0
[17:53:29] [PASSED] ALDERLAKE_S A0
[17:53:29] [PASSED] ALDERLAKE_S B0
[17:53:29] [PASSED] ALDERLAKE_S C0
[17:53:29] [PASSED] ALDERLAKE_S D0
[17:53:29] [PASSED] ALDERLAKE_P A0
[17:53:29] [PASSED] ALDERLAKE_P B0
[17:53:29] [PASSED] ALDERLAKE_P C0
[17:53:29] [PASSED] ALDERLAKE_S RPLS D0
[17:53:29] [PASSED] ALDERLAKE_P RPLU E0
[17:53:29] [PASSED] DG2 G10 C0
[17:53:29] [PASSED] DG2 G11 B1
[17:53:29] [PASSED] DG2 G12 A1
[17:53:29] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[17:53:29] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[17:53:29] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[17:53:29] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[17:53:29] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[17:53:29] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[17:53:29] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[17:53:29] ==================== [PASSED] xe_wa_gt =====================
[17:53:29] ====================== [PASSED] xe_wa ======================
[17:53:29] ============================================================
[17:53:29] Testing complete. Ran 597 tests: passed: 579, skipped: 18
[17:53:29] Elapsed time: 35.878s total, 4.291s configuring, 30.970s building, 0.589s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[17:53:29] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[17:53:31] 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
[17:53:55] Starting KUnit Kernel (1/1)...
[17:53:55] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[17:53:55] ============ drm_test_pick_cmdline (2 subtests) ============
[17:53:55] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[17:53:55] =============== drm_test_pick_cmdline_named ===============
[17:53:55] [PASSED] NTSC
[17:53:55] [PASSED] NTSC-J
[17:53:55] [PASSED] PAL
[17:53:55] [PASSED] PAL-M
[17:53:55] =========== [PASSED] drm_test_pick_cmdline_named ===========
[17:53:55] ============== [PASSED] drm_test_pick_cmdline ==============
[17:53:55] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[17:53:55] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[17:53:55] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[17:53:55] =========== drm_validate_clone_mode (2 subtests) ===========
[17:53:55] ============== drm_test_check_in_clone_mode ===============
[17:53:55] [PASSED] in_clone_mode
[17:53:55] [PASSED] not_in_clone_mode
[17:53:55] ========== [PASSED] drm_test_check_in_clone_mode ===========
[17:53:55] =============== drm_test_check_valid_clones ===============
[17:53:55] [PASSED] not_in_clone_mode
[17:53:55] [PASSED] valid_clone
[17:53:55] [PASSED] invalid_clone
[17:53:55] =========== [PASSED] drm_test_check_valid_clones ===========
[17:53:55] ============= [PASSED] drm_validate_clone_mode =============
[17:53:55] ============= drm_validate_modeset (1 subtest) =============
[17:53:55] [PASSED] drm_test_check_connector_changed_modeset
[17:53:55] ============== [PASSED] drm_validate_modeset ===============
[17:53:55] ====== drm_test_bridge_get_current_state (2 subtests) ======
[17:53:55] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[17:53:55] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[17:53:55] ======== [PASSED] drm_test_bridge_get_current_state ========
[17:53:55] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[17:53:55] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[17:53:55] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[17:53:55] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[17:53:55] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[17:53:55] ============== drm_bridge_alloc (2 subtests) ===============
[17:53:55] [PASSED] drm_test_drm_bridge_alloc_basic
[17:53:55] [PASSED] drm_test_drm_bridge_alloc_get_put
[17:53:55] ================ [PASSED] drm_bridge_alloc =================
[17:53:55] ============= drm_cmdline_parser (40 subtests) =============
[17:53:55] [PASSED] drm_test_cmdline_force_d_only
[17:53:55] [PASSED] drm_test_cmdline_force_D_only_dvi
[17:53:55] [PASSED] drm_test_cmdline_force_D_only_hdmi
[17:53:55] [PASSED] drm_test_cmdline_force_D_only_not_digital
[17:53:55] [PASSED] drm_test_cmdline_force_e_only
[17:53:55] [PASSED] drm_test_cmdline_res
[17:53:55] [PASSED] drm_test_cmdline_res_vesa
[17:53:55] [PASSED] drm_test_cmdline_res_vesa_rblank
[17:53:55] [PASSED] drm_test_cmdline_res_rblank
[17:53:55] [PASSED] drm_test_cmdline_res_bpp
[17:53:55] [PASSED] drm_test_cmdline_res_refresh
[17:53:55] [PASSED] drm_test_cmdline_res_bpp_refresh
[17:53:55] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[17:53:55] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[17:53:55] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[17:53:55] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[17:53:55] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[17:53:55] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[17:53:55] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[17:53:55] [PASSED] drm_test_cmdline_res_margins_force_on
[17:53:55] [PASSED] drm_test_cmdline_res_vesa_margins
[17:53:55] [PASSED] drm_test_cmdline_name
[17:53:55] [PASSED] drm_test_cmdline_name_bpp
[17:53:55] [PASSED] drm_test_cmdline_name_option
[17:53:55] [PASSED] drm_test_cmdline_name_bpp_option
[17:53:55] [PASSED] drm_test_cmdline_rotate_0
[17:53:55] [PASSED] drm_test_cmdline_rotate_90
[17:53:55] [PASSED] drm_test_cmdline_rotate_180
[17:53:55] [PASSED] drm_test_cmdline_rotate_270
[17:53:55] [PASSED] drm_test_cmdline_hmirror
[17:53:55] [PASSED] drm_test_cmdline_vmirror
[17:53:55] [PASSED] drm_test_cmdline_margin_options
[17:53:55] [PASSED] drm_test_cmdline_multiple_options
[17:53:55] [PASSED] drm_test_cmdline_bpp_extra_and_option
[17:53:55] [PASSED] drm_test_cmdline_extra_and_option
[17:53:55] [PASSED] drm_test_cmdline_freestanding_options
[17:53:55] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[17:53:55] [PASSED] drm_test_cmdline_panel_orientation
[17:53:55] ================ drm_test_cmdline_invalid =================
[17:53:55] [PASSED] margin_only
[17:53:55] [PASSED] interlace_only
[17:53:55] [PASSED] res_missing_x
[17:53:55] [PASSED] res_missing_y
[17:53:55] [PASSED] res_bad_y
[17:53:55] [PASSED] res_missing_y_bpp
[17:53:55] [PASSED] res_bad_bpp
[17:53:55] [PASSED] res_bad_refresh
[17:53:55] [PASSED] res_bpp_refresh_force_on_off
[17:53:55] [PASSED] res_invalid_mode
[17:53:55] [PASSED] res_bpp_wrong_place_mode
[17:53:55] [PASSED] name_bpp_refresh
[17:53:55] [PASSED] name_refresh
[17:53:55] [PASSED] name_refresh_wrong_mode
[17:53:55] [PASSED] name_refresh_invalid_mode
[17:53:55] [PASSED] rotate_multiple
[17:53:55] [PASSED] rotate_invalid_val
[17:53:55] [PASSED] rotate_truncated
[17:53:55] [PASSED] invalid_option
[17:53:55] [PASSED] invalid_tv_option
[17:53:55] [PASSED] truncated_tv_option
[17:53:55] ============ [PASSED] drm_test_cmdline_invalid =============
[17:53:55] =============== drm_test_cmdline_tv_options ===============
[17:53:55] [PASSED] NTSC
[17:53:55] [PASSED] NTSC_443
[17:53:55] [PASSED] NTSC_J
[17:53:55] [PASSED] PAL
[17:53:55] [PASSED] PAL_M
[17:53:55] [PASSED] PAL_N
[17:53:55] [PASSED] SECAM
[17:53:55] [PASSED] MONO_525
[17:53:55] [PASSED] MONO_625
[17:53:55] =========== [PASSED] drm_test_cmdline_tv_options ===========
[17:53:55] =============== [PASSED] drm_cmdline_parser ================
[17:53:55] ========== drmm_connector_hdmi_init (20 subtests) ==========
[17:53:55] [PASSED] drm_test_connector_hdmi_init_valid
[17:53:55] [PASSED] drm_test_connector_hdmi_init_bpc_8
[17:53:55] [PASSED] drm_test_connector_hdmi_init_bpc_10
[17:53:55] [PASSED] drm_test_connector_hdmi_init_bpc_12
[17:53:55] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[17:53:55] [PASSED] drm_test_connector_hdmi_init_bpc_null
[17:53:55] [PASSED] drm_test_connector_hdmi_init_formats_empty
[17:53:55] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[17:53:55] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[17:53:55] [PASSED] supported_formats=0x9 yuv420_allowed=1
[17:53:55] [PASSED] supported_formats=0x9 yuv420_allowed=0
[17:53:55] [PASSED] supported_formats=0x5 yuv420_allowed=1
[17:53:55] [PASSED] supported_formats=0x5 yuv420_allowed=0
[17:53:55] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[17:53:55] [PASSED] drm_test_connector_hdmi_init_null_ddc
[17:53:55] [PASSED] drm_test_connector_hdmi_init_null_product
[17:53:55] [PASSED] drm_test_connector_hdmi_init_null_vendor
[17:53:55] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[17:53:55] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[17:53:55] [PASSED] drm_test_connector_hdmi_init_product_valid
[17:53:55] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[17:53:55] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[17:53:55] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[17:53:55] ========= drm_test_connector_hdmi_init_type_valid =========
[17:53:55] [PASSED] HDMI-A
[17:53:55] [PASSED] HDMI-B
[17:53:55] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[17:53:55] ======== drm_test_connector_hdmi_init_type_invalid ========
[17:53:55] [PASSED] Unknown
[17:53:55] [PASSED] VGA
[17:53:55] [PASSED] DVI-I
[17:53:55] [PASSED] DVI-D
[17:53:55] [PASSED] DVI-A
[17:53:55] [PASSED] Composite
[17:53:55] [PASSED] SVIDEO
[17:53:55] [PASSED] LVDS
[17:53:55] [PASSED] Component
[17:53:55] [PASSED] DIN
[17:53:55] [PASSED] DP
[17:53:55] [PASSED] TV
[17:53:55] [PASSED] eDP
[17:53:55] [PASSED] Virtual
[17:53:55] [PASSED] DSI
[17:53:55] [PASSED] DPI
[17:53:55] [PASSED] Writeback
[17:53:55] [PASSED] SPI
[17:53:55] [PASSED] USB
[17:53:55] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[17:53:55] ============ [PASSED] drmm_connector_hdmi_init =============
[17:53:55] ============= drmm_connector_init (3 subtests) =============
[17:53:55] [PASSED] drm_test_drmm_connector_init
[17:53:55] [PASSED] drm_test_drmm_connector_init_null_ddc
[17:53:55] ========= drm_test_drmm_connector_init_type_valid =========
[17:53:55] [PASSED] Unknown
[17:53:55] [PASSED] VGA
[17:53:55] [PASSED] DVI-I
[17:53:55] [PASSED] DVI-D
[17:53:55] [PASSED] DVI-A
[17:53:55] [PASSED] Composite
[17:53:55] [PASSED] SVIDEO
[17:53:55] [PASSED] LVDS
[17:53:55] [PASSED] Component
[17:53:55] [PASSED] DIN
[17:53:55] [PASSED] DP
[17:53:55] [PASSED] HDMI-A
[17:53:55] [PASSED] HDMI-B
[17:53:55] [PASSED] TV
[17:53:55] [PASSED] eDP
[17:53:55] [PASSED] Virtual
[17:53:55] [PASSED] DSI
[17:53:55] [PASSED] DPI
[17:53:55] [PASSED] Writeback
[17:53:55] [PASSED] SPI
[17:53:55] [PASSED] USB
[17:53:55] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[17:53:55] =============== [PASSED] drmm_connector_init ===============
[17:53:55] ========= drm_connector_dynamic_init (6 subtests) ==========
[17:53:55] [PASSED] drm_test_drm_connector_dynamic_init
[17:53:55] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[17:53:55] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[17:53:55] [PASSED] drm_test_drm_connector_dynamic_init_properties
[17:53:55] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[17:53:55] [PASSED] Unknown
[17:53:55] [PASSED] VGA
[17:53:55] [PASSED] DVI-I
[17:53:55] [PASSED] DVI-D
[17:53:55] [PASSED] DVI-A
[17:53:55] [PASSED] Composite
[17:53:55] [PASSED] SVIDEO
[17:53:55] [PASSED] LVDS
[17:53:55] [PASSED] Component
[17:53:55] [PASSED] DIN
[17:53:55] [PASSED] DP
[17:53:55] [PASSED] HDMI-A
[17:53:55] [PASSED] HDMI-B
[17:53:55] [PASSED] TV
[17:53:55] [PASSED] eDP
[17:53:55] [PASSED] Virtual
[17:53:55] [PASSED] DSI
[17:53:55] [PASSED] DPI
[17:53:55] [PASSED] Writeback
[17:53:55] [PASSED] SPI
[17:53:55] [PASSED] USB
[17:53:55] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[17:53:55] ======== drm_test_drm_connector_dynamic_init_name =========
[17:53:55] [PASSED] Unknown
[17:53:55] [PASSED] VGA
[17:53:55] [PASSED] DVI-I
[17:53:55] [PASSED] DVI-D
[17:53:55] [PASSED] DVI-A
[17:53:55] [PASSED] Composite
[17:53:55] [PASSED] SVIDEO
[17:53:55] [PASSED] LVDS
[17:53:55] [PASSED] Component
[17:53:55] [PASSED] DIN
[17:53:55] [PASSED] DP
[17:53:55] [PASSED] HDMI-A
[17:53:55] [PASSED] HDMI-B
[17:53:55] [PASSED] TV
[17:53:55] [PASSED] eDP
[17:53:55] [PASSED] Virtual
[17:53:55] [PASSED] DSI
[17:53:55] [PASSED] DPI
[17:53:55] [PASSED] Writeback
[17:53:55] [PASSED] SPI
[17:53:55] [PASSED] USB
[17:53:55] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[17:53:55] =========== [PASSED] drm_connector_dynamic_init ============
[17:53:55] ==== drm_connector_dynamic_register_early (4 subtests) =====
[17:53:55] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[17:53:55] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[17:53:55] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[17:53:55] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[17:53:55] ====== [PASSED] drm_connector_dynamic_register_early =======
[17:53:55] ======= drm_connector_dynamic_register (7 subtests) ========
[17:53:55] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[17:53:55] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[17:53:55] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[17:53:55] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[17:53:55] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[17:53:55] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[17:53:55] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[17:53:55] ========= [PASSED] drm_connector_dynamic_register ==========
[17:53:55] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[17:53:55] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[17:53:55] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[17:53:55] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[17:53:55] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[17:53:55] ========== drm_test_get_tv_mode_from_name_valid ===========
[17:53:55] [PASSED] NTSC
[17:53:55] [PASSED] NTSC-443
[17:53:55] [PASSED] NTSC-J
[17:53:55] [PASSED] PAL
[17:53:55] [PASSED] PAL-M
[17:53:55] [PASSED] PAL-N
[17:53:55] [PASSED] SECAM
[17:53:55] [PASSED] Mono
[17:53:55] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[17:53:55] [PASSED] drm_test_get_tv_mode_from_name_truncated
[17:53:55] ============ [PASSED] drm_get_tv_mode_from_name ============
[17:53:55] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[17:53:55] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[17:53:55] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[17:53:55] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[17:53:55] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[17:53:55] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[17:53:55] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[17:53:55] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[17:53:55] [PASSED] VIC 96
[17:53:55] [PASSED] VIC 97
[17:53:55] [PASSED] VIC 101
[17:53:55] [PASSED] VIC 102
[17:53:55] [PASSED] VIC 106
[17:53:55] [PASSED] VIC 107
[17:53:55] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[17:53:55] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[17:53:55] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[17:53:55] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[17:53:55] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[17:53:55] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[17:53:55] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[17:53:55] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[17:53:55] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[17:53:55] [PASSED] Automatic
[17:53:55] [PASSED] Full
[17:53:55] [PASSED] Limited 16:235
[17:53:55] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[17:53:55] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[17:53:55] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[17:53:55] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[17:53:55] === drm_test_drm_hdmi_connector_get_output_format_name ====
[17:53:55] [PASSED] RGB
[17:53:55] [PASSED] YUV 4:2:0
[17:53:55] [PASSED] YUV 4:2:2
[17:53:55] [PASSED] YUV 4:4:4
[17:53:55] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[17:53:55] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[17:53:55] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[17:53:55] ============= drm_damage_helper (21 subtests) ==============
[17:53:55] [PASSED] drm_test_damage_iter_no_damage
[17:53:55] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[17:53:55] [PASSED] drm_test_damage_iter_no_damage_src_moved
[17:53:55] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[17:53:55] [PASSED] drm_test_damage_iter_no_damage_not_visible
[17:53:55] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[17:53:55] [PASSED] drm_test_damage_iter_no_damage_no_fb
[17:53:55] [PASSED] drm_test_damage_iter_simple_damage
[17:53:55] [PASSED] drm_test_damage_iter_single_damage
[17:53:55] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[17:53:55] [PASSED] drm_test_damage_iter_single_damage_outside_src
[17:53:55] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[17:53:55] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[17:53:55] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[17:53:55] [PASSED] drm_test_damage_iter_single_damage_src_moved
[17:53:55] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[17:53:55] [PASSED] drm_test_damage_iter_damage
[17:53:55] [PASSED] drm_test_damage_iter_damage_one_intersect
[17:53:55] [PASSED] drm_test_damage_iter_damage_one_outside
[17:53:55] [PASSED] drm_test_damage_iter_damage_src_moved
[17:53:55] [PASSED] drm_test_damage_iter_damage_not_visible
[17:53:55] ================ [PASSED] drm_damage_helper ================
[17:53:55] ============== drm_dp_mst_helper (3 subtests) ==============
[17:53:55] ============== drm_test_dp_mst_calc_pbn_mode ==============
[17:53:55] [PASSED] Clock 154000 BPP 30 DSC disabled
[17:53:55] [PASSED] Clock 234000 BPP 30 DSC disabled
[17:53:55] [PASSED] Clock 297000 BPP 24 DSC disabled
[17:53:55] [PASSED] Clock 332880 BPP 24 DSC enabled
[17:53:55] [PASSED] Clock 324540 BPP 24 DSC enabled
[17:53:55] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[17:53:55] ============== drm_test_dp_mst_calc_pbn_div ===============
[17:53:55] [PASSED] Link rate 2000000 lane count 4
[17:53:55] [PASSED] Link rate 2000000 lane count 2
[17:53:55] [PASSED] Link rate 2000000 lane count 1
[17:53:55] [PASSED] Link rate 1350000 lane count 4
[17:53:55] [PASSED] Link rate 1350000 lane count 2
[17:53:55] [PASSED] Link rate 1350000 lane count 1
[17:53:55] [PASSED] Link rate 1000000 lane count 4
[17:53:55] [PASSED] Link rate 1000000 lane count 2
[17:53:55] [PASSED] Link rate 1000000 lane count 1
[17:53:55] [PASSED] Link rate 810000 lane count 4
[17:53:55] [PASSED] Link rate 810000 lane count 2
[17:53:55] [PASSED] Link rate 810000 lane count 1
[17:53:55] [PASSED] Link rate 540000 lane count 4
[17:53:55] [PASSED] Link rate 540000 lane count 2
[17:53:55] [PASSED] Link rate 540000 lane count 1
[17:53:55] [PASSED] Link rate 270000 lane count 4
[17:53:55] [PASSED] Link rate 270000 lane count 2
[17:53:55] [PASSED] Link rate 270000 lane count 1
[17:53:55] [PASSED] Link rate 162000 lane count 4
[17:53:55] [PASSED] Link rate 162000 lane count 2
[17:53:55] [PASSED] Link rate 162000 lane count 1
[17:53:55] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[17:53:55] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[17:53:55] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[17:53:55] [PASSED] DP_POWER_UP_PHY with port number
[17:53:55] [PASSED] DP_POWER_DOWN_PHY with port number
[17:53:55] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[17:53:55] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[17:53:55] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[17:53:55] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[17:53:55] [PASSED] DP_QUERY_PAYLOAD with port number
[17:53:55] [PASSED] DP_QUERY_PAYLOAD with VCPI
[17:53:55] [PASSED] DP_REMOTE_DPCD_READ with port number
[17:53:55] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[17:53:55] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[17:53:55] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[17:53:55] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[17:53:55] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[17:53:55] [PASSED] DP_REMOTE_I2C_READ with port number
[17:53:55] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[17:53:55] [PASSED] DP_REMOTE_I2C_READ with transactions array
[17:53:55] [PASSED] DP_REMOTE_I2C_WRITE with port number
[17:53:55] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[17:53:55] [PASSED] DP_REMOTE_I2C_WRITE with data array
[17:53:55] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[17:53:55] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[17:53:55] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[17:53:55] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[17:53:55] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[17:53:55] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[17:53:55] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[17:53:55] ================ [PASSED] drm_dp_mst_helper ================
[17:53:55] ================== drm_exec (7 subtests) ===================
[17:53:55] [PASSED] sanitycheck
[17:53:55] [PASSED] test_lock
[17:53:55] [PASSED] test_lock_unlock
[17:53:55] [PASSED] test_duplicates
[17:53:55] [PASSED] test_prepare
[17:53:55] [PASSED] test_prepare_array
[17:53:55] [PASSED] test_multiple_loops
[17:53:55] ==================== [PASSED] drm_exec =====================
[17:53:55] =========== drm_format_helper_test (17 subtests) ===========
[17:53:55] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[17:53:55] [PASSED] single_pixel_source_buffer
[17:53:55] [PASSED] single_pixel_clip_rectangle
[17:53:55] [PASSED] well_known_colors
[17:53:55] [PASSED] destination_pitch
[17:53:55] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[17:53:55] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[17:53:55] [PASSED] single_pixel_source_buffer
[17:53:55] [PASSED] single_pixel_clip_rectangle
[17:53:55] [PASSED] well_known_colors
[17:53:55] [PASSED] destination_pitch
[17:53:55] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[17:53:55] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[17:53:55] [PASSED] single_pixel_source_buffer
[17:53:55] [PASSED] single_pixel_clip_rectangle
[17:53:55] [PASSED] well_known_colors
[17:53:55] [PASSED] destination_pitch
[17:53:55] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[17:53:55] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[17:53:55] [PASSED] single_pixel_source_buffer
[17:53:55] [PASSED] single_pixel_clip_rectangle
[17:53:55] [PASSED] well_known_colors
[17:53:55] [PASSED] destination_pitch
[17:53:55] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[17:53:55] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[17:53:55] [PASSED] single_pixel_source_buffer
[17:53:55] [PASSED] single_pixel_clip_rectangle
[17:53:55] [PASSED] well_known_colors
[17:53:55] [PASSED] destination_pitch
[17:53:55] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[17:53:55] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[17:53:55] [PASSED] single_pixel_source_buffer
[17:53:55] [PASSED] single_pixel_clip_rectangle
[17:53:55] [PASSED] well_known_colors
[17:53:55] [PASSED] destination_pitch
[17:53:55] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[17:53:55] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[17:53:55] [PASSED] single_pixel_source_buffer
[17:53:55] [PASSED] single_pixel_clip_rectangle
[17:53:55] [PASSED] well_known_colors
[17:53:55] [PASSED] destination_pitch
[17:53:55] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[17:53:55] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[17:53:55] [PASSED] single_pixel_source_buffer
[17:53:55] [PASSED] single_pixel_clip_rectangle
[17:53:55] [PASSED] well_known_colors
[17:53:55] [PASSED] destination_pitch
[17:53:55] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[17:53:55] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[17:53:55] [PASSED] single_pixel_source_buffer
[17:53:55] [PASSED] single_pixel_clip_rectangle
[17:53:55] [PASSED] well_known_colors
[17:53:55] [PASSED] destination_pitch
[17:53:55] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[17:53:55] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[17:53:55] [PASSED] single_pixel_source_buffer
[17:53:55] [PASSED] single_pixel_clip_rectangle
[17:53:55] [PASSED] well_known_colors
[17:53:55] [PASSED] destination_pitch
[17:53:55] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[17:53:55] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[17:53:55] [PASSED] single_pixel_source_buffer
[17:53:55] [PASSED] single_pixel_clip_rectangle
[17:53:55] [PASSED] well_known_colors
[17:53:55] [PASSED] destination_pitch
[17:53:55] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[17:53:55] ============== drm_test_fb_xrgb8888_to_mono ===============
[17:53:55] [PASSED] single_pixel_source_buffer
[17:53:55] [PASSED] single_pixel_clip_rectangle
[17:53:55] [PASSED] well_known_colors
[17:53:55] [PASSED] destination_pitch
[17:53:55] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[17:53:55] ==================== drm_test_fb_swab =====================
[17:53:55] [PASSED] single_pixel_source_buffer
[17:53:55] [PASSED] single_pixel_clip_rectangle
[17:53:55] [PASSED] well_known_colors
[17:53:55] [PASSED] destination_pitch
[17:53:55] ================ [PASSED] drm_test_fb_swab =================
[17:53:55] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[17:53:55] [PASSED] single_pixel_source_buffer
[17:53:55] [PASSED] single_pixel_clip_rectangle
[17:53:55] [PASSED] well_known_colors
[17:53:55] [PASSED] destination_pitch
[17:53:55] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[17:53:55] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[17:53:55] [PASSED] single_pixel_source_buffer
[17:53:55] [PASSED] single_pixel_clip_rectangle
[17:53:55] [PASSED] well_known_colors
[17:53:55] [PASSED] destination_pitch
[17:53:55] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[17:53:55] ================= drm_test_fb_clip_offset =================
[17:53:55] [PASSED] pass through
[17:53:55] [PASSED] horizontal offset
[17:53:55] [PASSED] vertical offset
[17:53:55] [PASSED] horizontal and vertical offset
[17:53:55] [PASSED] horizontal offset (custom pitch)
[17:53:55] [PASSED] vertical offset (custom pitch)
[17:53:55] [PASSED] horizontal and vertical offset (custom pitch)
[17:53:55] ============= [PASSED] drm_test_fb_clip_offset =============
[17:53:55] =================== drm_test_fb_memcpy ====================
[17:53:55] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[17:53:55] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[17:53:55] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[17:53:55] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[17:53:55] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[17:53:55] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[17:53:55] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[17:53:55] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[17:53:55] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[17:53:55] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[17:53:55] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[17:53:55] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[17:53:55] =============== [PASSED] drm_test_fb_memcpy ================
[17:53:55] ============= [PASSED] drm_format_helper_test ==============
[17:53:55] ================= drm_format (18 subtests) =================
[17:53:55] [PASSED] drm_test_format_block_width_invalid
[17:53:55] [PASSED] drm_test_format_block_width_one_plane
[17:53:55] [PASSED] drm_test_format_block_width_two_plane
[17:53:55] [PASSED] drm_test_format_block_width_three_plane
[17:53:55] [PASSED] drm_test_format_block_width_tiled
[17:53:55] [PASSED] drm_test_format_block_height_invalid
[17:53:55] [PASSED] drm_test_format_block_height_one_plane
[17:53:55] [PASSED] drm_test_format_block_height_two_plane
[17:53:55] [PASSED] drm_test_format_block_height_three_plane
[17:53:55] [PASSED] drm_test_format_block_height_tiled
[17:53:55] [PASSED] drm_test_format_min_pitch_invalid
[17:53:55] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[17:53:55] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[17:53:55] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[17:53:55] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[17:53:55] [PASSED] drm_test_format_min_pitch_two_plane
[17:53:55] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[17:53:55] [PASSED] drm_test_format_min_pitch_tiled
[17:53:55] =================== [PASSED] drm_format ====================
[17:53:55] ============== drm_framebuffer (10 subtests) ===============
[17:53:55] ========== drm_test_framebuffer_check_src_coords ==========
[17:53:55] [PASSED] Success: source fits into fb
[17:53:55] [PASSED] Fail: overflowing fb with x-axis coordinate
[17:53:55] [PASSED] Fail: overflowing fb with y-axis coordinate
[17:53:55] [PASSED] Fail: overflowing fb with source width
[17:53:55] [PASSED] Fail: overflowing fb with source height
[17:53:55] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[17:53:55] [PASSED] drm_test_framebuffer_cleanup
[17:53:55] =============== drm_test_framebuffer_create ===============
[17:53:55] [PASSED] ABGR8888 normal sizes
[17:53:55] [PASSED] ABGR8888 max sizes
[17:53:55] [PASSED] ABGR8888 pitch greater than min required
[17:53:55] [PASSED] ABGR8888 pitch less than min required
[17:53:55] [PASSED] ABGR8888 Invalid width
[17:53:55] [PASSED] ABGR8888 Invalid buffer handle
[17:53:55] [PASSED] No pixel format
[17:53:55] [PASSED] ABGR8888 Width 0
[17:53:55] [PASSED] ABGR8888 Height 0
[17:53:55] [PASSED] ABGR8888 Out of bound height * pitch combination
[17:53:55] [PASSED] ABGR8888 Large buffer offset
[17:53:55] [PASSED] ABGR8888 Buffer offset for inexistent plane
[17:53:55] [PASSED] ABGR8888 Invalid flag
[17:53:55] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[17:53:55] [PASSED] ABGR8888 Valid buffer modifier
[17:53:55] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[17:53:55] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[17:53:55] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[17:53:55] [PASSED] NV12 Normal sizes
[17:53:55] [PASSED] NV12 Max sizes
[17:53:55] [PASSED] NV12 Invalid pitch
[17:53:55] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[17:53:55] [PASSED] NV12 different modifier per-plane
[17:53:55] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[17:53:55] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[17:53:55] [PASSED] NV12 Modifier for inexistent plane
[17:53:55] [PASSED] NV12 Handle for inexistent plane
[17:53:55] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[17:53:55] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[17:53:55] [PASSED] YVU420 Normal sizes
[17:53:55] [PASSED] YVU420 Max sizes
[17:53:55] [PASSED] YVU420 Invalid pitch
[17:53:55] [PASSED] YVU420 Different pitches
[17:53:55] [PASSED] YVU420 Different buffer offsets/pitches
[17:53:55] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[17:53:55] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[17:53:55] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[17:53:55] [PASSED] YVU420 Valid modifier
[17:53:55] [PASSED] YVU420 Different modifiers per plane
[17:53:55] [PASSED] YVU420 Modifier for inexistent plane
[17:53:55] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[17:53:55] [PASSED] X0L2 Normal sizes
[17:53:55] [PASSED] X0L2 Max sizes
[17:53:55] [PASSED] X0L2 Invalid pitch
[17:53:55] [PASSED] X0L2 Pitch greater than minimum required
[17:53:55] [PASSED] X0L2 Handle for inexistent plane
[17:53:55] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[17:53:55] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[17:53:55] [PASSED] X0L2 Valid modifier
[17:53:55] [PASSED] X0L2 Modifier for inexistent plane
[17:53:55] =========== [PASSED] drm_test_framebuffer_create ===========
[17:53:55] [PASSED] drm_test_framebuffer_free
[17:53:55] [PASSED] drm_test_framebuffer_init
[17:53:55] [PASSED] drm_test_framebuffer_init_bad_format
[17:53:55] [PASSED] drm_test_framebuffer_init_dev_mismatch
[17:53:55] [PASSED] drm_test_framebuffer_lookup
[17:53:55] [PASSED] drm_test_framebuffer_lookup_inexistent
[17:53:55] [PASSED] drm_test_framebuffer_modifiers_not_supported
[17:53:55] ================= [PASSED] drm_framebuffer =================
[17:53:55] ================ drm_gem_shmem (8 subtests) ================
[17:53:55] [PASSED] drm_gem_shmem_test_obj_create
[17:53:55] [PASSED] drm_gem_shmem_test_obj_create_private
[17:53:55] [PASSED] drm_gem_shmem_test_pin_pages
[17:53:55] [PASSED] drm_gem_shmem_test_vmap
[17:53:55] [PASSED] drm_gem_shmem_test_get_sg_table
[17:53:55] [PASSED] drm_gem_shmem_test_get_pages_sgt
[17:53:55] [PASSED] drm_gem_shmem_test_madvise
[17:53:55] [PASSED] drm_gem_shmem_test_purge
[17:53:55] ================== [PASSED] drm_gem_shmem ==================
[17:53:55] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[17:53:55] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[17:53:55] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[17:53:55] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[17:53:55] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[17:53:55] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[17:53:55] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[17:53:55] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[17:53:55] [PASSED] Automatic
[17:53:55] [PASSED] Full
[17:53:55] [PASSED] Limited 16:235
[17:53:55] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[17:53:55] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[17:53:55] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[17:53:55] [PASSED] drm_test_check_disable_connector
[17:53:55] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[17:53:55] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[17:53:55] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[17:53:55] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[17:53:55] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[17:53:55] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[17:53:55] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[17:53:55] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[17:53:55] [PASSED] drm_test_check_output_bpc_dvi
[17:53:55] [PASSED] drm_test_check_output_bpc_format_vic_1
[17:53:55] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[17:53:55] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[17:53:55] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[17:53:55] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[17:53:55] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[17:53:55] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[17:53:55] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[17:53:55] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[17:53:55] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[17:53:55] [PASSED] drm_test_check_broadcast_rgb_value
[17:53:55] [PASSED] drm_test_check_bpc_8_value
[17:53:55] [PASSED] drm_test_check_bpc_10_value
[17:53:55] [PASSED] drm_test_check_bpc_12_value
[17:53:55] [PASSED] drm_test_check_format_value
[17:53:55] [PASSED] drm_test_check_tmds_char_value
[17:53:55] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[17:53:55] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[17:53:55] [PASSED] drm_test_check_mode_valid
[17:53:55] [PASSED] drm_test_check_mode_valid_reject
[17:53:55] [PASSED] drm_test_check_mode_valid_reject_rate
[17:53:55] [PASSED] drm_test_check_mode_valid_reject_max_clock
[17:53:55] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[17:53:55] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[17:53:55] [PASSED] drm_test_check_infoframes
[17:53:55] [PASSED] drm_test_check_reject_avi_infoframe
[17:53:55] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[17:53:55] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[17:53:55] [PASSED] drm_test_check_reject_audio_infoframe
[17:53:55] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[17:53:55] ================= drm_managed (2 subtests) =================
[17:53:55] [PASSED] drm_test_managed_release_action
[17:53:55] [PASSED] drm_test_managed_run_action
[17:53:55] =================== [PASSED] drm_managed ===================
[17:53:55] =================== drm_mm (6 subtests) ====================
[17:53:55] [PASSED] drm_test_mm_init
[17:53:55] [PASSED] drm_test_mm_debug
[17:53:55] [PASSED] drm_test_mm_align32
[17:53:55] [PASSED] drm_test_mm_align64
[17:53:55] [PASSED] drm_test_mm_lowest
[17:53:55] [PASSED] drm_test_mm_highest
[17:53:55] ===================== [PASSED] drm_mm ======================
[17:53:55] ============= drm_modes_analog_tv (5 subtests) =============
[17:53:55] [PASSED] drm_test_modes_analog_tv_mono_576i
[17:53:55] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[17:53:55] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[17:53:55] [PASSED] drm_test_modes_analog_tv_pal_576i
[17:53:55] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[17:53:55] =============== [PASSED] drm_modes_analog_tv ===============
[17:53:55] ============== drm_plane_helper (2 subtests) ===============
[17:53:55] =============== drm_test_check_plane_state ================
[17:53:55] [PASSED] clipping_simple
[17:53:55] [PASSED] clipping_rotate_reflect
[17:53:55] [PASSED] positioning_simple
[17:53:55] [PASSED] upscaling
[17:53:55] [PASSED] downscaling
[17:53:55] [PASSED] rounding1
[17:53:55] [PASSED] rounding2
[17:53:55] [PASSED] rounding3
[17:53:55] [PASSED] rounding4
[17:53:55] =========== [PASSED] drm_test_check_plane_state ============
[17:53:55] =========== drm_test_check_invalid_plane_state ============
[17:53:55] [PASSED] positioning_invalid
[17:53:55] [PASSED] upscaling_invalid
[17:53:55] [PASSED] downscaling_invalid
[17:53:55] ======= [PASSED] drm_test_check_invalid_plane_state ========
[17:53:55] ================ [PASSED] drm_plane_helper =================
[17:53:55] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[17:53:55] ====== drm_test_connector_helper_tv_get_modes_check =======
[17:53:55] [PASSED] None
[17:53:55] [PASSED] PAL
[17:53:55] [PASSED] NTSC
[17:53:55] [PASSED] Both, NTSC Default
[17:53:55] [PASSED] Both, PAL Default
[17:53:55] [PASSED] Both, NTSC Default, with PAL on command-line
[17:53:55] [PASSED] Both, PAL Default, with NTSC on command-line
[17:53:55] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[17:53:55] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[17:53:55] ================== drm_rect (9 subtests) ===================
[17:53:55] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[17:53:55] [PASSED] drm_test_rect_clip_scaled_not_clipped
[17:53:55] [PASSED] drm_test_rect_clip_scaled_clipped
[17:53:55] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[17:53:55] ================= drm_test_rect_intersect =================
[17:53:55] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[17:53:55] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[17:53:55] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[17:53:55] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[17:53:55] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[17:53:55] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[17:53:55] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[17:53:55] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[17:53:55] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[17:53:55] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[17:53:55] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[17:53:55] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[17:53:55] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[17:53:55] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[17:53:55] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[17:53:55] ============= [PASSED] drm_test_rect_intersect =============
[17:53:55] ================ drm_test_rect_calc_hscale ================
[17:53:55] [PASSED] normal use
[17:53:55] [PASSED] out of max range
[17:53:55] [PASSED] out of min range
[17:53:55] [PASSED] zero dst
[17:53:55] [PASSED] negative src
[17:53:55] [PASSED] negative dst
[17:53:55] ============ [PASSED] drm_test_rect_calc_hscale ============
[17:53:55] ================ drm_test_rect_calc_vscale ================
[17:53:55] [PASSED] normal use
[17:53:55] [PASSED] out of max range
[17:53:55] [PASSED] out of min range
[17:53:55] [PASSED] zero dst
[17:53:55] [PASSED] negative src
[17:53:55] [PASSED] negative dst
stty: 'standard input': Inappropriate ioctl for device
[17:53:55] ============ [PASSED] drm_test_rect_calc_vscale ============
[17:53:55] ================== drm_test_rect_rotate ===================
[17:53:55] [PASSED] reflect-x
[17:53:55] [PASSED] reflect-y
[17:53:55] [PASSED] rotate-0
[17:53:55] [PASSED] rotate-90
[17:53:55] [PASSED] rotate-180
[17:53:55] [PASSED] rotate-270
[17:53:55] ============== [PASSED] drm_test_rect_rotate ===============
[17:53:55] ================ drm_test_rect_rotate_inv =================
[17:53:55] [PASSED] reflect-x
[17:53:55] [PASSED] reflect-y
[17:53:55] [PASSED] rotate-0
[17:53:55] [PASSED] rotate-90
[17:53:55] [PASSED] rotate-180
[17:53:55] [PASSED] rotate-270
[17:53:55] ============ [PASSED] drm_test_rect_rotate_inv =============
[17:53:55] ==================== [PASSED] drm_rect =====================
[17:53:55] ============ drm_sysfb_modeset_test (1 subtest) ============
[17:53:55] ============ drm_test_sysfb_build_fourcc_list =============
[17:53:55] [PASSED] no native formats
[17:53:55] [PASSED] XRGB8888 as native format
[17:53:55] [PASSED] remove duplicates
[17:53:55] [PASSED] convert alpha formats
[17:53:55] [PASSED] random formats
[17:53:55] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[17:53:55] ============= [PASSED] drm_sysfb_modeset_test ==============
[17:53:55] ================== drm_fixp (2 subtests) ===================
[17:53:55] [PASSED] drm_test_int2fixp
[17:53:55] [PASSED] drm_test_sm2fixp
[17:53:55] ==================== [PASSED] drm_fixp =====================
[17:53:55] ============================================================
[17:53:55] Testing complete. Ran 621 tests: passed: 621
[17:53:55] Elapsed time: 25.819s total, 1.729s configuring, 23.921s building, 0.166s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[17:53:55] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[17:53:57] 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
[17:54:06] Starting KUnit Kernel (1/1)...
[17:54:06] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[17:54:06] ================= ttm_device (5 subtests) ==================
[17:54:06] [PASSED] ttm_device_init_basic
[17:54:06] [PASSED] ttm_device_init_multiple
[17:54:06] [PASSED] ttm_device_fini_basic
[17:54:06] [PASSED] ttm_device_init_no_vma_man
[17:54:06] ================== ttm_device_init_pools ==================
[17:54:06] [PASSED] No DMA allocations, no DMA32 required
[17:54:06] [PASSED] DMA allocations, DMA32 required
[17:54:06] [PASSED] No DMA allocations, DMA32 required
[17:54:06] [PASSED] DMA allocations, no DMA32 required
[17:54:06] ============== [PASSED] ttm_device_init_pools ==============
[17:54:06] =================== [PASSED] ttm_device ====================
[17:54:06] ================== ttm_pool (8 subtests) ===================
[17:54:06] ================== ttm_pool_alloc_basic ===================
[17:54:06] [PASSED] One page
[17:54:06] [PASSED] More than one page
[17:54:06] [PASSED] Above the allocation limit
[17:54:06] [PASSED] One page, with coherent DMA mappings enabled
[17:54:06] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[17:54:06] ============== [PASSED] ttm_pool_alloc_basic ===============
[17:54:06] ============== ttm_pool_alloc_basic_dma_addr ==============
[17:54:06] [PASSED] One page
[17:54:06] [PASSED] More than one page
[17:54:06] [PASSED] Above the allocation limit
[17:54:06] [PASSED] One page, with coherent DMA mappings enabled
[17:54:06] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[17:54:06] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[17:54:06] [PASSED] ttm_pool_alloc_order_caching_match
[17:54:06] [PASSED] ttm_pool_alloc_caching_mismatch
[17:54:06] [PASSED] ttm_pool_alloc_order_mismatch
[17:54:06] [PASSED] ttm_pool_free_dma_alloc
[17:54:06] [PASSED] ttm_pool_free_no_dma_alloc
[17:54:06] [PASSED] ttm_pool_fini_basic
[17:54:06] ==================== [PASSED] ttm_pool =====================
[17:54:06] ================ ttm_resource (8 subtests) =================
[17:54:06] ================= ttm_resource_init_basic =================
[17:54:06] [PASSED] Init resource in TTM_PL_SYSTEM
[17:54:06] [PASSED] Init resource in TTM_PL_VRAM
[17:54:06] [PASSED] Init resource in a private placement
[17:54:06] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[17:54:06] ============= [PASSED] ttm_resource_init_basic =============
[17:54:06] [PASSED] ttm_resource_init_pinned
[17:54:06] [PASSED] ttm_resource_fini_basic
[17:54:06] [PASSED] ttm_resource_manager_init_basic
[17:54:06] [PASSED] ttm_resource_manager_usage_basic
[17:54:06] [PASSED] ttm_resource_manager_set_used_basic
[17:54:06] [PASSED] ttm_sys_man_alloc_basic
[17:54:06] [PASSED] ttm_sys_man_free_basic
[17:54:06] ================== [PASSED] ttm_resource ===================
[17:54:06] =================== ttm_tt (15 subtests) ===================
[17:54:06] ==================== ttm_tt_init_basic ====================
[17:54:06] [PASSED] Page-aligned size
[17:54:06] [PASSED] Extra pages requested
[17:54:06] ================ [PASSED] ttm_tt_init_basic ================
[17:54:06] [PASSED] ttm_tt_init_misaligned
[17:54:06] [PASSED] ttm_tt_fini_basic
[17:54:06] [PASSED] ttm_tt_fini_sg
[17:54:06] [PASSED] ttm_tt_fini_shmem
[17:54:06] [PASSED] ttm_tt_create_basic
[17:54:06] [PASSED] ttm_tt_create_invalid_bo_type
[17:54:06] [PASSED] ttm_tt_create_ttm_exists
[17:54:06] [PASSED] ttm_tt_create_failed
[17:54:06] [PASSED] ttm_tt_destroy_basic
[17:54:06] [PASSED] ttm_tt_populate_null_ttm
[17:54:06] [PASSED] ttm_tt_populate_populated_ttm
[17:54:06] [PASSED] ttm_tt_unpopulate_basic
[17:54:06] [PASSED] ttm_tt_unpopulate_empty_ttm
[17:54:06] [PASSED] ttm_tt_swapin_basic
[17:54:06] ===================== [PASSED] ttm_tt ======================
[17:54:06] =================== ttm_bo (14 subtests) ===================
[17:54:06] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[17:54:06] [PASSED] Cannot be interrupted and sleeps
[17:54:06] [PASSED] Cannot be interrupted, locks straight away
[17:54:06] [PASSED] Can be interrupted, sleeps
[17:54:06] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[17:54:06] [PASSED] ttm_bo_reserve_locked_no_sleep
[17:54:06] [PASSED] ttm_bo_reserve_no_wait_ticket
[17:54:06] [PASSED] ttm_bo_reserve_double_resv
[17:54:06] [PASSED] ttm_bo_reserve_interrupted
[17:54:06] [PASSED] ttm_bo_reserve_deadlock
[17:54:06] [PASSED] ttm_bo_unreserve_basic
[17:54:06] [PASSED] ttm_bo_unreserve_pinned
[17:54:06] [PASSED] ttm_bo_unreserve_bulk
[17:54:06] [PASSED] ttm_bo_fini_basic
[17:54:06] [PASSED] ttm_bo_fini_shared_resv
[17:54:06] [PASSED] ttm_bo_pin_basic
[17:54:06] [PASSED] ttm_bo_pin_unpin_resource
[17:54:06] [PASSED] ttm_bo_multiple_pin_one_unpin
[17:54:06] ===================== [PASSED] ttm_bo ======================
[17:54:06] ============== ttm_bo_validate (22 subtests) ===============
[17:54:06] ============== ttm_bo_init_reserved_sys_man ===============
[17:54:06] [PASSED] Buffer object for userspace
[17:54:06] [PASSED] Kernel buffer object
[17:54:06] [PASSED] Shared buffer object
[17:54:06] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[17:54:06] ============== ttm_bo_init_reserved_mock_man ==============
[17:54:06] [PASSED] Buffer object for userspace
[17:54:06] [PASSED] Kernel buffer object
[17:54:06] [PASSED] Shared buffer object
[17:54:06] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[17:54:06] [PASSED] ttm_bo_init_reserved_resv
[17:54:06] ================== ttm_bo_validate_basic ==================
[17:54:06] [PASSED] Buffer object for userspace
[17:54:06] [PASSED] Kernel buffer object
[17:54:06] [PASSED] Shared buffer object
[17:54:06] ============== [PASSED] ttm_bo_validate_basic ==============
[17:54:06] [PASSED] ttm_bo_validate_invalid_placement
[17:54:06] ============= ttm_bo_validate_same_placement ==============
[17:54:06] [PASSED] System manager
[17:54:06] [PASSED] VRAM manager
[17:54:06] ========= [PASSED] ttm_bo_validate_same_placement ==========
[17:54:06] [PASSED] ttm_bo_validate_failed_alloc
[17:54:06] [PASSED] ttm_bo_validate_pinned
[17:54:06] [PASSED] ttm_bo_validate_busy_placement
[17:54:06] ================ ttm_bo_validate_multihop =================
[17:54:06] [PASSED] Buffer object for userspace
[17:54:06] [PASSED] Kernel buffer object
[17:54:06] [PASSED] Shared buffer object
[17:54:06] ============ [PASSED] ttm_bo_validate_multihop =============
[17:54:06] ========== ttm_bo_validate_no_placement_signaled ==========
[17:54:06] [PASSED] Buffer object in system domain, no page vector
[17:54:06] [PASSED] Buffer object in system domain with an existing page vector
[17:54:06] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[17:54:06] ======== ttm_bo_validate_no_placement_not_signaled ========
[17:54:06] [PASSED] Buffer object for userspace
[17:54:06] [PASSED] Kernel buffer object
[17:54:06] [PASSED] Shared buffer object
[17:54:06] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[17:54:06] [PASSED] ttm_bo_validate_move_fence_signaled
[17:54:06] ========= ttm_bo_validate_move_fence_not_signaled =========
[17:54:06] [PASSED] Waits for GPU
[17:54:06] [PASSED] Tries to lock straight away
[17:54:06] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[17:54:06] [PASSED] ttm_bo_validate_swapout
[17:54:06] [PASSED] ttm_bo_validate_happy_evict
[17:54:06] [PASSED] ttm_bo_validate_all_pinned_evict
[17:54:06] [PASSED] ttm_bo_validate_allowed_only_evict
[17:54:06] [PASSED] ttm_bo_validate_deleted_evict
[17:54:06] [PASSED] ttm_bo_validate_busy_domain_evict
[17:54:06] [PASSED] ttm_bo_validate_evict_gutting
[17:54:06] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[17:54:06] ================= [PASSED] ttm_bo_validate =================
[17:54:06] ============================================================
[17:54:06] Testing complete. Ran 102 tests: passed: 102
[17:54:07] Elapsed time: 11.431s total, 1.732s configuring, 9.482s building, 0.177s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 8+ messages in thread
* ✓ Xe.CI.BAT: success for drm/xe: Add support for GPU health indicator
2026-04-23 17:39 [PATCH v2 0/2] drm/xe: Add support for GPU health indicator Soham Purkait
` (3 preceding siblings ...)
2026-04-23 17:54 ` ✓ CI.KUnit: success " Patchwork
@ 2026-04-23 19:02 ` Patchwork
2026-04-24 2:52 ` ✓ Xe.CI.FULL: " Patchwork
5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2026-04-23 19:02 UTC (permalink / raw)
To: Soham Purkait; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 1096 bytes --]
== Series Details ==
Series: drm/xe: Add support for GPU health indicator
URL : https://patchwork.freedesktop.org/series/165378/
State : success
== Summary ==
CI Bug Log - changes from xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c_BAT -> xe-pw-165378v1_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (13 -> 13)
------------------------------
No changes in participating hosts
Changes
-------
No changes found
Build changes
-------------
* IGT: IGT_8871 -> IGT_8872
* Linux: xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c -> xe-pw-165378v1
IGT_8871: c829dad5f9e02f627722042e429d93824b470159 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_8872: e70db143b7bafe09bdea4d33188cb10d2070d0e5 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c: ecb61ba4a1f619b6944f4d0741b4d8a0910f460c
xe-pw-165378v1: 165378v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/index.html
[-- Attachment #2: Type: text/html, Size: 1658 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* ✓ Xe.CI.FULL: success for drm/xe: Add support for GPU health indicator
2026-04-23 17:39 [PATCH v2 0/2] drm/xe: Add support for GPU health indicator Soham Purkait
` (4 preceding siblings ...)
2026-04-23 19:02 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-04-24 2:52 ` Patchwork
5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2026-04-24 2:52 UTC (permalink / raw)
To: Soham Purkait; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 35088 bytes --]
== Series Details ==
Series: drm/xe: Add support for GPU health indicator
URL : https://patchwork.freedesktop.org/series/165378/
State : success
== Summary ==
CI Bug Log - changes from xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c_FULL -> xe-pw-165378v1_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-165378v1_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_async_flips@alternate-sync-async-flip:
- shard-bmg: [PASS][1] -> [FAIL][2] ([Intel XE#3718] / [Intel XE#6078]) +1 other test fail
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-8/igt@kms_async_flips@alternate-sync-async-flip.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@kms_async_flips@alternate-sync-async-flip.html
* igt@kms_atomic_transition@plane-toggle-modeset-transition@pipe-a-hdmi-a-3:
- shard-bmg: [PASS][3] -> [DMESG-FAIL][4] ([Intel XE#5545]) +1 other test dmesg-fail
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-1/igt@kms_atomic_transition@plane-toggle-modeset-transition@pipe-a-hdmi-a-3.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@kms_atomic_transition@plane-toggle-modeset-transition@pipe-a-hdmi-a-3.html
* igt@kms_big_fb@4-tiled-8bpp-rotate-90:
- shard-lnl: NOTRUN -> [SKIP][5] ([Intel XE#1407])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-2/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
* igt@kms_big_fb@linear-8bpp-rotate-90:
- shard-bmg: NOTRUN -> [SKIP][6] ([Intel XE#2327])
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-8/igt@kms_big_fb@linear-8bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
- shard-lnl: NOTRUN -> [SKIP][7] ([Intel XE#1477] / [Intel XE#7361])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-1/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
* igt@kms_big_fb@yf-tiled-32bpp-rotate-0:
- shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#1124]) +1 other test skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-5/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip:
- shard-lnl: NOTRUN -> [SKIP][9] ([Intel XE#1124]) +1 other test skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-6/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs:
- shard-lnl: NOTRUN -> [SKIP][10] ([Intel XE#2887])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-2/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs.html
* igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs:
- shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#2887]) +2 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-7/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc:
- shard-lnl: NOTRUN -> [SKIP][12] ([Intel XE#3432])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-4/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_chamelium_color@ctm-0-25:
- shard-bmg: NOTRUN -> [SKIP][13] ([Intel XE#2325] / [Intel XE#7358])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-3/igt@kms_chamelium_color@ctm-0-25.html
* igt@kms_chamelium_hpd@hdmi-hpd-fast:
- shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#2252]) +1 other test skip
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-6/igt@kms_chamelium_hpd@hdmi-hpd-fast.html
* igt@kms_content_protection@dp-mst-type-0-suspend-resume:
- shard-bmg: NOTRUN -> [SKIP][15] ([Intel XE#6974])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-7/igt@kms_content_protection@dp-mst-type-0-suspend-resume.html
* igt@kms_cursor_crc@cursor-random-32x10:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#2320])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-8/igt@kms_cursor_crc@cursor-random-32x10.html
* igt@kms_cursor_legacy@flip-vs-cursor-legacy:
- shard-bmg: [PASS][17] -> [FAIL][18] ([Intel XE#7571])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-5/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html
* igt@kms_dsc@dsc-with-formats:
- shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#2244])
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-8/igt@kms_dsc@dsc-with-formats.html
* igt@kms_flip@2x-blocking-absolute-wf_vblank@bd-dp2-hdmi-a3:
- shard-bmg: [PASS][20] -> [FAIL][21] ([Intel XE#7705]) +1 other test fail
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-3/igt@kms_flip@2x-blocking-absolute-wf_vblank@bd-dp2-hdmi-a3.html
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-3/igt@kms_flip@2x-blocking-absolute-wf_vblank@bd-dp2-hdmi-a3.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bd-dp2-hdmi-a3:
- shard-bmg: NOTRUN -> [FAIL][22] ([Intel XE#3321]) +1 other test fail
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bd-dp2-hdmi-a3.html
* igt@kms_flip@2x-nonexisting-fb:
- shard-bmg: [PASS][23] -> [SKIP][24] ([Intel XE#6703]) +31 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-3/igt@kms_flip@2x-nonexisting-fb.html
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@kms_flip@2x-nonexisting-fb.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling:
- shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#7178] / [Intel XE#7351])
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-10/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-move:
- shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#2311]) +7 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-move.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][27] ([Intel XE#656]) +2 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-1/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-pgflip-blt:
- shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#4141]) +2 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#7061] / [Intel XE#7356])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#2313]) +7 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-9/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-render.html
* igt@kms_pipe_stress@stress-xrgb8888-yftiled:
- shard-lnl: NOTRUN -> [SKIP][31] ([Intel XE#6912] / [Intel XE#7375])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-2/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html
* igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier-source-clamping:
- shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#7283])
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-3/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier-source-clamping.html
* igt@kms_plane_multiple@2x-tiling-x:
- shard-lnl: NOTRUN -> [SKIP][33] ([Intel XE#4596] / [Intel XE#5854])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-8/igt@kms_plane_multiple@2x-tiling-x.html
* igt@kms_pm_dc@dc5-psr:
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#7794])
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-8/igt@kms_pm_dc@dc5-psr.html
* igt@kms_pm_dc@dc6-psr:
- shard-lnl: [PASS][35] -> [FAIL][36] ([Intel XE#7340])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-lnl-6/igt@kms_pm_dc@dc6-psr.html
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-1/igt@kms_pm_dc@dc6-psr.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf:
- shard-lnl: NOTRUN -> [SKIP][37] ([Intel XE#2893] / [Intel XE#4608] / [Intel XE#7304])
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-8/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-a-edp-1:
- shard-lnl: NOTRUN -> [SKIP][38] ([Intel XE#4608])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-8/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-a-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][39] ([Intel XE#4608] / [Intel XE#7304])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-8/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-b-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf:
- shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#1489]) +1 other test skip
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr@fbc-pr-no-drrs:
- shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#2234] / [Intel XE#2850]) +3 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-9/igt@kms_psr@fbc-pr-no-drrs.html
* igt@kms_sharpness_filter@filter-dpms:
- shard-bmg: NOTRUN -> [SKIP][42] ([Intel XE#6503])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-3/igt@kms_sharpness_filter@filter-dpms.html
* igt@kms_vrr@cmrr@pipe-a-edp-1:
- shard-lnl: [PASS][43] -> [FAIL][44] ([Intel XE#4459]) +1 other test fail
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-lnl-6/igt@kms_vrr@cmrr@pipe-a-edp-1.html
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-5/igt@kms_vrr@cmrr@pipe-a-edp-1.html
* igt@kms_vrr@max-min:
- shard-bmg: NOTRUN -> [SKIP][45] ([Intel XE#1499])
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-7/igt@kms_vrr@max-min.html
* igt@xe_configfs@ctx-restore-post-bb:
- shard-bmg: [PASS][46] -> [DMESG-WARN][47] ([Intel XE#7725])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-2/igt@xe_configfs@ctx-restore-post-bb.html
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-6/igt@xe_configfs@ctx-restore-post-bb.html
* igt@xe_eudebug@vma-ufence-faultable:
- shard-lnl: NOTRUN -> [SKIP][48] ([Intel XE#7636])
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-5/igt@xe_eudebug@vma-ufence-faultable.html
* igt@xe_eudebug_online@breakpoint-many-sessions-single-tile:
- shard-bmg: NOTRUN -> [SKIP][49] ([Intel XE#7636]) +2 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-6/igt@xe_eudebug_online@breakpoint-many-sessions-single-tile.html
* igt@xe_evict@evict-beng-large-multi-vm-cm:
- shard-lnl: NOTRUN -> [SKIP][50] ([Intel XE#6540] / [Intel XE#688])
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-2/igt@xe_evict@evict-beng-large-multi-vm-cm.html
* igt@xe_evict@evict-small-external-multi-queue-cm:
- shard-bmg: NOTRUN -> [SKIP][51] ([Intel XE#7140])
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-5/igt@xe_evict@evict-small-external-multi-queue-cm.html
* igt@xe_exec_basic@multigpu-no-exec-bindexecqueue:
- shard-bmg: NOTRUN -> [SKIP][52] ([Intel XE#2322] / [Intel XE#7372]) +1 other test skip
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue.html
* igt@xe_exec_basic@multigpu-no-exec-userptr:
- shard-lnl: NOTRUN -> [SKIP][53] ([Intel XE#1392]) +2 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-7/igt@xe_exec_basic@multigpu-no-exec-userptr.html
* igt@xe_exec_fault_mode@once-multi-queue-invalid-userptr-fault:
- shard-lnl: NOTRUN -> [SKIP][54] ([Intel XE#7136])
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-3/igt@xe_exec_fault_mode@once-multi-queue-invalid-userptr-fault.html
* igt@xe_exec_fault_mode@twice-multi-queue-userptr-rebind:
- shard-bmg: NOTRUN -> [SKIP][55] ([Intel XE#7136]) +4 other tests skip
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-1/igt@xe_exec_fault_mode@twice-multi-queue-userptr-rebind.html
* igt@xe_exec_multi_queue@many-execs-preempt-mode-dyn-priority:
- shard-lnl: NOTRUN -> [SKIP][56] ([Intel XE#6874])
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-8/igt@xe_exec_multi_queue@many-execs-preempt-mode-dyn-priority.html
* igt@xe_exec_multi_queue@max-queues-basic:
- shard-bmg: NOTRUN -> [SKIP][57] ([Intel XE#6874]) +6 other tests skip
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-1/igt@xe_exec_multi_queue@max-queues-basic.html
* igt@xe_exec_threads@threads-bal-fd-userptr-invalidate-race:
- shard-bmg: NOTRUN -> [SKIP][58] ([Intel XE#6703])
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@xe_exec_threads@threads-bal-fd-userptr-invalidate-race.html
* igt@xe_exec_threads@threads-multi-queue-mixed-userptr:
- shard-bmg: NOTRUN -> [SKIP][59] ([Intel XE#7138])
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-3/igt@xe_exec_threads@threads-multi-queue-mixed-userptr.html
* igt@xe_multigpu_svm@mgpu-xgpu-access-prefetch:
- shard-bmg: NOTRUN -> [SKIP][60] ([Intel XE#6964])
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@xe_multigpu_svm@mgpu-xgpu-access-prefetch.html
* igt@xe_page_reclaim@basic-mixed:
- shard-bmg: NOTRUN -> [SKIP][61] ([Intel XE#7793])
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-5/igt@xe_page_reclaim@basic-mixed.html
* igt@xe_pat@pat-sw-hw-suspend:
- shard-bmg: NOTRUN -> [SKIP][62] ([Intel XE#7590])
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-9/igt@xe_pat@pat-sw-hw-suspend.html
* igt@xe_query@multigpu-query-invalid-extension:
- shard-bmg: NOTRUN -> [SKIP][63] ([Intel XE#944])
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-8/igt@xe_query@multigpu-query-invalid-extension.html
* igt@xe_vm@large-userptr-split-misaligned-binds-268435456:
- shard-bmg: [PASS][64] -> [SKIP][65] ([Intel XE#6557] / [Intel XE#6703])
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-7/igt@xe_vm@large-userptr-split-misaligned-binds-268435456.html
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@xe_vm@large-userptr-split-misaligned-binds-268435456.html
#### Possible fixes ####
* igt@core_hotunplug@hotunplug-rescan:
- shard-bmg: [DMESG-WARN][66] ([Intel XE#7725]) -> [PASS][67] +2 other tests pass
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-6/igt@core_hotunplug@hotunplug-rescan.html
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-9/igt@core_hotunplug@hotunplug-rescan.html
* igt@kms_atomic_transition@modeset-transition-nonblocking:
- shard-bmg: [FAIL][68] ([Intel XE#7556]) -> [PASS][69] +1 other test pass
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-3/igt@kms_atomic_transition@modeset-transition-nonblocking.html
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-8/igt@kms_atomic_transition@modeset-transition-nonblocking.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-bmg: [FAIL][70] ([Intel XE#7809]) -> [PASS][71]
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-lnl: [FAIL][72] ([Intel XE#301]) -> [PASS][73] +1 other test pass
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_flip@wf_vblank-ts-check-interruptible:
- shard-lnl: [FAIL][74] ([Intel XE#3098]) -> [PASS][75] +1 other test pass
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-lnl-1/igt@kms_flip@wf_vblank-ts-check-interruptible.html
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-4/igt@kms_flip@wf_vblank-ts-check-interruptible.html
* igt@kms_lease@lease-again:
- shard-bmg: [SKIP][76] ([Intel XE#6703]) -> [PASS][77] +13 other tests pass
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-2/igt@kms_lease@lease-again.html
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-6/igt@kms_lease@lease-again.html
* igt@kms_pm_dc@dc5-psr:
- shard-lnl: [FAIL][78] ([Intel XE#7340]) -> [PASS][79]
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-lnl-8/igt@kms_pm_dc@dc5-psr.html
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-6/igt@kms_pm_dc@dc5-psr.html
* igt@xe_configfs@gt-types-allowed:
- shard-lnl: [ABORT][80] -> [PASS][81]
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-lnl-4/igt@xe_configfs@gt-types-allowed.html
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-lnl-7/igt@xe_configfs@gt-types-allowed.html
#### Warnings ####
* igt@kms_big_fb@x-tiled-32bpp-rotate-90:
- shard-bmg: [SKIP][82] ([Intel XE#6703]) -> [SKIP][83] ([Intel XE#2327])
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-2/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-7/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html
* igt@kms_big_fb@yf-tiled-8bpp-rotate-0:
- shard-bmg: [SKIP][84] ([Intel XE#1124]) -> [SKIP][85] ([Intel XE#6703])
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-10/igt@kms_big_fb@yf-tiled-8bpp-rotate-0.html
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@kms_big_fb@yf-tiled-8bpp-rotate-0.html
* igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs:
- shard-bmg: [SKIP][86] ([Intel XE#6703]) -> [SKIP][87] ([Intel XE#2887])
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-2/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs.html
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-6/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs:
- shard-bmg: [SKIP][88] ([Intel XE#3432]) -> [SKIP][89] ([Intel XE#6703])
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-10/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs.html
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt:
- shard-bmg: [SKIP][90] ([Intel XE#4141]) -> [SKIP][91] ([Intel XE#6703])
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt.html
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
- shard-bmg: [SKIP][92] ([Intel XE#4141]) -> [SKIP][93] ([Intel XE#2312])
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-render:
- shard-bmg: [SKIP][94] ([Intel XE#6703]) -> [SKIP][95] ([Intel XE#2311])
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-render.html
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][96] ([Intel XE#2311]) -> [SKIP][97] ([Intel XE#6703])
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-10/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-wc.html
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_hdr@brightness-with-hdr:
- shard-bmg: [SKIP][98] ([Intel XE#3544]) -> [SKIP][99] ([Intel XE#3374] / [Intel XE#3544])
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-10/igt@kms_hdr@brightness-with-hdr.html
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-8/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_pm_backlight@brightness-with-dpms:
- shard-bmg: [SKIP][100] ([Intel XE#6703]) -> [SKIP][101] ([Intel XE#2938] / [Intel XE#7376])
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-2/igt@kms_pm_backlight@brightness-with-dpms.html
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-3/igt@kms_pm_backlight@brightness-with-dpms.html
* igt@kms_pm_lpsp@kms-lpsp:
- shard-bmg: [SKIP][102] ([Intel XE#6703]) -> [SKIP][103] ([Intel XE#2499])
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-2/igt@kms_pm_lpsp@kms-lpsp.html
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-3/igt@kms_pm_lpsp@kms-lpsp.html
* igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf:
- shard-bmg: [SKIP][104] ([Intel XE#1489]) -> [SKIP][105] ([Intel XE#6703])
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-8/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf.html
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-bmg: [SKIP][106] ([Intel XE#2509] / [Intel XE#7437]) -> [SKIP][107] ([Intel XE#2426] / [Intel XE#5848])
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-6/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-3/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@xe_eudebug@basic-vm-bind:
- shard-bmg: [SKIP][108] ([Intel XE#7636]) -> [SKIP][109] ([Intel XE#6703])
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-5/igt@xe_eudebug@basic-vm-bind.html
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@xe_eudebug@basic-vm-bind.html
* igt@xe_evict@evict-threads-small-multi-queue:
- shard-bmg: [SKIP][110] ([Intel XE#6703]) -> [SKIP][111] ([Intel XE#7140])
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-2/igt@xe_evict@evict-threads-small-multi-queue.html
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-6/igt@xe_evict@evict-threads-small-multi-queue.html
* igt@xe_exec_fault_mode@twice-multi-queue-userptr-prefetch:
- shard-bmg: [SKIP][112] ([Intel XE#6703]) -> [SKIP][113] ([Intel XE#7136])
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-2/igt@xe_exec_fault_mode@twice-multi-queue-userptr-prefetch.html
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-1/igt@xe_exec_fault_mode@twice-multi-queue-userptr-prefetch.html
* igt@xe_exec_multi_queue@many-execs-preempt-mode-close-fd:
- shard-bmg: [SKIP][114] ([Intel XE#6874]) -> [SKIP][115] ([Intel XE#6703]) +1 other test skip
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-3/igt@xe_exec_multi_queue@many-execs-preempt-mode-close-fd.html
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@xe_exec_multi_queue@many-execs-preempt-mode-close-fd.html
* igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-close-fd-smem:
- shard-bmg: [SKIP][116] ([Intel XE#6703]) -> [SKIP][117] ([Intel XE#6874])
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-2/igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-close-fd-smem.html
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-1/igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-close-fd-smem.html
* igt@xe_exec_threads@threads-multi-queue-cm-userptr:
- shard-bmg: [SKIP][118] ([Intel XE#7138]) -> [SKIP][119] ([Intel XE#6703])
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c/shard-bmg-1/igt@xe_exec_threads@threads-multi-queue-cm-userptr.html
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/shard-bmg-2/igt@xe_exec_threads@threads-multi-queue-cm-userptr.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[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#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[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#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2499
[Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
[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#2938]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2938
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#3098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3098
[Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321
[Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#3718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3718
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4459
[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#5545]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5545
[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#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078
[Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
[Intel XE#6540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6540
[Intel XE#6557]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6557
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#6703]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6703
[Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#6912]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6912
[Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
[Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136
[Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138
[Intel XE#7140]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7140
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[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#7340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7340
[Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
[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#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
[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#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437
[Intel XE#7556]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7556
[Intel XE#7571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7571
[Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
[Intel XE#7636]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7636
[Intel XE#7705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7705
[Intel XE#7725]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7725
[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#7809]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7809
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* IGT: IGT_8871 -> IGT_8872
* Linux: xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c -> xe-pw-165378v1
IGT_8871: c829dad5f9e02f627722042e429d93824b470159 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_8872: e70db143b7bafe09bdea4d33188cb10d2070d0e5 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-4929-ecb61ba4a1f619b6944f4d0741b4d8a0910f460c: ecb61ba4a1f619b6944f4d0741b4d8a0910f460c
xe-pw-165378v1: 165378v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165378v1/index.html
[-- Attachment #2: Type: text/html, Size: 40539 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/2] drm/xe/xe_ras: Add RAS support for GPU health indicator
2026-04-23 17:39 ` [PATCH v2 2/2] drm/xe/xe_ras: Add RAS support for " Soham Purkait
@ 2026-04-27 22:16 ` Rodrigo Vivi
0 siblings, 0 replies; 8+ messages in thread
From: Rodrigo Vivi @ 2026-04-27 22:16 UTC (permalink / raw)
To: Soham Purkait
Cc: intel-xe, riana.tauro, anshuman.gupta, aravind.iddamsetty,
badal.nilawar, raag.jadav, ravi.kishore.koppuravuri,
mallesh.koujalagi, andi.shyti, anoop.c.vijay
On Thu, Apr 23, 2026 at 11:09:25PM +0530, Soham Purkait wrote:
> GPU health indicator exposes a single sysfs interface, gpu_health,
> at the device level, allowing administrators and management tools to
> query the GPU health status. The interface permits both read and write
> operations on PF and native functions, while on VFs it is exposed as
> read-only.
>
> The sysfs file (gpu_health) is placed at the device level and behaves as
> follows:
>
> $ cat /sys/.../device/gpu_health
> ok
>
> $ echo critical > /sys/.../device/gpu_health
>
> $ cat /sys/.../device/gpu_health
> critical
>
> V2:
> - Return error number instead of error message in _show and
> _store. (Andi)
> - Remove redundant VF check in _store callback. (Andi)
> - Move GPU health sysfs init error logging to xe_ras_init. (Andi)
> - Return only the current health state for sysfs read. (Andi, Rodrigo)
> - Add documentation for sysfs interface. (Andi, Rodrigo)
>
I need help with the review of the details of this patch and the
sysctl interactions. But the approach overall and the new sys like
we had agreed is fine by me:
Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Soham Purkait <soham.purkait@intel.com>
> ---
> .../ABI/testing/sysfs-driver-intel-xe-ras | 33 +++
> drivers/gpu/drm/xe/Makefile | 1 +
> drivers/gpu/drm/xe/xe_device.c | 3 +
> drivers/gpu/drm/xe/xe_ras.c | 202 ++++++++++++++++++
> drivers/gpu/drm/xe/xe_ras.h | 13 ++
> 5 files changed, 252 insertions(+)
> create mode 100644 Documentation/ABI/testing/sysfs-driver-intel-xe-ras
> create mode 100644 drivers/gpu/drm/xe/xe_ras.c
> create mode 100644 drivers/gpu/drm/xe/xe_ras.h
>
> diff --git a/Documentation/ABI/testing/sysfs-driver-intel-xe-ras b/Documentation/ABI/testing/sysfs-driver-intel-xe-ras
> new file mode 100644
> index 000000000000..085cb79a6e00
> --- /dev/null
> +++ b/Documentation/ABI/testing/sysfs-driver-intel-xe-ras
> @@ -0,0 +1,33 @@
> +What: /sys/bus/pci/drivers/.../gpu_health
> +Date: April 2026
> +KernelVersion: 7.0
> +Contact: intel-xe@lists.freedesktop.org
> +Description:
> + This file exposes the current GPU health state and, for Physical
> + Functions (PFs), allows GPU health state to be updated.
> +
> + This sysfs file is only accessible to administrative users and is
> + present only on Intel Xe platforms that support the GPU health
> + indicator interface for RAS.
> +
> + For Physical Functions (PFs), the file is read-write, while for
> + Virtual Functions (VFs), it is read-only and does not support GPU
> + health state updates.
> +
> + Read return a single line containing one of the valid values for
> + the current device health state. Only for PFs, writing one of the
> + valid values updates the current device health state.
> +
> + The valid values for the device health state are:
> +
> + ok
> + The device is healthy and operating within normal
> + parameters.
> +
> + warning
> + The device is experiencing minor issues but remains
> + operational.
> +
> + critical
> + The device is in a critical state and may not be
> + operational.
> diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
> index 95666f950a6f..28a09d06a44c 100644
> --- a/drivers/gpu/drm/xe/Makefile
> +++ b/drivers/gpu/drm/xe/Makefile
> @@ -112,6 +112,7 @@ xe-y += xe_bb.o \
> xe_pxp_debugfs.o \
> xe_pxp_submit.o \
> xe_query.o \
> + xe_ras.o \
> xe_range_fence.o \
> xe_reg_sr.o \
> xe_reg_whitelist.o \
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index 4b45b617a039..cb5484712f1c 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -62,6 +62,7 @@
> #include "xe_psmi.h"
> #include "xe_pxp.h"
> #include "xe_query.h"
> +#include "xe_ras.h"
> #include "xe_shrinker.h"
> #include "xe_soc_remapper.h"
> #include "xe_survivability_mode.h"
> @@ -1067,6 +1068,8 @@ int xe_device_probe(struct xe_device *xe)
>
> xe_vsec_init(xe);
>
> + xe_ras_init(xe);
> +
> err = xe_sriov_init_late(xe);
> if (err)
> goto err_unregister_display;
> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
> new file mode 100644
> index 000000000000..25609257bd07
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_ras.c
> @@ -0,0 +1,202 @@
> +// SPDX-License-Identifier: MIT
> +/*
> + * Copyright © 2026 Intel Corporation
> + */
> +
> +#include <linux/minmax.h>
> +
> +#include "xe_device.h"
> +#include "xe_device_types.h"
> +#include "xe_pm.h"
> +#include "xe_printk.h"
> +#include "xe_ras.h"
> +#include "xe_ras_types.h"
> +#include "xe_sriov.h"
> +#include "xe_sysctrl_mailbox.h"
> +#include "xe_sysctrl_mailbox_types.h"
> +
> +static const char * const gpu_health_states[] = {
> + [XE_RAS_HEALTH_STATUS_OK] = "ok",
> + [XE_RAS_HEALTH_STATUS_WARNING] = "warning",
> + [XE_RAS_HEALTH_STATUS_CRITICAL] = "critical"
> +};
> +
> +static const int ras_status_to_errno_map[] = {
> + [XE_RAS_STATUS_SUCCESS] = 0,
> + [XE_RAS_STATUS_INVALID_PARAM] = -EINVAL,
> + [XE_RAS_STATUS_OP_NOT_SUPPORTED] = -EOPNOTSUPP,
> + [XE_RAS_STATUS_TIMEOUT] = -ETIMEDOUT,
> + [XE_RAS_STATUS_HARDWARE_FAILURE] = -EIO,
> + [XE_RAS_STATUS_INSUFFICIENT_RESOURCES] = -ENAVAIL,
> + [XE_RAS_STATUS_UNKNOWN_ERROR] = -EREMOTEIO
> +};
> +
> +static int ras_status_to_errno(u32 status)
> +{
> + status = min_t(u32, status, XE_RAS_STATUS_UNKNOWN_ERROR);
> + return ras_status_to_errno_map[status];
> +}
> +
> +static void prepare_sysctrl_command(struct xe_sysctrl_mailbox_command *command,
> + u32 cmd_mask, void *request, size_t request_len,
> + void *response, size_t response_len)
> +{
> + struct xe_sysctrl_app_msg_hdr hdr = {0};
> +
> + hdr.data = FIELD_PREP(APP_HDR_GROUP_ID_MASK, XE_SYSCTRL_GROUP_GFSP) |
> + FIELD_PREP(APP_HDR_COMMAND_MASK, cmd_mask);
> +
> + command->header = hdr;
> + command->data_in = request;
> + command->data_in_len = request_len;
> + command->data_out = response;
> + command->data_out_len = response_len;
> +}
> +
> +static ssize_t gpu_health_show(struct device *dev, struct device_attribute *attr, char *buf)
> +{
> + struct xe_device *xe = kdev_to_xe_device(dev);
> + struct xe_sysctrl_mailbox_command command = {0};
> + struct xe_ras_health_get_response response = {0};
> + struct xe_ras_health_get_input request = {0};
> + enum xe_sysctrl_mailbox_command_id cmd = XE_SYSCTRL_CMD_GET_HEALTH;
> + enum xe_ras_health_status health;
> + int ret;
> + size_t rlen = 0;
> +
> + prepare_sysctrl_command(&command, cmd, &request,
> + sizeof(request), &response, sizeof(response));
> + guard(xe_pm_runtime)(xe);
> + ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
> + if (ret)
> + return ret;
> +
> + if (rlen != sizeof(response)) {
> + xe_err(xe,
> + "[RAS][GET_HEALTH]: invalid Sysctrl response length %zu (expected %zu)\n",
> + rlen, sizeof(response));
> + return -EPROTO;
> + }
> + if (response.current_health > XE_RAS_HEALTH_STATUS_CRITICAL) {
> + xe_err(xe, "[RAS][GET_HEALTH]: invalid health state %u from Sysctrl\n",
> + response.current_health);
> + return -EPROTO;
> + }
> +
> + health = (enum xe_ras_health_status)response.current_health;
> +
> + xe_dbg(xe, "[RAS][GET_HEALTH]: current GPU health state = %d (%s)\n",
> + health, gpu_health_states[health]);
> +
> + return sysfs_emit(buf, "%s\n", gpu_health_states[health]);
> +}
> +
> +static ssize_t gpu_health_store(struct device *dev, struct device_attribute *attr,
> + const char *buf, size_t count)
> +{
> + struct xe_device *xe = kdev_to_xe_device(dev);
> + struct xe_sysctrl_mailbox_command command = {0};
> + struct xe_ras_health_set_input request = {0};
> + struct xe_ras_health_set_response response = {0};
> + enum xe_sysctrl_mailbox_command_id cmd = XE_SYSCTRL_CMD_SET_HEALTH;
> + enum xe_ras_health_status health;
> + int ret;
> + size_t rlen = 0;
> + int state;
> + int ras_status;
> +
> + state = sysfs_match_string(gpu_health_states,
> + buf);
> + if (state < 0)
> + return -EINVAL;
> +
> + request.new_health = (u8)state;
> +
> + prepare_sysctrl_command(&command, cmd, &request,
> + sizeof(request), &response, sizeof(response));
> + guard(xe_pm_runtime)(xe);
> + ret = xe_sysctrl_send_command(&xe->sc, &command, &rlen);
> + if (ret)
> + return ret;
> +
> + if (rlen != sizeof(response)) {
> + xe_err(xe,
> + "[RAS][SET_HEALTH]: invalid Sysctrl response length %zu (expected %zu)\n",
> + rlen, sizeof(response));
> + return -EPROTO;
> + }
> +
> + ras_status = ras_status_to_errno(response.operation_status);
> + if (ras_status) {
> + xe_err(xe,
> + "[RAS][SET_HEALTH]: cmd 0x%x failed: fw_status=%u errno=%pe\n",
> + cmd, response.operation_status, ERR_PTR(ras_status));
> + return ras_status;
> + }
> +
> + if (response.current_health > XE_RAS_HEALTH_STATUS_CRITICAL) {
> + xe_err(xe, "[RAS][SET_HEALTH]: invalid health state %u from Sysctrl\n",
> + response.current_health);
> + return -EPROTO;
> + }
> +
> + health = (enum xe_ras_health_status)response.current_health;
> +
> + xe_dbg(xe, "[RAS][SET_HEALTH]: current GPU health state=%d (%s)\n",
> + health, gpu_health_states[health]);
> +
> + return count;
> +}
> +
> +static struct device_attribute dev_attr_gpu_health_rw =
> + __ATTR_RW_MODE(gpu_health, 0600);
> +
> +static struct device_attribute dev_attr_gpu_health_ro =
> + __ATTR_RO_MODE(gpu_health, 0400);
> +
> +static struct device_attribute *gpu_health_attr(struct xe_device *xe)
> +{
> + return IS_SRIOV_VF(xe) ? &dev_attr_gpu_health_ro : &dev_attr_gpu_health_rw;
> +}
> +
> +static void gpu_health_sysfs_fini(void *arg)
> +{
> + struct device *dev = arg;
> + struct xe_device *xe = kdev_to_xe_device(dev);
> +
> + device_remove_file(dev, gpu_health_attr(xe));
> +}
> +
> +static int gpu_health_indicator_sysfs_init(struct xe_device *xe)
> +{
> + struct device *dev = xe->drm.dev;
> + int err;
> +
> + err = device_create_file(dev, gpu_health_attr(xe));
> + if (err)
> + return err;
> +
> + err = devm_add_action_or_reset(dev, gpu_health_sysfs_fini, dev);
> + if (err)
> + return err;
> +
> + return 0;
> +}
> +
> +/**
> + * xe_ras_init - Initialize Xe RAS
> + * @xe: xe device instance
> + *
> + * Initialize Xe RAS
> + */
> +void xe_ras_init(struct xe_device *xe)
> +{
> + int ret;
> +
> + if (!xe->info.has_sysctrl)
> + return;
> +
> + ret = gpu_health_indicator_sysfs_init(xe);
> + if (ret)
> + xe_err(xe, "[RAS]: failed to initialize GPU health sysfs, err=%d\n", ret);
> +}
> diff --git a/drivers/gpu/drm/xe/xe_ras.h b/drivers/gpu/drm/xe/xe_ras.h
> new file mode 100644
> index 000000000000..14cb973603e7
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_ras.h
> @@ -0,0 +1,13 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2026 Intel Corporation
> + */
> +
> +#ifndef _XE_RAS_H_
> +#define _XE_RAS_H_
> +
> +struct xe_device;
> +
> +void xe_ras_init(struct xe_device *xe);
> +
> +#endif
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-04-27 22:16 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-23 17:39 [PATCH v2 0/2] drm/xe: Add support for GPU health indicator Soham Purkait
2026-04-23 17:39 ` [PATCH v2 1/2] drm/xe/xe_ras: Add types and commands for RAS " Soham Purkait
2026-04-23 17:39 ` [PATCH v2 2/2] drm/xe/xe_ras: Add RAS support for " Soham Purkait
2026-04-27 22:16 ` Rodrigo Vivi
2026-04-23 17:52 ` ✗ CI.checkpatch: warning for drm/xe: Add " Patchwork
2026-04-23 17:54 ` ✓ CI.KUnit: success " Patchwork
2026-04-23 19:02 ` ✓ Xe.CI.BAT: " Patchwork
2026-04-24 2:52 ` ✓ Xe.CI.FULL: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox