* [PATCH v7 0/9] Handle Firmware reported Hardware Errors
@ 2025-07-28 10:27 Riana Tauro
2025-07-28 10:27 ` [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent Riana Tauro
` (13 more replies)
0 siblings, 14 replies; 24+ messages in thread
From: Riana Tauro @ 2025-07-28 10:27 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, simona.vetter
Add support to handle firmware reported errors. When CSC firmware
errors are encoutered, a error interrupt is received by the GFX device as
a MSI interrupt. Device Source control registers indicates the source of the error
as CSC. The HEC error status register indicates that the error is firmware reported
Depending on the type of firmware error, the error cause is written to the HEC
Firmware error register. On encountering such CSC firmware errors, the device is unusable
and can be recovered only using firmware update.
Whenever Xe KMD detects such a firmware error, system administrator/userspace needs to be
notified to trigger a firmware flash. To address the above need, a new
recovery method is added to drm device wedged uevent.
The initial proposal to add 'firmware-flash' as a recovery method was
not applicable to other drivers and could cause multiple recovery
methods specific to vendors to be added.
A more generic 'vendor-specific' method is introduced in this series,
guiding users to refer to vendor specific documentation and system
logs, additonal indicators for detailed vendor specific recovery procedure.
It is the responsibility of the consumer to refer to the correct vendor
specific documentation and usecase before attempting a recovery.
For example: If driver is XE KMD, the consumer must refer
to the documentation of 'Xe Device Wedging' under 'Documentation/gpu/xe/'.
The necessity of a firmware flash in Xe KMD is notified to the user with a
combination of vendor-specific wedged uevent, runtime survivability
mode and dmesg logs. Consumer must check both uevent and runtime
survivability sysfs before triggering a firmware flash.
Udev
$ udevadm monitor --property --kernel
monitor will print the received events for:
KERNEL - the kernel uevent
KERNEL[754.709341] change /devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:01.0/0000:03:00.0/drm/card0 (drm)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:01.0/0000:03:00.0/drm/card0
SUBSYSTEM=drm
WEDGED=vendor-specific
DEVNAME=/dev/dri/card0
DEVTYPE=drm_minor
SEQNUM=5973
MAJOR=226
MINOR=0
Dmesg:
xe 0000:03:00.0: [drm] *ERROR* [Hardware Error]: Tile0 reported NONFATAL error 0x20000
xe 0000:03:00.0: [drm] *ERROR* [Hardware Error]: NONFATAL: HEC Uncorrected FW FD Corruption error reported, bit[2] is set
xe 0000:03:00.0: Runtime Survivability mode enabled
xe 0000:03:00.0: [drm] *ERROR* CRITICAL: Xe has declared device 0000:03:00.0 as wedged.
IOCTLs and executions are blocked. Only a rebind may clear the failure
Please file a _new_ bug report at https://gitlab.freedesktop.org/drm/xe/kernel/issues/new
xe 0000:03:00.0: [drm] device wedged, needs recovery
xe 0000:03:00.0: Firmware flash required, Please refer to the userspace documentation for more details!
Runtime survivability Sysfs:
/sys/bus/pci/devices/<device>/survivability_mode
Bspec: 50875, 53073, 53074, 53075, 53076
IGT: https://patchwork.freedesktop.org/patch/660122/
fwupd PR: https://github.com/fwupd/fwupd/pull/9024
Rev2: add a fault injection for csc errors
fix review comments
Rev3: add a vendor-specific recovery method
add support for runtime survivability mode
enable runtime survivability mode when csc errors are reported
Rev4: refactor survivability code
Rev5: Add more documentation
add user friendly logs
remove checks for BMG if not necessary
fix other review comments
Rev6: Use consistent words
revert to include BMG checks
Rev7: fix cosmetic changes
Riana Tauro (9):
drm: Add a vendor-specific recovery method to drm device wedged uevent
drm/xe: Set GT as wedged before sending wedged uevent
drm/xe: Add a helper function to set recovery method
drm/xe/xe_survivability: Refactor survivability mode
drm/xe/xe_survivability: Add support for Runtime survivability mode
drm/xe/doc: Document device wedged and runtime survivability
drm/xe: Add support to handle hardware errors
drm/xe/xe_hw_error: Handle CSC Firmware reported Hardware errors
drm/xe/xe_hw_error: Add fault injection to trigger csc error handler
Documentation/gpu/drm-uapi.rst | 42 +++-
Documentation/gpu/xe/index.rst | 1 +
Documentation/gpu/xe/xe_device.rst | 10 +
Documentation/gpu/xe/xe_pcode.rst | 6 +-
drivers/gpu/drm/drm_drv.c | 2 +
drivers/gpu/drm/xe/Makefile | 1 +
drivers/gpu/drm/xe/regs/xe_gsc_regs.h | 2 +
drivers/gpu/drm/xe/regs/xe_hw_error_regs.h | 20 ++
drivers/gpu/drm/xe/regs/xe_irq_regs.h | 1 +
drivers/gpu/drm/xe/xe_debugfs.c | 3 +
drivers/gpu/drm/xe/xe_device.c | 58 +++++-
drivers/gpu/drm/xe/xe_device.h | 1 +
drivers/gpu/drm/xe/xe_device_types.h | 5 +
drivers/gpu/drm/xe/xe_heci_gsc.c | 2 +-
drivers/gpu/drm/xe/xe_hw_error.c | 182 ++++++++++++++++++
drivers/gpu/drm/xe/xe_hw_error.h | 15 ++
drivers/gpu/drm/xe/xe_irq.c | 4 +
drivers/gpu/drm/xe/xe_pci.c | 6 +-
drivers/gpu/drm/xe/xe_survivability_mode.c | 167 ++++++++++++----
drivers/gpu/drm/xe/xe_survivability_mode.h | 5 +-
.../gpu/drm/xe/xe_survivability_mode_types.h | 8 +
include/drm/drm_device.h | 4 +
22 files changed, 489 insertions(+), 56 deletions(-)
create mode 100644 Documentation/gpu/xe/xe_device.rst
create mode 100644 drivers/gpu/drm/xe/regs/xe_hw_error_regs.h
create mode 100644 drivers/gpu/drm/xe/xe_hw_error.c
create mode 100644 drivers/gpu/drm/xe/xe_hw_error.h
--
2.47.1
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent
2025-07-28 10:27 [PATCH v7 0/9] Handle Firmware reported Hardware Errors Riana Tauro
@ 2025-07-28 10:27 ` Riana Tauro
2025-07-30 14:03 ` Riana Tauro
2025-08-05 14:57 ` Rodrigo Vivi
2025-07-28 10:27 ` [PATCH v7 2/9] drm/xe: Set GT as wedged before sending " Riana Tauro
` (12 subsequent siblings)
13 siblings, 2 replies; 24+ messages in thread
From: Riana Tauro @ 2025-07-28 10:27 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, simona.vetter, André Almeida,
Christian König, David Airlie
Address the need for a recovery method (firmware flash on Firmware errors)
introduced in the later patches of Xe KMD.
Whenever XE KMD detects a firmware error, a firmware flash is required to
recover the device to normal operation.
The initial proposal to use 'firmware-flash' as a recovery method was
not applicable to other drivers and could cause multiple recovery
methods specific to vendors to be added.
To address this a more generic 'vendor-specific' method is introduced,
guiding users to refer to vendor specific documentation and system logs
for detailed vendor specific recovery procedure.
Add a recovery method 'WEDGED=vendor-specific' for such errors.
Vendors must provide additional recovery documentation if this method
is used.
It is the responsibility of the consumer to refer to the correct vendor
specific documentation and usecase before attempting a recovery.
For example: If driver is XE KMD, the consumer must refer
to the documentation of 'Device Wedging' under 'Documentation/gpu/xe/'.
Recovery script contributed by Raag.
v2: fix documentation (Raag)
v3: add more details to commit message (Sima, Rodrigo, Raag)
add an example script to the documentation (Raag)
v4: use consistent naming (Raag)
v5: fix commit message
Cc: André Almeida <andrealmeid@igalia.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona.vetter@ffwll.ch>
Co-developed-by: Raag Jadav <raag.jadav@intel.com>
Signed-off-by: Raag Jadav <raag.jadav@intel.com>
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
Documentation/gpu/drm-uapi.rst | 42 ++++++++++++++++++++++++++++------
drivers/gpu/drm/drm_drv.c | 2 ++
include/drm/drm_device.h | 4 ++++
3 files changed, 41 insertions(+), 7 deletions(-)
diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
index 843facf01b2d..5691b29acde3 100644
--- a/Documentation/gpu/drm-uapi.rst
+++ b/Documentation/gpu/drm-uapi.rst
@@ -418,13 +418,15 @@ needed.
Recovery
--------
-Current implementation defines three recovery methods, out of which, drivers
+Current implementation defines four recovery methods, out of which, drivers
can use any one, multiple or none. Method(s) of choice will be sent in the
uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
-more side-effects. If driver is unsure about recovery or method is unknown
-(like soft/hard system reboot, firmware flashing, physical device replacement
-or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
-will be sent instead.
+more side-effects. If recovery method is specific to vendor
+``WEDGED=vendor-specific`` will be sent and userspace should refer to vendor
+specific documentation for the recovery procedure. As an example if the driver
+is 'Xe' then the documentation for 'Device Wedging' of Xe driver needs to be
+referred for the recovery procedure. If driver is unsure about recovery or
+method is unknown, ``WEDGED=unknown`` will be sent instead.
Userspace consumers can parse this event and attempt recovery as per the
following expectations.
@@ -435,6 +437,7 @@ following expectations.
none optional telemetry collection
rebind unbind + bind driver
bus-reset unbind + bus reset/re-enumeration + bind
+ vendor-specific vendor specific recovery method
unknown consumer policy
=============== ========================================
@@ -472,8 +475,12 @@ erroring out, all device memory should be unmapped and file descriptors should
be closed to prevent leaks or undefined behaviour. The idea here is to clear the
device of all user context beforehand and set the stage for a clean recovery.
-Example
--------
+For ``WEDGED=vendor-specific`` recovery method, it is the responsibility of the
+consumer to check the driver documentation and the usecase before attempting
+a recovery.
+
+Example - rebind
+----------------
Udev rule::
@@ -491,6 +498,27 @@ Recovery script::
echo -n $DEVICE > $DRIVER/unbind
echo -n $DEVICE > $DRIVER/bind
+Example - vendor-specific
+-------------------------
+
+Udev rule::
+
+ SUBSYSTEM=="drm", ENV{WEDGED}=="vendor-specific", DEVPATH=="*/drm/card[0-9]",
+ RUN+="/path/to/vendor_specific_recovery.sh $env{DEVPATH}"
+
+Recovery script::
+
+ #!/bin/sh
+
+ DEVPATH=$(readlink -f /sys/$1/device)
+ DRIVERPATH=$(readlink -f $DEVPATH/driver)
+ DRIVER=$(basename $DRIVERPATH)
+
+ if [ "$DRIVER" = "xe" ]; then
+ # Refer XE documentation and check usecase and recovery procedure
+ fi
+
+
Customization
-------------
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index cdd591b11488..0ac723a46a91 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -532,6 +532,8 @@ static const char *drm_get_wedge_recovery(unsigned int opt)
return "rebind";
case DRM_WEDGE_RECOVERY_BUS_RESET:
return "bus-reset";
+ case DRM_WEDGE_RECOVERY_VENDOR:
+ return "vendor-specific";
default:
return NULL;
}
diff --git a/include/drm/drm_device.h b/include/drm/drm_device.h
index a33aedd5e9ec..59fd3f4d5995 100644
--- a/include/drm/drm_device.h
+++ b/include/drm/drm_device.h
@@ -26,10 +26,14 @@ struct pci_controller;
* Recovery methods for wedged device in order of less to more side-effects.
* To be used with drm_dev_wedged_event() as recovery @method. Callers can
* use any one, multiple (or'd) or none depending on their needs.
+ *
+ * Refer to "Device Wedging" chapter in Documentation/gpu/drm-uapi.rst for more
+ * details.
*/
#define DRM_WEDGE_RECOVERY_NONE BIT(0) /* optional telemetry collection */
#define DRM_WEDGE_RECOVERY_REBIND BIT(1) /* unbind + bind driver */
#define DRM_WEDGE_RECOVERY_BUS_RESET BIT(2) /* unbind + reset bus device + bind */
+#define DRM_WEDGE_RECOVERY_VENDOR BIT(3) /* vendor specific recovery method */
/**
* struct drm_wedge_task_info - information about the guilty task of a wedge dev
--
2.47.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v7 2/9] drm/xe: Set GT as wedged before sending wedged uevent
2025-07-28 10:27 [PATCH v7 0/9] Handle Firmware reported Hardware Errors Riana Tauro
2025-07-28 10:27 ` [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent Riana Tauro
@ 2025-07-28 10:27 ` Riana Tauro
2025-07-28 10:27 ` [PATCH v7 3/9] drm/xe: Add a helper function to set recovery method Riana Tauro
` (11 subsequent siblings)
13 siblings, 0 replies; 24+ messages in thread
From: Riana Tauro @ 2025-07-28 10:27 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, simona.vetter, Matthew Brost
Userspace should be notified after setting the device as wedged.
Re-order function calls to set gt wedged before sending uevent.
Cc: Matthew Brost <matthew.brost@intel.com>
Suggested-by: Raag Jadav <raag.jadav@intel.com>
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_device.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index d04a0ae018e6..259fa14cdebe 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -1160,8 +1160,10 @@ static void xe_device_wedged_fini(struct drm_device *drm, void *arg)
* xe_device_declare_wedged - Declare device wedged
* @xe: xe device instance
*
- * This is a final state that can only be cleared with a module
+ * This is a final state that can only be cleared with the recovery method
+ * specified in the drm wedged uevent. The default recovery method is
* re-probe (unbind + bind).
+ *
* In this state every IOCTL will be blocked so the GT cannot be used.
* In general it will be called upon any critical error such as gt reset
* failure or guc loading failure. Userspace will be notified of this state
@@ -1195,13 +1197,15 @@ void xe_device_declare_wedged(struct xe_device *xe)
"IOCTLs and executions are blocked. Only a rebind may clear the failure\n"
"Please file a _new_ bug report at https://gitlab.freedesktop.org/drm/xe/kernel/issues/new\n",
dev_name(xe->drm.dev));
+ }
+
+ for_each_gt(gt, xe, id)
+ xe_gt_declare_wedged(gt);
+ if (xe_device_wedged(xe)) {
/* Notify userspace of wedged device */
drm_dev_wedged_event(&xe->drm,
DRM_WEDGE_RECOVERY_REBIND | DRM_WEDGE_RECOVERY_BUS_RESET,
NULL);
}
-
- for_each_gt(gt, xe, id)
- xe_gt_declare_wedged(gt);
}
--
2.47.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v7 3/9] drm/xe: Add a helper function to set recovery method
2025-07-28 10:27 [PATCH v7 0/9] Handle Firmware reported Hardware Errors Riana Tauro
2025-07-28 10:27 ` [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent Riana Tauro
2025-07-28 10:27 ` [PATCH v7 2/9] drm/xe: Set GT as wedged before sending " Riana Tauro
@ 2025-07-28 10:27 ` Riana Tauro
2025-07-28 10:27 ` [PATCH v7 4/9] drm/xe/xe_survivability: Refactor survivability mode Riana Tauro
` (10 subsequent siblings)
13 siblings, 0 replies; 24+ messages in thread
From: Riana Tauro @ 2025-07-28 10:27 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, simona.vetter
Add a helper function to set recovery method. The recovery
method can be set before declaring the device wedged and sending the
drm wedged uevent. If no method is set, default unbind/re-bind method
will be set.
v2: fix documentation (Raag)
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
---
drivers/gpu/drm/xe/xe_device.c | 26 +++++++++++++++++++++-----
drivers/gpu/drm/xe/xe_device.h | 1 +
drivers/gpu/drm/xe/xe_device_types.h | 2 ++
3 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 259fa14cdebe..a8827b46a83a 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -1156,13 +1156,26 @@ static void xe_device_wedged_fini(struct drm_device *drm, void *arg)
xe_pm_runtime_put(xe);
}
+/**
+ * xe_device_set_wedged_method - Set wedged recovery method
+ * @xe: xe device instance
+ * @method: recovery method to set
+ *
+ * Set wedged recovery method to be sent in drm wedged uevent.
+ */
+void xe_device_set_wedged_method(struct xe_device *xe, unsigned long method)
+{
+ xe->wedged.method = method;
+}
+
/**
* xe_device_declare_wedged - Declare device wedged
* @xe: xe device instance
*
* This is a final state that can only be cleared with the recovery method
- * specified in the drm wedged uevent. The default recovery method is
- * re-probe (unbind + bind).
+ * specified in the drm wedged uevent. The method can be set using
+ * xe_device_set_wedged_method before declaring the device as wedged. If no method
+ * is set, reprobe (unbind/re-bind) will be sent by default.
*
* In this state every IOCTL will be blocked so the GT cannot be used.
* In general it will be called upon any critical error such as gt reset
@@ -1203,9 +1216,12 @@ void xe_device_declare_wedged(struct xe_device *xe)
xe_gt_declare_wedged(gt);
if (xe_device_wedged(xe)) {
+ /* If no wedge recovery method is set, use default */
+ if (!xe->wedged.method)
+ xe_device_set_wedged_method(xe, DRM_WEDGE_RECOVERY_REBIND |
+ DRM_WEDGE_RECOVERY_BUS_RESET);
+
/* Notify userspace of wedged device */
- drm_dev_wedged_event(&xe->drm,
- DRM_WEDGE_RECOVERY_REBIND | DRM_WEDGE_RECOVERY_BUS_RESET,
- NULL);
+ drm_dev_wedged_event(&xe->drm, xe->wedged.method, NULL);
}
}
diff --git a/drivers/gpu/drm/xe/xe_device.h b/drivers/gpu/drm/xe/xe_device.h
index bc802e066a7d..32cc6323b7f6 100644
--- a/drivers/gpu/drm/xe/xe_device.h
+++ b/drivers/gpu/drm/xe/xe_device.h
@@ -187,6 +187,7 @@ static inline bool xe_device_wedged(struct xe_device *xe)
return atomic_read(&xe->wedged.flag);
}
+void xe_device_set_wedged_method(struct xe_device *xe, unsigned long method);
void xe_device_declare_wedged(struct xe_device *xe);
struct xe_file *xe_file_get(struct xe_file *xef);
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 38c8329b4d2c..af6b38458b78 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -541,6 +541,8 @@ struct xe_device {
atomic_t flag;
/** @wedged.mode: Mode controlled by kernel parameter and debugfs */
int mode;
+ /** @wedged.method: Recovery method to be sent in the drm device wedged uevent */
+ unsigned long method;
} wedged;
/** @bo_device: Struct to control async free of BOs */
--
2.47.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v7 4/9] drm/xe/xe_survivability: Refactor survivability mode
2025-07-28 10:27 [PATCH v7 0/9] Handle Firmware reported Hardware Errors Riana Tauro
` (2 preceding siblings ...)
2025-07-28 10:27 ` [PATCH v7 3/9] drm/xe: Add a helper function to set recovery method Riana Tauro
@ 2025-07-28 10:27 ` Riana Tauro
2025-07-28 10:27 ` [PATCH v7 5/9] drm/xe/xe_survivability: Add support for Runtime " Riana Tauro
` (9 subsequent siblings)
13 siblings, 0 replies; 24+ messages in thread
From: Riana Tauro @ 2025-07-28 10:27 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, simona.vetter
Refactor survivability mode code to support both boot
and runtime survivability.
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
---
drivers/gpu/drm/xe/xe_device.c | 2 +-
drivers/gpu/drm/xe/xe_heci_gsc.c | 2 +-
drivers/gpu/drm/xe/xe_pci.c | 6 +-
drivers/gpu/drm/xe/xe_survivability_mode.c | 93 +++++++++++++------
drivers/gpu/drm/xe/xe_survivability_mode.h | 4 +-
.../gpu/drm/xe/xe_survivability_mode_types.h | 7 ++
6 files changed, 81 insertions(+), 33 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index a8827b46a83a..df29b87ffc5f 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -737,7 +737,7 @@ int xe_device_probe_early(struct xe_device *xe)
* possible, but still return the previous error for error
* propagation
*/
- err = xe_survivability_mode_enable(xe);
+ err = xe_survivability_mode_boot_enable(xe);
if (err)
return err;
diff --git a/drivers/gpu/drm/xe/xe_heci_gsc.c b/drivers/gpu/drm/xe/xe_heci_gsc.c
index 6d7b62724126..a415ca488791 100644
--- a/drivers/gpu/drm/xe/xe_heci_gsc.c
+++ b/drivers/gpu/drm/xe/xe_heci_gsc.c
@@ -197,7 +197,7 @@ int xe_heci_gsc_init(struct xe_device *xe)
if (ret)
return ret;
- if (!def->use_polling && !xe_survivability_mode_is_enabled(xe)) {
+ if (!def->use_polling && !xe_survivability_mode_is_boot_enabled(xe)) {
ret = heci_gsc_irq_setup(xe);
if (ret)
return ret;
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 52d46c66ae1e..6f8e28afdb71 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -738,7 +738,7 @@ static void xe_pci_remove(struct pci_dev *pdev)
if (IS_SRIOV_PF(xe))
xe_pci_sriov_configure(pdev, 0);
- if (xe_survivability_mode_is_enabled(xe))
+ if (xe_survivability_mode_is_boot_enabled(xe))
return;
xe_device_remove(xe);
@@ -818,7 +818,7 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
* flashed through mei. Return success, if survivability mode
* is enabled due to pcode failure or configfs being set
*/
- if (xe_survivability_mode_is_enabled(xe))
+ if (xe_survivability_mode_is_boot_enabled(xe))
return 0;
if (err)
@@ -912,7 +912,7 @@ static int xe_pci_suspend(struct device *dev)
struct xe_device *xe = pdev_to_xe_device(pdev);
int err;
- if (xe_survivability_mode_is_enabled(xe))
+ if (xe_survivability_mode_is_boot_enabled(xe))
return -EBUSY;
err = xe_pm_suspend(xe);
diff --git a/drivers/gpu/drm/xe/xe_survivability_mode.c b/drivers/gpu/drm/xe/xe_survivability_mode.c
index 41705f5d52e3..4a2d1cff65d2 100644
--- a/drivers/gpu/drm/xe/xe_survivability_mode.c
+++ b/drivers/gpu/drm/xe/xe_survivability_mode.c
@@ -121,6 +121,14 @@ static void log_survivability_info(struct pci_dev *pdev)
}
}
+static int check_boot_failure(struct xe_device *xe)
+{
+ struct xe_survivability *survivability = &xe->survivability;
+
+ return survivability->boot_status == NON_CRITICAL_FAILURE ||
+ survivability->boot_status == CRITICAL_FAILURE;
+}
+
static ssize_t survivability_mode_show(struct device *dev,
struct device_attribute *attr, char *buff)
{
@@ -130,6 +138,11 @@ static ssize_t survivability_mode_show(struct device *dev,
struct xe_survivability_info *info = survivability->info;
int index = 0, count = 0;
+ count += sysfs_emit_at(buff, count, "Survivability mode type: Boot\n");
+
+ if (!check_boot_failure(xe))
+ return count;
+
for (index = 0; index < MAX_SCRATCH_MMIO; index++) {
if (info[index].reg)
count += sysfs_emit_at(buff, count, "%s: 0x%x - 0x%x\n", info[index].name,
@@ -151,12 +164,11 @@ static void xe_survivability_mode_fini(void *arg)
sysfs_remove_file(&dev->kobj, &dev_attr_survivability_mode.attr);
}
-static int enable_survivability_mode(struct pci_dev *pdev)
+static int create_survivability_sysfs(struct pci_dev *pdev)
{
struct device *dev = &pdev->dev;
struct xe_device *xe = pdev_to_xe_device(pdev);
- struct xe_survivability *survivability = &xe->survivability;
- int ret = 0;
+ int ret;
/* create survivability mode sysfs */
ret = sysfs_create_file(&dev->kobj, &dev_attr_survivability_mode.attr);
@@ -170,6 +182,20 @@ static int enable_survivability_mode(struct pci_dev *pdev)
if (ret)
return ret;
+ return 0;
+}
+
+static int enable_boot_survivability_mode(struct pci_dev *pdev)
+{
+ struct device *dev = &pdev->dev;
+ struct xe_device *xe = pdev_to_xe_device(pdev);
+ struct xe_survivability *survivability = &xe->survivability;
+ int ret = 0;
+
+ ret = create_survivability_sysfs(pdev);
+ if (ret)
+ return ret;
+
/* Make sure xe_heci_gsc_init() knows about survivability mode */
survivability->mode = true;
@@ -192,15 +218,36 @@ static int enable_survivability_mode(struct pci_dev *pdev)
return ret;
}
+static int init_survivability_mode(struct xe_device *xe)
+{
+ struct xe_survivability *survivability = &xe->survivability;
+ struct xe_survivability_info *info;
+
+ survivability->size = MAX_SCRATCH_MMIO;
+
+ info = devm_kcalloc(xe->drm.dev, survivability->size, sizeof(*info),
+ GFP_KERNEL);
+ if (!info)
+ return -ENOMEM;
+
+ survivability->info = info;
+
+ populate_survivability_info(xe);
+
+ return 0;
+}
+
/**
- * xe_survivability_mode_is_enabled - check if survivability mode is enabled
+ * xe_survivability_mode_is_boot_enabled- check if boot survivability mode is enabled
* @xe: xe device instance
*
- * Returns true if in survivability mode, false otherwise
+ * Returns true if in boot survivability mode of type, else false
*/
-bool xe_survivability_mode_is_enabled(struct xe_device *xe)
+bool xe_survivability_mode_is_boot_enabled(struct xe_device *xe)
{
- return xe->survivability.mode;
+ struct xe_survivability *survivability = &xe->survivability;
+
+ return survivability->mode && survivability->type == XE_SURVIVABILITY_TYPE_BOOT;
}
/**
@@ -241,44 +288,38 @@ bool xe_survivability_mode_is_requested(struct xe_device *xe)
data = xe_mmio_read32(mmio, PCODE_SCRATCH(0));
survivability->boot_status = REG_FIELD_GET(BOOT_STATUS, data);
- return survivability->boot_status == NON_CRITICAL_FAILURE ||
- survivability->boot_status == CRITICAL_FAILURE;
+ return check_boot_failure(xe);
}
/**
- * xe_survivability_mode_enable - Initialize and enable the survivability mode
+ * xe_survivability_mode_boot_enable - Initialize and enable boot survivability mode
* @xe: xe device instance
*
- * Initialize survivability information and enable survivability mode
+ * Initialize survivability information and enable boot survivability mode
*
- * Return: 0 if survivability mode is enabled or not requested; negative error
+ * Return: 0 if boot survivability mode is enabled or not requested, negative error
* code otherwise.
*/
-int xe_survivability_mode_enable(struct xe_device *xe)
+int xe_survivability_mode_boot_enable(struct xe_device *xe)
{
struct xe_survivability *survivability = &xe->survivability;
- struct xe_survivability_info *info;
struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
+ int ret;
if (!xe_survivability_mode_is_requested(xe))
return 0;
- survivability->size = MAX_SCRATCH_MMIO;
-
- info = devm_kcalloc(xe->drm.dev, survivability->size, sizeof(*info),
- GFP_KERNEL);
- if (!info)
- return -ENOMEM;
-
- survivability->info = info;
-
- populate_survivability_info(xe);
+ ret = init_survivability_mode(xe);
+ if (ret)
+ return ret;
- /* Only log debug information and exit if it is a critical failure */
+ /* Log breadcrumbs but do not enter survivability mode for Critical boot errors */
if (survivability->boot_status == CRITICAL_FAILURE) {
log_survivability_info(pdev);
return -ENXIO;
}
- return enable_survivability_mode(pdev);
+ survivability->type = XE_SURVIVABILITY_TYPE_BOOT;
+
+ return enable_boot_survivability_mode(pdev);
}
diff --git a/drivers/gpu/drm/xe/xe_survivability_mode.h b/drivers/gpu/drm/xe/xe_survivability_mode.h
index 02231c2bf008..f6ee283ea5e8 100644
--- a/drivers/gpu/drm/xe/xe_survivability_mode.h
+++ b/drivers/gpu/drm/xe/xe_survivability_mode.h
@@ -10,8 +10,8 @@
struct xe_device;
-int xe_survivability_mode_enable(struct xe_device *xe);
-bool xe_survivability_mode_is_enabled(struct xe_device *xe);
+int xe_survivability_mode_boot_enable(struct xe_device *xe);
+bool xe_survivability_mode_is_boot_enabled(struct xe_device *xe);
bool xe_survivability_mode_is_requested(struct xe_device *xe);
#endif /* _XE_SURVIVABILITY_MODE_H_ */
diff --git a/drivers/gpu/drm/xe/xe_survivability_mode_types.h b/drivers/gpu/drm/xe/xe_survivability_mode_types.h
index 19d433e253df..5dce393498da 100644
--- a/drivers/gpu/drm/xe/xe_survivability_mode_types.h
+++ b/drivers/gpu/drm/xe/xe_survivability_mode_types.h
@@ -9,6 +9,10 @@
#include <linux/limits.h>
#include <linux/types.h>
+enum xe_survivability_type {
+ XE_SURVIVABILITY_TYPE_BOOT,
+};
+
struct xe_survivability_info {
char name[NAME_MAX];
u32 reg;
@@ -30,6 +34,9 @@ struct xe_survivability {
/** @mode: boolean to indicate survivability mode */
bool mode;
+
+ /** @type: survivability type */
+ enum xe_survivability_type type;
};
#endif /* _XE_SURVIVABILITY_MODE_TYPES_H_ */
--
2.47.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v7 5/9] drm/xe/xe_survivability: Add support for Runtime survivability mode
2025-07-28 10:27 [PATCH v7 0/9] Handle Firmware reported Hardware Errors Riana Tauro
` (3 preceding siblings ...)
2025-07-28 10:27 ` [PATCH v7 4/9] drm/xe/xe_survivability: Refactor survivability mode Riana Tauro
@ 2025-07-28 10:27 ` Riana Tauro
2025-07-28 10:27 ` [PATCH v7 6/9] drm/xe/doc: Document device wedged and runtime survivability Riana Tauro
` (8 subsequent siblings)
13 siblings, 0 replies; 24+ messages in thread
From: Riana Tauro @ 2025-07-28 10:27 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, simona.vetter
Certain runtime firmware errors can cause the device to be in a unusable
state requiring a firmware flash to restore normal operation.
Runtime Survivability Mode indicates firmware flash is necessary by
wedging the device and exposing survivability mode sysfs.
The below sysfs is an indication that device is in survivability mode
/sys/bus/pci/devices/<device>/survivability_mode
v2: Fix kernel-doc (Umesh)
v3: Add user friendly dmesg (Frank)
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
---
drivers/gpu/drm/xe/xe_survivability_mode.c | 43 ++++++++++++++++++-
drivers/gpu/drm/xe/xe_survivability_mode.h | 1 +
.../gpu/drm/xe/xe_survivability_mode_types.h | 1 +
3 files changed, 44 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/xe_survivability_mode.c b/drivers/gpu/drm/xe/xe_survivability_mode.c
index 4a2d1cff65d2..267d0e3fd85a 100644
--- a/drivers/gpu/drm/xe/xe_survivability_mode.c
+++ b/drivers/gpu/drm/xe/xe_survivability_mode.c
@@ -138,7 +138,8 @@ static ssize_t survivability_mode_show(struct device *dev,
struct xe_survivability_info *info = survivability->info;
int index = 0, count = 0;
- count += sysfs_emit_at(buff, count, "Survivability mode type: Boot\n");
+ count += sysfs_emit_at(buff, count, "Survivability mode type: %s\n",
+ survivability->type ? "Runtime" : "Boot");
if (!check_boot_failure(xe))
return count;
@@ -291,6 +292,46 @@ bool xe_survivability_mode_is_requested(struct xe_device *xe)
return check_boot_failure(xe);
}
+/**
+ * xe_survivability_mode_runtime_enable - Initialize and enable runtime survivability mode
+ * @xe: xe device instance
+ *
+ * Initialize survivability information and enable runtime survivability mode.
+ * Runtime survivability mode is enabled when certain errors cause the device to be
+ * in non-recoverable state. The device is declared wedged with the appropriate
+ * recovery method and survivability mode sysfs exposed to userspace
+ *
+ * Return: 0 if runtime survivability mode is enabled, negative error code otherwise.
+ */
+int xe_survivability_mode_runtime_enable(struct xe_device *xe)
+{
+ struct xe_survivability *survivability = &xe->survivability;
+ struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
+ int ret;
+
+ if (!IS_DGFX(xe) || IS_SRIOV_VF(xe) || xe->info.platform < XE_BATTLEMAGE) {
+ dev_err(&pdev->dev, "Runtime Survivability Mode not supported\n");
+ return -EINVAL;
+ }
+
+ ret = init_survivability_mode(xe);
+ if (ret)
+ return ret;
+
+ ret = create_survivability_sysfs(pdev);
+ if (ret)
+ dev_err(&pdev->dev, "Failed to create survivability mode sysfs\n");
+
+ survivability->type = XE_SURVIVABILITY_TYPE_RUNTIME;
+ dev_err(&pdev->dev, "Runtime Survivability mode enabled\n");
+
+ xe_device_set_wedged_method(xe, DRM_WEDGE_RECOVERY_VENDOR);
+ xe_device_declare_wedged(xe);
+ dev_err(&pdev->dev, "Firmware update required, Refer the userspace documentation for more details!\n");
+
+ return 0;
+}
+
/**
* xe_survivability_mode_boot_enable - Initialize and enable boot survivability mode
* @xe: xe device instance
diff --git a/drivers/gpu/drm/xe/xe_survivability_mode.h b/drivers/gpu/drm/xe/xe_survivability_mode.h
index f6ee283ea5e8..1cc94226aa82 100644
--- a/drivers/gpu/drm/xe/xe_survivability_mode.h
+++ b/drivers/gpu/drm/xe/xe_survivability_mode.h
@@ -11,6 +11,7 @@
struct xe_device;
int xe_survivability_mode_boot_enable(struct xe_device *xe);
+int xe_survivability_mode_runtime_enable(struct xe_device *xe);
bool xe_survivability_mode_is_boot_enabled(struct xe_device *xe);
bool xe_survivability_mode_is_requested(struct xe_device *xe);
diff --git a/drivers/gpu/drm/xe/xe_survivability_mode_types.h b/drivers/gpu/drm/xe/xe_survivability_mode_types.h
index 5dce393498da..cd65a5d167c9 100644
--- a/drivers/gpu/drm/xe/xe_survivability_mode_types.h
+++ b/drivers/gpu/drm/xe/xe_survivability_mode_types.h
@@ -11,6 +11,7 @@
enum xe_survivability_type {
XE_SURVIVABILITY_TYPE_BOOT,
+ XE_SURVIVABILITY_TYPE_RUNTIME,
};
struct xe_survivability_info {
--
2.47.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v7 6/9] drm/xe/doc: Document device wedged and runtime survivability
2025-07-28 10:27 [PATCH v7 0/9] Handle Firmware reported Hardware Errors Riana Tauro
` (4 preceding siblings ...)
2025-07-28 10:27 ` [PATCH v7 5/9] drm/xe/xe_survivability: Add support for Runtime " Riana Tauro
@ 2025-07-28 10:27 ` Riana Tauro
2025-07-28 10:27 ` [PATCH v7 7/9] drm/xe: Add support to handle hardware errors Riana Tauro
` (7 subsequent siblings)
13 siblings, 0 replies; 24+ messages in thread
From: Riana Tauro @ 2025-07-28 10:27 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, simona.vetter
Add documentation for vendor specific device wedged recovery method
and runtime survivability.
v2: fix documentation (Raag)
v3: add userspace tool for firmware update (Raag)
v4: use consistent documentation (Raag)
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
---
Documentation/gpu/xe/index.rst | 1 +
Documentation/gpu/xe/xe_device.rst | 10 +++++++
Documentation/gpu/xe/xe_pcode.rst | 6 ++--
drivers/gpu/drm/xe/xe_device.c | 22 ++++++++++++++
drivers/gpu/drm/xe/xe_survivability_mode.c | 35 +++++++++++++++++-----
5 files changed, 64 insertions(+), 10 deletions(-)
create mode 100644 Documentation/gpu/xe/xe_device.rst
diff --git a/Documentation/gpu/xe/index.rst b/Documentation/gpu/xe/index.rst
index 42ba6c263cd0..88b22fad880e 100644
--- a/Documentation/gpu/xe/index.rst
+++ b/Documentation/gpu/xe/index.rst
@@ -25,5 +25,6 @@ DG2, etc is provided to prototype the driver.
xe_tile
xe_debugging
xe_devcoredump
+ xe_device
xe-drm-usage-stats.rst
xe_configfs
diff --git a/Documentation/gpu/xe/xe_device.rst b/Documentation/gpu/xe/xe_device.rst
new file mode 100644
index 000000000000..39a937b97cd3
--- /dev/null
+++ b/Documentation/gpu/xe/xe_device.rst
@@ -0,0 +1,10 @@
+.. SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+.. _xe-device-wedging:
+
+==================
+Xe Device Wedging
+==================
+
+.. kernel-doc:: drivers/gpu/drm/xe/xe_device.c
+ :doc: Xe Device Wedging
diff --git a/Documentation/gpu/xe/xe_pcode.rst b/Documentation/gpu/xe/xe_pcode.rst
index 5937ef3599b0..2a43601123cb 100644
--- a/Documentation/gpu/xe/xe_pcode.rst
+++ b/Documentation/gpu/xe/xe_pcode.rst
@@ -13,9 +13,11 @@ Internal API
.. kernel-doc:: drivers/gpu/drm/xe/xe_pcode.c
:internal:
+.. _xe-survivability-mode:
+
==================
-Boot Survivability
+Survivability Mode
==================
.. kernel-doc:: drivers/gpu/drm/xe/xe_survivability_mode.c
- :doc: Xe Boot Survivability
+ :doc: Survivability Mode
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index df29b87ffc5f..09a0941749b6 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -1157,6 +1157,28 @@ static void xe_device_wedged_fini(struct drm_device *drm, void *arg)
}
/**
+ * DOC: Xe Device Wedging
+ *
+ * Xe driver uses drm device wedged uevent as documented in Documentation/gpu/drm-uapi.rst.
+ *
+ * When device is in wedged state, every IOCTL will be blocked and GT cannot be
+ * used. Certain critical errors like gt reset failure, firmware failures can cause
+ * the device to be wedged. The default recovery method for a wedged state
+ * is rebind/bus-reset.
+ *
+ * Another recovery method is vendor-specific. Below are the usecases that trigger
+ * vendor-specific drm device wedged uevent and the procedure to be performed
+ * to recover the device.
+ *
+ * Case 1: CSC firmware errors require a firmware flash to restore normal device
+ * operation. Since firmware flash is a vendor-specific action
+ * ``WEDGED=vendor-specific`` recovery method along with
+ * :ref:`runtime survivability mode <xe-survivability-mode>` is used to
+ * notify userspace. User can then initiate a firmware flash using userspace tools
+ * like fwupd to restore device to normal operation.
+ */
+
+/*
* xe_device_set_wedged_method - Set wedged recovery method
* @xe: xe device instance
* @method: recovery method to set
diff --git a/drivers/gpu/drm/xe/xe_survivability_mode.c b/drivers/gpu/drm/xe/xe_survivability_mode.c
index 267d0e3fd85a..86ba767c4e44 100644
--- a/drivers/gpu/drm/xe/xe_survivability_mode.c
+++ b/drivers/gpu/drm/xe/xe_survivability_mode.c
@@ -22,15 +22,18 @@
#define MAX_SCRATCH_MMIO 8
/**
- * DOC: Xe Boot Survivability
+ * DOC: Survivability Mode
*
- * Boot Survivability is a software based workflow for recovering a system in a failed boot state
+ * Survivability Mode is a software based workflow for recovering a system in a failed boot state
* Here system recoverability is concerned with recovering the firmware responsible for boot.
*
- * This is implemented by loading the driver with bare minimum (no drm card) to allow the firmware
- * to be flashed through mei and collect telemetry. The driver's probe flow is modified
- * such that it enters survivability mode when pcode initialization is incomplete and boot status
- * denotes a failure.
+ * Boot Survivability
+ * ===================
+ *
+ * Boot Survivability is implemented by loading the driver with bare minimum (no drm card) to allow
+ * the firmware to be flashed through mei driver and collect telemetry. The driver's probe flow is
+ * modified such that it enters survivability mode when pcode initialization is incomplete and boot
+ * status denotes a failure.
*
* Survivability mode can also be entered manually using the survivability mode attribute available
* through configfs which is beneficial in several usecases. It can be used to address scenarios
@@ -46,7 +49,7 @@
* Survivability mode is indicated by the below admin-only readable sysfs which provides additional
* debug information::
*
- * /sys/bus/pci/devices/<device>/surivability_mode
+ * /sys/bus/pci/devices/<device>/survivability_mode
*
* Capability Information:
* Provides boot status
@@ -56,6 +59,22 @@
* Provides history of previous failures
* Auxiliary Information
* Certain failures may have information in addition to postcode information
+ *
+ * Runtime Survivability
+ * =====================
+ *
+ * Certain runtime firmware errors can cause the device to enter a wedged state
+ * (:ref:`xe-device-wedging`) requiring a firmware flash to restore normal operation.
+ * Runtime Survivability Mode indicates that a firmware flash is necessary to recover the device and
+ * is indicated by the presence of survivability mode sysfs::
+ *
+ * /sys/bus/pci/devices/<device>/survivability_mode
+ *
+ * Survivability mode sysfs provides information about the type of survivability mode.
+ *
+ * When such errors occur, userspace is notified with the drm device wedged uevent and runtime
+ * survivability mode. User can then initiate a firmware flash using userspace tools like fwupd
+ * to restore device to normal operation.
*/
static u32 aux_history_offset(u32 reg_value)
@@ -327,7 +346,7 @@ int xe_survivability_mode_runtime_enable(struct xe_device *xe)
xe_device_set_wedged_method(xe, DRM_WEDGE_RECOVERY_VENDOR);
xe_device_declare_wedged(xe);
- dev_err(&pdev->dev, "Firmware update required, Refer the userspace documentation for more details!\n");
+ dev_err(&pdev->dev, "Firmware flash required, Refer the userspace documentation for more details!\n");
return 0;
}
--
2.47.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v7 7/9] drm/xe: Add support to handle hardware errors
2025-07-28 10:27 [PATCH v7 0/9] Handle Firmware reported Hardware Errors Riana Tauro
` (5 preceding siblings ...)
2025-07-28 10:27 ` [PATCH v7 6/9] drm/xe/doc: Document device wedged and runtime survivability Riana Tauro
@ 2025-07-28 10:27 ` Riana Tauro
2025-07-28 10:27 ` [PATCH v7 8/9] drm/xe/xe_hw_error: Handle CSC Firmware reported Hardware errors Riana Tauro
` (6 subsequent siblings)
13 siblings, 0 replies; 24+ messages in thread
From: Riana Tauro @ 2025-07-28 10:27 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, simona.vetter, Stuart Summers,
Himal Prasad Ghimiray
Gfx device reports two classes of errors: uncorrectable and
correctable. Depending on the severity uncorrectable errors are further
classified Non-Fatal and Fatal.
Correctable and Non-Fatal errors: These errors are reported as MSI. Bits in
the Master Interrupt Register indicate the class of the error.
The source of the error is then read from the Device Error Source
Register.
Fatal errors: These are reported as PCIe errors
When a PCIe error is asserted, the OS will perform a SBR (Secondary
Bus reset) which causes the driver to reload. The error registers are
sticky and the values are maintained through SBR.
Add basic support to handle these errors.
Bspec: 50875, 53073, 53074, 53075, 53076
v2: Format commit message (Umesh)
v3: fix documentation (Stuart)
Cc: Stuart Summers <stuart.summers@intel.com>
Co-developed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
drivers/gpu/drm/xe/Makefile | 1 +
drivers/gpu/drm/xe/regs/xe_hw_error_regs.h | 15 +++
drivers/gpu/drm/xe/regs/xe_irq_regs.h | 1 +
drivers/gpu/drm/xe/xe_hw_error.c | 109 +++++++++++++++++++++
drivers/gpu/drm/xe/xe_hw_error.h | 15 +++
drivers/gpu/drm/xe/xe_irq.c | 4 +
6 files changed, 145 insertions(+)
create mode 100644 drivers/gpu/drm/xe/regs/xe_hw_error_regs.h
create mode 100644 drivers/gpu/drm/xe/xe_hw_error.c
create mode 100644 drivers/gpu/drm/xe/xe_hw_error.h
diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index 8e0c3412a757..7401aed3c02c 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -82,6 +82,7 @@ xe-y += xe_bb.o \
xe_hw_engine.o \
xe_hw_engine_class_sysfs.o \
xe_hw_engine_group.o \
+ xe_hw_error.o \
xe_hw_fence.o \
xe_irq.o \
xe_lrc.o \
diff --git a/drivers/gpu/drm/xe/regs/xe_hw_error_regs.h b/drivers/gpu/drm/xe/regs/xe_hw_error_regs.h
new file mode 100644
index 000000000000..ed9b81fb28a0
--- /dev/null
+++ b/drivers/gpu/drm/xe/regs/xe_hw_error_regs.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#ifndef _XE_HW_ERROR_REGS_H_
+#define _XE_HW_ERROR_REGS_H_
+
+#define DEV_ERR_STAT_NONFATAL 0x100178
+#define DEV_ERR_STAT_CORRECTABLE 0x10017c
+#define DEV_ERR_STAT_REG(x) XE_REG(_PICK_EVEN((x), \
+ DEV_ERR_STAT_CORRECTABLE, \
+ DEV_ERR_STAT_NONFATAL))
+
+#endif
diff --git a/drivers/gpu/drm/xe/regs/xe_irq_regs.h b/drivers/gpu/drm/xe/regs/xe_irq_regs.h
index 13635e4331d4..7c2a3a140142 100644
--- a/drivers/gpu/drm/xe/regs/xe_irq_regs.h
+++ b/drivers/gpu/drm/xe/regs/xe_irq_regs.h
@@ -18,6 +18,7 @@
#define GFX_MSTR_IRQ XE_REG(0x190010, XE_REG_OPTION_VF)
#define MASTER_IRQ REG_BIT(31)
#define GU_MISC_IRQ REG_BIT(29)
+#define ERROR_IRQ(x) REG_BIT(26 + (x))
#define DISPLAY_IRQ REG_BIT(16)
#define I2C_IRQ REG_BIT(12)
#define GT_DW_IRQ(x) REG_BIT(x)
diff --git a/drivers/gpu/drm/xe/xe_hw_error.c b/drivers/gpu/drm/xe/xe_hw_error.c
new file mode 100644
index 000000000000..0fa45792f1c0
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_hw_error.c
@@ -0,0 +1,109 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#include "regs/xe_hw_error_regs.h"
+#include "regs/xe_irq_regs.h"
+
+#include "xe_device.h"
+#include "xe_hw_error.h"
+#include "xe_mmio.h"
+
+/* Error categories reported by hardware */
+enum hardware_error {
+ HARDWARE_ERROR_CORRECTABLE = 0,
+ HARDWARE_ERROR_NONFATAL = 1,
+ HARDWARE_ERROR_FATAL = 2,
+ HARDWARE_ERROR_MAX,
+};
+
+static const char *hw_error_to_str(const enum hardware_error hw_err)
+{
+ switch (hw_err) {
+ case HARDWARE_ERROR_CORRECTABLE:
+ return "CORRECTABLE";
+ case HARDWARE_ERROR_NONFATAL:
+ return "NONFATAL";
+ case HARDWARE_ERROR_FATAL:
+ return "FATAL";
+ default:
+ return "UNKNOWN";
+ }
+}
+
+static void hw_error_source_handler(struct xe_tile *tile, const enum hardware_error hw_err)
+{
+ const char *hw_err_str = hw_error_to_str(hw_err);
+ struct xe_device *xe = tile_to_xe(tile);
+ unsigned long flags;
+ u32 err_src;
+
+ if (xe->info.platform != XE_BATTLEMAGE)
+ return;
+
+ spin_lock_irqsave(&xe->irq.lock, flags);
+ err_src = xe_mmio_read32(&tile->mmio, DEV_ERR_STAT_REG(hw_err));
+ if (!err_src) {
+ drm_err_ratelimited(&xe->drm, HW_ERR "Tile%d reported DEV_ERR_STAT_%s blank!\n",
+ tile->id, hw_err_str);
+ goto unlock;
+ }
+
+ /* TODO: Process errrors per source */
+
+ xe_mmio_write32(&tile->mmio, DEV_ERR_STAT_REG(hw_err), err_src);
+
+unlock:
+ spin_unlock_irqrestore(&xe->irq.lock, flags);
+}
+
+/**
+ * xe_hw_error_irq_handler - irq handling for hw errors
+ * @tile: tile instance
+ * @master_ctl: value read from master interrupt register
+ *
+ * Xe platforms add three error bits to the master interrupt register to support error handling.
+ * These three bits are used to convey the class of error FATAL, NONFATAL, or CORRECTABLE.
+ * To process the interrupt, determine the source of error by reading the Device Error Source
+ * Register that corresponds to the class of error being serviced.
+ */
+void xe_hw_error_irq_handler(struct xe_tile *tile, const u32 master_ctl)
+{
+ enum hardware_error hw_err;
+
+ for (hw_err = 0; hw_err < HARDWARE_ERROR_MAX; hw_err++)
+ if (master_ctl & ERROR_IRQ(hw_err))
+ hw_error_source_handler(tile, hw_err);
+}
+
+/*
+ * Process hardware errors during boot
+ */
+static void process_hw_errors(struct xe_device *xe)
+{
+ struct xe_tile *tile;
+ u32 master_ctl;
+ u8 id;
+
+ for_each_tile(tile, xe, id) {
+ master_ctl = xe_mmio_read32(&tile->mmio, GFX_MSTR_IRQ);
+ xe_hw_error_irq_handler(tile, master_ctl);
+ xe_mmio_write32(&tile->mmio, GFX_MSTR_IRQ, master_ctl);
+ }
+}
+
+/**
+ * xe_hw_error_init - Initialize hw errors
+ * @xe: xe device instance
+ *
+ * Initialize and check for errors that occurred during boot
+ * prior to driver load
+ */
+void xe_hw_error_init(struct xe_device *xe)
+{
+ if (!IS_DGFX(xe) || IS_SRIOV_VF(xe))
+ return;
+
+ process_hw_errors(xe);
+}
diff --git a/drivers/gpu/drm/xe/xe_hw_error.h b/drivers/gpu/drm/xe/xe_hw_error.h
new file mode 100644
index 000000000000..d86e28c5180c
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_hw_error.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+#ifndef XE_HW_ERROR_H_
+#define XE_HW_ERROR_H_
+
+#include <linux/types.h>
+
+struct xe_tile;
+struct xe_device;
+
+void xe_hw_error_irq_handler(struct xe_tile *tile, const u32 master_ctl);
+void xe_hw_error_init(struct xe_device *xe);
+#endif
diff --git a/drivers/gpu/drm/xe/xe_irq.c b/drivers/gpu/drm/xe/xe_irq.c
index 5df5b8c2a3e4..870edaf69388 100644
--- a/drivers/gpu/drm/xe/xe_irq.c
+++ b/drivers/gpu/drm/xe/xe_irq.c
@@ -18,6 +18,7 @@
#include "xe_gt.h"
#include "xe_guc.h"
#include "xe_hw_engine.h"
+#include "xe_hw_error.h"
#include "xe_i2c.h"
#include "xe_memirq.h"
#include "xe_mmio.h"
@@ -468,6 +469,7 @@ static irqreturn_t dg1_irq_handler(int irq, void *arg)
xe_mmio_write32(mmio, GFX_MSTR_IRQ, master_ctl);
gt_irq_handler(tile, master_ctl, intr_dw, identity);
+ xe_hw_error_irq_handler(tile, master_ctl);
/*
* Display interrupts (including display backlight operations
@@ -756,6 +758,8 @@ int xe_irq_install(struct xe_device *xe)
int nvec = 1;
int err;
+ xe_hw_error_init(xe);
+
xe_irq_reset(xe);
if (xe_device_has_msix(xe)) {
--
2.47.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v7 8/9] drm/xe/xe_hw_error: Handle CSC Firmware reported Hardware errors
2025-07-28 10:27 [PATCH v7 0/9] Handle Firmware reported Hardware Errors Riana Tauro
` (6 preceding siblings ...)
2025-07-28 10:27 ` [PATCH v7 7/9] drm/xe: Add support to handle hardware errors Riana Tauro
@ 2025-07-28 10:27 ` Riana Tauro
2025-07-28 10:27 ` [PATCH v7 9/9] drm/xe/xe_hw_error: Add fault injection to trigger csc error handler Riana Tauro
` (5 subsequent siblings)
13 siblings, 0 replies; 24+ messages in thread
From: Riana Tauro @ 2025-07-28 10:27 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, simona.vetter
Add support to handle CSC firmware reported errors. When CSC firmware
errors are encoutered, a error interrupt is received by the GFX device as
a MSI interrupt.
Device Source control registers indicates the source of the error as CSC
The HEC error status register indicates that the error is firmware reported
Depending on the type of error, the error cause is written to the HEC
Firmware error register.
On encountering such CSC firmware errors, the graphics device is
non-recoverable from driver context. The only way to recover from these
errors is firmware flash.
System admin/userspace is notified of the necessity of firmware flash
with a combination of vendor-specific drm device edged uevent, dmesg logs
and runtime survivability sysfs. It is the responsiblity of the consumer
to verify all the actions and then trigger a firmware flash using tools
like fwupd.
$ udevadm monitor --property --kernel
monitor will print the received events for:
KERNEL - the kernel uevent
KERNEL[754.709341] change /devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:01.0/0000:03:00.0/drm/card0 (drm)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:01.0/0000:03:00.0/drm/card0
SUBSYSTEM=drm
WEDGED=vendor-specific
DEVNAME=/dev/dri/card0
DEVTYPE=drm_minor
SEQNUM=5973
MAJOR=226
MINOR=0
Logs
xe 0000:03:00.0: [drm] *ERROR* [Hardware Error]: Tile0 reported NONFATAL error 0x20000
xe 0000:03:00.0: [drm] *ERROR* [Hardware Error]: NONFATAL: HEC Uncorrected FW FD Corruption error reported, bit[2] is set
xe 0000:03:00.0: Runtime Survivability mode enabled
xe 0000:03:00.0: [drm] *ERROR* CRITICAL: Xe has declared device 0000:03:00.0 as wedged.
IOCTLs and executions are blocked. Only a rebind may clear the failure
Please file a _new_ bug report at https://gitlab.freedesktop.org/drm/xe/kernel/issues/new
xe 0000:03:00.0: [drm] device wedged, needs recovery
xe 0000:03:00.0: Firmware flash required, Please refer to the userspace documentation for more details!
Runtime survivability Sysfs:
/sys/bus/pci/devices/<device>/survivability_mode
v2: use vendor recovery method with
runtime survivability (Christian, Rodrigo, Raag)
v3: move declare wedged to runtime survivability mode (Rodrigo)
v4: update commit message
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
drivers/gpu/drm/xe/regs/xe_gsc_regs.h | 2 +
drivers/gpu/drm/xe/regs/xe_hw_error_regs.h | 7 ++-
drivers/gpu/drm/xe/xe_device_types.h | 3 +
drivers/gpu/drm/xe/xe_hw_error.c | 64 +++++++++++++++++++++-
drivers/gpu/drm/xe/xe_survivability_mode.c | 2 +-
5 files changed, 75 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/xe/regs/xe_gsc_regs.h b/drivers/gpu/drm/xe/regs/xe_gsc_regs.h
index 9b66cc972a63..180be82672ab 100644
--- a/drivers/gpu/drm/xe/regs/xe_gsc_regs.h
+++ b/drivers/gpu/drm/xe/regs/xe_gsc_regs.h
@@ -13,6 +13,8 @@
/* Definitions of GSC H/W registers, bits, etc */
+#define BMG_GSC_HECI1_BASE 0x373000
+
#define MTL_GSC_HECI1_BASE 0x00116000
#define MTL_GSC_HECI2_BASE 0x00117000
diff --git a/drivers/gpu/drm/xe/regs/xe_hw_error_regs.h b/drivers/gpu/drm/xe/regs/xe_hw_error_regs.h
index ed9b81fb28a0..c146b9ef44eb 100644
--- a/drivers/gpu/drm/xe/regs/xe_hw_error_regs.h
+++ b/drivers/gpu/drm/xe/regs/xe_hw_error_regs.h
@@ -6,10 +6,15 @@
#ifndef _XE_HW_ERROR_REGS_H_
#define _XE_HW_ERROR_REGS_H_
+#define HEC_UNCORR_ERR_STATUS(base) XE_REG((base) + 0x118)
+#define UNCORR_FW_REPORTED_ERR BIT(6)
+
+#define HEC_UNCORR_FW_ERR_DW0(base) XE_REG((base) + 0x124)
+
#define DEV_ERR_STAT_NONFATAL 0x100178
#define DEV_ERR_STAT_CORRECTABLE 0x10017c
#define DEV_ERR_STAT_REG(x) XE_REG(_PICK_EVEN((x), \
DEV_ERR_STAT_CORRECTABLE, \
DEV_ERR_STAT_NONFATAL))
-
+#define XE_CSC_ERROR BIT(17)
#endif
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index af6b38458b78..58138ab7c452 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -192,6 +192,9 @@ struct xe_tile {
/** @memirq: Memory Based Interrupts. */
struct xe_memirq memirq;
+ /** @csc_hw_error_work: worker to report CSC HW errors */
+ struct work_struct csc_hw_error_work;
+
/** @pcode: tile's PCODE */
struct {
/** @pcode.lock: protecting tile's PCODE mailbox data */
diff --git a/drivers/gpu/drm/xe/xe_hw_error.c b/drivers/gpu/drm/xe/xe_hw_error.c
index 0fa45792f1c0..4099ed1262e1 100644
--- a/drivers/gpu/drm/xe/xe_hw_error.c
+++ b/drivers/gpu/drm/xe/xe_hw_error.c
@@ -3,12 +3,16 @@
* Copyright © 2025 Intel Corporation
*/
+#include "regs/xe_gsc_regs.h"
#include "regs/xe_hw_error_regs.h"
#include "regs/xe_irq_regs.h"
#include "xe_device.h"
#include "xe_hw_error.h"
#include "xe_mmio.h"
+#include "xe_survivability_mode.h"
+
+#define HEC_UNCORR_FW_ERR_BITS 4
/* Error categories reported by hardware */
enum hardware_error {
@@ -18,6 +22,13 @@ enum hardware_error {
HARDWARE_ERROR_MAX,
};
+static const char * const hec_uncorrected_fw_errors[] = {
+ "Fatal",
+ "CSE Disabled",
+ "FD Corruption",
+ "Data Corruption"
+};
+
static const char *hw_error_to_str(const enum hardware_error hw_err)
{
switch (hw_err) {
@@ -32,6 +43,52 @@ static const char *hw_error_to_str(const enum hardware_error hw_err)
}
}
+static void csc_hw_error_work(struct work_struct *work)
+{
+ struct xe_tile *tile = container_of(work, typeof(*tile), csc_hw_error_work);
+ struct xe_device *xe = tile_to_xe(tile);
+ int ret;
+
+ ret = xe_survivability_mode_runtime_enable(xe);
+ if (ret)
+ drm_err(&xe->drm, "Failed to enable runtime survivability mode\n");
+}
+
+static void csc_hw_error_handler(struct xe_tile *tile, const enum hardware_error hw_err)
+{
+ const char *hw_err_str = hw_error_to_str(hw_err);
+ struct xe_device *xe = tile_to_xe(tile);
+ struct xe_mmio *mmio = &tile->mmio;
+ u32 base, err_bit, err_src;
+ unsigned long fw_err;
+
+ if (xe->info.platform != XE_BATTLEMAGE)
+ return;
+
+ base = BMG_GSC_HECI1_BASE;
+ lockdep_assert_held(&xe->irq.lock);
+ err_src = xe_mmio_read32(mmio, HEC_UNCORR_ERR_STATUS(base));
+ if (!err_src) {
+ drm_err_ratelimited(&xe->drm, HW_ERR "Tile%d reported HEC_ERR_STATUS_%s blank\n",
+ tile->id, hw_err_str);
+ return;
+ }
+
+ if (err_src & UNCORR_FW_REPORTED_ERR) {
+ fw_err = xe_mmio_read32(mmio, HEC_UNCORR_FW_ERR_DW0(base));
+ for_each_set_bit(err_bit, &fw_err, HEC_UNCORR_FW_ERR_BITS) {
+ drm_err_ratelimited(&xe->drm, HW_ERR
+ "%s: HEC Uncorrected FW %s error reported, bit[%d] is set\n",
+ hw_err_str, hec_uncorrected_fw_errors[err_bit],
+ err_bit);
+
+ schedule_work(&tile->csc_hw_error_work);
+ }
+ }
+
+ xe_mmio_write32(mmio, HEC_UNCORR_ERR_STATUS(base), err_src);
+}
+
static void hw_error_source_handler(struct xe_tile *tile, const enum hardware_error hw_err)
{
const char *hw_err_str = hw_error_to_str(hw_err);
@@ -50,7 +107,8 @@ static void hw_error_source_handler(struct xe_tile *tile, const enum hardware_er
goto unlock;
}
- /* TODO: Process errrors per source */
+ if (err_src & XE_CSC_ERROR)
+ csc_hw_error_handler(tile, hw_err);
xe_mmio_write32(&tile->mmio, DEV_ERR_STAT_REG(hw_err), err_src);
@@ -102,8 +160,12 @@ static void process_hw_errors(struct xe_device *xe)
*/
void xe_hw_error_init(struct xe_device *xe)
{
+ struct xe_tile *tile = xe_device_get_root_tile(xe);
+
if (!IS_DGFX(xe) || IS_SRIOV_VF(xe))
return;
+ INIT_WORK(&tile->csc_hw_error_work, csc_hw_error_work);
+
process_hw_errors(xe);
}
diff --git a/drivers/gpu/drm/xe/xe_survivability_mode.c b/drivers/gpu/drm/xe/xe_survivability_mode.c
index 86ba767c4e44..53c5af4b810c 100644
--- a/drivers/gpu/drm/xe/xe_survivability_mode.c
+++ b/drivers/gpu/drm/xe/xe_survivability_mode.c
@@ -346,7 +346,7 @@ int xe_survivability_mode_runtime_enable(struct xe_device *xe)
xe_device_set_wedged_method(xe, DRM_WEDGE_RECOVERY_VENDOR);
xe_device_declare_wedged(xe);
- dev_err(&pdev->dev, "Firmware flash required, Refer the userspace documentation for more details!\n");
+ dev_err(&pdev->dev, "Firmware flash required, Please refer to the userspace documentation for more details!\n");
return 0;
}
--
2.47.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v7 9/9] drm/xe/xe_hw_error: Add fault injection to trigger csc error handler
2025-07-28 10:27 [PATCH v7 0/9] Handle Firmware reported Hardware Errors Riana Tauro
` (7 preceding siblings ...)
2025-07-28 10:27 ` [PATCH v7 8/9] drm/xe/xe_hw_error: Handle CSC Firmware reported Hardware errors Riana Tauro
@ 2025-07-28 10:27 ` Riana Tauro
2025-07-28 16:18 ` ✗ CI.checkpatch: warning for Handle Firmware reported Hardware Errors (rev7) Patchwork
` (4 subsequent siblings)
13 siblings, 0 replies; 24+ messages in thread
From: Riana Tauro @ 2025-07-28 10:27 UTC (permalink / raw)
To: intel-xe, dri-devel
Cc: riana.tauro, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, simona.vetter
Add a debugfs fault handler to trigger csc error handler that
wedges the device and enables runtime survivability mode.
v2: add debugfs only for bmg (Umesh)
v3: do not use csc_fault attribute if debugfs is not enabled
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
---
drivers/gpu/drm/xe/xe_debugfs.c | 3 +++
drivers/gpu/drm/xe/xe_hw_error.c | 11 +++++++++++
2 files changed, 14 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
index 0b4a532f7c45..ac5b9e5889c5 100644
--- a/drivers/gpu/drm/xe/xe_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_debugfs.c
@@ -34,6 +34,7 @@
#endif
DECLARE_FAULT_ATTR(gt_reset_failure);
+DECLARE_FAULT_ATTR(inject_csc_hw_error);
static void read_residency_counter(struct xe_device *xe, struct xe_mmio *mmio,
u32 offset, char *name, struct drm_printer *p)
@@ -401,6 +402,8 @@ void xe_debugfs_register(struct xe_device *xe)
xe_pxp_debugfs_register(xe->pxp);
fault_create_debugfs_attr("fail_gt_reset", root, >_reset_failure);
+ if (xe->info.platform == XE_BATTLEMAGE)
+ fault_create_debugfs_attr("inject_csc_hw_error", root, &inject_csc_hw_error);
if (IS_SRIOV_PF(xe))
xe_sriov_pf_debugfs_register(xe, root);
diff --git a/drivers/gpu/drm/xe/xe_hw_error.c b/drivers/gpu/drm/xe/xe_hw_error.c
index 4099ed1262e1..8c65291f36fc 100644
--- a/drivers/gpu/drm/xe/xe_hw_error.c
+++ b/drivers/gpu/drm/xe/xe_hw_error.c
@@ -3,6 +3,8 @@
* Copyright © 2025 Intel Corporation
*/
+#include <linux/fault-inject.h>
+
#include "regs/xe_gsc_regs.h"
#include "regs/xe_hw_error_regs.h"
#include "regs/xe_irq_regs.h"
@@ -13,6 +15,7 @@
#include "xe_survivability_mode.h"
#define HEC_UNCORR_FW_ERR_BITS 4
+extern struct fault_attr inject_csc_hw_error;
/* Error categories reported by hardware */
enum hardware_error {
@@ -43,6 +46,11 @@ static const char *hw_error_to_str(const enum hardware_error hw_err)
}
}
+static bool fault_inject_csc_hw_error(void)
+{
+ return IS_ENABLED(CONFIG_DEBUG_FS) && should_fail(&inject_csc_hw_error, 1);
+}
+
static void csc_hw_error_work(struct work_struct *work)
{
struct xe_tile *tile = container_of(work, typeof(*tile), csc_hw_error_work);
@@ -130,6 +138,9 @@ void xe_hw_error_irq_handler(struct xe_tile *tile, const u32 master_ctl)
{
enum hardware_error hw_err;
+ if (fault_inject_csc_hw_error())
+ schedule_work(&tile->csc_hw_error_work);
+
for (hw_err = 0; hw_err < HARDWARE_ERROR_MAX; hw_err++)
if (master_ctl & ERROR_IRQ(hw_err))
hw_error_source_handler(tile, hw_err);
--
2.47.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* ✗ CI.checkpatch: warning for Handle Firmware reported Hardware Errors (rev7)
2025-07-28 10:27 [PATCH v7 0/9] Handle Firmware reported Hardware Errors Riana Tauro
` (8 preceding siblings ...)
2025-07-28 10:27 ` [PATCH v7 9/9] drm/xe/xe_hw_error: Add fault injection to trigger csc error handler Riana Tauro
@ 2025-07-28 16:18 ` Patchwork
2025-07-28 16:20 ` ✓ CI.KUnit: success " Patchwork
` (3 subsequent siblings)
13 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2025-07-28 16:18 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
== Series Details ==
Series: Handle Firmware reported Hardware Errors (rev7)
URL : https://patchwork.freedesktop.org/series/149756/
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
c298eac5978c38dcc62a70c0d73c91765e7cc296
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit ad19d573929945f50c6f71d2207d46710b39063c
Author: Riana Tauro <riana.tauro@intel.com>
Date: Mon Jul 28 15:57:59 2025 +0530
drm/xe/xe_hw_error: Add fault injection to trigger csc error handler
Add a debugfs fault handler to trigger csc error handler that
wedges the device and enables runtime survivability mode.
v2: add debugfs only for bmg (Umesh)
v3: do not use csc_fault attribute if debugfs is not enabled
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
+ /mt/dim checkpatch 51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09 drm-intel
2ad2d82b28d8 drm: Add a vendor-specific recovery method to drm device wedged uevent
58b71fc08939 drm/xe: Set GT as wedged before sending wedged uevent
15ea02cf19b4 drm/xe: Add a helper function to set recovery method
4df926c587f9 drm/xe/xe_survivability: Refactor survivability mode
69dcd5c1d779 drm/xe/xe_survivability: Add support for Runtime survivability mode
cd92a67858b0 drm/xe/doc: Document device wedged and runtime survivability
-:29: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#29:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 119 lines checked
34b11ccd7655 drm/xe: Add support to handle hardware errors
-:46: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#46:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 175 lines checked
7f590f44e97b drm/xe/xe_hw_error: Handle CSC Firmware reported Hardware errors
-:30: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#30:
KERNEL[754.709341] change /devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:01.0/0000:03:00.0/drm/card0 (drm)
total: 0 errors, 1 warnings, 0 checks, 143 lines checked
ad19d5739299 drm/xe/xe_hw_error: Add fault injection to trigger csc error handler
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✓ CI.KUnit: success for Handle Firmware reported Hardware Errors (rev7)
2025-07-28 10:27 [PATCH v7 0/9] Handle Firmware reported Hardware Errors Riana Tauro
` (9 preceding siblings ...)
2025-07-28 16:18 ` ✗ CI.checkpatch: warning for Handle Firmware reported Hardware Errors (rev7) Patchwork
@ 2025-07-28 16:20 ` Patchwork
2025-07-28 16:34 ` ✗ CI.checksparse: warning " Patchwork
` (2 subsequent siblings)
13 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2025-07-28 16:20 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
== Series Details ==
Series: Handle Firmware reported Hardware Errors (rev7)
URL : https://patchwork.freedesktop.org/series/149756/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[16:18:56] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[16:19:00] 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
[16:19:27] Starting KUnit Kernel (1/1)...
[16:19:27] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[16:19:27] ================== guc_buf (11 subtests) ===================
[16:19:27] [PASSED] test_smallest
[16:19:27] [PASSED] test_largest
[16:19:27] [PASSED] test_granular
[16:19:27] [PASSED] test_unique
[16:19:27] [PASSED] test_overlap
[16:19:27] [PASSED] test_reusable
[16:19:27] [PASSED] test_too_big
[16:19:27] [PASSED] test_flush
[16:19:27] [PASSED] test_lookup
[16:19:27] [PASSED] test_data
[16:19:27] [PASSED] test_class
[16:19:27] ===================== [PASSED] guc_buf =====================
[16:19:27] =================== guc_dbm (7 subtests) ===================
[16:19:27] [PASSED] test_empty
[16:19:27] [PASSED] test_default
[16:19:27] ======================== test_size ========================
[16:19:27] [PASSED] 4
[16:19:27] [PASSED] 8
[16:19:27] [PASSED] 32
[16:19:27] [PASSED] 256
[16:19:27] ==================== [PASSED] test_size ====================
[16:19:27] ======================= test_reuse ========================
[16:19:27] [PASSED] 4
[16:19:27] [PASSED] 8
[16:19:27] [PASSED] 32
[16:19:27] [PASSED] 256
[16:19:27] =================== [PASSED] test_reuse ====================
[16:19:27] =================== test_range_overlap ====================
[16:19:27] [PASSED] 4
[16:19:27] [PASSED] 8
[16:19:27] [PASSED] 32
[16:19:27] [PASSED] 256
[16:19:27] =============== [PASSED] test_range_overlap ================
[16:19:27] =================== test_range_compact ====================
[16:19:27] [PASSED] 4
[16:19:27] [PASSED] 8
[16:19:27] [PASSED] 32
[16:19:27] [PASSED] 256
[16:19:27] =============== [PASSED] test_range_compact ================
[16:19:27] ==================== test_range_spare =====================
[16:19:27] [PASSED] 4
[16:19:27] [PASSED] 8
[16:19:27] [PASSED] 32
[16:19:27] [PASSED] 256
[16:19:27] ================ [PASSED] test_range_spare =================
[16:19:27] ===================== [PASSED] guc_dbm =====================
[16:19:27] =================== guc_idm (6 subtests) ===================
[16:19:27] [PASSED] bad_init
[16:19:27] [PASSED] no_init
[16:19:27] [PASSED] init_fini
[16:19:27] [PASSED] check_used
[16:19:27] [PASSED] check_quota
[16:19:27] [PASSED] check_all
[16:19:27] ===================== [PASSED] guc_idm =====================
[16:19:27] ================== no_relay (3 subtests) ===================
[16:19:27] [PASSED] xe_drops_guc2pf_if_not_ready
[16:19:27] [PASSED] xe_drops_guc2vf_if_not_ready
[16:19:27] [PASSED] xe_rejects_send_if_not_ready
[16:19:27] ==================== [PASSED] no_relay =====================
[16:19:27] ================== pf_relay (14 subtests) ==================
[16:19:27] [PASSED] pf_rejects_guc2pf_too_short
[16:19:27] [PASSED] pf_rejects_guc2pf_too_long
[16:19:27] [PASSED] pf_rejects_guc2pf_no_payload
[16:19:27] [PASSED] pf_fails_no_payload
[16:19:27] [PASSED] pf_fails_bad_origin
[16:19:27] [PASSED] pf_fails_bad_type
[16:19:27] [PASSED] pf_txn_reports_error
[16:19:27] [PASSED] pf_txn_sends_pf2guc
[16:19:27] [PASSED] pf_sends_pf2guc
[16:19:27] [SKIPPED] pf_loopback_nop
[16:19:27] [SKIPPED] pf_loopback_echo
[16:19:27] [SKIPPED] pf_loopback_fail
[16:19:27] [SKIPPED] pf_loopback_busy
[16:19:27] [SKIPPED] pf_loopback_retry
[16:19:27] ==================== [PASSED] pf_relay =====================
[16:19:27] ================== vf_relay (3 subtests) ===================
[16:19:27] [PASSED] vf_rejects_guc2vf_too_short
[16:19:27] [PASSED] vf_rejects_guc2vf_too_long
[16:19:27] [PASSED] vf_rejects_guc2vf_no_payload
[16:19:27] ==================== [PASSED] vf_relay =====================
[16:19:27] ===================== lmtt (1 subtest) =====================
[16:19:27] ======================== test_ops =========================
[16:19:27] [PASSED] 2-level
[16:19:27] [PASSED] multi-level
[16:19:27] ==================== [PASSED] test_ops =====================
[16:19:27] ====================== [PASSED] lmtt =======================
[16:19:27] ================= pf_service (11 subtests) =================
[16:19:27] [PASSED] pf_negotiate_any
[16:19:27] [PASSED] pf_negotiate_base_match
[16:19:27] [PASSED] pf_negotiate_base_newer
[16:19:27] [PASSED] pf_negotiate_base_next
[16:19:27] [SKIPPED] pf_negotiate_base_older
[16:19:27] [PASSED] pf_negotiate_base_prev
[16:19:27] [PASSED] pf_negotiate_latest_match
[16:19:27] [PASSED] pf_negotiate_latest_newer
[16:19:27] [PASSED] pf_negotiate_latest_next
[16:19:27] [SKIPPED] pf_negotiate_latest_older
[16:19:27] [SKIPPED] pf_negotiate_latest_prev
[16:19:27] =================== [PASSED] pf_service ====================
[16:19:27] =================== xe_mocs (2 subtests) ===================
[16:19:27] ================ xe_live_mocs_kernel_kunit ================
[16:19:27] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[16:19:27] ================ xe_live_mocs_reset_kunit =================
[16:19:27] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[16:19:27] ==================== [SKIPPED] xe_mocs =====================
[16:19:27] ================= xe_migrate (2 subtests) ==================
[16:19:27] ================= xe_migrate_sanity_kunit =================
[16:19:27] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[16:19:27] ================== xe_validate_ccs_kunit ==================
[16:19:27] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[16:19:27] =================== [SKIPPED] xe_migrate ===================
[16:19:27] ================== xe_dma_buf (1 subtest) ==================
[16:19:27] ==================== xe_dma_buf_kunit =====================
[16:19:27] ================ [SKIPPED] xe_dma_buf_kunit ================
[16:19:27] =================== [SKIPPED] xe_dma_buf ===================
[16:19:27] ================= xe_bo_shrink (1 subtest) =================
[16:19:27] =================== xe_bo_shrink_kunit ====================
[16:19:27] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[16:19:27] ================== [SKIPPED] xe_bo_shrink ==================
[16:19:27] ==================== xe_bo (2 subtests) ====================
[16:19:27] ================== xe_ccs_migrate_kunit ===================
[16:19:27] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[16:19:27] ==================== xe_bo_evict_kunit ====================
[16:19:27] =============== [SKIPPED] xe_bo_evict_kunit ================
[16:19:27] ===================== [SKIPPED] xe_bo ======================
[16:19:27] ==================== args (11 subtests) ====================
[16:19:27] [PASSED] count_args_test
[16:19:27] [PASSED] call_args_example
[16:19:27] [PASSED] call_args_test
[16:19:27] [PASSED] drop_first_arg_example
[16:19:27] [PASSED] drop_first_arg_test
[16:19:27] [PASSED] first_arg_example
[16:19:27] [PASSED] first_arg_test
[16:19:27] [PASSED] last_arg_example
[16:19:27] [PASSED] last_arg_test
[16:19:27] [PASSED] pick_arg_example
[16:19:27] [PASSED] sep_comma_example
[16:19:27] ====================== [PASSED] args =======================
[16:19:27] =================== xe_pci (3 subtests) ====================
[16:19:27] ==================== check_graphics_ip ====================
[16:19:27] [PASSED] 12.70 Xe_LPG
[16:19:27] [PASSED] 12.71 Xe_LPG
[16:19:27] [PASSED] 12.74 Xe_LPG+
[16:19:27] [PASSED] 20.01 Xe2_HPG
[16:19:27] [PASSED] 20.02 Xe2_HPG
[16:19:27] [PASSED] 20.04 Xe2_LPG
[16:19:27] [PASSED] 30.00 Xe3_LPG
[16:19:27] [PASSED] 30.01 Xe3_LPG
[16:19:27] [PASSED] 30.03 Xe3_LPG
[16:19:27] ================ [PASSED] check_graphics_ip ================
[16:19:27] ===================== check_media_ip ======================
[16:19:27] [PASSED] 13.00 Xe_LPM+
[16:19:27] [PASSED] 13.01 Xe2_HPM
[16:19:27] [PASSED] 20.00 Xe2_LPM
[16:19:27] [PASSED] 30.00 Xe3_LPM
[16:19:27] [PASSED] 30.02 Xe3_LPM
[16:19:27] ================= [PASSED] check_media_ip ==================
[16:19:27] ================= check_platform_gt_count =================
[16:19:27] [PASSED] 0x9A60 (TIGERLAKE)
[16:19:27] [PASSED] 0x9A68 (TIGERLAKE)
[16:19:27] [PASSED] 0x9A70 (TIGERLAKE)
[16:19:27] [PASSED] 0x9A40 (TIGERLAKE)
[16:19:27] [PASSED] 0x9A49 (TIGERLAKE)
[16:19:27] [PASSED] 0x9A59 (TIGERLAKE)
[16:19:27] [PASSED] 0x9A78 (TIGERLAKE)
[16:19:27] [PASSED] 0x9AC0 (TIGERLAKE)
[16:19:27] [PASSED] 0x9AC9 (TIGERLAKE)
[16:19:27] [PASSED] 0x9AD9 (TIGERLAKE)
[16:19:27] [PASSED] 0x9AF8 (TIGERLAKE)
[16:19:27] [PASSED] 0x4C80 (ROCKETLAKE)
[16:19:27] [PASSED] 0x4C8A (ROCKETLAKE)
[16:19:27] [PASSED] 0x4C8B (ROCKETLAKE)
[16:19:27] [PASSED] 0x4C8C (ROCKETLAKE)
[16:19:27] [PASSED] 0x4C90 (ROCKETLAKE)
[16:19:27] [PASSED] 0x4C9A (ROCKETLAKE)
[16:19:27] [PASSED] 0x4680 (ALDERLAKE_S)
[16:19:27] [PASSED] 0x4682 (ALDERLAKE_S)
[16:19:27] [PASSED] 0x4688 (ALDERLAKE_S)
[16:19:27] [PASSED] 0x468A (ALDERLAKE_S)
[16:19:27] [PASSED] 0x468B (ALDERLAKE_S)
[16:19:27] [PASSED] 0x4690 (ALDERLAKE_S)
[16:19:27] [PASSED] 0x4692 (ALDERLAKE_S)
[16:19:27] [PASSED] 0x4693 (ALDERLAKE_S)
[16:19:27] [PASSED] 0x46A0 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x46A1 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x46A2 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x46A3 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x46A6 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x46A8 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x46AA (ALDERLAKE_P)
[16:19:27] [PASSED] 0x462A (ALDERLAKE_P)
[16:19:27] [PASSED] 0x4626 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x4628 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x46B0 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x46B1 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x46B2 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x46B3 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x46C0 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x46C1 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x46C2 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x46C3 (ALDERLAKE_P)
[16:19:27] [PASSED] 0x46D0 (ALDERLAKE_N)
[16:19:27] [PASSED] 0x46D1 (ALDERLAKE_N)
[16:19:27] [PASSED] 0x46D2 (ALDERLAKE_N)
[16:19:27] [PASSED] 0x46D3 (ALDERLAKE_N)
[16:19:27] [PASSED] 0x46D4 (ALDERLAKE_N)
[16:19:27] [PASSED] 0xA721 (ALDERLAKE_P)
[16:19:27] [PASSED] 0xA7A1 (ALDERLAKE_P)
[16:19:27] [PASSED] 0xA7A9 (ALDERLAKE_P)
[16:19:27] [PASSED] 0xA7AC (ALDERLAKE_P)
[16:19:27] [PASSED] 0xA7AD (ALDERLAKE_P)
[16:19:27] [PASSED] 0xA720 (ALDERLAKE_P)
[16:19:27] [PASSED] 0xA7A0 (ALDERLAKE_P)
[16:19:27] [PASSED] 0xA7A8 (ALDERLAKE_P)
[16:19:27] [PASSED] 0xA7AA (ALDERLAKE_P)
[16:19:27] [PASSED] 0xA7AB (ALDERLAKE_P)
[16:19:27] [PASSED] 0xA780 (ALDERLAKE_S)
[16:19:27] [PASSED] 0xA781 (ALDERLAKE_S)
[16:19:27] [PASSED] 0xA782 (ALDERLAKE_S)
[16:19:27] [PASSED] 0xA783 (ALDERLAKE_S)
[16:19:27] [PASSED] 0xA788 (ALDERLAKE_S)
[16:19:27] [PASSED] 0xA789 (ALDERLAKE_S)
[16:19:27] [PASSED] 0xA78A (ALDERLAKE_S)
[16:19:27] [PASSED] 0xA78B (ALDERLAKE_S)
[16:19:27] [PASSED] 0x4905 (DG1)
[16:19:27] [PASSED] 0x4906 (DG1)
[16:19:27] [PASSED] 0x4907 (DG1)
[16:19:27] [PASSED] 0x4908 (DG1)
[16:19:27] [PASSED] 0x4909 (DG1)
[16:19:27] [PASSED] 0x56C0 (DG2)
[16:19:27] [PASSED] 0x56C2 (DG2)
[16:19:27] [PASSED] 0x56C1 (DG2)
[16:19:27] [PASSED] 0x7D51 (METEORLAKE)
[16:19:27] [PASSED] 0x7DD1 (METEORLAKE)
[16:19:27] [PASSED] 0x7D41 (METEORLAKE)
[16:19:27] [PASSED] 0x7D67 (METEORLAKE)
[16:19:27] [PASSED] 0xB640 (METEORLAKE)
[16:19:27] [PASSED] 0x56A0 (DG2)
[16:19:27] [PASSED] 0x56A1 (DG2)
[16:19:27] [PASSED] 0x56A2 (DG2)
[16:19:27] [PASSED] 0x56BE (DG2)
[16:19:27] [PASSED] 0x56BF (DG2)
[16:19:27] [PASSED] 0x5690 (DG2)
[16:19:27] [PASSED] 0x5691 (DG2)
[16:19:27] [PASSED] 0x5692 (DG2)
[16:19:27] [PASSED] 0x56A5 (DG2)
[16:19:27] [PASSED] 0x56A6 (DG2)
[16:19:27] [PASSED] 0x56B0 (DG2)
[16:19:27] [PASSED] 0x56B1 (DG2)
[16:19:27] [PASSED] 0x56BA (DG2)
[16:19:27] [PASSED] 0x56BB (DG2)
[16:19:27] [PASSED] 0x56BC (DG2)
[16:19:27] [PASSED] 0x56BD (DG2)
[16:19:27] [PASSED] 0x5693 (DG2)
[16:19:27] [PASSED] 0x5694 (DG2)
[16:19:27] [PASSED] 0x5695 (DG2)
[16:19:27] [PASSED] 0x56A3 (DG2)
[16:19:27] [PASSED] 0x56A4 (DG2)
[16:19:27] [PASSED] 0x56B2 (DG2)
[16:19:27] [PASSED] 0x56B3 (DG2)
[16:19:27] [PASSED] 0x5696 (DG2)
[16:19:27] [PASSED] 0x5697 (DG2)
[16:19:27] [PASSED] 0xB69 (PVC)
[16:19:27] [PASSED] 0xB6E (PVC)
[16:19:27] [PASSED] 0xBD4 (PVC)
[16:19:27] [PASSED] 0xBD5 (PVC)
[16:19:27] [PASSED] 0xBD6 (PVC)
[16:19:27] [PASSED] 0xBD7 (PVC)
[16:19:27] [PASSED] 0xBD8 (PVC)
[16:19:27] [PASSED] 0xBD9 (PVC)
[16:19:27] [PASSED] 0xBDA (PVC)
[16:19:27] [PASSED] 0xBDB (PVC)
[16:19:27] [PASSED] 0xBE0 (PVC)
[16:19:27] [PASSED] 0xBE1 (PVC)
[16:19:27] [PASSED] 0xBE5 (PVC)
[16:19:27] [PASSED] 0x7D40 (METEORLAKE)
[16:19:27] [PASSED] 0x7D45 (METEORLAKE)
[16:19:27] [PASSED] 0x7D55 (METEORLAKE)
[16:19:27] [PASSED] 0x7D60 (METEORLAKE)
[16:19:27] [PASSED] 0x7DD5 (METEORLAKE)
[16:19:27] [PASSED] 0x6420 (LUNARLAKE)
[16:19:27] [PASSED] 0x64A0 (LUNARLAKE)
[16:19:27] [PASSED] 0x64B0 (LUNARLAKE)
[16:19:27] [PASSED] 0xE202 (BATTLEMAGE)
[16:19:27] [PASSED] 0xE209 (BATTLEMAGE)
[16:19:27] [PASSED] 0xE20B (BATTLEMAGE)
[16:19:27] [PASSED] 0xE20C (BATTLEMAGE)
[16:19:27] [PASSED] 0xE20D (BATTLEMAGE)
[16:19:27] [PASSED] 0xE210 (BATTLEMAGE)
[16:19:27] [PASSED] 0xE211 (BATTLEMAGE)
[16:19:27] [PASSED] 0xE212 (BATTLEMAGE)
[16:19:27] [PASSED] 0xE216 (BATTLEMAGE)
[16:19:27] [PASSED] 0xE220 (BATTLEMAGE)
[16:19:27] [PASSED] 0xE221 (BATTLEMAGE)
[16:19:27] [PASSED] 0xE222 (BATTLEMAGE)
[16:19:27] [PASSED] 0xE223 (BATTLEMAGE)
[16:19:27] [PASSED] 0xB080 (PANTHERLAKE)
[16:19:27] [PASSED] 0xB081 (PANTHERLAKE)
[16:19:27] [PASSED] 0xB082 (PANTHERLAKE)
[16:19:27] [PASSED] 0xB083 (PANTHERLAKE)
[16:19:27] [PASSED] 0xB084 (PANTHERLAKE)
[16:19:27] [PASSED] 0xB085 (PANTHERLAKE)
[16:19:27] [PASSED] 0xB086 (PANTHERLAKE)
[16:19:27] [PASSED] 0xB087 (PANTHERLAKE)
[16:19:27] [PASSED] 0xB08F (PANTHERLAKE)
[16:19:27] [PASSED] 0xB090 (PANTHERLAKE)
[16:19:27] [PASSED] 0xB0A0 (PANTHERLAKE)
[16:19:27] [PASSED] 0xB0B0 (PANTHERLAKE)
[16:19:27] [PASSED] 0xFD80 (PANTHERLAKE)
[16:19:27] [PASSED] 0xFD81 (PANTHERLAKE)
[16:19:27] ============= [PASSED] check_platform_gt_count =============
[16:19:27] ===================== [PASSED] xe_pci ======================
[16:19:27] =================== xe_rtp (2 subtests) ====================
[16:19:27] =============== xe_rtp_process_to_sr_tests ================
[16:19:27] [PASSED] coalesce-same-reg
[16:19:27] [PASSED] no-match-no-add
[16:19:27] [PASSED] match-or
[16:19:27] [PASSED] match-or-xfail
[16:19:27] [PASSED] no-match-no-add-multiple-rules
[16:19:27] [PASSED] two-regs-two-entries
[16:19:27] [PASSED] clr-one-set-other
[16:19:27] [PASSED] set-field
[16:19:27] [PASSED] conflict-duplicate
[16:19:27] [PASSED] conflict-not-disjoint
[16:19:27] [PASSED] conflict-reg-type
[16:19:27] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[16:19:27] ================== xe_rtp_process_tests ===================
[16:19:27] [PASSED] active1
[16:19:27] [PASSED] active2
[16:19:27] [PASSED] active-inactive
[16:19:27] [PASSED] inactive-active
[16:19:27] [PASSED] inactive-1st_or_active-inactive
[16:19:27] [PASSED] inactive-2nd_or_active-inactive
[16:19:27] [PASSED] inactive-last_or_active-inactive
[16:19:27] [PASSED] inactive-no_or_active-inactive
[16:19:27] ============== [PASSED] xe_rtp_process_tests ===============
[16:19:27] ===================== [PASSED] xe_rtp ======================
[16:19:27] ==================== xe_wa (1 subtest) =====================
[16:19:27] ======================== xe_wa_gt =========================
[16:19:27] [PASSED] TIGERLAKE (B0)
[16:19:27] [PASSED] DG1 (A0)
[16:19:27] [PASSED] DG1 (B0)
[16:19:27] [PASSED] ALDERLAKE_S (A0)
[16:19:27] [PASSED] ALDERLAKE_S (B0)
[16:19:27] [PASSED] ALDERLAKE_S (C0)
[16:19:27] [PASSED] ALDERLAKE_S (D0)
[16:19:27] [PASSED] ALDERLAKE_P (A0)
[16:19:27] [PASSED] ALDERLAKE_P (B0)
[16:19:27] [PASSED] ALDERLAKE_P (C0)
[16:19:27] [PASSED] ALDERLAKE_S_RPLS (D0)
[16:19:27] [PASSED] ALDERLAKE_P_RPLU (E0)
[16:19:27] [PASSED] DG2_G10 (C0)
[16:19:27] [PASSED] DG2_G11 (B1)
[16:19:27] [PASSED] DG2_G12 (A1)
[16:19:27] [PASSED] METEORLAKE (g:A0, m:A0)
[16:19:27] [PASSED] METEORLAKE (g:A0, m:A0)
[16:19:27] [PASSED] METEORLAKE (g:A0, m:A0)
[16:19:27] [PASSED] LUNARLAKE (g:A0, m:A0)
[16:19:27] [PASSED] LUNARLAKE (g:B0, m:A0)
stty: 'standard input': Inappropriate ioctl for device
[16:19:27] [PASSED] BATTLEMAGE (g:A0, m:A1)
[16:19:27] ==================== [PASSED] xe_wa_gt =====================
[16:19:27] ====================== [PASSED] xe_wa ======================
[16:19:27] ============================================================
[16:19:27] Testing complete. Ran 297 tests: passed: 281, skipped: 16
[16:19:27] Elapsed time: 31.732s total, 4.110s configuring, 27.303s building, 0.308s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[16:19:28] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[16:19:29] 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
[16:19:51] Starting KUnit Kernel (1/1)...
[16:19:51] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[16:19:51] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[16:19:51] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[16:19:51] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[16:19:51] =========== drm_validate_clone_mode (2 subtests) ===========
[16:19:51] ============== drm_test_check_in_clone_mode ===============
[16:19:51] [PASSED] in_clone_mode
[16:19:51] [PASSED] not_in_clone_mode
[16:19:51] ========== [PASSED] drm_test_check_in_clone_mode ===========
[16:19:51] =============== drm_test_check_valid_clones ===============
[16:19:51] [PASSED] not_in_clone_mode
[16:19:51] [PASSED] valid_clone
[16:19:51] [PASSED] invalid_clone
[16:19:51] =========== [PASSED] drm_test_check_valid_clones ===========
[16:19:51] ============= [PASSED] drm_validate_clone_mode =============
[16:19:51] ============= drm_validate_modeset (1 subtest) =============
[16:19:51] [PASSED] drm_test_check_connector_changed_modeset
[16:19:51] ============== [PASSED] drm_validate_modeset ===============
[16:19:51] ====== drm_test_bridge_get_current_state (2 subtests) ======
[16:19:51] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[16:19:51] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[16:19:51] ======== [PASSED] drm_test_bridge_get_current_state ========
[16:19:51] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[16:19:51] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[16:19:51] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[16:19:51] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[16:19:51] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[16:19:51] ============== drm_bridge_alloc (2 subtests) ===============
[16:19:51] [PASSED] drm_test_drm_bridge_alloc_basic
[16:19:51] [PASSED] drm_test_drm_bridge_alloc_get_put
[16:19:51] ================ [PASSED] drm_bridge_alloc =================
[16:19:51] ================== drm_buddy (7 subtests) ==================
[16:19:51] [PASSED] drm_test_buddy_alloc_limit
[16:19:51] [PASSED] drm_test_buddy_alloc_optimistic
[16:19:51] [PASSED] drm_test_buddy_alloc_pessimistic
[16:19:51] [PASSED] drm_test_buddy_alloc_pathological
[16:19:51] [PASSED] drm_test_buddy_alloc_contiguous
[16:19:51] [PASSED] drm_test_buddy_alloc_clear
[16:19:51] [PASSED] drm_test_buddy_alloc_range_bias
[16:19:51] ==================== [PASSED] drm_buddy ====================
[16:19:51] ============= drm_cmdline_parser (40 subtests) =============
[16:19:51] [PASSED] drm_test_cmdline_force_d_only
[16:19:51] [PASSED] drm_test_cmdline_force_D_only_dvi
[16:19:51] [PASSED] drm_test_cmdline_force_D_only_hdmi
[16:19:51] [PASSED] drm_test_cmdline_force_D_only_not_digital
[16:19:51] [PASSED] drm_test_cmdline_force_e_only
[16:19:51] [PASSED] drm_test_cmdline_res
[16:19:51] [PASSED] drm_test_cmdline_res_vesa
[16:19:51] [PASSED] drm_test_cmdline_res_vesa_rblank
[16:19:51] [PASSED] drm_test_cmdline_res_rblank
[16:19:51] [PASSED] drm_test_cmdline_res_bpp
[16:19:51] [PASSED] drm_test_cmdline_res_refresh
[16:19:51] [PASSED] drm_test_cmdline_res_bpp_refresh
[16:19:51] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[16:19:51] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[16:19:51] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[16:19:51] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[16:19:51] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[16:19:51] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[16:19:51] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[16:19:51] [PASSED] drm_test_cmdline_res_margins_force_on
[16:19:51] [PASSED] drm_test_cmdline_res_vesa_margins
[16:19:51] [PASSED] drm_test_cmdline_name
[16:19:51] [PASSED] drm_test_cmdline_name_bpp
[16:19:51] [PASSED] drm_test_cmdline_name_option
[16:19:51] [PASSED] drm_test_cmdline_name_bpp_option
[16:19:51] [PASSED] drm_test_cmdline_rotate_0
[16:19:51] [PASSED] drm_test_cmdline_rotate_90
[16:19:51] [PASSED] drm_test_cmdline_rotate_180
[16:19:51] [PASSED] drm_test_cmdline_rotate_270
[16:19:51] [PASSED] drm_test_cmdline_hmirror
[16:19:51] [PASSED] drm_test_cmdline_vmirror
[16:19:51] [PASSED] drm_test_cmdline_margin_options
[16:19:51] [PASSED] drm_test_cmdline_multiple_options
[16:19:51] [PASSED] drm_test_cmdline_bpp_extra_and_option
[16:19:51] [PASSED] drm_test_cmdline_extra_and_option
[16:19:51] [PASSED] drm_test_cmdline_freestanding_options
[16:19:51] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[16:19:51] [PASSED] drm_test_cmdline_panel_orientation
[16:19:51] ================ drm_test_cmdline_invalid =================
[16:19:51] [PASSED] margin_only
[16:19:51] [PASSED] interlace_only
[16:19:51] [PASSED] res_missing_x
[16:19:51] [PASSED] res_missing_y
[16:19:51] [PASSED] res_bad_y
[16:19:51] [PASSED] res_missing_y_bpp
[16:19:51] [PASSED] res_bad_bpp
[16:19:51] [PASSED] res_bad_refresh
[16:19:51] [PASSED] res_bpp_refresh_force_on_off
[16:19:51] [PASSED] res_invalid_mode
[16:19:51] [PASSED] res_bpp_wrong_place_mode
[16:19:51] [PASSED] name_bpp_refresh
[16:19:51] [PASSED] name_refresh
[16:19:51] [PASSED] name_refresh_wrong_mode
[16:19:51] [PASSED] name_refresh_invalid_mode
[16:19:51] [PASSED] rotate_multiple
[16:19:51] [PASSED] rotate_invalid_val
[16:19:51] [PASSED] rotate_truncated
[16:19:51] [PASSED] invalid_option
[16:19:51] [PASSED] invalid_tv_option
[16:19:51] [PASSED] truncated_tv_option
[16:19:51] ============ [PASSED] drm_test_cmdline_invalid =============
[16:19:51] =============== drm_test_cmdline_tv_options ===============
[16:19:51] [PASSED] NTSC
[16:19:51] [PASSED] NTSC_443
[16:19:51] [PASSED] NTSC_J
[16:19:51] [PASSED] PAL
[16:19:51] [PASSED] PAL_M
[16:19:51] [PASSED] PAL_N
[16:19:51] [PASSED] SECAM
[16:19:51] [PASSED] MONO_525
[16:19:51] [PASSED] MONO_625
[16:19:51] =========== [PASSED] drm_test_cmdline_tv_options ===========
[16:19:51] =============== [PASSED] drm_cmdline_parser ================
[16:19:51] ========== drmm_connector_hdmi_init (20 subtests) ==========
[16:19:51] [PASSED] drm_test_connector_hdmi_init_valid
[16:19:51] [PASSED] drm_test_connector_hdmi_init_bpc_8
[16:19:51] [PASSED] drm_test_connector_hdmi_init_bpc_10
[16:19:51] [PASSED] drm_test_connector_hdmi_init_bpc_12
[16:19:51] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[16:19:51] [PASSED] drm_test_connector_hdmi_init_bpc_null
[16:19:51] [PASSED] drm_test_connector_hdmi_init_formats_empty
[16:19:51] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[16:19:51] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[16:19:51] [PASSED] supported_formats=0x9 yuv420_allowed=1
[16:19:51] [PASSED] supported_formats=0x9 yuv420_allowed=0
[16:19:51] [PASSED] supported_formats=0x3 yuv420_allowed=1
[16:19:51] [PASSED] supported_formats=0x3 yuv420_allowed=0
[16:19:51] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[16:19:51] [PASSED] drm_test_connector_hdmi_init_null_ddc
[16:19:51] [PASSED] drm_test_connector_hdmi_init_null_product
[16:19:51] [PASSED] drm_test_connector_hdmi_init_null_vendor
[16:19:51] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[16:19:51] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[16:19:51] [PASSED] drm_test_connector_hdmi_init_product_valid
[16:19:51] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[16:19:51] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[16:19:51] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[16:19:51] ========= drm_test_connector_hdmi_init_type_valid =========
[16:19:51] [PASSED] HDMI-A
[16:19:51] [PASSED] HDMI-B
[16:19:51] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[16:19:51] ======== drm_test_connector_hdmi_init_type_invalid ========
[16:19:51] [PASSED] Unknown
[16:19:51] [PASSED] VGA
[16:19:51] [PASSED] DVI-I
[16:19:51] [PASSED] DVI-D
[16:19:51] [PASSED] DVI-A
[16:19:51] [PASSED] Composite
[16:19:51] [PASSED] SVIDEO
[16:19:51] [PASSED] LVDS
[16:19:51] [PASSED] Component
[16:19:51] [PASSED] DIN
[16:19:51] [PASSED] DP
[16:19:51] [PASSED] TV
[16:19:51] [PASSED] eDP
[16:19:51] [PASSED] Virtual
[16:19:51] [PASSED] DSI
[16:19:51] [PASSED] DPI
[16:19:51] [PASSED] Writeback
[16:19:51] [PASSED] SPI
[16:19:51] [PASSED] USB
[16:19:51] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[16:19:51] ============ [PASSED] drmm_connector_hdmi_init =============
[16:19:51] ============= drmm_connector_init (3 subtests) =============
[16:19:51] [PASSED] drm_test_drmm_connector_init
[16:19:51] [PASSED] drm_test_drmm_connector_init_null_ddc
[16:19:51] ========= drm_test_drmm_connector_init_type_valid =========
[16:19:51] [PASSED] Unknown
[16:19:51] [PASSED] VGA
[16:19:51] [PASSED] DVI-I
[16:19:51] [PASSED] DVI-D
[16:19:51] [PASSED] DVI-A
[16:19:51] [PASSED] Composite
[16:19:51] [PASSED] SVIDEO
[16:19:51] [PASSED] LVDS
[16:19:51] [PASSED] Component
[16:19:51] [PASSED] DIN
[16:19:51] [PASSED] DP
[16:19:51] [PASSED] HDMI-A
[16:19:51] [PASSED] HDMI-B
[16:19:51] [PASSED] TV
[16:19:51] [PASSED] eDP
[16:19:51] [PASSED] Virtual
[16:19:51] [PASSED] DSI
[16:19:51] [PASSED] DPI
[16:19:51] [PASSED] Writeback
[16:19:51] [PASSED] SPI
[16:19:51] [PASSED] USB
[16:19:51] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[16:19:51] =============== [PASSED] drmm_connector_init ===============
[16:19:51] ========= drm_connector_dynamic_init (6 subtests) ==========
[16:19:51] [PASSED] drm_test_drm_connector_dynamic_init
[16:19:51] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[16:19:51] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[16:19:51] [PASSED] drm_test_drm_connector_dynamic_init_properties
[16:19:51] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[16:19:51] [PASSED] Unknown
[16:19:51] [PASSED] VGA
[16:19:51] [PASSED] DVI-I
[16:19:51] [PASSED] DVI-D
[16:19:51] [PASSED] DVI-A
[16:19:51] [PASSED] Composite
[16:19:51] [PASSED] SVIDEO
[16:19:51] [PASSED] LVDS
[16:19:51] [PASSED] Component
[16:19:51] [PASSED] DIN
[16:19:51] [PASSED] DP
[16:19:51] [PASSED] HDMI-A
[16:19:51] [PASSED] HDMI-B
[16:19:51] [PASSED] TV
[16:19:51] [PASSED] eDP
[16:19:51] [PASSED] Virtual
[16:19:51] [PASSED] DSI
[16:19:51] [PASSED] DPI
[16:19:51] [PASSED] Writeback
[16:19:51] [PASSED] SPI
[16:19:51] [PASSED] USB
[16:19:51] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[16:19:51] ======== drm_test_drm_connector_dynamic_init_name =========
[16:19:51] [PASSED] Unknown
[16:19:51] [PASSED] VGA
[16:19:51] [PASSED] DVI-I
[16:19:51] [PASSED] DVI-D
[16:19:51] [PASSED] DVI-A
[16:19:51] [PASSED] Composite
[16:19:51] [PASSED] SVIDEO
[16:19:51] [PASSED] LVDS
[16:19:51] [PASSED] Component
[16:19:51] [PASSED] DIN
[16:19:51] [PASSED] DP
[16:19:51] [PASSED] HDMI-A
[16:19:51] [PASSED] HDMI-B
[16:19:51] [PASSED] TV
[16:19:51] [PASSED] eDP
[16:19:51] [PASSED] Virtual
[16:19:51] [PASSED] DSI
[16:19:51] [PASSED] DPI
[16:19:51] [PASSED] Writeback
[16:19:51] [PASSED] SPI
[16:19:51] [PASSED] USB
[16:19:51] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[16:19:51] =========== [PASSED] drm_connector_dynamic_init ============
[16:19:51] ==== drm_connector_dynamic_register_early (4 subtests) =====
[16:19:51] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[16:19:51] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[16:19:51] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[16:19:51] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[16:19:51] ====== [PASSED] drm_connector_dynamic_register_early =======
[16:19:51] ======= drm_connector_dynamic_register (7 subtests) ========
[16:19:51] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[16:19:51] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[16:19:51] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[16:19:51] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[16:19:51] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[16:19:51] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[16:19:51] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[16:19:51] ========= [PASSED] drm_connector_dynamic_register ==========
[16:19:51] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[16:19:51] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[16:19:51] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[16:19:51] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[16:19:51] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[16:19:51] ========== drm_test_get_tv_mode_from_name_valid ===========
[16:19:51] [PASSED] NTSC
[16:19:51] [PASSED] NTSC-443
[16:19:51] [PASSED] NTSC-J
[16:19:51] [PASSED] PAL
[16:19:51] [PASSED] PAL-M
[16:19:51] [PASSED] PAL-N
[16:19:51] [PASSED] SECAM
[16:19:51] [PASSED] Mono
[16:19:51] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[16:19:51] [PASSED] drm_test_get_tv_mode_from_name_truncated
[16:19:51] ============ [PASSED] drm_get_tv_mode_from_name ============
[16:19:51] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[16:19:51] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[16:19:51] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[16:19:51] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[16:19:51] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[16:19:51] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[16:19:51] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[16:19:51] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[16:19:51] [PASSED] VIC 96
[16:19:51] [PASSED] VIC 97
[16:19:51] [PASSED] VIC 101
[16:19:51] [PASSED] VIC 102
[16:19:51] [PASSED] VIC 106
[16:19:51] [PASSED] VIC 107
[16:19:51] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[16:19:51] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[16:19:51] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[16:19:51] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[16:19:51] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[16:19:51] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[16:19:51] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[16:19:51] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[16:19:51] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[16:19:51] [PASSED] Automatic
[16:19:51] [PASSED] Full
[16:19:51] [PASSED] Limited 16:235
[16:19:51] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[16:19:51] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[16:19:51] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[16:19:51] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[16:19:51] === drm_test_drm_hdmi_connector_get_output_format_name ====
[16:19:51] [PASSED] RGB
[16:19:51] [PASSED] YUV 4:2:0
[16:19:51] [PASSED] YUV 4:2:2
[16:19:51] [PASSED] YUV 4:4:4
[16:19:51] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[16:19:51] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[16:19:51] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[16:19:51] ============= drm_damage_helper (21 subtests) ==============
[16:19:51] [PASSED] drm_test_damage_iter_no_damage
[16:19:51] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[16:19:51] [PASSED] drm_test_damage_iter_no_damage_src_moved
[16:19:51] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[16:19:51] [PASSED] drm_test_damage_iter_no_damage_not_visible
[16:19:51] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[16:19:51] [PASSED] drm_test_damage_iter_no_damage_no_fb
[16:19:51] [PASSED] drm_test_damage_iter_simple_damage
[16:19:51] [PASSED] drm_test_damage_iter_single_damage
[16:19:51] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[16:19:51] [PASSED] drm_test_damage_iter_single_damage_outside_src
[16:19:51] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[16:19:51] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[16:19:51] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[16:19:51] [PASSED] drm_test_damage_iter_single_damage_src_moved
[16:19:51] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[16:19:51] [PASSED] drm_test_damage_iter_damage
[16:19:51] [PASSED] drm_test_damage_iter_damage_one_intersect
[16:19:51] [PASSED] drm_test_damage_iter_damage_one_outside
[16:19:51] [PASSED] drm_test_damage_iter_damage_src_moved
[16:19:51] [PASSED] drm_test_damage_iter_damage_not_visible
[16:19:51] ================ [PASSED] drm_damage_helper ================
[16:19:51] ============== drm_dp_mst_helper (3 subtests) ==============
[16:19:51] ============== drm_test_dp_mst_calc_pbn_mode ==============
[16:19:51] [PASSED] Clock 154000 BPP 30 DSC disabled
[16:19:51] [PASSED] Clock 234000 BPP 30 DSC disabled
[16:19:51] [PASSED] Clock 297000 BPP 24 DSC disabled
[16:19:51] [PASSED] Clock 332880 BPP 24 DSC enabled
[16:19:51] [PASSED] Clock 324540 BPP 24 DSC enabled
[16:19:51] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[16:19:51] ============== drm_test_dp_mst_calc_pbn_div ===============
[16:19:51] [PASSED] Link rate 2000000 lane count 4
[16:19:51] [PASSED] Link rate 2000000 lane count 2
[16:19:51] [PASSED] Link rate 2000000 lane count 1
[16:19:51] [PASSED] Link rate 1350000 lane count 4
[16:19:51] [PASSED] Link rate 1350000 lane count 2
[16:19:51] [PASSED] Link rate 1350000 lane count 1
[16:19:51] [PASSED] Link rate 1000000 lane count 4
[16:19:51] [PASSED] Link rate 1000000 lane count 2
[16:19:51] [PASSED] Link rate 1000000 lane count 1
[16:19:51] [PASSED] Link rate 810000 lane count 4
[16:19:51] [PASSED] Link rate 810000 lane count 2
[16:19:51] [PASSED] Link rate 810000 lane count 1
[16:19:51] [PASSED] Link rate 540000 lane count 4
[16:19:51] [PASSED] Link rate 540000 lane count 2
[16:19:51] [PASSED] Link rate 540000 lane count 1
[16:19:51] [PASSED] Link rate 270000 lane count 4
[16:19:51] [PASSED] Link rate 270000 lane count 2
[16:19:51] [PASSED] Link rate 270000 lane count 1
[16:19:51] [PASSED] Link rate 162000 lane count 4
[16:19:51] [PASSED] Link rate 162000 lane count 2
[16:19:51] [PASSED] Link rate 162000 lane count 1
[16:19:51] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[16:19:51] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[16:19:51] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[16:19:51] [PASSED] DP_POWER_UP_PHY with port number
[16:19:51] [PASSED] DP_POWER_DOWN_PHY with port number
[16:19:51] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[16:19:51] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[16:19:51] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[16:19:51] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[16:19:51] [PASSED] DP_QUERY_PAYLOAD with port number
[16:19:51] [PASSED] DP_QUERY_PAYLOAD with VCPI
[16:19:51] [PASSED] DP_REMOTE_DPCD_READ with port number
[16:19:51] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[16:19:51] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[16:19:51] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[16:19:51] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[16:19:51] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[16:19:51] [PASSED] DP_REMOTE_I2C_READ with port number
[16:19:51] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[16:19:51] [PASSED] DP_REMOTE_I2C_READ with transactions array
[16:19:51] [PASSED] DP_REMOTE_I2C_WRITE with port number
[16:19:51] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[16:19:51] [PASSED] DP_REMOTE_I2C_WRITE with data array
[16:19:51] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[16:19:51] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[16:19:51] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[16:19:51] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[16:19:51] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[16:19:51] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[16:19:51] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[16:19:51] ================ [PASSED] drm_dp_mst_helper ================
[16:19:51] ================== drm_exec (7 subtests) ===================
[16:19:51] [PASSED] sanitycheck
[16:19:51] [PASSED] test_lock
[16:19:51] [PASSED] test_lock_unlock
[16:19:51] [PASSED] test_duplicates
[16:19:51] [PASSED] test_prepare
[16:19:51] [PASSED] test_prepare_array
[16:19:51] [PASSED] test_multiple_loops
[16:19:51] ==================== [PASSED] drm_exec =====================
[16:19:51] =========== drm_format_helper_test (17 subtests) ===========
[16:19:51] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[16:19:51] [PASSED] single_pixel_source_buffer
[16:19:51] [PASSED] single_pixel_clip_rectangle
[16:19:51] [PASSED] well_known_colors
[16:19:51] [PASSED] destination_pitch
[16:19:51] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[16:19:51] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[16:19:51] [PASSED] single_pixel_source_buffer
[16:19:51] [PASSED] single_pixel_clip_rectangle
[16:19:51] [PASSED] well_known_colors
[16:19:51] [PASSED] destination_pitch
[16:19:51] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[16:19:51] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[16:19:51] [PASSED] single_pixel_source_buffer
[16:19:51] [PASSED] single_pixel_clip_rectangle
[16:19:51] [PASSED] well_known_colors
[16:19:51] [PASSED] destination_pitch
[16:19:51] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[16:19:51] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[16:19:51] [PASSED] single_pixel_source_buffer
[16:19:51] [PASSED] single_pixel_clip_rectangle
[16:19:51] [PASSED] well_known_colors
[16:19:51] [PASSED] destination_pitch
[16:19:51] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[16:19:51] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[16:19:51] [PASSED] single_pixel_source_buffer
[16:19:51] [PASSED] single_pixel_clip_rectangle
[16:19:51] [PASSED] well_known_colors
[16:19:51] [PASSED] destination_pitch
[16:19:51] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[16:19:51] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[16:19:51] [PASSED] single_pixel_source_buffer
[16:19:51] [PASSED] single_pixel_clip_rectangle
[16:19:51] [PASSED] well_known_colors
[16:19:51] [PASSED] destination_pitch
[16:19:51] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[16:19:51] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[16:19:51] [PASSED] single_pixel_source_buffer
[16:19:51] [PASSED] single_pixel_clip_rectangle
[16:19:51] [PASSED] well_known_colors
[16:19:51] [PASSED] destination_pitch
[16:19:51] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[16:19:51] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[16:19:51] [PASSED] single_pixel_source_buffer
[16:19:51] [PASSED] single_pixel_clip_rectangle
[16:19:51] [PASSED] well_known_colors
[16:19:51] [PASSED] destination_pitch
[16:19:51] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[16:19:51] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[16:19:51] [PASSED] single_pixel_source_buffer
[16:19:51] [PASSED] single_pixel_clip_rectangle
[16:19:51] [PASSED] well_known_colors
[16:19:51] [PASSED] destination_pitch
[16:19:51] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[16:19:51] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[16:19:51] [PASSED] single_pixel_source_buffer
[16:19:51] [PASSED] single_pixel_clip_rectangle
[16:19:51] [PASSED] well_known_colors
[16:19:51] [PASSED] destination_pitch
[16:19:51] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[16:19:51] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[16:19:51] [PASSED] single_pixel_source_buffer
[16:19:51] [PASSED] single_pixel_clip_rectangle
[16:19:51] [PASSED] well_known_colors
[16:19:51] [PASSED] destination_pitch
[16:19:51] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[16:19:51] ============== drm_test_fb_xrgb8888_to_mono ===============
[16:19:51] [PASSED] single_pixel_source_buffer
[16:19:51] [PASSED] single_pixel_clip_rectangle
[16:19:51] [PASSED] well_known_colors
[16:19:51] [PASSED] destination_pitch
[16:19:51] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[16:19:51] ==================== drm_test_fb_swab =====================
[16:19:51] [PASSED] single_pixel_source_buffer
[16:19:51] [PASSED] single_pixel_clip_rectangle
[16:19:51] [PASSED] well_known_colors
[16:19:51] [PASSED] destination_pitch
[16:19:51] ================ [PASSED] drm_test_fb_swab =================
[16:19:51] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[16:19:51] [PASSED] single_pixel_source_buffer
[16:19:51] [PASSED] single_pixel_clip_rectangle
[16:19:51] [PASSED] well_known_colors
[16:19:51] [PASSED] destination_pitch
[16:19:51] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[16:19:51] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[16:19:51] [PASSED] single_pixel_source_buffer
[16:19:51] [PASSED] single_pixel_clip_rectangle
[16:19:51] [PASSED] well_known_colors
[16:19:51] [PASSED] destination_pitch
[16:19:51] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[16:19:51] ================= drm_test_fb_clip_offset =================
[16:19:51] [PASSED] pass through
[16:19:51] [PASSED] horizontal offset
[16:19:51] [PASSED] vertical offset
[16:19:51] [PASSED] horizontal and vertical offset
[16:19:51] [PASSED] horizontal offset (custom pitch)
[16:19:51] [PASSED] vertical offset (custom pitch)
[16:19:51] [PASSED] horizontal and vertical offset (custom pitch)
[16:19:51] ============= [PASSED] drm_test_fb_clip_offset =============
[16:19:51] =================== drm_test_fb_memcpy ====================
[16:19:51] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[16:19:51] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[16:19:51] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[16:19:51] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[16:19:51] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[16:19:51] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[16:19:51] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[16:19:51] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[16:19:51] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[16:19:51] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[16:19:51] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[16:19:51] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[16:19:51] =============== [PASSED] drm_test_fb_memcpy ================
[16:19:51] ============= [PASSED] drm_format_helper_test ==============
[16:19:51] ================= drm_format (18 subtests) =================
[16:19:51] [PASSED] drm_test_format_block_width_invalid
[16:19:51] [PASSED] drm_test_format_block_width_one_plane
[16:19:51] [PASSED] drm_test_format_block_width_two_plane
[16:19:51] [PASSED] drm_test_format_block_width_three_plane
[16:19:51] [PASSED] drm_test_format_block_width_tiled
[16:19:51] [PASSED] drm_test_format_block_height_invalid
[16:19:51] [PASSED] drm_test_format_block_height_one_plane
[16:19:51] [PASSED] drm_test_format_block_height_two_plane
[16:19:51] [PASSED] drm_test_format_block_height_three_plane
[16:19:51] [PASSED] drm_test_format_block_height_tiled
[16:19:51] [PASSED] drm_test_format_min_pitch_invalid
[16:19:51] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[16:19:51] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[16:19:51] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[16:19:51] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[16:19:51] [PASSED] drm_test_format_min_pitch_two_plane
[16:19:51] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[16:19:51] [PASSED] drm_test_format_min_pitch_tiled
[16:19:51] =================== [PASSED] drm_format ====================
[16:19:51] ============== drm_framebuffer (10 subtests) ===============
[16:19:51] ========== drm_test_framebuffer_check_src_coords ==========
[16:19:51] [PASSED] Success: source fits into fb
[16:19:51] [PASSED] Fail: overflowing fb with x-axis coordinate
[16:19:51] [PASSED] Fail: overflowing fb with y-axis coordinate
[16:19:51] [PASSED] Fail: overflowing fb with source width
[16:19:51] [PASSED] Fail: overflowing fb with source height
[16:19:51] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[16:19:51] [PASSED] drm_test_framebuffer_cleanup
[16:19:51] =============== drm_test_framebuffer_create ===============
[16:19:51] [PASSED] ABGR8888 normal sizes
[16:19:51] [PASSED] ABGR8888 max sizes
[16:19:51] [PASSED] ABGR8888 pitch greater than min required
[16:19:51] [PASSED] ABGR8888 pitch less than min required
[16:19:51] [PASSED] ABGR8888 Invalid width
[16:19:51] [PASSED] ABGR8888 Invalid buffer handle
[16:19:51] [PASSED] No pixel format
[16:19:51] [PASSED] ABGR8888 Width 0
[16:19:51] [PASSED] ABGR8888 Height 0
[16:19:51] [PASSED] ABGR8888 Out of bound height * pitch combination
[16:19:51] [PASSED] ABGR8888 Large buffer offset
[16:19:51] [PASSED] ABGR8888 Buffer offset for inexistent plane
[16:19:51] [PASSED] ABGR8888 Invalid flag
[16:19:51] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[16:19:51] [PASSED] ABGR8888 Valid buffer modifier
[16:19:51] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[16:19:51] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[16:19:51] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[16:19:51] [PASSED] NV12 Normal sizes
[16:19:51] [PASSED] NV12 Max sizes
[16:19:51] [PASSED] NV12 Invalid pitch
[16:19:51] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[16:19:51] [PASSED] NV12 different modifier per-plane
[16:19:51] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[16:19:51] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[16:19:51] [PASSED] NV12 Modifier for inexistent plane
[16:19:51] [PASSED] NV12 Handle for inexistent plane
[16:19:51] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[16:19:51] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[16:19:51] [PASSED] YVU420 Normal sizes
[16:19:51] [PASSED] YVU420 Max sizes
[16:19:51] [PASSED] YVU420 Invalid pitch
[16:19:51] [PASSED] YVU420 Different pitches
[16:19:51] [PASSED] YVU420 Different buffer offsets/pitches
[16:19:51] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[16:19:51] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[16:19:51] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[16:19:51] [PASSED] YVU420 Valid modifier
[16:19:51] [PASSED] YVU420 Different modifiers per plane
[16:19:51] [PASSED] YVU420 Modifier for inexistent plane
[16:19:51] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[16:19:51] [PASSED] X0L2 Normal sizes
[16:19:51] [PASSED] X0L2 Max sizes
[16:19:51] [PASSED] X0L2 Invalid pitch
[16:19:51] [PASSED] X0L2 Pitch greater than minimum required
[16:19:51] [PASSED] X0L2 Handle for inexistent plane
[16:19:51] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[16:19:51] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[16:19:51] [PASSED] X0L2 Valid modifier
[16:19:51] [PASSED] X0L2 Modifier for inexistent plane
[16:19:51] =========== [PASSED] drm_test_framebuffer_create ===========
[16:19:51] [PASSED] drm_test_framebuffer_free
[16:19:51] [PASSED] drm_test_framebuffer_init
[16:19:51] [PASSED] drm_test_framebuffer_init_bad_format
[16:19:51] [PASSED] drm_test_framebuffer_init_dev_mismatch
[16:19:51] [PASSED] drm_test_framebuffer_lookup
[16:19:51] [PASSED] drm_test_framebuffer_lookup_inexistent
[16:19:51] [PASSED] drm_test_framebuffer_modifiers_not_supported
[16:19:51] ================= [PASSED] drm_framebuffer =================
[16:19:51] ================ drm_gem_shmem (8 subtests) ================
[16:19:51] [PASSED] drm_gem_shmem_test_obj_create
[16:19:51] [PASSED] drm_gem_shmem_test_obj_create_private
[16:19:51] [PASSED] drm_gem_shmem_test_pin_pages
[16:19:51] [PASSED] drm_gem_shmem_test_vmap
[16:19:51] [PASSED] drm_gem_shmem_test_get_pages_sgt
[16:19:51] [PASSED] drm_gem_shmem_test_get_sg_table
[16:19:51] [PASSED] drm_gem_shmem_test_madvise
[16:19:51] [PASSED] drm_gem_shmem_test_purge
[16:19:51] ================== [PASSED] drm_gem_shmem ==================
[16:19:51] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[16:19:51] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[16:19:51] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[16:19:51] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[16:19:51] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[16:19:51] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[16:19:51] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[16:19:51] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[16:19:51] [PASSED] Automatic
[16:19:51] [PASSED] Full
[16:19:51] [PASSED] Limited 16:235
[16:19:51] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[16:19:51] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[16:19:51] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[16:19:51] [PASSED] drm_test_check_disable_connector
[16:19:51] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[16:19:51] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[16:19:51] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[16:19:51] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[16:19:51] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[16:19:51] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[16:19:51] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[16:19:51] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[16:19:51] [PASSED] drm_test_check_output_bpc_dvi
[16:19:51] [PASSED] drm_test_check_output_bpc_format_vic_1
[16:19:51] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[16:19:51] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[16:19:51] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[16:19:51] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[16:19:51] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[16:19:51] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[16:19:51] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[16:19:51] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[16:19:51] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[16:19:51] [PASSED] drm_test_check_broadcast_rgb_value
[16:19:51] [PASSED] drm_test_check_bpc_8_value
[16:19:51] [PASSED] drm_test_check_bpc_10_value
[16:19:51] [PASSED] drm_test_check_bpc_12_value
[16:19:51] [PASSED] drm_test_check_format_value
[16:19:51] [PASSED] drm_test_check_tmds_char_value
[16:19:51] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[16:19:51] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[16:19:51] [PASSED] drm_test_check_mode_valid
[16:19:51] [PASSED] drm_test_check_mode_valid_reject
[16:19:51] [PASSED] drm_test_check_mode_valid_reject_rate
[16:19:51] [PASSED] drm_test_check_mode_valid_reject_max_clock
[16:19:51] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[16:19:51] ================= drm_managed (2 subtests) =================
[16:19:51] [PASSED] drm_test_managed_release_action
[16:19:51] [PASSED] drm_test_managed_run_action
[16:19:51] =================== [PASSED] drm_managed ===================
[16:19:51] =================== drm_mm (6 subtests) ====================
[16:19:51] [PASSED] drm_test_mm_init
[16:19:51] [PASSED] drm_test_mm_debug
[16:19:51] [PASSED] drm_test_mm_align32
[16:19:51] [PASSED] drm_test_mm_align64
[16:19:51] [PASSED] drm_test_mm_lowest
[16:19:51] [PASSED] drm_test_mm_highest
[16:19:51] ===================== [PASSED] drm_mm ======================
[16:19:51] ============= drm_modes_analog_tv (5 subtests) =============
[16:19:51] [PASSED] drm_test_modes_analog_tv_mono_576i
[16:19:51] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[16:19:51] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[16:19:51] [PASSED] drm_test_modes_analog_tv_pal_576i
[16:19:51] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[16:19:51] =============== [PASSED] drm_modes_analog_tv ===============
[16:19:51] ============== drm_plane_helper (2 subtests) ===============
[16:19:51] =============== drm_test_check_plane_state ================
[16:19:51] [PASSED] clipping_simple
[16:19:51] [PASSED] clipping_rotate_reflect
[16:19:51] [PASSED] positioning_simple
[16:19:51] [PASSED] upscaling
[16:19:51] [PASSED] downscaling
[16:19:51] [PASSED] rounding1
[16:19:51] [PASSED] rounding2
[16:19:51] [PASSED] rounding3
[16:19:51] [PASSED] rounding4
[16:19:51] =========== [PASSED] drm_test_check_plane_state ============
[16:19:51] =========== drm_test_check_invalid_plane_state ============
[16:19:51] [PASSED] positioning_invalid
[16:19:51] [PASSED] upscaling_invalid
[16:19:51] [PASSED] downscaling_invalid
[16:19:51] ======= [PASSED] drm_test_check_invalid_plane_state ========
[16:19:51] ================ [PASSED] drm_plane_helper =================
[16:19:51] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[16:19:51] ====== drm_test_connector_helper_tv_get_modes_check =======
[16:19:51] [PASSED] None
[16:19:51] [PASSED] PAL
[16:19:51] [PASSED] NTSC
[16:19:51] [PASSED] Both, NTSC Default
[16:19:51] [PASSED] Both, PAL Default
[16:19:51] [PASSED] Both, NTSC Default, with PAL on command-line
[16:19:51] [PASSED] Both, PAL Default, with NTSC on command-line
[16:19:51] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[16:19:51] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[16:19:51] ================== drm_rect (9 subtests) ===================
[16:19:51] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[16:19:51] [PASSED] drm_test_rect_clip_scaled_not_clipped
[16:19:51] [PASSED] drm_test_rect_clip_scaled_clipped
[16:19:51] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[16:19:51] ================= drm_test_rect_intersect =================
[16:19:51] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[16:19:51] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[16:19:51] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[16:19:51] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[16:19:51] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[16:19:51] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[16:19:51] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[16:19:51] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[16:19:51] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[16:19:51] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[16:19:51] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[16:19:51] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[16:19:51] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[16:19:51] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[16:19:51] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[16:19:51] ============= [PASSED] drm_test_rect_intersect =============
[16:19:51] ================ drm_test_rect_calc_hscale ================
[16:19:51] [PASSED] normal use
[16:19:51] [PASSED] out of max range
[16:19:51] [PASSED] out of min range
[16:19:51] [PASSED] zero dst
[16:19:51] [PASSED] negative src
[16:19:51] [PASSED] negative dst
[16:19:51] ============ [PASSED] drm_test_rect_calc_hscale ============
[16:19:51] ================ drm_test_rect_calc_vscale ================
[16:19:51] [PASSED] normal use
[16:19:51] [PASSED] out of max range
[16:19:51] [PASSED] out of min range
[16:19:51] [PASSED] zero dst
[16:19:51] [PASSED] negative src
[16:19:51] [PASSED] negative dst
[16:19:51] ============ [PASSED] drm_test_rect_calc_vscale ============
[16:19:51] ================== drm_test_rect_rotate ===================
[16:19:51] [PASSED] reflect-x
[16:19:51] [PASSED] reflect-y
[16:19:51] [PASSED] rotate-0
[16:19:51] [PASSED] rotate-90
[16:19:51] [PASSED] rotate-180
[16:19:51] [PASSED] rotate-270
stty: 'standard input': Inappropriate ioctl for device
[16:19:51] ============== [PASSED] drm_test_rect_rotate ===============
[16:19:51] ================ drm_test_rect_rotate_inv =================
[16:19:51] [PASSED] reflect-x
[16:19:51] [PASSED] reflect-y
[16:19:51] [PASSED] rotate-0
[16:19:51] [PASSED] rotate-90
[16:19:51] [PASSED] rotate-180
[16:19:51] [PASSED] rotate-270
[16:19:51] ============ [PASSED] drm_test_rect_rotate_inv =============
[16:19:51] ==================== [PASSED] drm_rect =====================
[16:19:51] ============ drm_sysfb_modeset_test (1 subtest) ============
[16:19:51] ============ drm_test_sysfb_build_fourcc_list =============
[16:19:51] [PASSED] no native formats
[16:19:51] [PASSED] XRGB8888 as native format
[16:19:51] [PASSED] remove duplicates
[16:19:51] [PASSED] convert alpha formats
[16:19:51] [PASSED] random formats
[16:19:51] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[16:19:51] ============= [PASSED] drm_sysfb_modeset_test ==============
[16:19:51] ============================================================
[16:19:51] Testing complete. Ran 616 tests: passed: 616
[16:19:51] Elapsed time: 23.565s total, 1.615s configuring, 21.782s building, 0.145s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[16:19:51] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[16:19:53] 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
[16:20:01] Starting KUnit Kernel (1/1)...
[16:20:01] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[16:20:01] ================= ttm_device (5 subtests) ==================
[16:20:01] [PASSED] ttm_device_init_basic
[16:20:01] [PASSED] ttm_device_init_multiple
[16:20:01] [PASSED] ttm_device_fini_basic
[16:20:01] [PASSED] ttm_device_init_no_vma_man
[16:20:01] ================== ttm_device_init_pools ==================
[16:20:01] [PASSED] No DMA allocations, no DMA32 required
[16:20:01] [PASSED] DMA allocations, DMA32 required
[16:20:01] [PASSED] No DMA allocations, DMA32 required
[16:20:01] [PASSED] DMA allocations, no DMA32 required
[16:20:01] ============== [PASSED] ttm_device_init_pools ==============
[16:20:01] =================== [PASSED] ttm_device ====================
[16:20:01] ================== ttm_pool (8 subtests) ===================
[16:20:01] ================== ttm_pool_alloc_basic ===================
[16:20:01] [PASSED] One page
[16:20:01] [PASSED] More than one page
[16:20:01] [PASSED] Above the allocation limit
[16:20:01] [PASSED] One page, with coherent DMA mappings enabled
[16:20:01] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[16:20:01] ============== [PASSED] ttm_pool_alloc_basic ===============
[16:20:01] ============== ttm_pool_alloc_basic_dma_addr ==============
[16:20:01] [PASSED] One page
[16:20:01] [PASSED] More than one page
[16:20:01] [PASSED] Above the allocation limit
[16:20:01] [PASSED] One page, with coherent DMA mappings enabled
[16:20:01] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[16:20:01] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[16:20:01] [PASSED] ttm_pool_alloc_order_caching_match
[16:20:01] [PASSED] ttm_pool_alloc_caching_mismatch
[16:20:01] [PASSED] ttm_pool_alloc_order_mismatch
[16:20:01] [PASSED] ttm_pool_free_dma_alloc
[16:20:01] [PASSED] ttm_pool_free_no_dma_alloc
[16:20:01] [PASSED] ttm_pool_fini_basic
[16:20:01] ==================== [PASSED] ttm_pool =====================
[16:20:01] ================ ttm_resource (8 subtests) =================
[16:20:01] ================= ttm_resource_init_basic =================
[16:20:01] [PASSED] Init resource in TTM_PL_SYSTEM
[16:20:01] [PASSED] Init resource in TTM_PL_VRAM
[16:20:01] [PASSED] Init resource in a private placement
[16:20:01] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[16:20:01] ============= [PASSED] ttm_resource_init_basic =============
[16:20:01] [PASSED] ttm_resource_init_pinned
[16:20:01] [PASSED] ttm_resource_fini_basic
[16:20:01] [PASSED] ttm_resource_manager_init_basic
[16:20:01] [PASSED] ttm_resource_manager_usage_basic
[16:20:01] [PASSED] ttm_resource_manager_set_used_basic
[16:20:01] [PASSED] ttm_sys_man_alloc_basic
[16:20:01] [PASSED] ttm_sys_man_free_basic
[16:20:01] ================== [PASSED] ttm_resource ===================
[16:20:01] =================== ttm_tt (15 subtests) ===================
[16:20:01] ==================== ttm_tt_init_basic ====================
[16:20:01] [PASSED] Page-aligned size
[16:20:01] [PASSED] Extra pages requested
[16:20:01] ================ [PASSED] ttm_tt_init_basic ================
[16:20:01] [PASSED] ttm_tt_init_misaligned
[16:20:01] [PASSED] ttm_tt_fini_basic
[16:20:01] [PASSED] ttm_tt_fini_sg
[16:20:01] [PASSED] ttm_tt_fini_shmem
[16:20:01] [PASSED] ttm_tt_create_basic
[16:20:01] [PASSED] ttm_tt_create_invalid_bo_type
[16:20:01] [PASSED] ttm_tt_create_ttm_exists
[16:20:01] [PASSED] ttm_tt_create_failed
[16:20:01] [PASSED] ttm_tt_destroy_basic
[16:20:01] [PASSED] ttm_tt_populate_null_ttm
[16:20:01] [PASSED] ttm_tt_populate_populated_ttm
[16:20:01] [PASSED] ttm_tt_unpopulate_basic
[16:20:01] [PASSED] ttm_tt_unpopulate_empty_ttm
[16:20:01] [PASSED] ttm_tt_swapin_basic
[16:20:01] ===================== [PASSED] ttm_tt ======================
[16:20:01] =================== ttm_bo (14 subtests) ===================
[16:20:01] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[16:20:01] [PASSED] Cannot be interrupted and sleeps
[16:20:01] [PASSED] Cannot be interrupted, locks straight away
[16:20:01] [PASSED] Can be interrupted, sleeps
[16:20:01] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[16:20:01] [PASSED] ttm_bo_reserve_locked_no_sleep
[16:20:01] [PASSED] ttm_bo_reserve_no_wait_ticket
[16:20:01] [PASSED] ttm_bo_reserve_double_resv
[16:20:01] [PASSED] ttm_bo_reserve_interrupted
[16:20:01] [PASSED] ttm_bo_reserve_deadlock
[16:20:01] [PASSED] ttm_bo_unreserve_basic
[16:20:01] [PASSED] ttm_bo_unreserve_pinned
[16:20:01] [PASSED] ttm_bo_unreserve_bulk
[16:20:01] [PASSED] ttm_bo_put_basic
[16:20:01] [PASSED] ttm_bo_put_shared_resv
[16:20:01] [PASSED] ttm_bo_pin_basic
[16:20:01] [PASSED] ttm_bo_pin_unpin_resource
[16:20:01] [PASSED] ttm_bo_multiple_pin_one_unpin
[16:20:01] ===================== [PASSED] ttm_bo ======================
[16:20:01] ============== ttm_bo_validate (21 subtests) ===============
[16:20:01] ============== ttm_bo_init_reserved_sys_man ===============
[16:20:01] [PASSED] Buffer object for userspace
[16:20:01] [PASSED] Kernel buffer object
[16:20:01] [PASSED] Shared buffer object
[16:20:01] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[16:20:01] ============== ttm_bo_init_reserved_mock_man ==============
[16:20:01] [PASSED] Buffer object for userspace
[16:20:01] [PASSED] Kernel buffer object
[16:20:01] [PASSED] Shared buffer object
[16:20:01] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[16:20:01] [PASSED] ttm_bo_init_reserved_resv
[16:20:01] ================== ttm_bo_validate_basic ==================
[16:20:01] [PASSED] Buffer object for userspace
[16:20:01] [PASSED] Kernel buffer object
[16:20:01] [PASSED] Shared buffer object
[16:20:01] ============== [PASSED] ttm_bo_validate_basic ==============
[16:20:01] [PASSED] ttm_bo_validate_invalid_placement
[16:20:01] ============= ttm_bo_validate_same_placement ==============
[16:20:01] [PASSED] System manager
[16:20:01] [PASSED] VRAM manager
[16:20:01] ========= [PASSED] ttm_bo_validate_same_placement ==========
[16:20:01] [PASSED] ttm_bo_validate_failed_alloc
[16:20:01] [PASSED] ttm_bo_validate_pinned
[16:20:01] [PASSED] ttm_bo_validate_busy_placement
[16:20:01] ================ ttm_bo_validate_multihop =================
[16:20:01] [PASSED] Buffer object for userspace
[16:20:01] [PASSED] Kernel buffer object
[16:20:01] [PASSED] Shared buffer object
[16:20:01] ============ [PASSED] ttm_bo_validate_multihop =============
[16:20:01] ========== ttm_bo_validate_no_placement_signaled ==========
[16:20:01] [PASSED] Buffer object in system domain, no page vector
[16:20:01] [PASSED] Buffer object in system domain with an existing page vector
[16:20:01] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[16:20:01] ======== ttm_bo_validate_no_placement_not_signaled ========
[16:20:01] [PASSED] Buffer object for userspace
[16:20:01] [PASSED] Kernel buffer object
[16:20:01] [PASSED] Shared buffer object
[16:20:01] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[16:20:01] [PASSED] ttm_bo_validate_move_fence_signaled
[16:20:01] ========= ttm_bo_validate_move_fence_not_signaled =========
[16:20:01] [PASSED] Waits for GPU
[16:20:01] [PASSED] Tries to lock straight away
[16:20:01] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[16:20:01] [PASSED] ttm_bo_validate_happy_evict
[16:20:01] [PASSED] ttm_bo_validate_all_pinned_evict
[16:20:01] [PASSED] ttm_bo_validate_allowed_only_evict
[16:20:01] [PASSED] ttm_bo_validate_deleted_evict
[16:20:01] [PASSED] ttm_bo_validate_busy_domain_evict
[16:20:01] [PASSED] ttm_bo_validate_evict_gutting
[16:20:01] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[16:20:01] ================= [PASSED] ttm_bo_validate =================
[16:20:01] ============================================================
[16:20:01] Testing complete. Ran 101 tests: passed: 101
[16:20:01] Elapsed time: 9.701s total, 1.675s configuring, 7.810s building, 0.182s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✗ CI.checksparse: warning for Handle Firmware reported Hardware Errors (rev7)
2025-07-28 10:27 [PATCH v7 0/9] Handle Firmware reported Hardware Errors Riana Tauro
` (10 preceding siblings ...)
2025-07-28 16:20 ` ✓ CI.KUnit: success " Patchwork
@ 2025-07-28 16:34 ` Patchwork
2025-07-28 17:01 ` ✓ Xe.CI.BAT: success " Patchwork
2025-07-28 19:12 ` ✗ Xe.CI.Full: failure " Patchwork
13 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2025-07-28 16:34 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
== Series Details ==
Series: Handle Firmware reported Hardware Errors (rev7)
URL : https://patchwork.freedesktop.org/series/149756/
State : warning
== Summary ==
+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast 51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09
Sparse version: 0.6.4 (Ubuntu: 0.6.4-4ubuntu3)
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/drm_drv.c:449:6: warning: context imbalance in 'drm_dev_enter' - different lock contexts for basic block
+drivers/gpu/drm/drm_drv.c: note: in included file (through include/linux/notifier.h, arch/x86/include/asm/uprobes.h, include/linux/uprobes.h, include/linux/mm_types.h, include/linux/mmzone.h, include/linux/gfp.h, ...):
+drivers/gpu/drm/drm_plane.c:213:24: warning: Using plain integer as NULL pointer
+drivers/gpu/drm/i915/display/intel_alpm.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_cdclk.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_ddi.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2018:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2031:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2031:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2031:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_hdcp.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_hotplug.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_pps.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_psr.c: note: in included file:
+drivers/gpu/drm/i915/gt/intel_reset.c:1572:12: warning: context imbalance in '_intel_gt_reset_lock' - different lock contexts for basic block
+drivers/gpu/drm/i915/gt/intel_sseu.c:598:17: error: too long token expansion
+drivers/gpu/drm/i915/i915_active.c:1063:16: warning: context imbalance in '__i915_active_fence_set' - different lock contexts for basic block
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: error: incompatible types in comparison expression (different address spaces):
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: error: incompatible types in comparison expression (different address spaces):
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: expected struct list_head const *list
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: got struct list_head [noderef] __rcu *pos
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head [noderef] __rcu *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head [noderef] __rcu *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: warning: incorrect type in argument 1 (different address spaces)
+drivers/gpu/drm/i915/i915_irq.c:492:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:492:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:500:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:500:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:505:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:505:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:505:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:543:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:543:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:551:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:551:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:556:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:556:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:556:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:600:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:600:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:603:15: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:603:15: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:607:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:607:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/intel_uncore.c:1927:1: warning: context imbalance in 'fwtable_read8' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1928:1: warning: context imbalance in 'fwtable_read16' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1929:1: warning: context imbalance in 'fwtable_read32' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1930:1: warning: context imbalance in 'fwtable_read64' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1995:1: warning: context imbalance in 'gen6_write8' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1996:1: warning: context imbalance in 'gen6_write16' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1997:1: warning: context imbalance in 'gen6_write32' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2017:1: warning: context imbalance in 'fwtable_write8' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2018:1: warning: context imbalance in 'fwtable_write16' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2019:1: warning: context imbalance in 'fwtable_write32' - unexpected unlock
+drivers/gpu/drm/i915/intel_wakeref.c:145:19: warning: context imbalance in 'wakeref_auto_timeout' - unexpected unlock
+drivers/gpu/drm/ttm/ttm_bo.c:1199:31: warning: symbol 'ttm_swap_ops' was not declared. Should it be static?
+drivers/gpu/drm/ttm/ttm_bo_util.c:329:38: expected void *virtual
+drivers/gpu/drm/ttm/ttm_bo_util.c:329:38: got void [noderef] __iomem *
+drivers/gpu/drm/ttm/ttm_bo_util.c:329:38: warning: incorrect type in assignment (different address spaces)
+drivers/gpu/drm/ttm/ttm_bo_util.c:332:38: expected void *virtual
+drivers/gpu/drm/ttm/ttm_bo_util.c:332:38: got void [noderef] __iomem *
+drivers/gpu/drm/ttm/ttm_bo_util.c:332:38: warning: incorrect type in assignment (different address spaces)
+drivers/gpu/drm/ttm/ttm_bo_util.c:335:38: expected void *virtual
+drivers/gpu/drm/ttm/ttm_bo_util.c:335:38: got void [noderef] __iomem *
+drivers/gpu/drm/ttm/ttm_bo_util.c:335:38: warning: incorrect type in assignment (different address spaces)
+drivers/gpu/drm/ttm/ttm_bo_util.c:467:28: expected void volatile [noderef] __iomem *addr
+drivers/gpu/drm/ttm/ttm_bo_util.c:467:28: got void *virtual
+drivers/gpu/drm/ttm/ttm_bo_util.c:467:28: warning: incorrect type in argument 1 (different address spaces)
+./include/linux/srcu.h:400:9: warning: context imbalance in 'drm_dev_exit' - unexpected unlock
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✓ Xe.CI.BAT: success for Handle Firmware reported Hardware Errors (rev7)
2025-07-28 10:27 [PATCH v7 0/9] Handle Firmware reported Hardware Errors Riana Tauro
` (11 preceding siblings ...)
2025-07-28 16:34 ` ✗ CI.checksparse: warning " Patchwork
@ 2025-07-28 17:01 ` Patchwork
2025-07-28 19:12 ` ✗ Xe.CI.Full: failure " Patchwork
13 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2025-07-28 17:01 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 1533 bytes --]
== Series Details ==
Series: Handle Firmware reported Hardware Errors (rev7)
URL : https://patchwork.freedesktop.org/series/149756/
State : success
== Summary ==
CI Bug Log - changes from xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09_BAT -> xe-pw-149756v7_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (9 -> 8)
------------------------------
Missing (1): bat-adlp-vm
Known issues
------------
Here are the changes found in xe-pw-149756v7_BAT that come from known issues:
### IGT changes ###
#### Possible fixes ####
* igt@xe_pat@pat-index-xe2@render:
- bat-bmg-1: [FAIL][1] ([Intel XE#5507]) -> [PASS][2] +1 other test pass
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/bat-bmg-1/igt@xe_pat@pat-index-xe2@render.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/bat-bmg-1/igt@xe_pat@pat-index-xe2@render.html
[Intel XE#5507]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5507
Build changes
-------------
* Linux: xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09 -> xe-pw-149756v7
IGT_8476: 232d4de46aa5ec03aee240657c0b36110f8a6246 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09: 51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09
xe-pw-149756v7: 149756v7
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/index.html
[-- Attachment #2: Type: text/html, Size: 2098 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✗ Xe.CI.Full: failure for Handle Firmware reported Hardware Errors (rev7)
2025-07-28 10:27 [PATCH v7 0/9] Handle Firmware reported Hardware Errors Riana Tauro
` (12 preceding siblings ...)
2025-07-28 17:01 ` ✓ Xe.CI.BAT: success " Patchwork
@ 2025-07-28 19:12 ` Patchwork
13 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2025-07-28 19:12 UTC (permalink / raw)
To: Riana Tauro; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 73944 bytes --]
== Series Details ==
Series: Handle Firmware reported Hardware Errors (rev7)
URL : https://patchwork.freedesktop.org/series/149756/
State : failure
== Summary ==
CI Bug Log - changes from xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09_FULL -> xe-pw-149756v7_FULL
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with xe-pw-149756v7_FULL absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-149756v7_FULL, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-149756v7_FULL:
### IGT changes ###
#### Possible regressions ####
* igt@xe_exec_fault_mode@twice-bindexecqueue-imm:
- shard-lnl: [PASS][1] -> [FAIL][2] +1 other test fail
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-lnl-1/igt@xe_exec_fault_mode@twice-bindexecqueue-imm.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-1/igt@xe_exec_fault_mode@twice-bindexecqueue-imm.html
New tests
---------
New tests have been introduced between xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09_FULL and xe-pw-149756v7_FULL:
### New IGT tests (36) ###
* igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible@ab-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [5.54] s
* igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible@ac-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [5.51] s
* igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible@ad-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [5.36] s
* igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible@bc-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [5.52] s
* igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible@bd-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [5.51] s
* igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible@cd-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [5.49] s
* igt@kms_flip@2x-blocking-absolute-wf_vblank@ab-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [5.58] s
* igt@kms_flip@2x-blocking-absolute-wf_vblank@ac-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [5.37] s
* igt@kms_flip@2x-blocking-absolute-wf_vblank@ad-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [5.55] s
* igt@kms_flip@2x-blocking-absolute-wf_vblank@bc-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [5.55] s
* igt@kms_flip@2x-blocking-absolute-wf_vblank@bd-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [5.54] s
* igt@kms_flip@2x-blocking-absolute-wf_vblank@cd-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [5.54] s
* igt@kms_flip@2x-busy-flip@ab-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.94] s
* igt@kms_flip@2x-busy-flip@ac-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.94] s
* igt@kms_flip@2x-busy-flip@ad-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.91] s
* igt@kms_flip@2x-busy-flip@bc-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.86] s
* igt@kms_flip@2x-busy-flip@bd-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.90] s
* igt@kms_flip@2x-busy-flip@cd-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.88] s
* igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible@ab-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [1.17] s
* igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible@ac-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.94] s
* igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible@ad-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.95] s
* igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible@bc-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.97] s
* igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible@bd-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.91] s
* igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible@cd-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.90] s
* igt@kms_flip@2x-plain-flip-interruptible@ab-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.87] s
* igt@kms_flip@2x-plain-flip-interruptible@ac-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.85] s
* igt@kms_flip@2x-plain-flip-interruptible@ad-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.86] s
* igt@kms_flip@2x-plain-flip-interruptible@bc-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.87] s
* igt@kms_flip@2x-plain-flip-interruptible@bd-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.85] s
* igt@kms_flip@2x-plain-flip-interruptible@cd-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.84] s
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset@ab-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [1.21] s
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset@ac-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.99] s
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset@ad-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [1.02] s
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset@bc-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [1.02] s
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset@bd-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.93] s
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset@cd-dp2-hdmi-a3:
- Statuses : 1 pass(s)
- Exec time: [0.91] s
Known issues
------------
Here are the changes found in xe-pw-149756v7_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_addfb_basic@addfb25-4-tiled:
- shard-adlp: [PASS][3] -> [DMESG-WARN][4] ([Intel XE#2953] / [Intel XE#4173]) +7 other tests dmesg-warn
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-adlp-3/igt@kms_addfb_basic@addfb25-4-tiled.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-8/igt@kms_addfb_basic@addfb25-4-tiled.html
- shard-dg2-set2: [PASS][5] -> [SKIP][6] ([Intel XE#4208] / [i915#2575]) +3 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-466/igt@kms_addfb_basic@addfb25-4-tiled.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-434/igt@kms_addfb_basic@addfb25-4-tiled.html
* igt@kms_async_flips@alternate-sync-async-flip:
- shard-adlp: [PASS][7] -> [FAIL][8] ([Intel XE#827]) +1 other test fail
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-adlp-4/igt@kms_async_flips@alternate-sync-async-flip.html
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-1/igt@kms_async_flips@alternate-sync-async-flip.html
* igt@kms_async_flips@invalid-async-flip-atomic:
- shard-dg2-set2: NOTRUN -> [SKIP][9] ([Intel XE#3768])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_async_flips@invalid-async-flip-atomic.html
* igt@kms_big_fb@linear-16bpp-rotate-90:
- shard-lnl: NOTRUN -> [SKIP][10] ([Intel XE#1407]) +1 other test skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-8/igt@kms_big_fb@linear-16bpp-rotate-90.html
* igt@kms_big_fb@x-tiled-8bpp-rotate-270:
- shard-dg2-set2: NOTRUN -> [SKIP][11] ([Intel XE#316]) +1 other test skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-466/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-16bpp-rotate-270:
- shard-adlp: NOTRUN -> [SKIP][12] ([Intel XE#316])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@kms_big_fb@y-tiled-16bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
- shard-dg2-set2: NOTRUN -> [SKIP][13] ([Intel XE#607])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-436/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0:
- shard-dg2-set2: NOTRUN -> [SKIP][14] ([Intel XE#1124]) +4 other tests skip
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip:
- shard-lnl: NOTRUN -> [SKIP][15] ([Intel XE#1124]) +3 other tests skip
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-3/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
- shard-adlp: [PASS][16] -> [DMESG-FAIL][17] ([Intel XE#4543]) +1 other test dmesg-fail
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-adlp-1/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-6/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
* igt@kms_big_fb@yf-tiled-64bpp-rotate-0:
- shard-bmg: NOTRUN -> [SKIP][18] ([Intel XE#1124]) +3 other tests skip
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@kms_big_fb@yf-tiled-64bpp-rotate-0.html
* igt@kms_bw@linear-tiling-3-displays-2560x1440p:
- shard-dg2-set2: NOTRUN -> [SKIP][19] ([Intel XE#367])
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_bw@linear-tiling-3-displays-2560x1440p.html
* igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs:
- shard-bmg: NOTRUN -> [SKIP][20] ([Intel XE#2887]) +2 other tests skip
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-4/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs.html
* igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc:
- shard-lnl: NOTRUN -> [SKIP][21] ([Intel XE#2887]) +3 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-8/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc.html
* igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs:
- shard-dg2-set2: NOTRUN -> [SKIP][22] ([Intel XE#2907])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs@pipe-c-edp-1:
- shard-lnl: NOTRUN -> [SKIP][23] ([Intel XE#2669]) +3 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-8/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs@pipe-c-edp-1.html
* igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs-cc@pipe-d-hdmi-a-1:
- shard-adlp: NOTRUN -> [SKIP][24] ([Intel XE#455] / [Intel XE#787]) +3 other tests skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs-cc@pipe-d-hdmi-a-1.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-d-dp-4:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][25] ([Intel XE#3862]) +1 other test incomplete
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-464/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-d-dp-4.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#2652] / [Intel XE#787]) +3 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-2/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-a-dp-2.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [SKIP][27] ([Intel XE#787]) +181 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-6.html
* igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4:
- shard-dg2-set2: NOTRUN -> [SKIP][28] ([Intel XE#455] / [Intel XE#787]) +33 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-dp-4:
- shard-dg2-set2: [PASS][29] -> [INCOMPLETE][30] ([Intel XE#2705] / [Intel XE#4212] / [Intel XE#4345]) +1 other test incomplete
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-dp-4.html
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-dp-4.html
* igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs@pipe-c-hdmi-a-1:
- shard-adlp: NOTRUN -> [SKIP][31] ([Intel XE#787]) +5 other tests skip
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs@pipe-c-hdmi-a-1.html
* igt@kms_chamelium_color@gamma:
- shard-dg2-set2: NOTRUN -> [SKIP][32] ([Intel XE#306]) +2 other tests skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_chamelium_color@gamma.html
* igt@kms_chamelium_edid@hdmi-edid-read:
- shard-adlp: NOTRUN -> [SKIP][33] ([Intel XE#373]) +1 other test skip
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@kms_chamelium_edid@hdmi-edid-read.html
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#2252]) +2 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@kms_chamelium_edid@hdmi-edid-read.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- shard-dg2-set2: NOTRUN -> [SKIP][35] ([Intel XE#373]) +3 other tests skip
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-464/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_chamelium_hpd@vga-hpd:
- shard-lnl: NOTRUN -> [SKIP][36] ([Intel XE#373]) +3 other tests skip
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-3/igt@kms_chamelium_hpd@vga-hpd.html
* igt@kms_content_protection@dp-mst-lic-type-0:
- shard-dg2-set2: NOTRUN -> [SKIP][37] ([Intel XE#307]) +1 other test skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-466/igt@kms_content_protection@dp-mst-lic-type-0.html
* igt@kms_content_protection@lic-type-0@pipe-a-dp-4:
- shard-dg2-set2: NOTRUN -> [FAIL][38] ([Intel XE#3304])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-436/igt@kms_content_protection@lic-type-0@pipe-a-dp-4.html
* igt@kms_content_protection@srm@pipe-a-dp-4:
- shard-dg2-set2: NOTRUN -> [FAIL][39] ([Intel XE#1178])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-464/igt@kms_content_protection@srm@pipe-a-dp-4.html
* igt@kms_cursor_crc@cursor-onscreen-512x512:
- shard-dg2-set2: NOTRUN -> [SKIP][40] ([Intel XE#308])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_cursor_crc@cursor-onscreen-512x512.html
* igt@kms_cursor_crc@cursor-random-512x512:
- shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#2321])
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-4/igt@kms_cursor_crc@cursor-random-512x512.html
* igt@kms_cursor_crc@cursor-sliding-256x85:
- shard-bmg: NOTRUN -> [SKIP][42] ([Intel XE#2320])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@kms_cursor_crc@cursor-sliding-256x85.html
- shard-lnl: NOTRUN -> [SKIP][43] ([Intel XE#1424])
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-3/igt@kms_cursor_crc@cursor-sliding-256x85.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
- shard-bmg: [PASS][44] -> [SKIP][45] ([Intel XE#2291]) +2 other tests skip
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-4/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-legacy:
- shard-adlp: NOTRUN -> [SKIP][46] ([Intel XE#309])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@kms_cursor_legacy@cursorb-vs-flipb-legacy.html
- shard-bmg: NOTRUN -> [SKIP][47] ([Intel XE#2291])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@kms_cursor_legacy@cursorb-vs-flipb-legacy.html
- shard-lnl: NOTRUN -> [SKIP][48] ([Intel XE#309])
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-3/igt@kms_cursor_legacy@cursorb-vs-flipb-legacy.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [SKIP][49] ([Intel XE#4494] / [i915#3804])
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-436/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-6.html
* igt@kms_dp_linktrain_fallback@dp-fallback:
- shard-bmg: [PASS][50] -> [SKIP][51] ([Intel XE#4294])
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-3/igt@kms_dp_linktrain_fallback@dp-fallback.html
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@kms_dp_linktrain_fallback@dp-fallback.html
* igt@kms_fbcon_fbt@psr:
- shard-dg2-set2: NOTRUN -> [SKIP][52] ([Intel XE#776])
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-464/igt@kms_fbcon_fbt@psr.html
* igt@kms_feature_discovery@dp-mst:
- shard-dg2-set2: NOTRUN -> [SKIP][53] ([Intel XE#1137])
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-436/igt@kms_feature_discovery@dp-mst.html
* igt@kms_flip@2x-flip-vs-rmfb-interruptible:
- shard-lnl: NOTRUN -> [SKIP][54] ([Intel XE#1421]) +2 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-3/igt@kms_flip@2x-flip-vs-rmfb-interruptible.html
* igt@kms_flip@2x-modeset-vs-vblank-race:
- shard-adlp: NOTRUN -> [SKIP][55] ([Intel XE#310]) +2 other tests skip
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@kms_flip@2x-modeset-vs-vblank-race.html
* igt@kms_flip@2x-nonexisting-fb:
- shard-bmg: NOTRUN -> [SKIP][56] ([Intel XE#2316]) +2 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@kms_flip@2x-nonexisting-fb.html
* igt@kms_flip@2x-plain-flip-fb-recreate:
- shard-bmg: [PASS][57] -> [SKIP][58] ([Intel XE#2316]) +8 other tests skip
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-4/igt@kms_flip@2x-plain-flip-fb-recreate.html
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-6/igt@kms_flip@2x-plain-flip-fb-recreate.html
* igt@kms_flip@flip-vs-suspend-interruptible@d-hdmi-a1:
- shard-adlp: [PASS][59] -> [DMESG-WARN][60] ([Intel XE#4543]) +1 other test dmesg-warn
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-adlp-9/igt@kms_flip@flip-vs-suspend-interruptible@d-hdmi-a1.html
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@kms_flip@flip-vs-suspend-interruptible@d-hdmi-a1.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode:
- shard-bmg: NOTRUN -> [SKIP][61] ([Intel XE#2293]) +1 other test skip
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling:
- shard-lnl: NOTRUN -> [SKIP][62] ([Intel XE#1397] / [Intel XE#1745])
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-5/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][63] ([Intel XE#1397])
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-5/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling:
- shard-bmg: NOTRUN -> [SKIP][64] ([Intel XE#2293] / [Intel XE#2380]) +1 other test skip
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html
- shard-lnl: NOTRUN -> [SKIP][65] ([Intel XE#1401] / [Intel XE#1745]) +1 other test skip
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-3/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][66] ([Intel XE#1401]) +1 other test skip
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-8/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling:
- shard-dg2-set2: NOTRUN -> [SKIP][67] ([Intel XE#455]) +10 other tests skip
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-436/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html
* igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-x-to-x:
- shard-adlp: [PASS][68] -> [FAIL][69] ([Intel XE#1874])
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-adlp-3/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-x-to-x.html
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-1/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-x-to-x.html
* igt@kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][70] ([Intel XE#2311]) +3 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-render:
- shard-adlp: NOTRUN -> [SKIP][71] ([Intel XE#651]) +1 other test skip
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-onoff:
- shard-dg2-set2: NOTRUN -> [SKIP][72] ([Intel XE#651]) +14 other tests skip
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@drrs-suspend:
- shard-lnl: NOTRUN -> [SKIP][73] ([Intel XE#651]) +4 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-8/igt@kms_frontbuffer_tracking@drrs-suspend.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-onoff:
- shard-lnl: NOTRUN -> [SKIP][74] ([Intel XE#656]) +13 other tests skip
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][75] ([Intel XE#2312]) +7 other tests skip
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][76] ([Intel XE#5390]) +2 other tests skip
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y:
- shard-dg2-set2: NOTRUN -> [SKIP][77] ([Intel XE#658])
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-464/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt:
- shard-adlp: NOTRUN -> [SKIP][78] ([Intel XE#653]) +2 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt.html
- shard-bmg: NOTRUN -> [SKIP][79] ([Intel XE#2313]) +7 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-wc:
- shard-dg2-set2: NOTRUN -> [SKIP][80] ([Intel XE#653]) +14 other tests skip
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt:
- shard-adlp: NOTRUN -> [SKIP][81] ([Intel XE#656]) +5 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html
* igt@kms_hdr@bpc-switch-dpms:
- shard-adlp: NOTRUN -> [SKIP][82] ([Intel XE#455]) +3 other tests skip
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@kms_hdr@bpc-switch-dpms.html
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [PASS][83] -> [SKIP][84] ([Intel XE#1503])
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-7/igt@kms_hdr@invalid-hdr.html
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-5/igt@kms_hdr@invalid-hdr.html
* igt@kms_joiner@invalid-modeset-force-big-joiner:
- shard-bmg: [PASS][85] -> [SKIP][86] ([Intel XE#3012])
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-8/igt@kms_joiner@invalid-modeset-force-big-joiner.html
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-6/igt@kms_joiner@invalid-modeset-force-big-joiner.html
* igt@kms_lease@invalid-create-leases:
- shard-dg2-set2: NOTRUN -> [SKIP][87] ([Intel XE#4208] / [i915#2575]) +12 other tests skip
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-434/igt@kms_lease@invalid-create-leases.html
* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-lnl: NOTRUN -> [SKIP][88] ([Intel XE#356])
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-8/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
* igt@kms_plane_lowres@tiling-yf:
- shard-bmg: NOTRUN -> [SKIP][89] ([Intel XE#2393])
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@kms_plane_lowres@tiling-yf.html
* igt@kms_plane_multiple@2x-tiling-yf:
- shard-lnl: NOTRUN -> [SKIP][90] ([Intel XE#4596])
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-8/igt@kms_plane_multiple@2x-tiling-yf.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20@pipe-b:
- shard-lnl: NOTRUN -> [SKIP][91] ([Intel XE#2763]) +5 other tests skip
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-3/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20@pipe-b.html
* igt@kms_pm_dc@dc9-dpms:
- shard-adlp: NOTRUN -> [SKIP][92] ([Intel XE#734])
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@kms_pm_dc@dc9-dpms.html
* igt@kms_pm_dc@deep-pkgc:
- shard-bmg: NOTRUN -> [SKIP][93] ([Intel XE#2505])
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-4/igt@kms_pm_dc@deep-pkgc.html
- shard-lnl: NOTRUN -> [FAIL][94] ([Intel XE#2029])
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-5/igt@kms_pm_dc@deep-pkgc.html
* igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf:
- shard-lnl: NOTRUN -> [SKIP][95] ([Intel XE#2893]) +1 other test skip
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-3/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf.html
- shard-adlp: NOTRUN -> [SKIP][96] ([Intel XE#1489]) +1 other test skip
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area:
- shard-dg2-set2: NOTRUN -> [SKIP][97] ([Intel XE#1489]) +4 other tests skip
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-436/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf:
- shard-lnl: NOTRUN -> [SKIP][98] ([Intel XE#2893] / [Intel XE#4608])
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-5/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf@pipe-a-edp-1:
- shard-lnl: NOTRUN -> [SKIP][99] ([Intel XE#4608]) +1 other test skip
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-5/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf@pipe-a-edp-1.html
* igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf:
- shard-bmg: NOTRUN -> [SKIP][100] ([Intel XE#1489]) +2 other tests skip
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_su@page_flip-nv12:
- shard-dg2-set2: NOTRUN -> [SKIP][101] ([Intel XE#1122])
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-436/igt@kms_psr2_su@page_flip-nv12.html
* igt@kms_psr@fbc-pr-sprite-plane-move:
- shard-lnl: NOTRUN -> [SKIP][102] ([Intel XE#1406]) +2 other tests skip
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-8/igt@kms_psr@fbc-pr-sprite-plane-move.html
* igt@kms_psr@fbc-psr-primary-render:
- shard-dg2-set2: NOTRUN -> [SKIP][103] ([Intel XE#2850] / [Intel XE#929]) +7 other tests skip
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_psr@fbc-psr-primary-render.html
* igt@kms_psr@fbc-psr2-primary-blt@edp-1:
- shard-lnl: NOTRUN -> [SKIP][104] ([Intel XE#4609])
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-5/igt@kms_psr@fbc-psr2-primary-blt@edp-1.html
* igt@kms_psr@psr-primary-page-flip:
- shard-dg2-set2: NOTRUN -> [SKIP][105] ([Intel XE#2351] / [Intel XE#4208]) +4 other tests skip
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-434/igt@kms_psr@psr-primary-page-flip.html
* igt@kms_psr@psr2-suspend:
- shard-adlp: NOTRUN -> [SKIP][106] ([Intel XE#2850] / [Intel XE#929]) +1 other test skip
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@kms_psr@psr2-suspend.html
- shard-bmg: NOTRUN -> [SKIP][107] ([Intel XE#2234] / [Intel XE#2850]) +3 other tests skip
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@kms_psr@psr2-suspend.html
* igt@kms_rotation_crc@primary-rotation-270:
- shard-bmg: NOTRUN -> [SKIP][108] ([Intel XE#3414] / [Intel XE#3904])
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-4/igt@kms_rotation_crc@primary-rotation-270.html
- shard-lnl: NOTRUN -> [SKIP][109] ([Intel XE#3414] / [Intel XE#3904])
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-5/igt@kms_rotation_crc@primary-rotation-270.html
* igt@kms_rotation_crc@primary-rotation-90:
- shard-dg2-set2: NOTRUN -> [SKIP][110] ([Intel XE#3414])
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_rotation_crc@primary-rotation-90.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
- shard-lnl: NOTRUN -> [SKIP][111] ([Intel XE#1127])
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-8/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
- shard-dg2-set2: NOTRUN -> [SKIP][112] ([Intel XE#1127])
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
* igt@kms_setmode@invalid-clone-single-crtc:
- shard-bmg: [PASS][113] -> [SKIP][114] ([Intel XE#1435])
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-8/igt@kms_setmode@invalid-clone-single-crtc.html
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-6/igt@kms_setmode@invalid-clone-single-crtc.html
* igt@kms_vrr@negative-basic:
- shard-bmg: [PASS][115] -> [SKIP][116] ([Intel XE#1499])
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-3/igt@kms_vrr@negative-basic.html
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-6/igt@kms_vrr@negative-basic.html
* igt@xe_configfs@survivability-mode:
- shard-dg2-set2: NOTRUN -> [SKIP][117] ([Intel XE#5249])
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-432/igt@xe_configfs@survivability-mode.html
* igt@xe_eu_stall@non-blocking-read:
- shard-adlp: NOTRUN -> [SKIP][118] ([Intel XE#5626])
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@xe_eu_stall@non-blocking-read.html
* igt@xe_eudebug@basic-close:
- shard-dg2-set2: NOTRUN -> [SKIP][119] ([Intel XE#4837]) +7 other tests skip
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-436/igt@xe_eudebug@basic-close.html
* igt@xe_eudebug@basic-vm-access-parameters-userptr:
- shard-adlp: NOTRUN -> [SKIP][120] ([Intel XE#4837] / [Intel XE#5565])
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@xe_eudebug@basic-vm-access-parameters-userptr.html
- shard-bmg: NOTRUN -> [SKIP][121] ([Intel XE#4837]) +2 other tests skip
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@xe_eudebug@basic-vm-access-parameters-userptr.html
* igt@xe_exec_basic@multigpu-no-exec-null-defer-bind:
- shard-bmg: NOTRUN -> [SKIP][122] ([Intel XE#2322]) +2 other tests skip
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@xe_exec_basic@multigpu-no-exec-null-defer-bind.html
* igt@xe_exec_basic@multigpu-once-bindexecqueue:
- shard-dg2-set2: [PASS][123] -> [SKIP][124] ([Intel XE#1392]) +6 other tests skip
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-433/igt@xe_exec_basic@multigpu-once-bindexecqueue.html
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-432/igt@xe_exec_basic@multigpu-once-bindexecqueue.html
* igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate-race:
- shard-lnl: NOTRUN -> [SKIP][125] ([Intel XE#1392]) +2 other tests skip
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-3/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate-race.html
- shard-adlp: NOTRUN -> [SKIP][126] ([Intel XE#1392] / [Intel XE#5575])
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate-race.html
* igt@xe_exec_basic@once-bindexecqueue-userptr-rebind:
- shard-dg2-set2: NOTRUN -> [SKIP][127] ([Intel XE#4208]) +48 other tests skip
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-434/igt@xe_exec_basic@once-bindexecqueue-userptr-rebind.html
* igt@xe_exec_fault_mode@many-execqueues-bindexecqueue-userptr-invalidate-race-imm:
- shard-adlp: NOTRUN -> [SKIP][128] ([Intel XE#288] / [Intel XE#5561]) +5 other tests skip
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@xe_exec_fault_mode@many-execqueues-bindexecqueue-userptr-invalidate-race-imm.html
* igt@xe_exec_fault_mode@twice-userptr-rebind-imm:
- shard-dg2-set2: NOTRUN -> [SKIP][129] ([Intel XE#288]) +13 other tests skip
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-436/igt@xe_exec_fault_mode@twice-userptr-rebind-imm.html
* igt@xe_exec_sip_eudebug@wait-writesip-nodebug:
- shard-lnl: NOTRUN -> [SKIP][130] ([Intel XE#4837]) +2 other tests skip
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-5/igt@xe_exec_sip_eudebug@wait-writesip-nodebug.html
* igt@xe_exec_system_allocator@many-large-execqueues-mmap:
- shard-adlp: NOTRUN -> [SKIP][131] ([Intel XE#4915] / [Intel XE#5560]) +32 other tests skip
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@xe_exec_system_allocator@many-large-execqueues-mmap.html
* igt@xe_exec_system_allocator@process-many-mmap-huge:
- shard-dg2-set2: NOTRUN -> [SKIP][132] ([Intel XE#4915]) +154 other tests skip
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@xe_exec_system_allocator@process-many-mmap-huge.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-free-huge:
- shard-lnl: NOTRUN -> [SKIP][133] ([Intel XE#4943]) +8 other tests skip
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-8/igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-free-huge.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-stride-mmap-free-huge:
- shard-bmg: NOTRUN -> [SKIP][134] ([Intel XE#4943]) +5 other tests skip
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@xe_exec_system_allocator@threads-shared-vm-many-stride-mmap-free-huge.html
* igt@xe_module_load@force-load:
- shard-lnl: NOTRUN -> [SKIP][135] ([Intel XE#378])
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-8/igt@xe_module_load@force-load.html
* igt@xe_oa@blocking:
- shard-adlp: NOTRUN -> [SKIP][136] ([Intel XE#3573])
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@xe_oa@blocking.html
* igt@xe_oa@invalid-create-userspace-config:
- shard-dg2-set2: NOTRUN -> [SKIP][137] ([Intel XE#3573]) +6 other tests skip
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@xe_oa@invalid-create-userspace-config.html
* igt@xe_pat@pat-index-xehpc:
- shard-adlp: NOTRUN -> [SKIP][138] ([Intel XE#2838] / [Intel XE#979])
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@xe_pat@pat-index-xehpc.html
- shard-bmg: NOTRUN -> [SKIP][139] ([Intel XE#1420])
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@xe_pat@pat-index-xehpc.html
- shard-lnl: NOTRUN -> [SKIP][140] ([Intel XE#1420] / [Intel XE#2838])
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-3/igt@xe_pat@pat-index-xehpc.html
* igt@xe_pm@d3cold-mmap-vram:
- shard-dg2-set2: NOTRUN -> [SKIP][141] ([Intel XE#2284] / [Intel XE#366])
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-436/igt@xe_pm@d3cold-mmap-vram.html
* igt@xe_pm@s3-d3hot-basic-exec:
- shard-adlp: [PASS][142] -> [DMESG-WARN][143] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#569])
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-adlp-3/igt@xe_pm@s3-d3hot-basic-exec.html
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@xe_pm@s3-d3hot-basic-exec.html
* igt@xe_pm@s3-mocs:
- shard-lnl: NOTRUN -> [SKIP][144] ([Intel XE#584]) +1 other test skip
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-8/igt@xe_pm@s3-mocs.html
* igt@xe_pm@s3-vm-bind-prefetch:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][145] ([Intel XE#569])
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@xe_pm@s3-vm-bind-prefetch.html
* igt@xe_pmu@gt-frequency:
- shard-dg2-set2: [PASS][146] -> [FAIL][147] ([Intel XE#4819]) +1 other test fail
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-466/igt@xe_pmu@gt-frequency.html
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-434/igt@xe_pmu@gt-frequency.html
* igt@xe_pxp@pxp-stale-bo-exec-post-termination-irq:
- shard-adlp: NOTRUN -> [SKIP][148] ([Intel XE#4733] / [Intel XE#5594]) +1 other test skip
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@xe_pxp@pxp-stale-bo-exec-post-termination-irq.html
- shard-bmg: NOTRUN -> [SKIP][149] ([Intel XE#4733]) +1 other test skip
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@xe_pxp@pxp-stale-bo-exec-post-termination-irq.html
* igt@xe_pxp@pxp-stale-queue-post-suspend:
- shard-dg2-set2: NOTRUN -> [SKIP][150] ([Intel XE#4733])
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-436/igt@xe_pxp@pxp-stale-queue-post-suspend.html
* igt@xe_query@multigpu-query-invalid-query:
- shard-lnl: NOTRUN -> [SKIP][151] ([Intel XE#944])
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-8/igt@xe_query@multigpu-query-invalid-query.html
* igt@xe_query@multigpu-query-uc-fw-version-huc:
- shard-dg2-set2: NOTRUN -> [SKIP][152] ([Intel XE#944]) +2 other tests skip
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-464/igt@xe_query@multigpu-query-uc-fw-version-huc.html
* igt@xe_render_copy@render-stress-4-copies:
- shard-dg2-set2: NOTRUN -> [SKIP][153] ([Intel XE#4814])
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@xe_render_copy@render-stress-4-copies.html
* igt@xe_sriov_auto_provisioning@selfconfig-reprovision-reduce-numvfs:
- shard-bmg: NOTRUN -> [SKIP][154] ([Intel XE#4130])
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-4/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-reduce-numvfs.html
- shard-lnl: NOTRUN -> [SKIP][155] ([Intel XE#4130])
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-5/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-reduce-numvfs.html
* igt@xe_sriov_scheduling@equal-throughput:
- shard-lnl: NOTRUN -> [SKIP][156] ([Intel XE#4351])
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-8/igt@xe_sriov_scheduling@equal-throughput.html
* igt@xe_vm@bind-array-many:
- shard-dg2-set2: [PASS][157] -> [SKIP][158] ([Intel XE#4208]) +2 other tests skip
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-466/igt@xe_vm@bind-array-many.html
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-434/igt@xe_vm@bind-array-many.html
#### Possible fixes ####
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
- shard-adlp: [DMESG-FAIL][159] ([Intel XE#4543]) -> [PASS][160] +2 other tests pass
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-adlp-2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs:
- shard-dg2-set2: [INCOMPLETE][161] ([Intel XE#2705] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522]) -> [PASS][162]
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
- shard-dg2-set2: [INCOMPLETE][163] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522]) -> [PASS][164] +1 other test pass
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-6:
- shard-dg2-set2: [INCOMPLETE][165] ([Intel XE#2705] / [Intel XE#4212] / [Intel XE#4522]) -> [PASS][166]
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-6.html
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-6.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-legacy:
- shard-bmg: [SKIP][167] ([Intel XE#2291]) -> [PASS][168] +5 other tests pass
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-4/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
* igt@kms_cursor_legacy@flip-vs-cursor-legacy:
- shard-bmg: [FAIL][169] ([Intel XE#4633]) -> [PASS][170]
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-7/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-8/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc:
- shard-bmg: [SKIP][171] ([Intel XE#1340]) -> [PASS][172]
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-6/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-5/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
* igt@kms_dp_aux_dev:
- shard-bmg: [SKIP][173] ([Intel XE#3009]) -> [PASS][174]
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-6/igt@kms_dp_aux_dev.html
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-4/igt@kms_dp_aux_dev.html
* igt@kms_dp_link_training@non-uhbr-sst:
- shard-bmg: [SKIP][175] ([Intel XE#4354]) -> [PASS][176]
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-6/igt@kms_dp_link_training@non-uhbr-sst.html
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-4/igt@kms_dp_link_training@non-uhbr-sst.html
* igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible:
- shard-bmg: [SKIP][177] ([Intel XE#2316]) -> [PASS][178] +7 other tests pass
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-6/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-5/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html
* igt@kms_flip@flip-vs-blocking-wf-vblank@c-hdmi-a1:
- shard-adlp: [DMESG-WARN][179] ([Intel XE#4543]) -> [PASS][180] +12 other tests pass
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-adlp-4/igt@kms_flip@flip-vs-blocking-wf-vblank@c-hdmi-a1.html
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-1/igt@kms_flip@flip-vs-blocking-wf-vblank@c-hdmi-a1.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-lnl: [FAIL][181] ([Intel XE#301] / [Intel XE#3149]) -> [PASS][182]
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-lnl: [FAIL][183] ([Intel XE#301]) -> [PASS][184] +3 other tests pass
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-bmg: [INCOMPLETE][185] ([Intel XE#2049] / [Intel XE#2597]) -> [PASS][186] +1 other test pass
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-2/igt@kms_flip@flip-vs-suspend-interruptible.html
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_flip@flip-vs-suspend@b-hdmi-a1:
- shard-adlp: [DMESG-WARN][187] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][188] +4 other tests pass
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-adlp-6/igt@kms_flip@flip-vs-suspend@b-hdmi-a1.html
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-2/igt@kms_flip@flip-vs-suspend@b-hdmi-a1.html
* igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-x-to-x:
- shard-adlp: [FAIL][189] ([Intel XE#1874]) -> [PASS][190] +2 other tests pass
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-adlp-3/igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-x-to-x.html
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-1/igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-x-to-x.html
* igt@kms_hdr@static-toggle:
- shard-dg2-set2: [INCOMPLETE][191] -> [PASS][192]
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-464/igt@kms_hdr@static-toggle.html
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-463/igt@kms_hdr@static-toggle.html
* igt@kms_hdr@static-toggle-suspend:
- shard-bmg: [SKIP][193] ([Intel XE#1503]) -> [PASS][194] +1 other test pass
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-6/igt@kms_hdr@static-toggle-suspend.html
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-2/igt@kms_hdr@static-toggle-suspend.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- shard-dg2-set2: [INCOMPLETE][195] ([Intel XE#5108]) -> [PASS][196]
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-433/igt@kms_pipe_crc_basic@suspend-read-crc.html
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-432/igt@kms_pipe_crc_basic@suspend-read-crc.html
* igt@xe_exec_basic@multigpu-once-basic-defer-mmap:
- shard-dg2-set2: [SKIP][197] ([Intel XE#1392]) -> [PASS][198] +6 other tests pass
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-432/igt@xe_exec_basic@multigpu-once-basic-defer-mmap.html
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-434/igt@xe_exec_basic@multigpu-once-basic-defer-mmap.html
#### Warnings ####
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0:
- shard-dg2-set2: [SKIP][199] ([Intel XE#1124]) -> [SKIP][200] ([Intel XE#4208])
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-466/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-434/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html
* igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs:
- shard-dg2-set2: [SKIP][201] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][202] ([Intel XE#4208])
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-466/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs.html
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-434/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs.html
* igt@kms_content_protection@legacy:
- shard-bmg: [FAIL][203] ([Intel XE#1178]) -> [SKIP][204] ([Intel XE#2341])
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-4/igt@kms_content_protection@legacy.html
[204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-6/igt@kms_content_protection@legacy.html
* igt@kms_content_protection@uevent:
- shard-bmg: [FAIL][205] ([Intel XE#1188]) -> [SKIP][206] ([Intel XE#2341])
[205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-2/igt@kms_content_protection@uevent.html
[206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-1/igt@kms_content_protection@uevent.html
* igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1:
- shard-adlp: [DMESG-WARN][207] ([Intel XE#4543]) -> [DMESG-FAIL][208] ([Intel XE#4543]) +1 other test dmesg-fail
[207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-adlp-8/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1.html
[208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-9/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1.html
* igt@kms_flip@flip-vs-rmfb-interruptible:
- shard-adlp: [DMESG-WARN][209] ([Intel XE#4543] / [Intel XE#5208]) -> [DMESG-WARN][210] ([Intel XE#5208])
[209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-adlp-4/igt@kms_flip@flip-vs-rmfb-interruptible.html
[210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-1/igt@kms_flip@flip-vs-rmfb-interruptible.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render:
- shard-bmg: [SKIP][211] ([Intel XE#2312]) -> [SKIP][212] ([Intel XE#2311]) +18 other tests skip
[211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render.html
[212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render:
- shard-bmg: [SKIP][213] ([Intel XE#5390]) -> [SKIP][214] ([Intel XE#2312]) +8 other tests skip
[213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render.html
[214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render:
- shard-bmg: [SKIP][215] ([Intel XE#2312]) -> [SKIP][216] ([Intel XE#5390]) +13 other tests skip
[215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html
[216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][217] ([Intel XE#2311]) -> [SKIP][218] ([Intel XE#2312]) +21 other tests skip
[217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-8/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
[218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw:
- shard-dg2-set2: [SKIP][219] ([Intel XE#653]) -> [SKIP][220] ([Intel XE#4208])
[219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-466/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
[220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-434/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-onoff:
- shard-bmg: [SKIP][221] ([Intel XE#2313]) -> [SKIP][222] ([Intel XE#2312]) +16 other tests skip
[221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-onoff.html
[222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-fullscreen:
- shard-bmg: [SKIP][223] ([Intel XE#2312]) -> [SKIP][224] ([Intel XE#2313]) +19 other tests skip
[223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-fullscreen.html
[224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-fullscreen.html
* igt@kms_hdr@brightness-with-hdr:
- shard-bmg: [SKIP][225] ([Intel XE#3544]) -> [SKIP][226] ([Intel XE#3374] / [Intel XE#3544])
[225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-1/igt@kms_hdr@brightness-with-hdr.html
[226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-8/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_plane@pixel-format-source-clamping@pipe-a-plane-0:
- shard-adlp: [DMESG-FAIL][227] ([Intel XE#2953] / [Intel XE#4173]) -> [FAIL][228] ([Intel XE#5195]) +1 other test fail
[227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-adlp-1/igt@kms_plane@pixel-format-source-clamping@pipe-a-plane-0.html
[228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-adlp-6/igt@kms_plane@pixel-format-source-clamping@pipe-a-plane-0.html
* igt@kms_plane_multiple@2x-tiling-yf:
- shard-bmg: [SKIP][229] ([Intel XE#4596]) -> [SKIP][230] ([Intel XE#5021])
[229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-yf.html
[230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-2/igt@kms_plane_multiple@2x-tiling-yf.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [SKIP][231] ([Intel XE#2426]) -> [FAIL][232] ([Intel XE#1729])
[231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-bmg-7/igt@kms_tiled_display@basic-test-pattern.html
[232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-bmg-5/igt@kms_tiled_display@basic-test-pattern.html
* igt@xe_exec_system_allocator@many-stride-mmap-new-huge:
- shard-dg2-set2: [SKIP][233] ([Intel XE#4915]) -> [SKIP][234] ([Intel XE#4208]) +2 other tests skip
[233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-466/igt@xe_exec_system_allocator@many-stride-mmap-new-huge.html
[234]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-434/igt@xe_exec_system_allocator@many-stride-mmap-new-huge.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-new-bo-map-nomemset:
- shard-lnl: [FAIL][235] ([Intel XE#4937] / [Intel XE#5018]) -> [FAIL][236] ([Intel XE#5018])
[235]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-lnl-7/igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-new-bo-map-nomemset.html
[236]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-lnl-4/igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-new-bo-map-nomemset.html
* igt@xe_pm@s4-basic:
- shard-dg2-set2: [ABORT][237] -> [SKIP][238] ([Intel XE#4208])
[237]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09/shard-dg2-466/igt@xe_pm@s4-basic.html
[238]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/shard-dg2-434/igt@xe_pm@s4-basic.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1122]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1122
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
[Intel XE#1137]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1137
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1188]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1188
[Intel XE#1340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1340
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397
[Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
[Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#1874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1874
[Intel XE#2029]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2029
[Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
[Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
[Intel XE#2351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2351
[Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
[Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2505]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2505
[Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
[Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
[Intel XE#2669]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2669
[Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2838]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2838
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
[Intel XE#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
[Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
[Intel XE#3009]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3009
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#3012]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3012
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
[Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310
[Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
[Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
[Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
[Intel XE#356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/356
[Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#3768]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3768
[Intel XE#378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/378
[Intel XE#3862]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3862
[Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
[Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
[Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
[Intel XE#4208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4208
[Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
[Intel XE#4294]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4294
[Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
[Intel XE#4351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4351
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4494]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4494
[Intel XE#4522]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4522
[Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
[Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
[Intel XE#4609]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4609
[Intel XE#4633]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4633
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#4814]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4814
[Intel XE#4819]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4819
[Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
[Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
[Intel XE#4937]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4937
[Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
[Intel XE#5018]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5018
[Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
[Intel XE#5108]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5108
[Intel XE#5195]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5195
[Intel XE#5208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5208
[Intel XE#5249]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5249
[Intel XE#5300]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5300
[Intel XE#5390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5390
[Intel XE#5560]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5560
[Intel XE#5561]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5561
[Intel XE#5565]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5565
[Intel XE#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
[Intel XE#5594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5594
[Intel XE#5624]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5624
[Intel XE#5626]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5626
[Intel XE#569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/569
[Intel XE#584]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/584
[Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/658
[Intel XE#734]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/734
[Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[Intel XE#827]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/827
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
[Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
[i915#2575]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2575
[i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804
Build changes
-------------
* Linux: xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09 -> xe-pw-149756v7
IGT_8476: 232d4de46aa5ec03aee240657c0b36110f8a6246 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-3480-51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09: 51feeecc1f4cd7066d2ba2cd35f5c1ff39af6a09
xe-pw-149756v7: 149756v7
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-149756v7/index.html
[-- Attachment #2: Type: text/html, Size: 86684 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent
2025-07-28 10:27 ` [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent Riana Tauro
@ 2025-07-30 14:03 ` Riana Tauro
2025-07-31 9:32 ` Maxime Ripard
2025-08-05 14:57 ` Rodrigo Vivi
1 sibling, 1 reply; 24+ messages in thread
From: Riana Tauro @ 2025-07-30 14:03 UTC (permalink / raw)
To: dri-devel, simona.vetter, David Airlie, Christian König,
André Almeida
Cc: anshuman.gupta, rodrigo.vivi, lucas.demarchi, aravind.iddamsetty,
raag.jadav, umesh.nerlige.ramappa, frank.scarbrough, sk.anirban,
maarten.lankhorst, mripard, intel-xe, tzimmermann
On 7/28/2025 3:57 PM, Riana Tauro wrote:
> Address the need for a recovery method (firmware flash on Firmware errors)
> introduced in the later patches of Xe KMD.
> Whenever XE KMD detects a firmware error, a firmware flash is required to
> recover the device to normal operation.
>
> The initial proposal to use 'firmware-flash' as a recovery method was
> not applicable to other drivers and could cause multiple recovery
> methods specific to vendors to be added.
> To address this a more generic 'vendor-specific' method is introduced,
> guiding users to refer to vendor specific documentation and system logs
> for detailed vendor specific recovery procedure.
>
> Add a recovery method 'WEDGED=vendor-specific' for such errors.
> Vendors must provide additional recovery documentation if this method
> is used.
>
> It is the responsibility of the consumer to refer to the correct vendor
> specific documentation and usecase before attempting a recovery.
>
> For example: If driver is XE KMD, the consumer must refer
> to the documentation of 'Device Wedging' under 'Documentation/gpu/xe/'.
>
> Recovery script contributed by Raag.
>
> v2: fix documentation (Raag)
> v3: add more details to commit message (Sima, Rodrigo, Raag)
> add an example script to the documentation (Raag)
> v4: use consistent naming (Raag)
> v5: fix commit message
>
> Cc: André Almeida <andrealmeid@igalia.com>
> Cc: Christian König <christian.koenig@amd.com>
> Cc: David Airlie <airlied@gmail.com>
> Cc: Simona Vetter <simona.vetter@ffwll.ch>
> Co-developed-by: Raag Jadav <raag.jadav@intel.com>
> Signed-off-by: Raag Jadav <raag.jadav@intel.com>
> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This patch needs an ack from drm to be merged.
The rest of the series have RB's. Can someone please provide an ack ?
Cc: drm-misc maintainers
Thanks
Riana
> ---
> Documentation/gpu/drm-uapi.rst | 42 ++++++++++++++++++++++++++++------
> drivers/gpu/drm/drm_drv.c | 2 ++
> include/drm/drm_device.h | 4 ++++
> 3 files changed, 41 insertions(+), 7 deletions(-)
>
> diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
> index 843facf01b2d..5691b29acde3 100644
> --- a/Documentation/gpu/drm-uapi.rst
> +++ b/Documentation/gpu/drm-uapi.rst
> @@ -418,13 +418,15 @@ needed.
> Recovery
> --------
>
> -Current implementation defines three recovery methods, out of which, drivers
> +Current implementation defines four recovery methods, out of which, drivers
> can use any one, multiple or none. Method(s) of choice will be sent in the
> uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
> -more side-effects. If driver is unsure about recovery or method is unknown
> -(like soft/hard system reboot, firmware flashing, physical device replacement
> -or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
> -will be sent instead.
> +more side-effects. If recovery method is specific to vendor
> +``WEDGED=vendor-specific`` will be sent and userspace should refer to vendor
> +specific documentation for the recovery procedure. As an example if the driver
> +is 'Xe' then the documentation for 'Device Wedging' of Xe driver needs to be
> +referred for the recovery procedure. If driver is unsure about recovery or
> +method is unknown, ``WEDGED=unknown`` will be sent instead.
>
> Userspace consumers can parse this event and attempt recovery as per the
> following expectations.
> @@ -435,6 +437,7 @@ following expectations.
> none optional telemetry collection
> rebind unbind + bind driver
> bus-reset unbind + bus reset/re-enumeration + bind
> + vendor-specific vendor specific recovery method
> unknown consumer policy
> =============== ========================================
>
> @@ -472,8 +475,12 @@ erroring out, all device memory should be unmapped and file descriptors should
> be closed to prevent leaks or undefined behaviour. The idea here is to clear the
> device of all user context beforehand and set the stage for a clean recovery.
>
> -Example
> --------
> +For ``WEDGED=vendor-specific`` recovery method, it is the responsibility of the
> +consumer to check the driver documentation and the usecase before attempting
> +a recovery.
> +
> +Example - rebind
> +----------------
>
> Udev rule::
>
> @@ -491,6 +498,27 @@ Recovery script::
> echo -n $DEVICE > $DRIVER/unbind
> echo -n $DEVICE > $DRIVER/bind
>
> +Example - vendor-specific
> +-------------------------
> +
> +Udev rule::
> +
> + SUBSYSTEM=="drm", ENV{WEDGED}=="vendor-specific", DEVPATH=="*/drm/card[0-9]",
> + RUN+="/path/to/vendor_specific_recovery.sh $env{DEVPATH}"
> +
> +Recovery script::
> +
> + #!/bin/sh
> +
> + DEVPATH=$(readlink -f /sys/$1/device)
> + DRIVERPATH=$(readlink -f $DEVPATH/driver)
> + DRIVER=$(basename $DRIVERPATH)
> +
> + if [ "$DRIVER" = "xe" ]; then
> + # Refer XE documentation and check usecase and recovery procedure
> + fi
> +
> +
> Customization
> -------------
>
> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> index cdd591b11488..0ac723a46a91 100644
> --- a/drivers/gpu/drm/drm_drv.c
> +++ b/drivers/gpu/drm/drm_drv.c
> @@ -532,6 +532,8 @@ static const char *drm_get_wedge_recovery(unsigned int opt)
> return "rebind";
> case DRM_WEDGE_RECOVERY_BUS_RESET:
> return "bus-reset";
> + case DRM_WEDGE_RECOVERY_VENDOR:
> + return "vendor-specific";
> default:
> return NULL;
> }
> diff --git a/include/drm/drm_device.h b/include/drm/drm_device.h
> index a33aedd5e9ec..59fd3f4d5995 100644
> --- a/include/drm/drm_device.h
> +++ b/include/drm/drm_device.h
> @@ -26,10 +26,14 @@ struct pci_controller;
> * Recovery methods for wedged device in order of less to more side-effects.
> * To be used with drm_dev_wedged_event() as recovery @method. Callers can
> * use any one, multiple (or'd) or none depending on their needs.
> + *
> + * Refer to "Device Wedging" chapter in Documentation/gpu/drm-uapi.rst for more
> + * details.
> */
> #define DRM_WEDGE_RECOVERY_NONE BIT(0) /* optional telemetry collection */
> #define DRM_WEDGE_RECOVERY_REBIND BIT(1) /* unbind + bind driver */
> #define DRM_WEDGE_RECOVERY_BUS_RESET BIT(2) /* unbind + reset bus device + bind */
> +#define DRM_WEDGE_RECOVERY_VENDOR BIT(3) /* vendor specific recovery method */
>
> /**
> * struct drm_wedge_task_info - information about the guilty task of a wedge dev
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent
2025-07-30 14:03 ` Riana Tauro
@ 2025-07-31 9:32 ` Maxime Ripard
2025-07-31 11:13 ` Riana Tauro
0 siblings, 1 reply; 24+ messages in thread
From: Maxime Ripard @ 2025-07-31 9:32 UTC (permalink / raw)
To: Riana Tauro
Cc: dri-devel, simona.vetter, David Airlie, Christian König,
André Almeida, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, maarten.lankhorst, intel-xe,
tzimmermann
[-- Attachment #1: Type: text/plain, Size: 6208 bytes --]
Hi,
On Wed, Jul 30, 2025 at 07:33:01PM +0530, Riana Tauro wrote:
> On 7/28/2025 3:57 PM, Riana Tauro wrote:
> > Address the need for a recovery method (firmware flash on Firmware errors)
> > introduced in the later patches of Xe KMD.
> > Whenever XE KMD detects a firmware error, a firmware flash is required to
> > recover the device to normal operation.
> >
> > The initial proposal to use 'firmware-flash' as a recovery method was
> > not applicable to other drivers and could cause multiple recovery
> > methods specific to vendors to be added.
> > To address this a more generic 'vendor-specific' method is introduced,
> > guiding users to refer to vendor specific documentation and system logs
> > for detailed vendor specific recovery procedure.
> >
> > Add a recovery method 'WEDGED=vendor-specific' for such errors.
> > Vendors must provide additional recovery documentation if this method
> > is used.
> >
> > It is the responsibility of the consumer to refer to the correct vendor
> > specific documentation and usecase before attempting a recovery.
> >
> > For example: If driver is XE KMD, the consumer must refer
> > to the documentation of 'Device Wedging' under 'Documentation/gpu/xe/'.
> >
> > Recovery script contributed by Raag.
> >
> > v2: fix documentation (Raag)
> > v3: add more details to commit message (Sima, Rodrigo, Raag)
> > add an example script to the documentation (Raag)
> > v4: use consistent naming (Raag)
> > v5: fix commit message
> >
> > Cc: André Almeida <andrealmeid@igalia.com>
> > Cc: Christian König <christian.koenig@amd.com>
> > Cc: David Airlie <airlied@gmail.com>
> > Cc: Simona Vetter <simona.vetter@ffwll.ch>
> > Co-developed-by: Raag Jadav <raag.jadav@intel.com>
> > Signed-off-by: Raag Jadav <raag.jadav@intel.com>
> > Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>
> This patch needs an ack from drm to be merged.
> The rest of the series have RB's. Can someone please provide an ack ?
>
> Cc: drm-misc maintainers
>
> Thanks
> Riana
>
> > ---
> > Documentation/gpu/drm-uapi.rst | 42 ++++++++++++++++++++++++++++------
> > drivers/gpu/drm/drm_drv.c | 2 ++
> > include/drm/drm_device.h | 4 ++++
> > 3 files changed, 41 insertions(+), 7 deletions(-)
> >
> > diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
> > index 843facf01b2d..5691b29acde3 100644
> > --- a/Documentation/gpu/drm-uapi.rst
> > +++ b/Documentation/gpu/drm-uapi.rst
> > @@ -418,13 +418,15 @@ needed.
> > Recovery
> > --------
> > -Current implementation defines three recovery methods, out of which, drivers
> > +Current implementation defines four recovery methods, out of which, drivers
> > can use any one, multiple or none. Method(s) of choice will be sent in the
> > uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
> > -more side-effects. If driver is unsure about recovery or method is unknown
> > -(like soft/hard system reboot, firmware flashing, physical device replacement
> > -or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
> > -will be sent instead.
> > +more side-effects. If recovery method is specific to vendor
> > +``WEDGED=vendor-specific`` will be sent and userspace should refer to vendor
> > +specific documentation for the recovery procedure. As an example if the driver
> > +is 'Xe' then the documentation for 'Device Wedging' of Xe driver needs to be
> > +referred for the recovery procedure. If driver is unsure about recovery or
> > +method is unknown, ``WEDGED=unknown`` will be sent instead.
> > Userspace consumers can parse this event and attempt recovery as per the
> > following expectations.
> > @@ -435,6 +437,7 @@ following expectations.
> > none optional telemetry collection
> > rebind unbind + bind driver
> > bus-reset unbind + bus reset/re-enumeration + bind
> > + vendor-specific vendor specific recovery method
> > unknown consumer policy
> > =============== ========================================
> > @@ -472,8 +475,12 @@ erroring out, all device memory should be unmapped and file descriptors should
> > be closed to prevent leaks or undefined behaviour. The idea here is to clear the
> > device of all user context beforehand and set the stage for a clean recovery.
> > -Example
> > --------
> > +For ``WEDGED=vendor-specific`` recovery method, it is the responsibility of the
> > +consumer to check the driver documentation and the usecase before attempting
> > +a recovery.
> > +
> > +Example - rebind
> > +----------------
> > Udev rule::
> > @@ -491,6 +498,27 @@ Recovery script::
> > echo -n $DEVICE > $DRIVER/unbind
> > echo -n $DEVICE > $DRIVER/bind
> > +Example - vendor-specific
> > +-------------------------
> > +
> > +Udev rule::
> > +
> > + SUBSYSTEM=="drm", ENV{WEDGED}=="vendor-specific", DEVPATH=="*/drm/card[0-9]",
> > + RUN+="/path/to/vendor_specific_recovery.sh $env{DEVPATH}"
> > +
> > +Recovery script::
> > +
> > + #!/bin/sh
> > +
> > + DEVPATH=$(readlink -f /sys/$1/device)
> > + DRIVERPATH=$(readlink -f $DEVPATH/driver)
> > + DRIVER=$(basename $DRIVERPATH)
> > +
> > + if [ "$DRIVER" = "xe" ]; then
> > + # Refer XE documentation and check usecase and recovery procedure
> > + fi
> > +
> > +
So I guess I'm not opposed to it on principle, but the documentation
really needs some work.
You should at least list the valid vendor specific options, and what
each mean exactly. Ideally, it should be a link to the datasheet/manual
detailing the recovery procedure, but if that's under NDA, at least a
reference to the document and section you need to look at to implement
it properly.
Or if that's still not doable, anything that tells you what to do
instead of "run a shell script we don't provide".
Also, we just discussed it with Sima on IRC, and she mentioned that we
probably want to have a vendor specific prefix for each vendor-specific
method.
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 273 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent
2025-07-31 9:32 ` Maxime Ripard
@ 2025-07-31 11:13 ` Riana Tauro
2025-07-31 13:01 ` Maxime Ripard
0 siblings, 1 reply; 24+ messages in thread
From: Riana Tauro @ 2025-07-31 11:13 UTC (permalink / raw)
To: Maxime Ripard
Cc: dri-devel, simona.vetter, David Airlie, Christian König,
André Almeida, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, maarten.lankhorst, intel-xe,
tzimmermann
Hi Maxim
On 7/31/2025 3:02 PM, Maxime Ripard wrote:
> Hi,
>
> On Wed, Jul 30, 2025 at 07:33:01PM +0530, Riana Tauro wrote:
>> On 7/28/2025 3:57 PM, Riana Tauro wrote:
>>> Address the need for a recovery method (firmware flash on Firmware errors)
>>> introduced in the later patches of Xe KMD.
>>> Whenever XE KMD detects a firmware error, a firmware flash is required to
>>> recover the device to normal operation.
>>>
>>> The initial proposal to use 'firmware-flash' as a recovery method was
>>> not applicable to other drivers and could cause multiple recovery
>>> methods specific to vendors to be added.
>>> To address this a more generic 'vendor-specific' method is introduced,
>>> guiding users to refer to vendor specific documentation and system logs
>>> for detailed vendor specific recovery procedure.
>>>
>>> Add a recovery method 'WEDGED=vendor-specific' for such errors.
>>> Vendors must provide additional recovery documentation if this method
>>> is used.
>>>
>>> It is the responsibility of the consumer to refer to the correct vendor
>>> specific documentation and usecase before attempting a recovery.
>>>
>>> For example: If driver is XE KMD, the consumer must refer
>>> to the documentation of 'Device Wedging' under 'Documentation/gpu/xe/'.
>>>
>>> Recovery script contributed by Raag.
>>>
>>> v2: fix documentation (Raag)
>>> v3: add more details to commit message (Sima, Rodrigo, Raag)
>>> add an example script to the documentation (Raag)
>>> v4: use consistent naming (Raag)
>>> v5: fix commit message
>>>
>>> Cc: André Almeida <andrealmeid@igalia.com>
>>> Cc: Christian König <christian.koenig@amd.com>
>>> Cc: David Airlie <airlied@gmail.com>
>>> Cc: Simona Vetter <simona.vetter@ffwll.ch>
>>> Co-developed-by: Raag Jadav <raag.jadav@intel.com>
>>> Signed-off-by: Raag Jadav <raag.jadav@intel.com>
>>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>>> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>
>> This patch needs an ack from drm to be merged.
>> The rest of the series have RB's. Can someone please provide an ack ?
>>
>> Cc: drm-misc maintainers
>>
>> Thanks
>> Riana
>>
>>> ---
>>> Documentation/gpu/drm-uapi.rst | 42 ++++++++++++++++++++++++++++------
>>> drivers/gpu/drm/drm_drv.c | 2 ++
>>> include/drm/drm_device.h | 4 ++++
>>> 3 files changed, 41 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
>>> index 843facf01b2d..5691b29acde3 100644
>>> --- a/Documentation/gpu/drm-uapi.rst
>>> +++ b/Documentation/gpu/drm-uapi.rst
>>> @@ -418,13 +418,15 @@ needed.
>>> Recovery
>>> --------
>>> -Current implementation defines three recovery methods, out of which, drivers
>>> +Current implementation defines four recovery methods, out of which, drivers
>>> can use any one, multiple or none. Method(s) of choice will be sent in the
>>> uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
>>> -more side-effects. If driver is unsure about recovery or method is unknown
>>> -(like soft/hard system reboot, firmware flashing, physical device replacement
>>> -or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
>>> -will be sent instead.
>>> +more side-effects. If recovery method is specific to vendor
>>> +``WEDGED=vendor-specific`` will be sent and userspace should refer to vendor
>>> +specific documentation for the recovery procedure. As an example if the driver
>>> +is 'Xe' then the documentation for 'Device Wedging' of Xe driver needs to be
>>> +referred for the recovery procedure. If driver is unsure about recovery or
>>> +method is unknown, ``WEDGED=unknown`` will be sent instead.
>>> Userspace consumers can parse this event and attempt recovery as per the
>>> following expectations.
>>> @@ -435,6 +437,7 @@ following expectations.
>>> none optional telemetry collection
>>> rebind unbind + bind driver
>>> bus-reset unbind + bus reset/re-enumeration + bind
>>> + vendor-specific vendor specific recovery method
>>> unknown consumer policy
>>> =============== ========================================
>>> @@ -472,8 +475,12 @@ erroring out, all device memory should be unmapped and file descriptors should
>>> be closed to prevent leaks or undefined behaviour. The idea here is to clear the
>>> device of all user context beforehand and set the stage for a clean recovery.
>>> -Example
>>> --------
>>> +For ``WEDGED=vendor-specific`` recovery method, it is the responsibility of the
>>> +consumer to check the driver documentation and the usecase before attempting
>>> +a recovery.
>>> +
>>> +Example - rebind
>>> +----------------
>>> Udev rule::
>>> @@ -491,6 +498,27 @@ Recovery script::
>>> echo -n $DEVICE > $DRIVER/unbind
>>> echo -n $DEVICE > $DRIVER/bind
>>> +Example - vendor-specific
>>> +-------------------------
>>> +
>>> +Udev rule::
>>> +
>>> + SUBSYSTEM=="drm", ENV{WEDGED}=="vendor-specific", DEVPATH=="*/drm/card[0-9]",
>>> + RUN+="/path/to/vendor_specific_recovery.sh $env{DEVPATH}"
>>> +
>>> +Recovery script::
>>> +
>>> + #!/bin/sh
>>> +
>>> + DEVPATH=$(readlink -f /sys/$1/device)
>>> + DRIVERPATH=$(readlink -f $DEVPATH/driver)
>>> + DRIVER=$(basename $DRIVERPATH)
>>> +
>>> + if [ "$DRIVER" = "xe" ]; then
>>> + # Refer XE documentation and check usecase and recovery procedure
>>> + fi
>>> +
>>> +
>
> So I guess I'm not opposed to it on principle, but the documentation
> really needs some work.
>
> You should at least list the valid vendor specific options, and what
> each mean exactly. Ideally, it should be a link to the datasheet/manual
> detailing the recovery procedure,
This is added above
"If recovery method is specific to vendor ``WEDGED=vendor-specific``
will be sent and userspace should refer to vendor specific documentation
for the recovery procedure. As an example if the driver is 'Xe' then the
documentation for 'Device Wedging' of Xe driver needs to be referred for
the recovery procedure."
The documentation of Xe is in Patch 6
https://lore.kernel.org/intel-xe/20250728102809.502324-7-riana.tauro@intel.com/
I'll add the link instead of just the chapter name
> but if that's under NDA, at least a
> reference to the document and section you need to look at to implement
> it properly.
>
> Or if that's still not doable, anything that tells you what to do
> instead of "run a shell script we don't provide".
>
> Also, we just discussed it with Sima on IRC, and she mentioned that we
> probably want to have a vendor specific prefix for each vendor-specific
> method.
This was discussed as part of Rev4
https://lore.kernel.org/intel-xe/aG-U9JTXDah_tu1U@black.fi.intel.com/
DEVPATH from uevent and driver should be able to identify the driver.
Shouldn't that be enough?
The initial method that was proposed was 'firmware-flash'. Since there
were concerns about every vendor adding their own methods increasing the
number of macros for vendor specific methods. A more generic method was
proposed.
Discussion:
https://lore.kernel.org/intel-xe/a820d534-42ef-4391-ab81-36316af4411b@igalia.com/
Thanks
Riana
>
> Maxime
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent
2025-07-31 11:13 ` Riana Tauro
@ 2025-07-31 13:01 ` Maxime Ripard
2025-07-31 13:48 ` Riana Tauro
2025-08-05 14:36 ` Rodrigo Vivi
0 siblings, 2 replies; 24+ messages in thread
From: Maxime Ripard @ 2025-07-31 13:01 UTC (permalink / raw)
To: Riana Tauro
Cc: dri-devel, simona.vetter, David Airlie, Christian König,
André Almeida, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, maarten.lankhorst, intel-xe,
tzimmermann
[-- Attachment #1: Type: text/plain, Size: 8138 bytes --]
On Thu, Jul 31, 2025 at 04:43:46PM +0530, Riana Tauro wrote:
> Hi Maxim
>
> On 7/31/2025 3:02 PM, Maxime Ripard wrote:
> > Hi,
> >
> > On Wed, Jul 30, 2025 at 07:33:01PM +0530, Riana Tauro wrote:
> > > On 7/28/2025 3:57 PM, Riana Tauro wrote:
> > > > Address the need for a recovery method (firmware flash on Firmware errors)
> > > > introduced in the later patches of Xe KMD.
> > > > Whenever XE KMD detects a firmware error, a firmware flash is required to
> > > > recover the device to normal operation.
> > > >
> > > > The initial proposal to use 'firmware-flash' as a recovery method was
> > > > not applicable to other drivers and could cause multiple recovery
> > > > methods specific to vendors to be added.
> > > > To address this a more generic 'vendor-specific' method is introduced,
> > > > guiding users to refer to vendor specific documentation and system logs
> > > > for detailed vendor specific recovery procedure.
> > > >
> > > > Add a recovery method 'WEDGED=vendor-specific' for such errors.
> > > > Vendors must provide additional recovery documentation if this method
> > > > is used.
> > > >
> > > > It is the responsibility of the consumer to refer to the correct vendor
> > > > specific documentation and usecase before attempting a recovery.
> > > >
> > > > For example: If driver is XE KMD, the consumer must refer
> > > > to the documentation of 'Device Wedging' under 'Documentation/gpu/xe/'.
> > > >
> > > > Recovery script contributed by Raag.
> > > >
> > > > v2: fix documentation (Raag)
> > > > v3: add more details to commit message (Sima, Rodrigo, Raag)
> > > > add an example script to the documentation (Raag)
> > > > v4: use consistent naming (Raag)
> > > > v5: fix commit message
> > > >
> > > > Cc: André Almeida <andrealmeid@igalia.com>
> > > > Cc: Christian König <christian.koenig@amd.com>
> > > > Cc: David Airlie <airlied@gmail.com>
> > > > Cc: Simona Vetter <simona.vetter@ffwll.ch>
> > > > Co-developed-by: Raag Jadav <raag.jadav@intel.com>
> > > > Signed-off-by: Raag Jadav <raag.jadav@intel.com>
> > > > Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> > > > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > >
> > > This patch needs an ack from drm to be merged.
> > > The rest of the series have RB's. Can someone please provide an ack ?
> > >
> > > Cc: drm-misc maintainers
> > >
> > > Thanks
> > > Riana
> > >
> > > > ---
> > > > Documentation/gpu/drm-uapi.rst | 42 ++++++++++++++++++++++++++++------
> > > > drivers/gpu/drm/drm_drv.c | 2 ++
> > > > include/drm/drm_device.h | 4 ++++
> > > > 3 files changed, 41 insertions(+), 7 deletions(-)
> > > >
> > > > diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
> > > > index 843facf01b2d..5691b29acde3 100644
> > > > --- a/Documentation/gpu/drm-uapi.rst
> > > > +++ b/Documentation/gpu/drm-uapi.rst
> > > > @@ -418,13 +418,15 @@ needed.
> > > > Recovery
> > > > --------
> > > > -Current implementation defines three recovery methods, out of which, drivers
> > > > +Current implementation defines four recovery methods, out of which, drivers
> > > > can use any one, multiple or none. Method(s) of choice will be sent in the
> > > > uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
> > > > -more side-effects. If driver is unsure about recovery or method is unknown
> > > > -(like soft/hard system reboot, firmware flashing, physical device replacement
> > > > -or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
> > > > -will be sent instead.
> > > > +more side-effects. If recovery method is specific to vendor
> > > > +``WEDGED=vendor-specific`` will be sent and userspace should refer to vendor
> > > > +specific documentation for the recovery procedure. As an example if the driver
> > > > +is 'Xe' then the documentation for 'Device Wedging' of Xe driver needs to be
> > > > +referred for the recovery procedure. If driver is unsure about recovery or
> > > > +method is unknown, ``WEDGED=unknown`` will be sent instead.
> > > > Userspace consumers can parse this event and attempt recovery as per the
> > > > following expectations.
> > > > @@ -435,6 +437,7 @@ following expectations.
> > > > none optional telemetry collection
> > > > rebind unbind + bind driver
> > > > bus-reset unbind + bus reset/re-enumeration + bind
> > > > + vendor-specific vendor specific recovery method
> > > > unknown consumer policy
> > > > =============== ========================================
> > > > @@ -472,8 +475,12 @@ erroring out, all device memory should be unmapped and file descriptors should
> > > > be closed to prevent leaks or undefined behaviour. The idea here is to clear the
> > > > device of all user context beforehand and set the stage for a clean recovery.
> > > > -Example
> > > > --------
> > > > +For ``WEDGED=vendor-specific`` recovery method, it is the responsibility of the
> > > > +consumer to check the driver documentation and the usecase before attempting
> > > > +a recovery.
> > > > +
> > > > +Example - rebind
> > > > +----------------
> > > > Udev rule::
> > > > @@ -491,6 +498,27 @@ Recovery script::
> > > > echo -n $DEVICE > $DRIVER/unbind
> > > > echo -n $DEVICE > $DRIVER/bind
> > > > +Example - vendor-specific
> > > > +-------------------------
> > > > +
> > > > +Udev rule::
> > > > +
> > > > + SUBSYSTEM=="drm", ENV{WEDGED}=="vendor-specific", DEVPATH=="*/drm/card[0-9]",
> > > > + RUN+="/path/to/vendor_specific_recovery.sh $env{DEVPATH}"
> > > > +
> > > > +Recovery script::
> > > > +
> > > > + #!/bin/sh
> > > > +
> > > > + DEVPATH=$(readlink -f /sys/$1/device)
> > > > + DRIVERPATH=$(readlink -f $DEVPATH/driver)
> > > > + DRIVER=$(basename $DRIVERPATH)
> > > > +
> > > > + if [ "$DRIVER" = "xe" ]; then
> > > > + # Refer XE documentation and check usecase and recovery procedure
> > > > + fi
> > > > +
> > > > +
> >
> > So I guess I'm not opposed to it on principle, but the documentation
> > really needs some work.
> >
> > You should at least list the valid vendor specific options, and what
> > each mean exactly. Ideally, it should be a link to the datasheet/manual
> > detailing the recovery procedure,
>
> This is added above
>
> "If recovery method is specific to vendor ``WEDGED=vendor-specific`` will be
> sent and userspace should refer to vendor specific documentation for the
> recovery procedure. As an example if the driver is 'Xe' then the
> documentation for 'Device Wedging' of Xe driver needs to be referred for the
> recovery procedure."
>
> The documentation of Xe is in Patch 6
>
> https://lore.kernel.org/intel-xe/20250728102809.502324-7-riana.tauro@intel.com/
I'm sorry, I still don't get how, as a user, I can reimplement what that
tool is supposed to be doing. Or do you anticipate that there's only
ever be a single way to recover a Xe device, which is to reflash the
firmware?
What if in ~5y, Intel comes up with a new recovery method for the newer
models?
> I'll add the link instead of just the chapter name
> > but if that's under NDA, at least a
> > reference to the document and section you need to look at to implement
> > it properly.
> >
> > Or if that's still not doable, anything that tells you what to do
> > instead of "run a shell script we don't provide".
> >
> > Also, we just discussed it with Sima on IRC, and she mentioned that we
> > probably want to have a vendor specific prefix for each vendor-specific
> > method.
>
> This was discussed as part of Rev4
>
> https://lore.kernel.org/intel-xe/aG-U9JTXDah_tu1U@black.fi.intel.com/
>
> DEVPATH from uevent and driver should be able to identify the driver.
> Shouldn't that be enough?
See above. What happens if we start to see systems with two Xe GPUs, one
with a new recovery method and one with an old recovery method?
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 273 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent
2025-07-31 13:01 ` Maxime Ripard
@ 2025-07-31 13:48 ` Riana Tauro
2025-08-05 14:36 ` Rodrigo Vivi
1 sibling, 0 replies; 24+ messages in thread
From: Riana Tauro @ 2025-07-31 13:48 UTC (permalink / raw)
To: Maxime Ripard
Cc: dri-devel, simona.vetter, David Airlie, Christian König,
André Almeida, anshuman.gupta, rodrigo.vivi, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, maarten.lankhorst, intel-xe,
tzimmermann
On 7/31/2025 6:31 PM, Maxime Ripard wrote:
> On Thu, Jul 31, 2025 at 04:43:46PM +0530, Riana Tauro wrote:
>> Hi Maxim
>>
>> On 7/31/2025 3:02 PM, Maxime Ripard wrote:
>>> Hi,
>>>
>>> On Wed, Jul 30, 2025 at 07:33:01PM +0530, Riana Tauro wrote:
>>>> On 7/28/2025 3:57 PM, Riana Tauro wrote:
>>>>> Address the need for a recovery method (firmware flash on Firmware errors)
>>>>> introduced in the later patches of Xe KMD.
>>>>> Whenever XE KMD detects a firmware error, a firmware flash is required to
>>>>> recover the device to normal operation.
>>>>>
>>>>> The initial proposal to use 'firmware-flash' as a recovery method was
>>>>> not applicable to other drivers and could cause multiple recovery
>>>>> methods specific to vendors to be added.
>>>>> To address this a more generic 'vendor-specific' method is introduced,
>>>>> guiding users to refer to vendor specific documentation and system logs
>>>>> for detailed vendor specific recovery procedure.
>>>>>
>>>>> Add a recovery method 'WEDGED=vendor-specific' for such errors.
>>>>> Vendors must provide additional recovery documentation if this method
>>>>> is used.
>>>>>
>>>>> It is the responsibility of the consumer to refer to the correct vendor
>>>>> specific documentation and usecase before attempting a recovery.
>>>>>
>>>>> For example: If driver is XE KMD, the consumer must refer
>>>>> to the documentation of 'Device Wedging' under 'Documentation/gpu/xe/'.
>>>>>
>>>>> Recovery script contributed by Raag.
>>>>>
>>>>> v2: fix documentation (Raag)
>>>>> v3: add more details to commit message (Sima, Rodrigo, Raag)
>>>>> add an example script to the documentation (Raag)
>>>>> v4: use consistent naming (Raag)
>>>>> v5: fix commit message
>>>>>
>>>>> Cc: André Almeida <andrealmeid@igalia.com>
>>>>> Cc: Christian König <christian.koenig@amd.com>
>>>>> Cc: David Airlie <airlied@gmail.com>
>>>>> Cc: Simona Vetter <simona.vetter@ffwll.ch>
>>>>> Co-developed-by: Raag Jadav <raag.jadav@intel.com>
>>>>> Signed-off-by: Raag Jadav <raag.jadav@intel.com>
>>>>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>>>>> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>>>
>>>> This patch needs an ack from drm to be merged.
>>>> The rest of the series have RB's. Can someone please provide an ack ?
>>>>
>>>> Cc: drm-misc maintainers
>>>>
>>>> Thanks
>>>> Riana
>>>>
>>>>> ---
>>>>> Documentation/gpu/drm-uapi.rst | 42 ++++++++++++++++++++++++++++------
>>>>> drivers/gpu/drm/drm_drv.c | 2 ++
>>>>> include/drm/drm_device.h | 4 ++++
>>>>> 3 files changed, 41 insertions(+), 7 deletions(-)
>>>>>
>>>>> diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
>>>>> index 843facf01b2d..5691b29acde3 100644
>>>>> --- a/Documentation/gpu/drm-uapi.rst
>>>>> +++ b/Documentation/gpu/drm-uapi.rst
>>>>> @@ -418,13 +418,15 @@ needed.
>>>>> Recovery
>>>>> --------
>>>>> -Current implementation defines three recovery methods, out of which, drivers
>>>>> +Current implementation defines four recovery methods, out of which, drivers
>>>>> can use any one, multiple or none. Method(s) of choice will be sent in the
>>>>> uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
>>>>> -more side-effects. If driver is unsure about recovery or method is unknown
>>>>> -(like soft/hard system reboot, firmware flashing, physical device replacement
>>>>> -or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
>>>>> -will be sent instead.
>>>>> +more side-effects. If recovery method is specific to vendor
>>>>> +``WEDGED=vendor-specific`` will be sent and userspace should refer to vendor
>>>>> +specific documentation for the recovery procedure. As an example if the driver
>>>>> +is 'Xe' then the documentation for 'Device Wedging' of Xe driver needs to be
>>>>> +referred for the recovery procedure. If driver is unsure about recovery or
>>>>> +method is unknown, ``WEDGED=unknown`` will be sent instead.
>>>>> Userspace consumers can parse this event and attempt recovery as per the
>>>>> following expectations.
>>>>> @@ -435,6 +437,7 @@ following expectations.
>>>>> none optional telemetry collection
>>>>> rebind unbind + bind driver
>>>>> bus-reset unbind + bus reset/re-enumeration + bind
>>>>> + vendor-specific vendor specific recovery method
>>>>> unknown consumer policy
>>>>> =============== ========================================
>>>>> @@ -472,8 +475,12 @@ erroring out, all device memory should be unmapped and file descriptors should
>>>>> be closed to prevent leaks or undefined behaviour. The idea here is to clear the
>>>>> device of all user context beforehand and set the stage for a clean recovery.
>>>>> -Example
>>>>> --------
>>>>> +For ``WEDGED=vendor-specific`` recovery method, it is the responsibility of the
>>>>> +consumer to check the driver documentation and the usecase before attempting
>>>>> +a recovery.
>>>>> +
>>>>> +Example - rebind
>>>>> +----------------
>>>>> Udev rule::
>>>>> @@ -491,6 +498,27 @@ Recovery script::
>>>>> echo -n $DEVICE > $DRIVER/unbind
>>>>> echo -n $DEVICE > $DRIVER/bind
>>>>> +Example - vendor-specific
>>>>> +-------------------------
>>>>> +
>>>>> +Udev rule::
>>>>> +
>>>>> + SUBSYSTEM=="drm", ENV{WEDGED}=="vendor-specific", DEVPATH=="*/drm/card[0-9]",
>>>>> + RUN+="/path/to/vendor_specific_recovery.sh $env{DEVPATH}"
>>>>> +
>>>>> +Recovery script::
>>>>> +
>>>>> + #!/bin/sh
>>>>> +
>>>>> + DEVPATH=$(readlink -f /sys/$1/device)
>>>>> + DRIVERPATH=$(readlink -f $DEVPATH/driver)
>>>>> + DRIVER=$(basename $DRIVERPATH)
>>>>> +
>>>>> + if [ "$DRIVER" = "xe" ]; then
>>>>> + # Refer XE documentation and check usecase and recovery procedure
>>>>> + fi
>>>>> +
>>>>> +
>>>
>>> So I guess I'm not opposed to it on principle, but the documentation
>>> really needs some work.
>>>
>>> You should at least list the valid vendor specific options, and what
>>> each mean exactly. Ideally, it should be a link to the datasheet/manual
>>> detailing the recovery procedure,
>>
>> This is added above
>>
>> "If recovery method is specific to vendor ``WEDGED=vendor-specific`` will be
>> sent and userspace should refer to vendor specific documentation for the
>> recovery procedure. As an example if the driver is 'Xe' then the
>> documentation for 'Device Wedging' of Xe driver needs to be referred for the
>> recovery procedure."
>>
>> The documentation of Xe is in Patch 6
>>
>> https://lore.kernel.org/intel-xe/20250728102809.502324-7-riana.tauro@intel.com/
>
> I'm sorry, I still don't get how, as a user, I can reimplement what that
> tool is supposed to be doing. Or do you anticipate that there's only
> ever be a single way to recover a Xe device, which is to reflash the
> firmware?
As suggested, it is a combination of uevent with an additional vendor
specific indicator. In this case, along with the uevent there is a sysfs
and dmesg that indicates firmware flash is the required
In the future, if there is another vendor-specific recovery needed then
same will be indicated in dmesg/sysfs or any vendor specific way and the
case will be documented
>
> What if in ~5y, Intel comes up with a new recovery method for the newer
> models?
That will be documented in the Xe Device Wedging documentation as
mentioned above
>
>> I'll add the link instead of just the chapter name
>>> but if that's under NDA, at least a
>>> reference to the document and section you need to look at to implement
>>> it properly.
>>>
>>> Or if that's still not doable, anything that tells you what to do
>>> instead of "run a shell script we don't provide".
>>>
>>> Also, we just discussed it with Sima on IRC, and she mentioned that we
>>> probably want to have a vendor specific prefix for each vendor-specific
>>> method.
>>
>> This was discussed as part of Rev4
>>
>> https://lore.kernel.org/intel-xe/aG-U9JTXDah_tu1U@black.fi.intel.com/
>>
>> DEVPATH from uevent and driver should be able to identify the driver.
>> Shouldn't that be enough?
>
> See above. What happens if we start to see systems with two Xe GPUs, one
> with a new recovery method and one with an old recovery method?
The DEV_PATH will indicate the device and the vendor-specific indicator
like dmesg/sysfs will indicate the recovery procedure
Thanks
Riana
>
> Maxime
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent
2025-07-31 13:01 ` Maxime Ripard
2025-07-31 13:48 ` Riana Tauro
@ 2025-08-05 14:36 ` Rodrigo Vivi
1 sibling, 0 replies; 24+ messages in thread
From: Rodrigo Vivi @ 2025-08-05 14:36 UTC (permalink / raw)
To: Maxime Ripard
Cc: Riana Tauro, dri-devel, simona.vetter, David Airlie,
Christian König, André Almeida, anshuman.gupta,
lucas.demarchi, aravind.iddamsetty, raag.jadav,
umesh.nerlige.ramappa, frank.scarbrough, sk.anirban,
maarten.lankhorst, intel-xe, tzimmermann
On Thu, Jul 31, 2025 at 03:01:18PM +0200, Maxime Ripard wrote:
> On Thu, Jul 31, 2025 at 04:43:46PM +0530, Riana Tauro wrote:
> > Hi Maxim
> >
> > On 7/31/2025 3:02 PM, Maxime Ripard wrote:
> > > Hi,
> > >
> > > On Wed, Jul 30, 2025 at 07:33:01PM +0530, Riana Tauro wrote:
> > > > On 7/28/2025 3:57 PM, Riana Tauro wrote:
> > > > > Address the need for a recovery method (firmware flash on Firmware errors)
> > > > > introduced in the later patches of Xe KMD.
> > > > > Whenever XE KMD detects a firmware error, a firmware flash is required to
> > > > > recover the device to normal operation.
> > > > >
> > > > > The initial proposal to use 'firmware-flash' as a recovery method was
> > > > > not applicable to other drivers and could cause multiple recovery
> > > > > methods specific to vendors to be added.
> > > > > To address this a more generic 'vendor-specific' method is introduced,
> > > > > guiding users to refer to vendor specific documentation and system logs
> > > > > for detailed vendor specific recovery procedure.
> > > > >
> > > > > Add a recovery method 'WEDGED=vendor-specific' for such errors.
> > > > > Vendors must provide additional recovery documentation if this method
> > > > > is used.
> > > > >
> > > > > It is the responsibility of the consumer to refer to the correct vendor
> > > > > specific documentation and usecase before attempting a recovery.
> > > > >
> > > > > For example: If driver is XE KMD, the consumer must refer
> > > > > to the documentation of 'Device Wedging' under 'Documentation/gpu/xe/'.
> > > > >
> > > > > Recovery script contributed by Raag.
> > > > >
> > > > > v2: fix documentation (Raag)
> > > > > v3: add more details to commit message (Sima, Rodrigo, Raag)
> > > > > add an example script to the documentation (Raag)
> > > > > v4: use consistent naming (Raag)
> > > > > v5: fix commit message
> > > > >
> > > > > Cc: André Almeida <andrealmeid@igalia.com>
> > > > > Cc: Christian König <christian.koenig@amd.com>
> > > > > Cc: David Airlie <airlied@gmail.com>
> > > > > Cc: Simona Vetter <simona.vetter@ffwll.ch>
> > > > > Co-developed-by: Raag Jadav <raag.jadav@intel.com>
> > > > > Signed-off-by: Raag Jadav <raag.jadav@intel.com>
> > > > > Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> > > > > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > > >
> > > > This patch needs an ack from drm to be merged.
> > > > The rest of the series have RB's. Can someone please provide an ack ?
> > > >
> > > > Cc: drm-misc maintainers
> > > >
> > > > Thanks
> > > > Riana
> > > >
> > > > > ---
> > > > > Documentation/gpu/drm-uapi.rst | 42 ++++++++++++++++++++++++++++------
> > > > > drivers/gpu/drm/drm_drv.c | 2 ++
> > > > > include/drm/drm_device.h | 4 ++++
> > > > > 3 files changed, 41 insertions(+), 7 deletions(-)
> > > > >
> > > > > diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
> > > > > index 843facf01b2d..5691b29acde3 100644
> > > > > --- a/Documentation/gpu/drm-uapi.rst
> > > > > +++ b/Documentation/gpu/drm-uapi.rst
> > > > > @@ -418,13 +418,15 @@ needed.
> > > > > Recovery
> > > > > --------
> > > > > -Current implementation defines three recovery methods, out of which, drivers
> > > > > +Current implementation defines four recovery methods, out of which, drivers
> > > > > can use any one, multiple or none. Method(s) of choice will be sent in the
> > > > > uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
> > > > > -more side-effects. If driver is unsure about recovery or method is unknown
> > > > > -(like soft/hard system reboot, firmware flashing, physical device replacement
> > > > > -or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
> > > > > -will be sent instead.
> > > > > +more side-effects. If recovery method is specific to vendor
> > > > > +``WEDGED=vendor-specific`` will be sent and userspace should refer to vendor
> > > > > +specific documentation for the recovery procedure. As an example if the driver
> > > > > +is 'Xe' then the documentation for 'Device Wedging' of Xe driver needs to be
> > > > > +referred for the recovery procedure. If driver is unsure about recovery or
> > > > > +method is unknown, ``WEDGED=unknown`` will be sent instead.
> > > > > Userspace consumers can parse this event and attempt recovery as per the
> > > > > following expectations.
> > > > > @@ -435,6 +437,7 @@ following expectations.
> > > > > none optional telemetry collection
> > > > > rebind unbind + bind driver
> > > > > bus-reset unbind + bus reset/re-enumeration + bind
> > > > > + vendor-specific vendor specific recovery method
> > > > > unknown consumer policy
> > > > > =============== ========================================
> > > > > @@ -472,8 +475,12 @@ erroring out, all device memory should be unmapped and file descriptors should
> > > > > be closed to prevent leaks or undefined behaviour. The idea here is to clear the
> > > > > device of all user context beforehand and set the stage for a clean recovery.
> > > > > -Example
> > > > > --------
> > > > > +For ``WEDGED=vendor-specific`` recovery method, it is the responsibility of the
> > > > > +consumer to check the driver documentation and the usecase before attempting
> > > > > +a recovery.
> > > > > +
> > > > > +Example - rebind
> > > > > +----------------
> > > > > Udev rule::
> > > > > @@ -491,6 +498,27 @@ Recovery script::
> > > > > echo -n $DEVICE > $DRIVER/unbind
> > > > > echo -n $DEVICE > $DRIVER/bind
> > > > > +Example - vendor-specific
> > > > > +-------------------------
> > > > > +
> > > > > +Udev rule::
> > > > > +
> > > > > + SUBSYSTEM=="drm", ENV{WEDGED}=="vendor-specific", DEVPATH=="*/drm/card[0-9]",
> > > > > + RUN+="/path/to/vendor_specific_recovery.sh $env{DEVPATH}"
> > > > > +
> > > > > +Recovery script::
> > > > > +
> > > > > + #!/bin/sh
> > > > > +
> > > > > + DEVPATH=$(readlink -f /sys/$1/device)
> > > > > + DRIVERPATH=$(readlink -f $DEVPATH/driver)
> > > > > + DRIVER=$(basename $DRIVERPATH)
> > > > > +
> > > > > + if [ "$DRIVER" = "xe" ]; then
> > > > > + # Refer XE documentation and check usecase and recovery procedure
> > > > > + fi
> > > > > +
> > > > > +
> > >
> > > So I guess I'm not opposed to it on principle, but the documentation
> > > really needs some work.
> > >
> > > You should at least list the valid vendor specific options, and what
> > > each mean exactly. Ideally, it should be a link to the datasheet/manual
> > > detailing the recovery procedure,
> >
> > This is added above
> >
> > "If recovery method is specific to vendor ``WEDGED=vendor-specific`` will be
> > sent and userspace should refer to vendor specific documentation for the
> > recovery procedure. As an example if the driver is 'Xe' then the
> > documentation for 'Device Wedging' of Xe driver needs to be referred for the
> > recovery procedure."
> >
> > The documentation of Xe is in Patch 6
> >
> > https://lore.kernel.org/intel-xe/20250728102809.502324-7-riana.tauro@intel.com/
>
> I'm sorry, I still don't get how, as a user, I can reimplement what that
> tool is supposed to be doing. Or do you anticipate that there's only
> ever be a single way to recover a Xe device, which is to reflash the
> firmware?
Well, clearly the documentation here needs some adjustments since it is failing
to explain everything that was previously discussed already:
https://lore.kernel.org/dri-devel/aHDRyZBkw-Qa_30R@phenom.ffwll.local/
Since I was already familiar with the background and history, I found the
documentation quite straightforward. However, I now believe it could be
updated to make it clearer to anyone.
>
> What if in ~5y, Intel comes up with a new recovery method for the newer
> models?
the vendor-specific is by definition wedge-uevent[device-specific] + specific
indication. Either by log or sysfs. So this design as is is flexible enough.
As I stated in the previous discussions I was more in favor of the
wedge-uevent[firmware-flash] but that was too specific, single-vendor
and single-case. So the vendor-specific with further indication was the
chosen one.
>
> > I'll add the link instead of just the chapter name
> > > but if that's under NDA, at least a
> > > reference to the document and section you need to look at to implement
> > > it properly.
> > >
> > > Or if that's still not doable, anything that tells you what to do
> > > instead of "run a shell script we don't provide".
> > >
> > > Also, we just discussed it with Sima on IRC, and she mentioned that we
> > > probably want to have a vendor specific prefix for each vendor-specific
> > > method.
> >
> > This was discussed as part of Rev4
> >
> > https://lore.kernel.org/intel-xe/aG-U9JTXDah_tu1U@black.fi.intel.com/
> >
> > DEVPATH from uevent and driver should be able to identify the driver.
> > Shouldn't that be enough?
>
> See above. What happens if we start to see systems with two Xe GPUs, one
> with a new recovery method and one with an old recovery method?
The log or device's sysfs will have the correct indication for the correct
device. Nothing to worry here.
>
> Maxime
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent
2025-07-28 10:27 ` [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent Riana Tauro
2025-07-30 14:03 ` Riana Tauro
@ 2025-08-05 14:57 ` Rodrigo Vivi
2025-08-08 8:02 ` Riana Tauro
2025-08-19 11:21 ` Maxime Ripard
1 sibling, 2 replies; 24+ messages in thread
From: Rodrigo Vivi @ 2025-08-05 14:57 UTC (permalink / raw)
To: Riana Tauro, Maxime Ripard
Cc: intel-xe, dri-devel, anshuman.gupta, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, simona.vetter, André Almeida,
Christian König, David Airlie
On Mon, Jul 28, 2025 at 03:57:51PM +0530, Riana Tauro wrote:
> Address the need for a recovery method (firmware flash on Firmware errors)
> introduced in the later patches of Xe KMD.
> Whenever XE KMD detects a firmware error, a firmware flash is required to
> recover the device to normal operation.
>
> The initial proposal to use 'firmware-flash' as a recovery method was
> not applicable to other drivers and could cause multiple recovery
> methods specific to vendors to be added.
> To address this a more generic 'vendor-specific' method is introduced,
> guiding users to refer to vendor specific documentation and system logs
> for detailed vendor specific recovery procedure.
>
> Add a recovery method 'WEDGED=vendor-specific' for such errors.
> Vendors must provide additional recovery documentation if this method
> is used.
>
> It is the responsibility of the consumer to refer to the correct vendor
> specific documentation and usecase before attempting a recovery.
>
> For example: If driver is XE KMD, the consumer must refer
> to the documentation of 'Device Wedging' under 'Documentation/gpu/xe/'.
>
> Recovery script contributed by Raag.
>
> v2: fix documentation (Raag)
> v3: add more details to commit message (Sima, Rodrigo, Raag)
> add an example script to the documentation (Raag)
> v4: use consistent naming (Raag)
> v5: fix commit message
>
> Cc: André Almeida <andrealmeid@igalia.com>
> Cc: Christian König <christian.koenig@amd.com>
> Cc: David Airlie <airlied@gmail.com>
> Cc: Simona Vetter <simona.vetter@ffwll.ch>
Cc: Maxime Ripard <mripard@kernel.org>
> Co-developed-by: Raag Jadav <raag.jadav@intel.com>
> Signed-off-by: Raag Jadav <raag.jadav@intel.com>
> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> Documentation/gpu/drm-uapi.rst | 42 ++++++++++++++++++++++++++++------
> drivers/gpu/drm/drm_drv.c | 2 ++
> include/drm/drm_device.h | 4 ++++
> 3 files changed, 41 insertions(+), 7 deletions(-)
>
> diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
> index 843facf01b2d..5691b29acde3 100644
> --- a/Documentation/gpu/drm-uapi.rst
> +++ b/Documentation/gpu/drm-uapi.rst
> @@ -418,13 +418,15 @@ needed.
> Recovery
> --------
>
> -Current implementation defines three recovery methods, out of which, drivers
> +Current implementation defines four recovery methods, out of which, drivers
> can use any one, multiple or none. Method(s) of choice will be sent in the
> uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
> -more side-effects. If driver is unsure about recovery or method is unknown
> -(like soft/hard system reboot, firmware flashing, physical device replacement
> -or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
> -will be sent instead.
> +more side-effects. If recovery method is specific to vendor
> +``WEDGED=vendor-specific`` will be sent and userspace should refer to vendor
> +specific documentation for the recovery procedure. As an example if the driver
> +is 'Xe' then the documentation for 'Device Wedging' of Xe driver needs to be
> +referred for the recovery procedure. If driver is unsure about recovery or
> +method is unknown, ``WEDGED=unknown`` will be sent instead.
What if instead of this we do something like:
--- a/Documentation/gpu/drm-uapi.rst
+++ b/Documentation/gpu/drm-uapi.rst
@@ -441,6 +441,29 @@ following expectations.
unknown consumer policy
=============== ========================================
+Vendor-Specific Recovery
+++++++++++++++++++++++++
+
+When ``WEDGED=vendor-specific`` is emitted, it indicates that the device requires a
+recovery method that is *not standardized* and is specific to the hardware vendor.
+
+In this case, the vendor driver must provide detailed documentation describing
+every single recovery possibilities and its processes. It needs to include:
+
+- Hints: Which of the following will be used to identify the
+ specific device, and guide the administrator:
+ + Sysfs, debugfs, tracepoints, or kernel logs (e.g., ``dmesg``)
+- Explicit guidance: for any admin or userspace tools and scripts necessary
+ to carry out recovery.
+
+**Example**:
+ If the device uses the ``Xe`` driver, then administrators should consult the
+ *"Device Wedging"* section of the Xe driver's documentation to determine
+ the proper steps for recovery.
+
+Notes
++++++
+
The only exception to this is ``WEDGED=none``, which signifies that the device
----------------------
Maxime, is it any better?
Thanks,
Rodrigo.
>
> Userspace consumers can parse this event and attempt recovery as per the
> following expectations.
> @@ -435,6 +437,7 @@ following expectations.
> none optional telemetry collection
> rebind unbind + bind driver
> bus-reset unbind + bus reset/re-enumeration + bind
> + vendor-specific vendor specific recovery method
> unknown consumer policy
> =============== ========================================
>
> @@ -472,8 +475,12 @@ erroring out, all device memory should be unmapped and file descriptors should
> be closed to prevent leaks or undefined behaviour. The idea here is to clear the
> device of all user context beforehand and set the stage for a clean recovery.
>
> -Example
> --------
> +For ``WEDGED=vendor-specific`` recovery method, it is the responsibility of the
> +consumer to check the driver documentation and the usecase before attempting
> +a recovery.
> +
> +Example - rebind
> +----------------
>
> Udev rule::
>
> @@ -491,6 +498,27 @@ Recovery script::
> echo -n $DEVICE > $DRIVER/unbind
> echo -n $DEVICE > $DRIVER/bind
>
> +Example - vendor-specific
> +-------------------------
> +
> +Udev rule::
> +
> + SUBSYSTEM=="drm", ENV{WEDGED}=="vendor-specific", DEVPATH=="*/drm/card[0-9]",
> + RUN+="/path/to/vendor_specific_recovery.sh $env{DEVPATH}"
> +
> +Recovery script::
> +
> + #!/bin/sh
> +
> + DEVPATH=$(readlink -f /sys/$1/device)
> + DRIVERPATH=$(readlink -f $DEVPATH/driver)
> + DRIVER=$(basename $DRIVERPATH)
> +
> + if [ "$DRIVER" = "xe" ]; then
> + # Refer XE documentation and check usecase and recovery procedure
> + fi
> +
> +
> Customization
> -------------
>
> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> index cdd591b11488..0ac723a46a91 100644
> --- a/drivers/gpu/drm/drm_drv.c
> +++ b/drivers/gpu/drm/drm_drv.c
> @@ -532,6 +532,8 @@ static const char *drm_get_wedge_recovery(unsigned int opt)
> return "rebind";
> case DRM_WEDGE_RECOVERY_BUS_RESET:
> return "bus-reset";
> + case DRM_WEDGE_RECOVERY_VENDOR:
> + return "vendor-specific";
> default:
> return NULL;
> }
> diff --git a/include/drm/drm_device.h b/include/drm/drm_device.h
> index a33aedd5e9ec..59fd3f4d5995 100644
> --- a/include/drm/drm_device.h
> +++ b/include/drm/drm_device.h
> @@ -26,10 +26,14 @@ struct pci_controller;
> * Recovery methods for wedged device in order of less to more side-effects.
> * To be used with drm_dev_wedged_event() as recovery @method. Callers can
> * use any one, multiple (or'd) or none depending on their needs.
> + *
> + * Refer to "Device Wedging" chapter in Documentation/gpu/drm-uapi.rst for more
> + * details.
> */
> #define DRM_WEDGE_RECOVERY_NONE BIT(0) /* optional telemetry collection */
> #define DRM_WEDGE_RECOVERY_REBIND BIT(1) /* unbind + bind driver */
> #define DRM_WEDGE_RECOVERY_BUS_RESET BIT(2) /* unbind + reset bus device + bind */
> +#define DRM_WEDGE_RECOVERY_VENDOR BIT(3) /* vendor specific recovery method */
>
> /**
> * struct drm_wedge_task_info - information about the guilty task of a wedge dev
> --
> 2.47.1
>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent
2025-08-05 14:57 ` Rodrigo Vivi
@ 2025-08-08 8:02 ` Riana Tauro
2025-08-19 11:21 ` Maxime Ripard
1 sibling, 0 replies; 24+ messages in thread
From: Riana Tauro @ 2025-08-08 8:02 UTC (permalink / raw)
To: Maxime Ripard, simona.vetter
Cc: intel-xe, dri-devel, anshuman.gupta, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, André Almeida, David Airlie,
Rodrigo Vivi, Christian König
Hi Maxime/Sima
On 8/5/2025 8:27 PM, Rodrigo Vivi wrote:
> On Mon, Jul 28, 2025 at 03:57:51PM +0530, Riana Tauro wrote:
>> Address the need for a recovery method (firmware flash on Firmware errors)
>> introduced in the later patches of Xe KMD.
>> Whenever XE KMD detects a firmware error, a firmware flash is required to
>> recover the device to normal operation.
>>
>> The initial proposal to use 'firmware-flash' as a recovery method was
>> not applicable to other drivers and could cause multiple recovery
>> methods specific to vendors to be added.
>> To address this a more generic 'vendor-specific' method is introduced,
>> guiding users to refer to vendor specific documentation and system logs
>> for detailed vendor specific recovery procedure.
>>
>> Add a recovery method 'WEDGED=vendor-specific' for such errors.
>> Vendors must provide additional recovery documentation if this method
>> is used.
>>
>> It is the responsibility of the consumer to refer to the correct vendor
>> specific documentation and usecase before attempting a recovery.
>>
>> For example: If driver is XE KMD, the consumer must refer
>> to the documentation of 'Device Wedging' under 'Documentation/gpu/xe/'.
>>
>> Recovery script contributed by Raag.
>>
>> v2: fix documentation (Raag)
>> v3: add more details to commit message (Sima, Rodrigo, Raag)
>> add an example script to the documentation (Raag)
>> v4: use consistent naming (Raag)
>> v5: fix commit message
>>
>> Cc: André Almeida <andrealmeid@igalia.com>
>> Cc: Christian König <christian.koenig@amd.com>
>> Cc: David Airlie <airlied@gmail.com>
>> Cc: Simona Vetter <simona.vetter@ffwll.ch>
>
> Cc: Maxime Ripard <mripard@kernel.org>
>
>> Co-developed-by: Raag Jadav <raag.jadav@intel.com>
>> Signed-off-by: Raag Jadav <raag.jadav@intel.com>
>> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
>> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> ---
>> Documentation/gpu/drm-uapi.rst | 42 ++++++++++++++++++++++++++++------
>> drivers/gpu/drm/drm_drv.c | 2 ++
>> include/drm/drm_device.h | 4 ++++
>> 3 files changed, 41 insertions(+), 7 deletions(-)
>>
>> diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
>> index 843facf01b2d..5691b29acde3 100644
>> --- a/Documentation/gpu/drm-uapi.rst
>> +++ b/Documentation/gpu/drm-uapi.rst
>> @@ -418,13 +418,15 @@ needed.
>> Recovery
>> --------
>>
>> -Current implementation defines three recovery methods, out of which, drivers
>> +Current implementation defines four recovery methods, out of which, drivers
>> can use any one, multiple or none. Method(s) of choice will be sent in the
>> uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
>> -more side-effects. If driver is unsure about recovery or method is unknown
>> -(like soft/hard system reboot, firmware flashing, physical device replacement
>> -or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
>> -will be sent instead.
>> +more side-effects. If recovery method is specific to vendor
>> +``WEDGED=vendor-specific`` will be sent and userspace should refer to vendor
>> +specific documentation for the recovery procedure. As an example if the driver
>> +is 'Xe' then the documentation for 'Device Wedging' of Xe driver needs to be
>> +referred for the recovery procedure. If driver is unsure about recovery or
>> +method is unknown, ``WEDGED=unknown`` will be sent instead.
>
> What if instead of this we do something like:
>
> --- a/Documentation/gpu/drm-uapi.rst
> +++ b/Documentation/gpu/drm-uapi.rst
> @@ -441,6 +441,29 @@ following expectations.
> unknown consumer policy
> =============== ========================================
>
> +Vendor-Specific Recovery
> +++++++++++++++++++++++++
> +
> +When ``WEDGED=vendor-specific`` is emitted, it indicates that the device requires a
> +recovery method that is *not standardized* and is specific to the hardware vendor.
> +
> +In this case, the vendor driver must provide detailed documentation describing
> +every single recovery possibilities and its processes. It needs to include:
> +
> +- Hints: Which of the following will be used to identify the
> + specific device, and guide the administrator:
> + + Sysfs, debugfs, tracepoints, or kernel logs (e.g., ``dmesg``)
> +- Explicit guidance: for any admin or userspace tools and scripts necessary
> + to carry out recovery.
> +
> +**Example**:
> + If the device uses the ``Xe`` driver, then administrators should consult the
> + *"Device Wedging"* section of the Xe driver's documentation to determine
> + the proper steps for recovery.
> +
> +Notes
> ++++++
> +
> The only exception to this is ``WEDGED=none``, which signifies that the device
>
> ----------------------
>
> Maxime, is it any better?
Is the documentation suggested by Rodrigo okay? Any suggestions ?
Thanks
Riana
>
> Thanks,
> Rodrigo.
>
>>
>> Userspace consumers can parse this event and attempt recovery as per the
>> following expectations.
>> @@ -435,6 +437,7 @@ following expectations.
>> none optional telemetry collection
>> rebind unbind + bind driver
>> bus-reset unbind + bus reset/re-enumeration + bind
>> + vendor-specific vendor specific recovery method
>> unknown consumer policy
>> =============== ========================================
>>
>> @@ -472,8 +475,12 @@ erroring out, all device memory should be unmapped and file descriptors should
>> be closed to prevent leaks or undefined behaviour. The idea here is to clear the
>> device of all user context beforehand and set the stage for a clean recovery.
>>
>> -Example
>> --------
>> +For ``WEDGED=vendor-specific`` recovery method, it is the responsibility of the
>> +consumer to check the driver documentation and the usecase before attempting
>> +a recovery.
>> +
>> +Example - rebind
>> +----------------
>>
>> Udev rule::
>>
>> @@ -491,6 +498,27 @@ Recovery script::
>> echo -n $DEVICE > $DRIVER/unbind
>> echo -n $DEVICE > $DRIVER/bind
>>
>> +Example - vendor-specific
>> +-------------------------
>> +
>> +Udev rule::
>> +
>> + SUBSYSTEM=="drm", ENV{WEDGED}=="vendor-specific", DEVPATH=="*/drm/card[0-9]",
>> + RUN+="/path/to/vendor_specific_recovery.sh $env{DEVPATH}"
>> +
>> +Recovery script::
>> +
>> + #!/bin/sh
>> +
>> + DEVPATH=$(readlink -f /sys/$1/device)
>> + DRIVERPATH=$(readlink -f $DEVPATH/driver)
>> + DRIVER=$(basename $DRIVERPATH)
>> +
>> + if [ "$DRIVER" = "xe" ]; then
>> + # Refer XE documentation and check usecase and recovery procedure
>> + fi
>> +
>> +
>> Customization
>> -------------
>>
>> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
>> index cdd591b11488..0ac723a46a91 100644
>> --- a/drivers/gpu/drm/drm_drv.c
>> +++ b/drivers/gpu/drm/drm_drv.c
>> @@ -532,6 +532,8 @@ static const char *drm_get_wedge_recovery(unsigned int opt)
>> return "rebind";
>> case DRM_WEDGE_RECOVERY_BUS_RESET:
>> return "bus-reset";
>> + case DRM_WEDGE_RECOVERY_VENDOR:
>> + return "vendor-specific";
>> default:
>> return NULL;
>> }
>> diff --git a/include/drm/drm_device.h b/include/drm/drm_device.h
>> index a33aedd5e9ec..59fd3f4d5995 100644
>> --- a/include/drm/drm_device.h
>> +++ b/include/drm/drm_device.h
>> @@ -26,10 +26,14 @@ struct pci_controller;
>> * Recovery methods for wedged device in order of less to more side-effects.
>> * To be used with drm_dev_wedged_event() as recovery @method. Callers can
>> * use any one, multiple (or'd) or none depending on their needs.
>> + *
>> + * Refer to "Device Wedging" chapter in Documentation/gpu/drm-uapi.rst for more
>> + * details.
>> */
>> #define DRM_WEDGE_RECOVERY_NONE BIT(0) /* optional telemetry collection */
>> #define DRM_WEDGE_RECOVERY_REBIND BIT(1) /* unbind + bind driver */
>> #define DRM_WEDGE_RECOVERY_BUS_RESET BIT(2) /* unbind + reset bus device + bind */
>> +#define DRM_WEDGE_RECOVERY_VENDOR BIT(3) /* vendor specific recovery method */
>>
>> /**
>> * struct drm_wedge_task_info - information about the guilty task of a wedge dev
>> --
>> 2.47.1
>>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent
2025-08-05 14:57 ` Rodrigo Vivi
2025-08-08 8:02 ` Riana Tauro
@ 2025-08-19 11:21 ` Maxime Ripard
1 sibling, 0 replies; 24+ messages in thread
From: Maxime Ripard @ 2025-08-19 11:21 UTC (permalink / raw)
To: Rodrigo Vivi
Cc: Riana Tauro, intel-xe, dri-devel, anshuman.gupta, lucas.demarchi,
aravind.iddamsetty, raag.jadav, umesh.nerlige.ramappa,
frank.scarbrough, sk.anirban, simona.vetter, André Almeida,
Christian König, David Airlie
[-- Attachment #1: Type: text/plain, Size: 5026 bytes --]
On Tue, Aug 05, 2025 at 10:57:24AM -0400, Rodrigo Vivi wrote:
> On Mon, Jul 28, 2025 at 03:57:51PM +0530, Riana Tauro wrote:
> > Address the need for a recovery method (firmware flash on Firmware errors)
> > introduced in the later patches of Xe KMD.
> > Whenever XE KMD detects a firmware error, a firmware flash is required to
> > recover the device to normal operation.
> >
> > The initial proposal to use 'firmware-flash' as a recovery method was
> > not applicable to other drivers and could cause multiple recovery
> > methods specific to vendors to be added.
> > To address this a more generic 'vendor-specific' method is introduced,
> > guiding users to refer to vendor specific documentation and system logs
> > for detailed vendor specific recovery procedure.
> >
> > Add a recovery method 'WEDGED=vendor-specific' for such errors.
> > Vendors must provide additional recovery documentation if this method
> > is used.
> >
> > It is the responsibility of the consumer to refer to the correct vendor
> > specific documentation and usecase before attempting a recovery.
> >
> > For example: If driver is XE KMD, the consumer must refer
> > to the documentation of 'Device Wedging' under 'Documentation/gpu/xe/'.
> >
> > Recovery script contributed by Raag.
> >
> > v2: fix documentation (Raag)
> > v3: add more details to commit message (Sima, Rodrigo, Raag)
> > add an example script to the documentation (Raag)
> > v4: use consistent naming (Raag)
> > v5: fix commit message
> >
> > Cc: André Almeida <andrealmeid@igalia.com>
> > Cc: Christian König <christian.koenig@amd.com>
> > Cc: David Airlie <airlied@gmail.com>
> > Cc: Simona Vetter <simona.vetter@ffwll.ch>
>
> Cc: Maxime Ripard <mripard@kernel.org>
>
> > Co-developed-by: Raag Jadav <raag.jadav@intel.com>
> > Signed-off-by: Raag Jadav <raag.jadav@intel.com>
> > Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > ---
> > Documentation/gpu/drm-uapi.rst | 42 ++++++++++++++++++++++++++++------
> > drivers/gpu/drm/drm_drv.c | 2 ++
> > include/drm/drm_device.h | 4 ++++
> > 3 files changed, 41 insertions(+), 7 deletions(-)
> >
> > diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
> > index 843facf01b2d..5691b29acde3 100644
> > --- a/Documentation/gpu/drm-uapi.rst
> > +++ b/Documentation/gpu/drm-uapi.rst
> > @@ -418,13 +418,15 @@ needed.
> > Recovery
> > --------
> >
> > -Current implementation defines three recovery methods, out of which, drivers
> > +Current implementation defines four recovery methods, out of which, drivers
> > can use any one, multiple or none. Method(s) of choice will be sent in the
> > uevent environment as ``WEDGED=<method1>[,..,<methodN>]`` in order of less to
> > -more side-effects. If driver is unsure about recovery or method is unknown
> > -(like soft/hard system reboot, firmware flashing, physical device replacement
> > -or any other procedure which can't be attempted on the fly), ``WEDGED=unknown``
> > -will be sent instead.
> > +more side-effects. If recovery method is specific to vendor
> > +``WEDGED=vendor-specific`` will be sent and userspace should refer to vendor
> > +specific documentation for the recovery procedure. As an example if the driver
> > +is 'Xe' then the documentation for 'Device Wedging' of Xe driver needs to be
> > +referred for the recovery procedure. If driver is unsure about recovery or
> > +method is unknown, ``WEDGED=unknown`` will be sent instead.
>
> What if instead of this we do something like:
>
> --- a/Documentation/gpu/drm-uapi.rst
> +++ b/Documentation/gpu/drm-uapi.rst
> @@ -441,6 +441,29 @@ following expectations.
> unknown consumer policy
> =============== ========================================
>
> +Vendor-Specific Recovery
> +++++++++++++++++++++++++
> +
> +When ``WEDGED=vendor-specific`` is emitted, it indicates that the device requires a
> +recovery method that is *not standardized* and is specific to the hardware vendor.
> +
> +In this case, the vendor driver must provide detailed documentation describing
> +every single recovery possibilities and its processes. It needs to include:
> +
> +- Hints: Which of the following will be used to identify the
> + specific device, and guide the administrator:
> + + Sysfs, debugfs, tracepoints, or kernel logs (e.g., ``dmesg``)
> +- Explicit guidance: for any admin or userspace tools and scripts necessary
> + to carry out recovery.
> +
> +**Example**:
> + If the device uses the ``Xe`` driver, then administrators should consult the
> + *"Device Wedging"* section of the Xe driver's documentation to determine
> + the proper steps for recovery.
> +
> +Notes
> ++++++
> +
> The only exception to this is ``WEDGED=none``, which signifies that the device
>
> ----------------------
>
> Maxime, is it any better?
Yes, it is. Thanks!
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 273 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2025-08-19 11:21 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-28 10:27 [PATCH v7 0/9] Handle Firmware reported Hardware Errors Riana Tauro
2025-07-28 10:27 ` [PATCH v7 1/9] drm: Add a vendor-specific recovery method to drm device wedged uevent Riana Tauro
2025-07-30 14:03 ` Riana Tauro
2025-07-31 9:32 ` Maxime Ripard
2025-07-31 11:13 ` Riana Tauro
2025-07-31 13:01 ` Maxime Ripard
2025-07-31 13:48 ` Riana Tauro
2025-08-05 14:36 ` Rodrigo Vivi
2025-08-05 14:57 ` Rodrigo Vivi
2025-08-08 8:02 ` Riana Tauro
2025-08-19 11:21 ` Maxime Ripard
2025-07-28 10:27 ` [PATCH v7 2/9] drm/xe: Set GT as wedged before sending " Riana Tauro
2025-07-28 10:27 ` [PATCH v7 3/9] drm/xe: Add a helper function to set recovery method Riana Tauro
2025-07-28 10:27 ` [PATCH v7 4/9] drm/xe/xe_survivability: Refactor survivability mode Riana Tauro
2025-07-28 10:27 ` [PATCH v7 5/9] drm/xe/xe_survivability: Add support for Runtime " Riana Tauro
2025-07-28 10:27 ` [PATCH v7 6/9] drm/xe/doc: Document device wedged and runtime survivability Riana Tauro
2025-07-28 10:27 ` [PATCH v7 7/9] drm/xe: Add support to handle hardware errors Riana Tauro
2025-07-28 10:27 ` [PATCH v7 8/9] drm/xe/xe_hw_error: Handle CSC Firmware reported Hardware errors Riana Tauro
2025-07-28 10:27 ` [PATCH v7 9/9] drm/xe/xe_hw_error: Add fault injection to trigger csc error handler Riana Tauro
2025-07-28 16:18 ` ✗ CI.checkpatch: warning for Handle Firmware reported Hardware Errors (rev7) Patchwork
2025-07-28 16:20 ` ✓ CI.KUnit: success " Patchwork
2025-07-28 16:34 ` ✗ CI.checksparse: warning " Patchwork
2025-07-28 17:01 ` ✓ Xe.CI.BAT: success " Patchwork
2025-07-28 19:12 ` ✗ Xe.CI.Full: failure " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).