* [PATCH v5 0/4] Introduce DRM device wedged event
@ 2024-09-17 4:02 Raag Jadav
2024-09-17 4:02 ` [PATCH v5 1/4] drm: Introduce " Raag Jadav
` (7 more replies)
0 siblings, 8 replies; 24+ messages in thread
From: Raag Jadav @ 2024-09-17 4:02 UTC (permalink / raw)
To: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
jani.nikula, joonas.lahtinen, tursulin, lina
Cc: intel-xe, intel-gfx, dri-devel, himal.prasad.ghimiray,
francois.dugast, aravind.iddamsetty, anshuman.gupta, andi.shyti,
andriy.shevchenko, matthew.d.roper, Raag Jadav
This series introduces device wedged event in DRM subsystem and uses
it in xe and i915 drivers. Detailed description in commit message.
This was earlier attempted as xe specific uevent in v1 and v2.
https://patchwork.freedesktop.org/series/136909/
v2: Change authorship to Himal (Aravind)
Add uevent for all device wedged cases (Aravind)
v3: Generic re-implementation in DRM subsystem (Lucas)
v4: s/drm_dev_wedged/drm_dev_wedged_event
Use drm_info() (Jani)
Kernel doc adjustment (Aravind)
Change authorship to Raag (Aravind)
v5: Send recovery method with uevent (Lina)
Expose supported recovery methods via sysfs (Lucas)
Raag Jadav (4):
drm: Introduce device wedged event
drm: Expose wedge recovery methods
drm/xe: Use device wedged event
drm/i915: Use device wedged event
drivers/gpu/drm/drm_drv.c | 37 +++++++++++++++++++++++++++
drivers/gpu/drm/drm_sysfs.c | 23 +++++++++++++++++
drivers/gpu/drm/i915/gt/intel_reset.c | 2 ++
drivers/gpu/drm/i915/i915_driver.c | 10 ++++++++
drivers/gpu/drm/xe/xe_device.c | 17 ++++++++++--
drivers/gpu/drm/xe/xe_device.h | 1 +
drivers/gpu/drm/xe/xe_pci.c | 2 ++
include/drm/drm_device.h | 24 +++++++++++++++++
include/drm/drm_drv.h | 1 +
9 files changed, 115 insertions(+), 2 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v5 1/4] drm: Introduce device wedged event
2024-09-17 4:02 [PATCH v5 0/4] Introduce DRM device wedged event Raag Jadav
@ 2024-09-17 4:02 ` Raag Jadav
2024-09-19 7:43 ` Jani Nikula
2024-09-17 4:02 ` [PATCH v5 2/4] drm: Expose wedge recovery methods Raag Jadav
` (6 subsequent siblings)
7 siblings, 1 reply; 24+ messages in thread
From: Raag Jadav @ 2024-09-17 4:02 UTC (permalink / raw)
To: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
jani.nikula, joonas.lahtinen, tursulin, lina
Cc: intel-xe, intel-gfx, dri-devel, himal.prasad.ghimiray,
francois.dugast, aravind.iddamsetty, anshuman.gupta, andi.shyti,
andriy.shevchenko, matthew.d.roper, Raag Jadav
Introduce device wedged event, which will notify userspace of wedged
(hanged/unusable) state of the DRM device through a uevent. This is
useful especially in cases where the device is no longer operating as
expected and has become unrecoverable from driver context.
Purpose of this implementation is to provide drivers a way to recover
through userspace intervention. Different drivers may have different
ideas of a "wedged device" depending on their hardware implementation,
and hence the vendor agnostic nature of the event. It is upto the drivers
to decide when they see the need for recovery and how they want to recover
from the available methods.
Current implementation defines three recovery methods, out of which,
drivers can choose to support any one or multiple of them. Preferred
recovery method will be sent in the uevent environment as WEDGED=<method>.
Userspace consumers (sysadmin) can define udev rules to parse this event
and take respective action to recover the device.
Method | Consumer expectations
-----------|-----------------------------------
rebind | unbind + rebind driver
bus-reset | unbind + reset bus device + rebind
reboot | reboot system
v4: s/drm_dev_wedged/drm_dev_wedged_event
Use drm_info() (Jani)
Kernel doc adjustment (Aravind)
v5: Send recovery method with uevent (Lina)
Signed-off-by: Raag Jadav <raag.jadav@intel.com>
---
drivers/gpu/drm/drm_drv.c | 37 +++++++++++++++++++++++++++++++++++++
include/drm/drm_device.h | 24 ++++++++++++++++++++++++
include/drm/drm_drv.h | 1 +
3 files changed, 62 insertions(+)
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index ac30b0ec9d93..1e850a9f608d 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -497,6 +497,43 @@ void drm_dev_unplug(struct drm_device *dev)
}
EXPORT_SYMBOL(drm_dev_unplug);
+const char *const wedge_recovery_opts[] = {
+ [DRM_WEDGE_RECOVERY_REBIND] = "rebind",
+ [DRM_WEDGE_RECOVERY_BUS_RESET] = "bus-reset",
+ [DRM_WEDGE_RECOVERY_REBOOT] = "reboot",
+};
+
+/**
+ * drm_dev_wedged_event - generate a device wedged uevent
+ * @dev: DRM device
+ * @method: method to be used for recovery
+ *
+ * This generates a device wedged uevent for the DRM device specified by @dev.
+ * Recovery @method from wedge_recovery_opts[] (if supprted by the device) is
+ * sent in the uevent environment as WEDGED=<method>, on the basis of which,
+ * userspace may take respective action to recover the device.
+ *
+ * Returns: 0 on success, or negative error code otherwise.
+ */
+int drm_dev_wedged_event(struct drm_device *dev, enum wedge_recovery_method method)
+{
+ char event_string[32] = "WEDGED=";
+ char *envp[] = { event_string, NULL };
+ bool supported;
+
+ supported = test_bit(method, &dev->wedge_recovery);
+ if (unlikely(!supported)) {
+ drm_err(dev, "device wedged, recovery method not supported\n");
+ return -EOPNOTSUPP;
+ }
+
+ strcat(event_string, wedge_recovery_opts[method]);
+
+ drm_info(dev, "device wedged, generating uevent\n");
+ return kobject_uevent_env(&dev->primary->kdev->kobj, KOBJ_CHANGE, envp);
+}
+EXPORT_SYMBOL(drm_dev_wedged_event);
+
/*
* DRM internal mount
* We want to be able to allocate our own "struct address_space" to control
diff --git a/include/drm/drm_device.h b/include/drm/drm_device.h
index c91f87b5242d..e4f32967b5ae 100644
--- a/include/drm/drm_device.h
+++ b/include/drm/drm_device.h
@@ -40,6 +40,27 @@ enum switch_power_state {
DRM_SWITCH_POWER_DYNAMIC_OFF = 3,
};
+/**
+ * enum wedge_recovery_method - Recovery method for wedged device in order
+ * of severity. To be set as bit fields in drm_device.wedge_recovery variable.
+ * Drivers can choose to support any one or multiple of them depending on their
+ * needs.
+ */
+
+enum wedge_recovery_method {
+ /** @DRM_WEDGE_RECOVERY_REBIND: unbind + rebind driver */
+ DRM_WEDGE_RECOVERY_REBIND = 0,
+
+ /** @DRM_WEDGE_RECOVERY_BUS_RESET: unbind + reset bus device + rebind */
+ DRM_WEDGE_RECOVERY_BUS_RESET = 1,
+
+ /** @DRM_WEDGE_RECOVERY_REBOOT: reboot system */
+ DRM_WEDGE_RECOVERY_REBOOT = 2,
+
+ /** @DRM_WEDGE_RECOVERY_MAX: for bounds checking, do not use */
+ DRM_WEDGE_RECOVERY_MAX = 3,
+};
+
/**
* struct drm_device - DRM device structure
*
@@ -317,6 +338,9 @@ struct drm_device {
* Root directory for debugfs files.
*/
struct dentry *debugfs_root;
+
+ /** @wedge_recovery: Supported recovery methods for wedged device */
+ unsigned long wedge_recovery;
};
#endif
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
index 02ea4e3248fd..6e02187f1f6c 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -461,6 +461,7 @@ void drm_put_dev(struct drm_device *dev);
bool drm_dev_enter(struct drm_device *dev, int *idx);
void drm_dev_exit(int idx);
void drm_dev_unplug(struct drm_device *dev);
+int drm_dev_wedged_event(struct drm_device *dev, enum wedge_recovery_method method);
/**
* drm_dev_is_unplugged - is a DRM device unplugged
--
2.34.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v5 2/4] drm: Expose wedge recovery methods
2024-09-17 4:02 [PATCH v5 0/4] Introduce DRM device wedged event Raag Jadav
2024-09-17 4:02 ` [PATCH v5 1/4] drm: Introduce " Raag Jadav
@ 2024-09-17 4:02 ` Raag Jadav
2024-09-17 7:49 ` Jani Nikula
2024-09-17 4:02 ` [PATCH v5 3/4] drm/xe: Use device wedged event Raag Jadav
` (5 subsequent siblings)
7 siblings, 1 reply; 24+ messages in thread
From: Raag Jadav @ 2024-09-17 4:02 UTC (permalink / raw)
To: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
jani.nikula, joonas.lahtinen, tursulin, lina
Cc: intel-xe, intel-gfx, dri-devel, himal.prasad.ghimiray,
francois.dugast, aravind.iddamsetty, anshuman.gupta, andi.shyti,
andriy.shevchenko, matthew.d.roper, Raag Jadav
Now that we have device wedged event in place, add wedge_recovery sysfs
attribute which will expose recovery methods supported by the DRM device.
This is useful for userspace consumers in cases where the device supports
multiple recovery methods which can be used as fallbacks.
$ cat /sys/class/drm/card0/wedge_recovery
rebind
bus-reset
reboot
Signed-off-by: Raag Jadav <raag.jadav@intel.com>
---
drivers/gpu/drm/drm_sysfs.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
index fb3bbb6adcd1..b88cdbfa3b5e 100644
--- a/drivers/gpu/drm/drm_sysfs.c
+++ b/drivers/gpu/drm/drm_sysfs.c
@@ -36,6 +36,8 @@
#define to_drm_minor(d) dev_get_drvdata(d)
#define to_drm_connector(d) dev_get_drvdata(d)
+extern const char *const wedge_recovery_opts[];
+
/**
* DOC: overview
*
@@ -508,6 +510,26 @@ void drm_sysfs_connector_property_event(struct drm_connector *connector,
}
EXPORT_SYMBOL(drm_sysfs_connector_property_event);
+static ssize_t wedge_recovery_show(struct device *device,
+ struct device_attribute *attr, char *buf)
+{
+ struct drm_minor *minor = to_drm_minor(device);
+ struct drm_device *dev = minor->dev;
+ int opt, count = 0;
+
+ for_each_set_bit(opt, &dev->wedge_recovery, DRM_WEDGE_RECOVERY_MAX)
+ count += sysfs_emit_at(buf, count, "%s\n", wedge_recovery_opts[opt]);
+
+ return count;
+}
+static DEVICE_ATTR_RO(wedge_recovery);
+
+static struct attribute *minor_dev_attrs[] = {
+ &dev_attr_wedge_recovery.attr,
+ NULL
+};
+ATTRIBUTE_GROUPS(minor_dev);
+
struct device *drm_sysfs_minor_alloc(struct drm_minor *minor)
{
const char *minor_str;
@@ -532,6 +554,7 @@ struct device *drm_sysfs_minor_alloc(struct drm_minor *minor)
kdev->devt = MKDEV(DRM_MAJOR, minor->index);
kdev->class = drm_class;
kdev->type = &drm_sysfs_device_minor;
+ kdev->groups = minor_dev_groups;
}
kdev->parent = minor->dev->dev;
--
2.34.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v5 3/4] drm/xe: Use device wedged event
2024-09-17 4:02 [PATCH v5 0/4] Introduce DRM device wedged event Raag Jadav
2024-09-17 4:02 ` [PATCH v5 1/4] drm: Introduce " Raag Jadav
2024-09-17 4:02 ` [PATCH v5 2/4] drm: Expose wedge recovery methods Raag Jadav
@ 2024-09-17 4:02 ` Raag Jadav
2024-09-17 4:41 ` Ghimiray, Himal Prasad
2024-09-17 4:02 ` [PATCH v5 4/4] drm/i915: " Raag Jadav
` (4 subsequent siblings)
7 siblings, 1 reply; 24+ messages in thread
From: Raag Jadav @ 2024-09-17 4:02 UTC (permalink / raw)
To: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
jani.nikula, joonas.lahtinen, tursulin, lina
Cc: intel-xe, intel-gfx, dri-devel, himal.prasad.ghimiray,
francois.dugast, aravind.iddamsetty, anshuman.gupta, andi.shyti,
andriy.shevchenko, matthew.d.roper, Raag Jadav
This was previously attempted as xe specific reset uevent but dropped
in commit 77a0d4d1cea2 ("drm/xe/uapi: Remove reset uevent for now")
as part of refactoring.
Now that we have device wedged event supported by DRM core, make use
of it. With this in place userspace will be notified of wedged device,
on the basis of which, userspace may take respective action to recover
the device.
$ udevadm monitor --property --kernel
monitor will print the received events for:
KERNEL - the kernel uevent
KERNEL[265.802982] 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=bus-reset
DEVNAME=/dev/dri/card0
DEVTYPE=drm_minor
SEQNUM=5208
MAJOR=226
MINOR=0
v2: Change authorship to Himal (Aravind)
Add uevent for all device wedged cases (Aravind)
v3: Generic re-implementation in DRM subsystem (Lucas)
v4: Change authorship to Raag (Aravind)
Signed-off-by: Raag Jadav <raag.jadav@intel.com>
---
drivers/gpu/drm/xe/xe_device.c | 17 +++++++++++++++--
drivers/gpu/drm/xe/xe_device.h | 1 +
drivers/gpu/drm/xe/xe_pci.c | 2 ++
3 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 4d3c794f134c..1b097643aacb 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -780,6 +780,15 @@ int xe_device_probe(struct xe_device *xe)
return err;
}
+void xe_setup_wedge_recovery(struct xe_device *xe)
+{
+ struct drm_device *dev = &xe->drm;
+
+ /* Support both driver rebind and bus reset based recovery. */
+ set_bit(DRM_WEDGE_RECOVERY_REBIND, &dev->wedge_recovery);
+ set_bit(DRM_WEDGE_RECOVERY_BUS_RESET, &dev->wedge_recovery);
+}
+
static void xe_device_remove_display(struct xe_device *xe)
{
xe_display_unregister(xe);
@@ -986,11 +995,12 @@ 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 mudule
+ * This is a final state that can only be cleared with a module
* 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.
+ * failure or guc loading failure. Userspace will be notified of this state
+ * by a DRM uevent.
* If xe.wedged module parameter is set to 2, this function will be called
* on every single execution timeout (a.k.a. GPU hang) right after devcoredump
* snapshot capture. In this mode, GT reset won't be attempted so the state of
@@ -1020,6 +1030,9 @@ 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));
+
+ /* Notify userspace of wedged device */
+ drm_dev_wedged_event(&xe->drm, DRM_WEDGE_RECOVERY_BUS_RESET);
}
for_each_gt(gt, xe, id)
diff --git a/drivers/gpu/drm/xe/xe_device.h b/drivers/gpu/drm/xe/xe_device.h
index ca8d8ef6342b..77a2332b4b87 100644
--- a/drivers/gpu/drm/xe/xe_device.h
+++ b/drivers/gpu/drm/xe/xe_device.h
@@ -174,6 +174,7 @@ static inline bool xe_device_wedged(struct xe_device *xe)
return atomic_read(&xe->wedged.flag);
}
+void xe_setup_wedge_recovery(struct xe_device *xe);
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_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index a1d08e20cd34..60a8a60f1d9f 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -872,6 +872,8 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (err)
goto err_driver_cleanup;
+ xe_setup_wedge_recovery(xe);
+
drm_dbg(&xe->drm, "d3cold: capable=%s\n",
str_yes_no(xe->d3cold.capable));
--
2.34.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v5 4/4] drm/i915: Use device wedged event
2024-09-17 4:02 [PATCH v5 0/4] Introduce DRM device wedged event Raag Jadav
` (2 preceding siblings ...)
2024-09-17 4:02 ` [PATCH v5 3/4] drm/xe: Use device wedged event Raag Jadav
@ 2024-09-17 4:02 ` Raag Jadav
2024-09-17 4:53 ` ✗ Fi.CI.CHECKPATCH: warning for Introduce DRM device wedged event (rev3) Patchwork
` (3 subsequent siblings)
7 siblings, 0 replies; 24+ messages in thread
From: Raag Jadav @ 2024-09-17 4:02 UTC (permalink / raw)
To: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
jani.nikula, joonas.lahtinen, tursulin, lina
Cc: intel-xe, intel-gfx, dri-devel, himal.prasad.ghimiray,
francois.dugast, aravind.iddamsetty, anshuman.gupta, andi.shyti,
andriy.shevchenko, matthew.d.roper, Raag Jadav
Now that we have device wedged event supported by DRM core, make use
of it. With this in place, userspace will be notified of wedged device
on gt reset failure.
Signed-off-by: Raag Jadav <raag.jadav@intel.com>
---
drivers/gpu/drm/i915/gt/intel_reset.c | 2 ++
drivers/gpu/drm/i915/i915_driver.c | 10 ++++++++++
2 files changed, 12 insertions(+)
diff --git a/drivers/gpu/drm/i915/gt/intel_reset.c b/drivers/gpu/drm/i915/gt/intel_reset.c
index 8f1ea95471ef..02f357d4e4fb 100644
--- a/drivers/gpu/drm/i915/gt/intel_reset.c
+++ b/drivers/gpu/drm/i915/gt/intel_reset.c
@@ -1418,6 +1418,8 @@ static void intel_gt_reset_global(struct intel_gt *gt,
if (!test_bit(I915_WEDGED, >->reset.flags))
kobject_uevent_env(kobj, KOBJ_CHANGE, reset_done_event);
+ else
+ drm_dev_wedged_event(>->i915->drm, DRM_WEDGE_RECOVERY_BUS_RESET);
}
/**
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index fe905d65ddf7..0185fb41eb95 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -711,6 +711,15 @@ static void i915_welcome_messages(struct drm_i915_private *dev_priv)
"DRM_I915_DEBUG_RUNTIME_PM enabled\n");
}
+static void i915_setup_wedge_recovery(struct drm_i915_private *i915)
+{
+ struct drm_device *dev = &i915->drm;
+
+ /* Support both driver rebind and bus reset based recovery. */
+ set_bit(DRM_WEDGE_RECOVERY_REBIND, &dev->wedge_recovery);
+ set_bit(DRM_WEDGE_RECOVERY_BUS_RESET, &dev->wedge_recovery);
+}
+
static struct drm_i915_private *
i915_driver_create(struct pci_dev *pdev, const struct pci_device_id *ent)
{
@@ -812,6 +821,7 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
enable_rpm_wakeref_asserts(&i915->runtime_pm);
+ i915_setup_wedge_recovery(i915);
i915_welcome_messages(i915);
i915->do_release = true;
--
2.34.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v5 3/4] drm/xe: Use device wedged event
2024-09-17 4:02 ` [PATCH v5 3/4] drm/xe: Use device wedged event Raag Jadav
@ 2024-09-17 4:41 ` Ghimiray, Himal Prasad
2024-09-17 6:38 ` Raag Jadav
0 siblings, 1 reply; 24+ messages in thread
From: Ghimiray, Himal Prasad @ 2024-09-17 4:41 UTC (permalink / raw)
To: Raag Jadav, airlied, simona, lucas.demarchi, thomas.hellstrom,
rodrigo.vivi, jani.nikula, joonas.lahtinen, tursulin, lina
Cc: intel-xe, intel-gfx, dri-devel, francois.dugast,
aravind.iddamsetty, anshuman.gupta, andi.shyti, andriy.shevchenko,
matthew.d.roper
On 17-09-2024 09:32, Raag Jadav wrote:
> This was previously attempted as xe specific reset uevent but dropped
> in commit 77a0d4d1cea2 ("drm/xe/uapi: Remove reset uevent for now")
> as part of refactoring.
>
> Now that we have device wedged event supported by DRM core, make use
> of it. With this in place userspace will be notified of wedged device,
> on the basis of which, userspace may take respective action to recover
> the device.
As per earlier discussions, the UAPI was also supposed to provide the
reason for wedging( which is supposedly used by L0). IS that requirement
nomore in place ?
BR
Himal
>
> $ udevadm monitor --property --kernel
> monitor will print the received events for:
> KERNEL - the kernel uevent
>
> KERNEL[265.802982] 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=bus-reset
> DEVNAME=/dev/dri/card0
> DEVTYPE=drm_minor
> SEQNUM=5208
> MAJOR=226
> MINOR=0
>
> v2: Change authorship to Himal (Aravind)
> Add uevent for all device wedged cases (Aravind)
> v3: Generic re-implementation in DRM subsystem (Lucas)
> v4: Change authorship to Raag (Aravind)
>
> Signed-off-by: Raag Jadav <raag.jadav@intel.com>
> ---
> drivers/gpu/drm/xe/xe_device.c | 17 +++++++++++++++--
> drivers/gpu/drm/xe/xe_device.h | 1 +
> drivers/gpu/drm/xe/xe_pci.c | 2 ++
> 3 files changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index 4d3c794f134c..1b097643aacb 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -780,6 +780,15 @@ int xe_device_probe(struct xe_device *xe)
> return err;
> }
>
> +void xe_setup_wedge_recovery(struct xe_device *xe)
> +{
> + struct drm_device *dev = &xe->drm;
> +
> + /* Support both driver rebind and bus reset based recovery. */
> + set_bit(DRM_WEDGE_RECOVERY_REBIND, &dev->wedge_recovery);
> + set_bit(DRM_WEDGE_RECOVERY_BUS_RESET, &dev->wedge_recovery);
> +}
> +
> static void xe_device_remove_display(struct xe_device *xe)
> {
> xe_display_unregister(xe);
> @@ -986,11 +995,12 @@ 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 mudule
> + * This is a final state that can only be cleared with a module
> * 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.
> + * failure or guc loading failure. Userspace will be notified of this state
> + * by a DRM uevent.
> * If xe.wedged module parameter is set to 2, this function will be called
> * on every single execution timeout (a.k.a. GPU hang) right after devcoredump
> * snapshot capture. In this mode, GT reset won't be attempted so the state of
> @@ -1020,6 +1030,9 @@ 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));
> +
> + /* Notify userspace of wedged device */
> + drm_dev_wedged_event(&xe->drm, DRM_WEDGE_RECOVERY_BUS_RESET);
> }
>
> for_each_gt(gt, xe, id)
> diff --git a/drivers/gpu/drm/xe/xe_device.h b/drivers/gpu/drm/xe/xe_device.h
> index ca8d8ef6342b..77a2332b4b87 100644
> --- a/drivers/gpu/drm/xe/xe_device.h
> +++ b/drivers/gpu/drm/xe/xe_device.h
> @@ -174,6 +174,7 @@ static inline bool xe_device_wedged(struct xe_device *xe)
> return atomic_read(&xe->wedged.flag);
> }
>
> +void xe_setup_wedge_recovery(struct xe_device *xe);
> 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_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index a1d08e20cd34..60a8a60f1d9f 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -872,6 +872,8 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> if (err)
> goto err_driver_cleanup;
>
> + xe_setup_wedge_recovery(xe);
> +
> drm_dbg(&xe->drm, "d3cold: capable=%s\n",
> str_yes_no(xe->d3cold.capable));
>
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for Introduce DRM device wedged event (rev3)
2024-09-17 4:02 [PATCH v5 0/4] Introduce DRM device wedged event Raag Jadav
` (3 preceding siblings ...)
2024-09-17 4:02 ` [PATCH v5 4/4] drm/i915: " Raag Jadav
@ 2024-09-17 4:53 ` Patchwork
2024-09-17 4:53 ` ✗ Fi.CI.SPARSE: " Patchwork
` (2 subsequent siblings)
7 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2024-09-17 4:53 UTC (permalink / raw)
To: Raag Jadav; +Cc: intel-gfx
== Series Details ==
Series: Introduce DRM device wedged event (rev3)
URL : https://patchwork.freedesktop.org/series/138069/
State : warning
== Summary ==
Error: dim checkpatch failed
bfac34ee637f drm: Introduce device wedged event
-:14: WARNING:TYPO_SPELLING: 'upto' may be misspelled - perhaps 'up to'?
#14:
and hence the vendor agnostic nature of the event. It is upto the drivers
^^^^
-:66: WARNING:STATIC_CONST_CHAR_ARRAY: char * array declaration might be better as static const
#66: FILE: drivers/gpu/drm/drm_drv.c:521:
+ char *envp[] = { event_string, NULL };
total: 0 errors, 2 warnings, 0 checks, 86 lines checked
4f99ce118a7b drm: Expose wedge recovery methods
-:26: WARNING:AVOID_EXTERNS: externs should be avoided in .c files
#26: FILE: drivers/gpu/drm/drm_sysfs.c:39:
+extern const char *const wedge_recovery_opts[];
total: 0 errors, 1 warnings, 0 checks, 41 lines checked
c7419fc3e797 drm/xe: Use device wedged event
-:19: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#19:
KERNEL[265.802982] 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, 53 lines checked
39703e96c624 drm/i915: Use device wedged event
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✗ Fi.CI.SPARSE: warning for Introduce DRM device wedged event (rev3)
2024-09-17 4:02 [PATCH v5 0/4] Introduce DRM device wedged event Raag Jadav
` (4 preceding siblings ...)
2024-09-17 4:53 ` ✗ Fi.CI.CHECKPATCH: warning for Introduce DRM device wedged event (rev3) Patchwork
@ 2024-09-17 4:53 ` Patchwork
2024-09-17 5:13 ` ✓ Fi.CI.BAT: success " Patchwork
2024-09-17 12:23 ` ✓ Fi.CI.IGT: " Patchwork
7 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2024-09-17 4:53 UTC (permalink / raw)
To: Raag Jadav; +Cc: intel-gfx
== Series Details ==
Series: Introduce DRM device wedged event (rev3)
URL : https://patchwork.freedesktop.org/series/138069/
State : warning
== Summary ==
Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✓ Fi.CI.BAT: success for Introduce DRM device wedged event (rev3)
2024-09-17 4:02 [PATCH v5 0/4] Introduce DRM device wedged event Raag Jadav
` (5 preceding siblings ...)
2024-09-17 4:53 ` ✗ Fi.CI.SPARSE: " Patchwork
@ 2024-09-17 5:13 ` Patchwork
2024-09-17 12:23 ` ✓ Fi.CI.IGT: " Patchwork
7 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2024-09-17 5:13 UTC (permalink / raw)
To: Raag Jadav; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 14634 bytes --]
== Series Details ==
Series: Introduce DRM device wedged event (rev3)
URL : https://patchwork.freedesktop.org/series/138069/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_15427 -> Patchwork_138069v3
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/index.html
Participating hosts (36 -> 37)
------------------------------
Additional (4): bat-kbl-2 bat-dg2-11 bat-arlh-3 bat-mtlp-8
Missing (3): bat-mtlp-6 fi-snb-2520m fi-bsw-n3050
Known issues
------------
Here are the changes found in Patchwork_138069v3 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@debugfs_test@basic-hwmon:
- bat-mtlp-8: NOTRUN -> [SKIP][1] ([i915#9318])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@debugfs_test@basic-hwmon.html
* igt@fbdev@info:
- bat-kbl-2: NOTRUN -> [SKIP][2] ([i915#1849])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-kbl-2/igt@fbdev@info.html
* igt@fbdev@write:
- bat-arls-1: [PASS][3] -> [DMESG-FAIL][4] ([i915#12102])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/bat-arls-1/igt@fbdev@write.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-arls-1/igt@fbdev@write.html
* igt@gem_lmem_swapping@parallel-random-engines:
- bat-kbl-2: NOTRUN -> [SKIP][5] +39 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-kbl-2/igt@gem_lmem_swapping@parallel-random-engines.html
* igt@gem_lmem_swapping@verify-random:
- bat-mtlp-8: NOTRUN -> [SKIP][6] ([i915#4613]) +3 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@gem_lmem_swapping@verify-random.html
* igt@gem_mmap@basic:
- bat-dg2-11: NOTRUN -> [SKIP][7] ([i915#4083])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@gem_mmap@basic.html
- bat-mtlp-8: NOTRUN -> [SKIP][8] ([i915#4083])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@gem_mmap@basic.html
* igt@gem_mmap_gtt@basic:
- bat-mtlp-8: NOTRUN -> [SKIP][9] ([i915#4077]) +2 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@gem_mmap_gtt@basic.html
* igt@gem_render_tiled_blits@basic:
- bat-mtlp-8: NOTRUN -> [SKIP][10] ([i915#4079]) +1 other test skip
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@gem_render_tiled_blits@basic.html
* igt@gem_tiled_fence_blits@basic:
- bat-dg2-11: NOTRUN -> [SKIP][11] ([i915#4077]) +2 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@gem_tiled_fence_blits@basic.html
* igt@gem_tiled_pread_basic:
- bat-dg2-11: NOTRUN -> [SKIP][12] ([i915#4079]) +1 other test skip
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@gem_tiled_pread_basic.html
* igt@i915_pm_rps@basic-api:
- bat-dg2-11: NOTRUN -> [SKIP][13] ([i915#11681] / [i915#6621])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@i915_pm_rps@basic-api.html
- bat-mtlp-8: NOTRUN -> [SKIP][14] ([i915#11681] / [i915#6621])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@i915_pm_rps@basic-api.html
* igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy:
- bat-dg2-11: NOTRUN -> [SKIP][15] ([i915#4212]) +7 other tests skip
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-mtlp-8: NOTRUN -> [SKIP][16] ([i915#5190])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
- bat-dg2-11: NOTRUN -> [SKIP][17] ([i915#5190])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_addfb_basic@basic-y-tiled-legacy:
- bat-mtlp-8: NOTRUN -> [SKIP][18] ([i915#4212]) +8 other tests skip
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@kms_addfb_basic@basic-y-tiled-legacy.html
- bat-dg2-11: NOTRUN -> [SKIP][19] ([i915#4215] / [i915#5190])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@kms_addfb_basic@basic-y-tiled-legacy.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- bat-dg2-11: NOTRUN -> [SKIP][20] ([i915#4103] / [i915#4213]) +1 other test skip
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-mtlp-8: NOTRUN -> [SKIP][21] ([i915#4213]) +1 other test skip
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_dsc@dsc-basic:
- bat-dg2-11: NOTRUN -> [SKIP][22] ([i915#3555] / [i915#3840])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@kms_dsc@dsc-basic.html
- bat-mtlp-8: NOTRUN -> [SKIP][23] ([i915#3555] / [i915#3840] / [i915#9159])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@kms_dsc@dsc-basic.html
* igt@kms_force_connector_basic@force-load-detect:
- bat-mtlp-8: NOTRUN -> [SKIP][24]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@kms_force_connector_basic@force-load-detect.html
- bat-dg2-11: NOTRUN -> [SKIP][25]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_force_connector_basic@prune-stale-modes:
- bat-dg2-11: NOTRUN -> [SKIP][26] ([i915#5274])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@kms_force_connector_basic@prune-stale-modes.html
- bat-mtlp-8: NOTRUN -> [SKIP][27] ([i915#5274])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@kms_force_connector_basic@prune-stale-modes.html
* igt@kms_pipe_crc_basic@nonblocking-crc:
- bat-arls-5: [PASS][28] -> [INCOMPLETE][29] ([i915#11320])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/bat-arls-5/igt@kms_pipe_crc_basic@nonblocking-crc.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-arls-5/igt@kms_pipe_crc_basic@nonblocking-crc.html
* igt@kms_pm_backlight@basic-brightness:
- bat-dg2-11: NOTRUN -> [SKIP][30] ([i915#5354])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@kms_pm_backlight@basic-brightness.html
* igt@kms_psr@psr-primary-mmap-gtt:
- bat-mtlp-8: NOTRUN -> [SKIP][31] ([i915#4077] / [i915#9688]) +1 other test skip
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@kms_psr@psr-primary-mmap-gtt.html
* igt@kms_psr@psr-sprite-plane-onoff:
- bat-dg2-11: NOTRUN -> [SKIP][32] ([i915#1072] / [i915#9732]) +3 other tests skip
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@kms_psr@psr-sprite-plane-onoff.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-dg2-11: NOTRUN -> [SKIP][33] ([i915#3555])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@kms_setmode@basic-clone-single-crtc.html
- bat-mtlp-8: NOTRUN -> [SKIP][34] ([i915#3555] / [i915#8809])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-fence-flip:
- bat-dg2-11: NOTRUN -> [SKIP][35] ([i915#3708])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@prime_vgem@basic-fence-flip.html
* igt@prime_vgem@basic-fence-mmap:
- bat-dg2-11: NOTRUN -> [SKIP][36] ([i915#3708] / [i915#4077]) +1 other test skip
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@prime_vgem@basic-fence-mmap.html
- bat-mtlp-8: NOTRUN -> [SKIP][37] ([i915#3708] / [i915#4077]) +1 other test skip
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@prime_vgem@basic-fence-mmap.html
* igt@prime_vgem@basic-fence-read:
- bat-mtlp-8: NOTRUN -> [SKIP][38] ([i915#3708]) +1 other test skip
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@prime_vgem@basic-fence-read.html
* igt@prime_vgem@basic-read:
- bat-dg2-11: NOTRUN -> [SKIP][39] ([i915#3291] / [i915#3708]) +2 other tests skip
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-dg2-11/igt@prime_vgem@basic-read.html
* igt@prime_vgem@basic-write:
- bat-mtlp-8: NOTRUN -> [SKIP][40] ([i915#10216] / [i915#3708])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-mtlp-8/igt@prime_vgem@basic-write.html
#### Warnings ####
* igt@fbdev@read:
- bat-arls-1: [DMESG-FAIL][41] ([i915#12102]) -> [FAIL][42] ([i915#12030])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/bat-arls-1/igt@fbdev@read.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-arls-1/igt@fbdev@read.html
* igt@i915_selftest@live:
- bat-arls-5: [DMESG-WARN][43] ([i915#10341] / [i915#12133]) -> [ABORT][44] ([i915#12133] / [i915#12175])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/bat-arls-5/igt@i915_selftest@live.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-arls-5/igt@i915_selftest@live.html
* igt@i915_selftest@live@workarounds:
- bat-arls-5: [DMESG-WARN][45] ([i915#10341] / [i915#11637]) -> [ABORT][46] ([i915#12061])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/bat-arls-5/igt@i915_selftest@live@workarounds.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/bat-arls-5/igt@i915_selftest@live@workarounds.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#10196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10196
[i915#10216]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10216
[i915#10341]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10341
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#11320]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11320
[i915#11343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11343
[i915#11346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11346
[i915#11637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11637
[i915#11666]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11666
[i915#11671]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11671
[i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
[i915#11723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11723
[i915#11724]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11724
[i915#11725]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11725
[i915#11726]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11726
[i915#12030]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12030
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#12102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12102
[i915#12133]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12133
[i915#12175]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12175
[i915#12203]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12203
[i915#1849]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1849
[i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
[i915#4215]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4215
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5274]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5274
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
[i915#8809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8809
[i915#9159]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9159
[i915#9318]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9318
[i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9886]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9886
Build changes
-------------
* Linux: CI_DRM_15427 -> Patchwork_138069v3
CI-20190529: 20190529
CI_DRM_15427: e08d67347c6c3fd164c1346ea9e2ae8788da1976 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8021: f620a7baed19c51e3e9c6f7429bea13b50686d27 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_138069v3: e08d67347c6c3fd164c1346ea9e2ae8788da1976 @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/index.html
[-- Attachment #2: Type: text/html, Size: 17072 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v5 3/4] drm/xe: Use device wedged event
2024-09-17 4:41 ` Ghimiray, Himal Prasad
@ 2024-09-17 6:38 ` Raag Jadav
2024-09-17 8:03 ` Ghimiray, Himal Prasad
0 siblings, 1 reply; 24+ messages in thread
From: Raag Jadav @ 2024-09-17 6:38 UTC (permalink / raw)
To: Ghimiray, Himal Prasad
Cc: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
jani.nikula, joonas.lahtinen, tursulin, lina, intel-xe, intel-gfx,
dri-devel, francois.dugast, aravind.iddamsetty, anshuman.gupta,
andi.shyti, andriy.shevchenko, matthew.d.roper
On Tue, Sep 17, 2024 at 10:11:05AM +0530, Ghimiray, Himal Prasad wrote:
> On 17-09-2024 09:32, Raag Jadav wrote:
> > This was previously attempted as xe specific reset uevent but dropped
> > in commit 77a0d4d1cea2 ("drm/xe/uapi: Remove reset uevent for now")
> > as part of refactoring.
> >
> > Now that we have device wedged event supported by DRM core, make use
> > of it. With this in place userspace will be notified of wedged device,
> > on the basis of which, userspace may take respective action to recover
> > the device.
>
>
> As per earlier discussions, the UAPI was also supposed to provide the reason
> for wedging( which is supposedly used by L0). IS that requirement nomore in
> place ?
Wondering how does that contribute to the usecase?
Raag
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v5 2/4] drm: Expose wedge recovery methods
2024-09-17 4:02 ` [PATCH v5 2/4] drm: Expose wedge recovery methods Raag Jadav
@ 2024-09-17 7:49 ` Jani Nikula
2024-09-19 4:05 ` Raag Jadav
0 siblings, 1 reply; 24+ messages in thread
From: Jani Nikula @ 2024-09-17 7:49 UTC (permalink / raw)
To: Raag Jadav, airlied, simona, lucas.demarchi, thomas.hellstrom,
rodrigo.vivi, joonas.lahtinen, tursulin, lina
Cc: intel-xe, intel-gfx, dri-devel, himal.prasad.ghimiray,
francois.dugast, aravind.iddamsetty, anshuman.gupta, andi.shyti,
andriy.shevchenko, matthew.d.roper, Raag Jadav
On Tue, 17 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
> Now that we have device wedged event in place, add wedge_recovery sysfs
> attribute which will expose recovery methods supported by the DRM device.
> This is useful for userspace consumers in cases where the device supports
> multiple recovery methods which can be used as fallbacks.
>
> $ cat /sys/class/drm/card0/wedge_recovery
> rebind
> bus-reset
> reboot
>
> Signed-off-by: Raag Jadav <raag.jadav@intel.com>
> ---
> drivers/gpu/drm/drm_sysfs.c | 23 +++++++++++++++++++++++
> 1 file changed, 23 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
> index fb3bbb6adcd1..b88cdbfa3b5e 100644
> --- a/drivers/gpu/drm/drm_sysfs.c
> +++ b/drivers/gpu/drm/drm_sysfs.c
> @@ -36,6 +36,8 @@
> #define to_drm_minor(d) dev_get_drvdata(d)
> #define to_drm_connector(d) dev_get_drvdata(d)
>
> +extern const char *const wedge_recovery_opts[];
Data is not an interface. Please add a function for this.
Side note, extern declarations for outside stuff don't belong in .c
files anyway.
BR,
Jani.
> +
> /**
> * DOC: overview
> *
> @@ -508,6 +510,26 @@ void drm_sysfs_connector_property_event(struct drm_connector *connector,
> }
> EXPORT_SYMBOL(drm_sysfs_connector_property_event);
>
> +static ssize_t wedge_recovery_show(struct device *device,
> + struct device_attribute *attr, char *buf)
> +{
> + struct drm_minor *minor = to_drm_minor(device);
> + struct drm_device *dev = minor->dev;
> + int opt, count = 0;
> +
> + for_each_set_bit(opt, &dev->wedge_recovery, DRM_WEDGE_RECOVERY_MAX)
> + count += sysfs_emit_at(buf, count, "%s\n", wedge_recovery_opts[opt]);
> +
> + return count;
> +}
> +static DEVICE_ATTR_RO(wedge_recovery);
> +
> +static struct attribute *minor_dev_attrs[] = {
> + &dev_attr_wedge_recovery.attr,
> + NULL
> +};
> +ATTRIBUTE_GROUPS(minor_dev);
> +
> struct device *drm_sysfs_minor_alloc(struct drm_minor *minor)
> {
> const char *minor_str;
> @@ -532,6 +554,7 @@ struct device *drm_sysfs_minor_alloc(struct drm_minor *minor)
> kdev->devt = MKDEV(DRM_MAJOR, minor->index);
> kdev->class = drm_class;
> kdev->type = &drm_sysfs_device_minor;
> + kdev->groups = minor_dev_groups;
> }
>
> kdev->parent = minor->dev->dev;
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v5 3/4] drm/xe: Use device wedged event
2024-09-17 6:38 ` Raag Jadav
@ 2024-09-17 8:03 ` Ghimiray, Himal Prasad
2024-09-17 8:18 ` Aravind Iddamsetty
0 siblings, 1 reply; 24+ messages in thread
From: Ghimiray, Himal Prasad @ 2024-09-17 8:03 UTC (permalink / raw)
To: Raag Jadav
Cc: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
jani.nikula, joonas.lahtinen, tursulin, lina, intel-xe, intel-gfx,
dri-devel, francois.dugast, aravind.iddamsetty, anshuman.gupta,
andi.shyti, andriy.shevchenko, matthew.d.roper
On 17-09-2024 12:08, Raag Jadav wrote:
> On Tue, Sep 17, 2024 at 10:11:05AM +0530, Ghimiray, Himal Prasad wrote:
>> On 17-09-2024 09:32, Raag Jadav wrote:
>>> This was previously attempted as xe specific reset uevent but dropped
>>> in commit 77a0d4d1cea2 ("drm/xe/uapi: Remove reset uevent for now")
>>> as part of refactoring.
>>>
>>> Now that we have device wedged event supported by DRM core, make use
>>> of it. With this in place userspace will be notified of wedged device,
>>> on the basis of which, userspace may take respective action to recover
>>> the device.
>>
>>
>> As per earlier discussions, the UAPI was also supposed to provide the reason
>> for wedging( which is supposedly used by L0). IS that requirement nomore in
>> place ?
>
> Wondering how does that contribute to the usecase?
ZES_EVENT_TYPE_FLAG_DEVICE_RESET_REQUIRED uses zesDeviceGetState
"Get information about the state of the device - if a reset is required,
reasons for the reset and if the device has been repaired. "
https://spec.oneapi.io/level-zero/latest/sysman/api.html#zes__api_8h_1aec73230b938f08ad632d0b7817b66183
>
> Raag
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v5 3/4] drm/xe: Use device wedged event
2024-09-17 8:03 ` Ghimiray, Himal Prasad
@ 2024-09-17 8:18 ` Aravind Iddamsetty
0 siblings, 0 replies; 24+ messages in thread
From: Aravind Iddamsetty @ 2024-09-17 8:18 UTC (permalink / raw)
To: Ghimiray, Himal Prasad, Raag Jadav
Cc: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
jani.nikula, joonas.lahtinen, tursulin, lina, intel-xe, intel-gfx,
dri-devel, francois.dugast, anshuman.gupta, andi.shyti,
andriy.shevchenko, matthew.d.roper
On 17/09/24 13:33, Ghimiray, Himal Prasad wrote:
>
>
> On 17-09-2024 12:08, Raag Jadav wrote:
>> On Tue, Sep 17, 2024 at 10:11:05AM +0530, Ghimiray, Himal Prasad wrote:
>>> On 17-09-2024 09:32, Raag Jadav wrote:
>>>> This was previously attempted as xe specific reset uevent but dropped
>>>> in commit 77a0d4d1cea2 ("drm/xe/uapi: Remove reset uevent for now")
>>>> as part of refactoring.
>>>>
>>>> Now that we have device wedged event supported by DRM core, make use
>>>> of it. With this in place userspace will be notified of wedged device,
>>>> on the basis of which, userspace may take respective action to recover
>>>> the device.
>>>
>>>
>>> As per earlier discussions, the UAPI was also supposed to provide the reason
>>> for wedging( which is supposedly used by L0). IS that requirement nomore in
>>> place ?
>>
>> Wondering how does that contribute to the usecase?
>
>
> ZES_EVENT_TYPE_FLAG_DEVICE_RESET_REQUIRED uses zesDeviceGetState
>
> "Get information about the state of the device - if a reset is required, reasons for the reset and if the device has been repaired. "
>
> https://spec.oneapi.io/level-zero/latest/sysman/api.html#zes__api_8h_1aec73230b938f08ad632d0b7817b66183
L0 doesn't read this uevent to know the reason, this uevent is for L0 to know that reset is required
https://spec.oneapi.io/level-zero/latest/sysman/api.html#_CPPv4N21zes_event_type_flag_t41ZES_EVENT_TYPE_FLAG_DEVICE_RESET_REQUIREDE.
The reason is via a different API via https://spec.oneapi.io/level-zero/latest/sysman/api.html#zesdevicegetstate for which they can open
any IOCTL which will fail with -ECANCELED when device is wedged and by that they can know the reason.
Thanks,
Aravind.
>
>>
>> Raag
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✓ Fi.CI.IGT: success for Introduce DRM device wedged event (rev3)
2024-09-17 4:02 [PATCH v5 0/4] Introduce DRM device wedged event Raag Jadav
` (6 preceding siblings ...)
2024-09-17 5:13 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2024-09-17 12:23 ` Patchwork
7 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2024-09-17 12:23 UTC (permalink / raw)
To: Raag Jadav; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 69082 bytes --]
== Series Details ==
Series: Introduce DRM device wedged event (rev3)
URL : https://patchwork.freedesktop.org/series/138069/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_15427_full -> Patchwork_138069v3_full
====================================================
Summary
-------
**WARNING**
Minor unknown changes coming with Patchwork_138069v3_full need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_138069v3_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 (9 -> 9)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_138069v3_full:
### IGT changes ###
#### Warnings ####
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling:
- shard-mtlp: [SKIP][1] ([i915#3555] / [i915#8813]) -> [ABORT][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-mtlp-5/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling.html
Known issues
------------
Here are the changes found in Patchwork_138069v3_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@api_intel_bb@blit-reloc-keep-cache:
- shard-dg1: NOTRUN -> [SKIP][3] ([i915#8411])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@api_intel_bb@blit-reloc-keep-cache.html
* igt@device_reset@unbind-cold-reset-rebind:
- shard-rkl: NOTRUN -> [SKIP][4] ([i915#11078])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@device_reset@unbind-cold-reset-rebind.html
* igt@drm_fdinfo@busy-idle-check-all@vcs1:
- shard-dg1: NOTRUN -> [SKIP][5] ([i915#8414]) +7 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@drm_fdinfo@busy-idle-check-all@vcs1.html
* igt@gem_basic@multigpu-create-close:
- shard-dg1: NOTRUN -> [SKIP][6] ([i915#7697])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@gem_basic@multigpu-create-close.html
* igt@gem_busy@semaphore:
- shard-dg2: NOTRUN -> [SKIP][7] ([i915#3936])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@gem_busy@semaphore.html
* igt@gem_ccs@block-copy-compressed:
- shard-dg1: NOTRUN -> [SKIP][8] ([i915#3555] / [i915#9323]) +1 other test skip
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@gem_ccs@block-copy-compressed.html
- shard-tglu: NOTRUN -> [SKIP][9] ([i915#3555] / [i915#9323])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@gem_ccs@block-copy-compressed.html
* igt@gem_ccs@block-multicopy-compressed:
- shard-dg1: NOTRUN -> [SKIP][10] ([i915#9323])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@gem_ccs@block-multicopy-compressed.html
* igt@gem_create@create-ext-set-pat:
- shard-rkl: NOTRUN -> [SKIP][11] ([i915#8562])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-3/igt@gem_create@create-ext-set-pat.html
* igt@gem_ctx_engines@invalid-engines:
- shard-mtlp: [PASS][12] -> [FAIL][13] ([i915#12027])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-mtlp-6/igt@gem_ctx_engines@invalid-engines.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-mtlp-4/igt@gem_ctx_engines@invalid-engines.html
* igt@gem_ctx_persistence@hostile:
- shard-mtlp: [PASS][14] -> [FAIL][15] ([i915#11980])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-mtlp-4/igt@gem_ctx_persistence@hostile.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-mtlp-5/igt@gem_ctx_persistence@hostile.html
* igt@gem_exec_balancer@bonded-semaphore:
- shard-dg1: NOTRUN -> [SKIP][16] ([i915#4812]) +3 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@gem_exec_balancer@bonded-semaphore.html
* igt@gem_exec_balancer@invalid-bonds:
- shard-dg1: NOTRUN -> [SKIP][17] ([i915#4036])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@gem_exec_balancer@invalid-bonds.html
* igt@gem_exec_balancer@parallel:
- shard-rkl: NOTRUN -> [SKIP][18] ([i915#4525]) +1 other test skip
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@gem_exec_balancer@parallel.html
* igt@gem_exec_capture@capture-invisible@smem0:
- shard-glk: NOTRUN -> [SKIP][19] ([i915#6334]) +1 other test skip
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-glk9/igt@gem_exec_capture@capture-invisible@smem0.html
* igt@gem_exec_fair@basic-deadline:
- shard-glk: NOTRUN -> [FAIL][20] ([i915#2846])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-glk6/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-none-share:
- shard-dg1: NOTRUN -> [SKIP][21] ([i915#3539] / [i915#4852]) +2 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@gem_exec_fair@basic-none-share.html
* igt@gem_exec_fair@basic-pace:
- shard-dg2: NOTRUN -> [SKIP][22] ([i915#3539])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@gem_exec_fair@basic-pace.html
* igt@gem_exec_fair@basic-pace-solo:
- shard-rkl: [PASS][23] -> [FAIL][24] ([i915#2842]) +2 other tests fail
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-rkl-6/igt@gem_exec_fair@basic-pace-solo.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@gem_exec_fair@basic-pace-solo.html
* igt@gem_exec_flush@basic-uc-prw-default:
- shard-dg1: NOTRUN -> [SKIP][25] ([i915#3539])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@gem_exec_flush@basic-uc-prw-default.html
* igt@gem_exec_reloc@basic-scanout:
- shard-rkl: NOTRUN -> [SKIP][26] ([i915#3281]) +10 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@gem_exec_reloc@basic-scanout.html
* igt@gem_exec_reloc@basic-write-gtt-active:
- shard-dg1: NOTRUN -> [SKIP][27] ([i915#3281]) +8 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@gem_exec_reloc@basic-write-gtt-active.html
* igt@gem_fence_thrash@bo-write-verify-x:
- shard-dg1: NOTRUN -> [SKIP][28] ([i915#4860]) +1 other test skip
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@gem_fence_thrash@bo-write-verify-x.html
* igt@gem_fenced_exec_thrash@no-spare-fences:
- shard-dg2: NOTRUN -> [SKIP][29] ([i915#4860])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@gem_fenced_exec_thrash@no-spare-fences.html
* igt@gem_lmem_swapping@heavy-random:
- shard-glk: NOTRUN -> [SKIP][30] ([i915#4613]) +2 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-glk5/igt@gem_lmem_swapping@heavy-random.html
* igt@gem_lmem_swapping@massive:
- shard-rkl: NOTRUN -> [SKIP][31] ([i915#4613]) +3 other tests skip
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-3/igt@gem_lmem_swapping@massive.html
* igt@gem_lmem_swapping@smem-oom:
- shard-tglu: NOTRUN -> [SKIP][32] ([i915#4613])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@gem_lmem_swapping@smem-oom.html
* igt@gem_lmem_swapping@smem-oom@lmem0:
- shard-dg1: NOTRUN -> [TIMEOUT][33] ([i915#5493]) +1 other test timeout
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@gem_lmem_swapping@smem-oom@lmem0.html
* igt@gem_mmap_wc@write-cpu-read-wc-unflushed:
- shard-dg1: NOTRUN -> [SKIP][34] ([i915#4083]) +6 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@gem_mmap_wc@write-cpu-read-wc-unflushed.html
* igt@gem_partial_pwrite_pread@write:
- shard-dg1: NOTRUN -> [SKIP][35] ([i915#3282]) +3 other tests skip
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@gem_partial_pwrite_pread@write.html
* igt@gem_partial_pwrite_pread@writes-after-reads-uncached:
- shard-rkl: NOTRUN -> [SKIP][36] ([i915#3282]) +5 other tests skip
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html
* igt@gem_pxp@display-protected-crc:
- shard-rkl: NOTRUN -> [SKIP][37] ([i915#4270])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-3/igt@gem_pxp@display-protected-crc.html
* igt@gem_pxp@reject-modify-context-protection-off-3:
- shard-dg1: NOTRUN -> [SKIP][38] ([i915#4270]) +1 other test skip
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@gem_pxp@reject-modify-context-protection-off-3.html
* igt@gem_render_copy@linear-to-vebox-yf-tiled:
- shard-dg2: NOTRUN -> [SKIP][39] ([i915#5190] / [i915#8428]) +1 other test skip
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@gem_render_copy@linear-to-vebox-yf-tiled.html
* igt@gem_set_tiling_vs_blt@tiled-to-tiled:
- shard-rkl: NOTRUN -> [SKIP][40] ([i915#8411])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html
- shard-dg1: NOTRUN -> [SKIP][41] ([i915#4079])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html
* igt@gem_softpin@evict-snoop-interruptible:
- shard-dg1: NOTRUN -> [SKIP][42] ([i915#4885])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@gem_softpin@evict-snoop-interruptible.html
* igt@gem_tiled_partial_pwrite_pread@writes-after-reads:
- shard-dg1: NOTRUN -> [SKIP][43] ([i915#4077]) +12 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@gem_tiled_partial_pwrite_pread@writes-after-reads.html
* igt@gem_userptr_blits@create-destroy-unsync:
- shard-dg2: NOTRUN -> [SKIP][44] ([i915#3297])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@gem_userptr_blits@create-destroy-unsync.html
* igt@gem_userptr_blits@map-fixed-invalidate-overlap:
- shard-dg1: NOTRUN -> [SKIP][45] ([i915#3297] / [i915#4880]) +1 other test skip
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@gem_userptr_blits@map-fixed-invalidate-overlap.html
* igt@gem_userptr_blits@unsync-overlap:
- shard-dg1: NOTRUN -> [SKIP][46] ([i915#3297]) +1 other test skip
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@gem_userptr_blits@unsync-overlap.html
* igt@gen7_exec_parse@chained-batch:
- shard-rkl: NOTRUN -> [SKIP][47] +19 other tests skip
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-3/igt@gen7_exec_parse@chained-batch.html
* igt@gen7_exec_parse@oacontrol-tracking:
- shard-tglu: NOTRUN -> [SKIP][48] +17 other tests skip
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@gen7_exec_parse@oacontrol-tracking.html
* igt@gen9_exec_parse@batch-without-end:
- shard-dg2: NOTRUN -> [SKIP][49] ([i915#2856])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@gen9_exec_parse@batch-without-end.html
* igt@gen9_exec_parse@bb-start-cmd:
- shard-dg1: NOTRUN -> [SKIP][50] ([i915#2527]) +1 other test skip
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@gen9_exec_parse@bb-start-cmd.html
* igt@gen9_exec_parse@unaligned-jump:
- shard-rkl: NOTRUN -> [SKIP][51] ([i915#2527])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@gen9_exec_parse@unaligned-jump.html
* igt@i915_module_load@load:
- shard-dg1: NOTRUN -> [SKIP][52] ([i915#6227])
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@i915_module_load@load.html
- shard-rkl: NOTRUN -> [SKIP][53] ([i915#6227])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@i915_module_load@load.html
* igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0:
- shard-dg1: [PASS][54] -> [FAIL][55] ([i915#3591])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg1-17/igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0.html
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0.html
* igt@i915_query@test-query-geometry-subslices:
- shard-rkl: NOTRUN -> [SKIP][56] ([i915#5723])
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@i915_query@test-query-geometry-subslices.html
- shard-dg1: NOTRUN -> [SKIP][57] ([i915#5723])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@i915_query@test-query-geometry-subslices.html
* igt@i915_selftest@mock:
- shard-tglu: NOTRUN -> [DMESG-WARN][58] ([i915#9311]) +1 other test dmesg-warn
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@i915_selftest@mock.html
- shard-dg1: NOTRUN -> [DMESG-WARN][59] ([i915#1982] / [i915#9311])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@i915_selftest@mock.html
* igt@i915_selftest@mock@memory_region:
- shard-dg1: NOTRUN -> [DMESG-WARN][60] ([i915#9311])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@i915_selftest@mock@memory_region.html
* igt@kms_addfb_basic@basic-x-tiled-legacy:
- shard-dg2: NOTRUN -> [SKIP][61] ([i915#4212])
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_addfb_basic@basic-x-tiled-legacy.html
* igt@kms_addfb_basic@tile-pitch-mismatch:
- shard-dg1: NOTRUN -> [SKIP][62] ([i915#4212])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@kms_addfb_basic@tile-pitch-mismatch.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-4-y-rc-ccs:
- shard-dg1: NOTRUN -> [SKIP][63] ([i915#8709]) +7 other tests skip
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-4-y-rc-ccs.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
- shard-rkl: NOTRUN -> [SKIP][64] ([i915#1769] / [i915#3555])
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
- shard-dg1: NOTRUN -> [SKIP][65] ([i915#1769] / [i915#3555])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
* igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1:
- shard-snb: [PASS][66] -> [FAIL][67] ([i915#5956]) +1 other test fail
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-snb2/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-snb4/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
* igt@kms_big_fb@4-tiled-16bpp-rotate-180:
- shard-rkl: NOTRUN -> [SKIP][68] ([i915#5286]) +3 other tests skip
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@kms_big_fb@4-tiled-16bpp-rotate-180.html
* igt@kms_big_fb@4-tiled-8bpp-rotate-180:
- shard-dg1: NOTRUN -> [SKIP][69] ([i915#4538] / [i915#5286]) +8 other tests skip
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@kms_big_fb@4-tiled-8bpp-rotate-180.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
- shard-tglu: NOTRUN -> [SKIP][70] ([i915#5286]) +1 other test skip
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html
* igt@kms_big_fb@x-tiled-8bpp-rotate-180:
- shard-tglu: [PASS][71] -> [ABORT][72] ([i915#10354])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-tglu-10/igt@kms_big_fb@x-tiled-8bpp-rotate-180.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-8/igt@kms_big_fb@x-tiled-8bpp-rotate-180.html
* igt@kms_big_fb@y-tiled-64bpp-rotate-270:
- shard-dg1: NOTRUN -> [SKIP][73] ([i915#3638]) +2 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@kms_big_fb@y-tiled-64bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-8bpp-rotate-180:
- shard-dg2: NOTRUN -> [SKIP][74] ([i915#4538] / [i915#5190]) +2 other tests skip
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_big_fb@y-tiled-8bpp-rotate-180.html
* igt@kms_big_fb@y-tiled-8bpp-rotate-270:
- shard-rkl: NOTRUN -> [SKIP][75] ([i915#3638]) +3 other tests skip
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-3/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html
* igt@kms_big_fb@yf-tiled-32bpp-rotate-270:
- shard-dg1: NOTRUN -> [SKIP][76] ([i915#4538]) +1 other test skip
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@kms_big_fb@yf-tiled-32bpp-rotate-270.html
* igt@kms_big_joiner@basic:
- shard-dg1: NOTRUN -> [SKIP][77] ([i915#10656])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@kms_big_joiner@basic.html
* igt@kms_big_joiner@basic-force-joiner:
- shard-dg2: [PASS][78] -> [SKIP][79] ([i915#10656])
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-11/igt@kms_big_joiner@basic-force-joiner.html
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-8/igt@kms_big_joiner@basic-force-joiner.html
* igt@kms_ccs@crc-primary-basic-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][80] ([i915#10307] / [i915#10434] / [i915#6095]) +6 other tests skip
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-2/igt@kms_ccs@crc-primary-basic-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1.html
* igt@kms_ccs@crc-primary-basic-yf-tiled-ccs@pipe-c-hdmi-a-1:
- shard-tglu: NOTRUN -> [SKIP][81] ([i915#6095]) +19 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_ccs@crc-primary-basic-yf-tiled-ccs@pipe-c-hdmi-a-1.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][82] ([i915#10307] / [i915#6095]) +207 other tests skip
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-7/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][83] ([i915#6095]) +69 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-3/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html
* igt@kms_ccs@random-ccs-data-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-3:
- shard-dg1: NOTRUN -> [SKIP][84] ([i915#6095]) +49 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@kms_ccs@random-ccs-data-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-3.html
* igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][85] ([i915#11616] / [i915#7213]) +4 other tests skip
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1.html
* igt@kms_cdclk@plane-scaling@pipe-d-hdmi-a-2:
- shard-dg2: NOTRUN -> [SKIP][86] ([i915#4087]) +3 other tests skip
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-3/igt@kms_cdclk@plane-scaling@pipe-d-hdmi-a-2.html
* igt@kms_chamelium_edid@hdmi-edid-stress-resolution-4k:
- shard-dg2: NOTRUN -> [SKIP][87] ([i915#7828]) +1 other test skip
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_chamelium_edid@hdmi-edid-stress-resolution-4k.html
* igt@kms_chamelium_edid@hdmi-mode-timings:
- shard-tglu: NOTRUN -> [SKIP][88] ([i915#7828]) +1 other test skip
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_chamelium_edid@hdmi-mode-timings.html
* igt@kms_chamelium_frames@hdmi-frame-dump:
- shard-rkl: NOTRUN -> [SKIP][89] ([i915#7828]) +5 other tests skip
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@kms_chamelium_frames@hdmi-frame-dump.html
* igt@kms_chamelium_hpd@hdmi-hpd-fast:
- shard-dg1: NOTRUN -> [SKIP][90] ([i915#7828]) +9 other tests skip
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@kms_chamelium_hpd@hdmi-hpd-fast.html
* igt@kms_content_protection@content-type-change:
- shard-tglu: NOTRUN -> [SKIP][91] ([i915#6944] / [i915#9424])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_content_protection@content-type-change.html
- shard-dg1: NOTRUN -> [SKIP][92] ([i915#9424])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@kms_content_protection@content-type-change.html
* igt@kms_content_protection@dp-mst-type-0:
- shard-dg2: NOTRUN -> [SKIP][93] ([i915#3299])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_content_protection@dp-mst-type-0.html
* igt@kms_content_protection@uevent:
- shard-dg1: NOTRUN -> [SKIP][94] ([i915#7116] / [i915#9424])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@kms_content_protection@uevent.html
* igt@kms_cursor_crc@cursor-offscreen-512x512:
- shard-rkl: NOTRUN -> [SKIP][95] ([i915#11453])
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@kms_cursor_crc@cursor-offscreen-512x512.html
* igt@kms_cursor_crc@cursor-random-512x170:
- shard-dg1: NOTRUN -> [SKIP][96] ([i915#11453])
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@kms_cursor_crc@cursor-random-512x170.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x512:
- shard-dg2: NOTRUN -> [SKIP][97] ([i915#11453])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
* igt@kms_cursor_crc@cursor-sliding-32x10:
- shard-rkl: NOTRUN -> [SKIP][98] ([i915#3555]) +5 other tests skip
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-3/igt@kms_cursor_crc@cursor-sliding-32x10.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- shard-dg1: NOTRUN -> [SKIP][99] ([i915#4103] / [i915#4213])
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot:
- shard-rkl: NOTRUN -> [SKIP][100] ([i915#9067])
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
- shard-dg1: NOTRUN -> [SKIP][101] ([i915#9067])
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html
* igt@kms_cursor_legacy@torture-move:
- shard-tglu: [PASS][102] -> [DMESG-WARN][103] ([i915#10166])
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-tglu-8/igt@kms_cursor_legacy@torture-move.html
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-7/igt@kms_cursor_legacy@torture-move.html
* igt@kms_cursor_legacy@torture-move@pipe-a:
- shard-tglu: [PASS][104] -> [DMESG-WARN][105] ([i915#10166] / [i915#1982])
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-tglu-8/igt@kms_cursor_legacy@torture-move@pipe-a.html
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-7/igt@kms_cursor_legacy@torture-move@pipe-a.html
* igt@kms_display_modes@mst-extended-mode-negative:
- shard-dg1: NOTRUN -> [SKIP][106] ([i915#8588])
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@kms_display_modes@mst-extended-mode-negative.html
* igt@kms_dp_aux_dev:
- shard-dg1: NOTRUN -> [SKIP][107] ([i915#1257])
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@kms_dp_aux_dev.html
* igt@kms_dsc@dsc-basic:
- shard-dg2: NOTRUN -> [SKIP][108] ([i915#3555] / [i915#3840])
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_dsc@dsc-basic.html
* igt@kms_feature_discovery@display-2x:
- shard-rkl: NOTRUN -> [SKIP][109] ([i915#1839])
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-3/igt@kms_feature_discovery@display-2x.html
* igt@kms_feature_discovery@display-3x:
- shard-dg1: NOTRUN -> [SKIP][110] ([i915#1839])
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@kms_feature_discovery@display-3x.html
- shard-tglu: NOTRUN -> [SKIP][111] ([i915#1839])
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_feature_discovery@display-3x.html
* igt@kms_feature_discovery@psr2:
- shard-dg2: NOTRUN -> [SKIP][112] ([i915#658])
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_feature_discovery@psr2.html
* igt@kms_fence_pin_leak:
- shard-dg1: NOTRUN -> [SKIP][113] ([i915#4881])
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@kms_fence_pin_leak.html
* igt@kms_flip@2x-absolute-wf_vblank:
- shard-tglu: NOTRUN -> [SKIP][114] ([i915#3637] / [i915#3966])
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_flip@2x-absolute-wf_vblank.html
* igt@kms_flip@2x-flip-vs-dpms:
- shard-tglu: NOTRUN -> [SKIP][115] ([i915#3637]) +1 other test skip
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_flip@2x-flip-vs-dpms.html
* igt@kms_flip@2x-flip-vs-fences-interruptible:
- shard-dg2: NOTRUN -> [SKIP][116] ([i915#8381])
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_flip@2x-flip-vs-fences-interruptible.html
* igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
- shard-dg1: NOTRUN -> [SKIP][117] ([i915#9934]) +9 other tests skip
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode:
- shard-dg1: NOTRUN -> [SKIP][118] ([i915#2587] / [i915#2672]) +4 other tests skip
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode:
- shard-rkl: NOTRUN -> [SKIP][119] ([i915#2672]) +3 other tests skip
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling:
- shard-dg1: NOTRUN -> [SKIP][120] ([i915#2587] / [i915#2672] / [i915#3555])
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling.html
- shard-tglu: NOTRUN -> [SKIP][121] ([i915#2587] / [i915#2672] / [i915#3555])
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-valid-mode:
- shard-tglu: NOTRUN -> [SKIP][122] ([i915#2587] / [i915#2672])
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling:
- shard-dg2: NOTRUN -> [SKIP][123] ([i915#2672] / [i915#3555])
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][124] ([i915#2672])
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling:
- shard-rkl: NOTRUN -> [SKIP][125] ([i915#2672] / [i915#3555]) +3 other tests skip
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-3/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling:
- shard-dg1: NOTRUN -> [SKIP][126] ([i915#2672] / [i915#3555]) +3 other tests skip
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt:
- shard-dg2: NOTRUN -> [SKIP][127] ([i915#8708]) +4 other tests skip
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render:
- shard-dg1: NOTRUN -> [SKIP][128] +43 other tests skip
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-move:
- shard-dg2: NOTRUN -> [SKIP][129] ([i915#5354]) +7 other tests skip
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-move.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-render:
- shard-dg1: NOTRUN -> [SKIP][130] ([i915#3458]) +17 other tests skip
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-render.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu:
- shard-dg2: NOTRUN -> [SKIP][131] ([i915#3458]) +3 other tests skip
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc:
- shard-dg1: NOTRUN -> [SKIP][132] ([i915#8708]) +17 other tests skip
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-gtt:
- shard-glk: NOTRUN -> [SKIP][133] +203 other tests skip
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-glk9/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite:
- shard-rkl: NOTRUN -> [SKIP][134] ([i915#3023]) +15 other tests skip
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render:
- shard-rkl: NOTRUN -> [SKIP][135] ([i915#1825]) +25 other tests skip
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_hdr@bpc-switch:
- shard-dg1: NOTRUN -> [SKIP][136] ([i915#3555] / [i915#8228]) +2 other tests skip
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@kms_hdr@bpc-switch.html
* igt@kms_hdr@bpc-switch-dpms:
- shard-rkl: NOTRUN -> [SKIP][137] ([i915#3555] / [i915#8228])
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@kms_hdr@bpc-switch-dpms.html
* igt@kms_hdr@bpc-switch-suspend:
- shard-tglu: NOTRUN -> [SKIP][138] ([i915#3555] / [i915#8228])
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_hdr@bpc-switch-suspend.html
* igt@kms_hdr@invalid-metadata-sizes:
- shard-dg2: NOTRUN -> [SKIP][139] ([i915#3555] / [i915#8228])
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_hdr@invalid-metadata-sizes.html
* igt@kms_hdr@static-toggle-dpms:
- shard-dg2: [PASS][140] -> [SKIP][141] ([i915#3555] / [i915#8228]) +1 other test skip
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-11/igt@kms_hdr@static-toggle-dpms.html
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-4/igt@kms_hdr@static-toggle-dpms.html
* igt@kms_panel_fitting@legacy:
- shard-dg1: NOTRUN -> [SKIP][142] ([i915#6301])
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@kms_panel_fitting@legacy.html
* igt@kms_plane_alpha_blend@constant-alpha-max:
- shard-glk: NOTRUN -> [FAIL][143] ([i915#12169])
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-glk9/igt@kms_plane_alpha_blend@constant-alpha-max.html
* igt@kms_plane_alpha_blend@constant-alpha-max@pipe-c-hdmi-a-1:
- shard-glk: NOTRUN -> [FAIL][144] ([i915#10647]) +1 other test fail
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-glk9/igt@kms_plane_alpha_blend@constant-alpha-max@pipe-c-hdmi-a-1.html
* igt@kms_plane_lowres@tiling-yf:
- shard-dg1: NOTRUN -> [SKIP][145] ([i915#3555]) +4 other tests skip
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@kms_plane_lowres@tiling-yf.html
* igt@kms_plane_multiple@tiling-yf:
- shard-dg2: NOTRUN -> [SKIP][146] ([i915#3555] / [i915#8806])
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_plane_multiple@tiling-yf.html
* igt@kms_plane_scaling@intel-max-src-size@pipe-a-dp-4:
- shard-dg2: NOTRUN -> [FAIL][147] ([i915#8292])
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-11/igt@kms_plane_scaling@intel-max-src-size@pipe-a-dp-4.html
* igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-2:
- shard-rkl: NOTRUN -> [FAIL][148] ([i915#8292])
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-6/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-2.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25:
- shard-dg1: NOTRUN -> [SKIP][149] ([i915#6953])
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@kms_plane_scaling@planes-downscale-factor-0-25.html
- shard-tglu: NOTRUN -> [SKIP][150] ([i915#6953])
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_plane_scaling@planes-downscale-factor-0-25.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-a:
- shard-rkl: NOTRUN -> [SKIP][151] ([i915#12247]) +7 other tests skip
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-3/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-a.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-b:
- shard-dg1: NOTRUN -> [SKIP][152] ([i915#12247]) +3 other tests skip
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-b.html
- shard-tglu: NOTRUN -> [SKIP][153] ([i915#12247]) +3 other tests skip
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-b.html
* igt@kms_pm_backlight@fade-with-suspend:
- shard-dg1: NOTRUN -> [SKIP][154] ([i915#5354])
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@kms_pm_backlight@fade-with-suspend.html
* igt@kms_pm_dc@dc5-psr:
- shard-dg1: NOTRUN -> [SKIP][155] ([i915#9685])
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@kms_pm_dc@dc5-psr.html
- shard-tglu: NOTRUN -> [SKIP][156] ([i915#9685])
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_pm_dc@dc5-psr.html
* igt@kms_pm_lpsp@kms-lpsp:
- shard-dg2: [PASS][157] -> [SKIP][158] ([i915#9340])
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-10/igt@kms_pm_lpsp@kms-lpsp.html
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-1/igt@kms_pm_lpsp@kms-lpsp.html
* igt@kms_pm_rpm@dpms-lpsp:
- shard-dg1: NOTRUN -> [SKIP][159] ([i915#9519])
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@kms_pm_rpm@dpms-lpsp.html
* igt@kms_pm_rpm@fences-dpms:
- shard-dg2: NOTRUN -> [SKIP][160] ([i915#4077]) +3 other tests skip
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_pm_rpm@fences-dpms.html
* igt@kms_pm_rpm@modeset-lpsp:
- shard-dg2: [PASS][161] -> [SKIP][162] ([i915#9519]) +3 other tests skip
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-10/igt@kms_pm_rpm@modeset-lpsp.html
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-6/igt@kms_pm_rpm@modeset-lpsp.html
* igt@kms_prime@d3hot:
- shard-rkl: NOTRUN -> [SKIP][163] ([i915#6524])
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@kms_prime@d3hot.html
* igt@kms_psr2_sf@fbc-cursor-plane-update-sf:
- shard-tglu: NOTRUN -> [SKIP][164] ([i915#11520])
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_psr2_sf@fbc-cursor-plane-update-sf.html
* igt@kms_psr2_sf@fbc-overlay-plane-move-continuous-exceed-fully-sf:
- shard-rkl: NOTRUN -> [SKIP][165] ([i915#11520]) +3 other tests skip
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-3/igt@kms_psr2_sf@fbc-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@overlay-plane-move-continuous-sf:
- shard-dg1: NOTRUN -> [SKIP][166] ([i915#11520]) +5 other tests skip
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html
* igt@kms_psr2_sf@plane-move-sf-dmg-area:
- shard-dg2: NOTRUN -> [SKIP][167] ([i915#11520])
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_psr2_sf@plane-move-sf-dmg-area.html
* igt@kms_psr@fbc-pr-primary-render:
- shard-dg2: NOTRUN -> [SKIP][168] ([i915#1072] / [i915#9732]) +4 other tests skip
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_psr@fbc-pr-primary-render.html
* igt@kms_psr@fbc-psr2-sprite-render:
- shard-rkl: NOTRUN -> [SKIP][169] ([i915#1072] / [i915#9732]) +13 other tests skip
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@kms_psr@fbc-psr2-sprite-render.html
* igt@kms_psr@pr-cursor-mmap-gtt:
- shard-tglu: NOTRUN -> [SKIP][170] ([i915#9732]) +4 other tests skip
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_psr@pr-cursor-mmap-gtt.html
* igt@kms_psr@psr2-sprite-mmap-gtt:
- shard-dg1: NOTRUN -> [SKIP][171] ([i915#1072] / [i915#9732]) +22 other tests skip
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-17/igt@kms_psr@psr2-sprite-mmap-gtt.html
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- shard-rkl: NOTRUN -> [SKIP][172] ([i915#9685]) +1 other test skip
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
- shard-rkl: NOTRUN -> [SKIP][173] ([i915#5289])
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
- shard-dg1: NOTRUN -> [SKIP][174] ([i915#5289]) +1 other test skip
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
* igt@kms_setmode@invalid-clone-single-crtc:
- shard-dg2: NOTRUN -> [SKIP][175] ([i915#3555])
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_setmode@invalid-clone-single-crtc.html
* igt@kms_sysfs_edid_timing:
- shard-dg2: [PASS][176] -> [FAIL][177] ([IGT#2])
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-11/igt@kms_sysfs_edid_timing.html
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-8/igt@kms_sysfs_edid_timing.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-dg1: NOTRUN -> [SKIP][178] ([i915#8623])
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@kms_tiled_display@basic-test-pattern.html
- shard-tglu: NOTRUN -> [SKIP][179] ([i915#8623])
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_universal_plane@cursor-fb-leak:
- shard-snb: [PASS][180] -> [FAIL][181] ([i915#9196]) +1 other test fail
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-snb2/igt@kms_universal_plane@cursor-fb-leak.html
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-snb2/igt@kms_universal_plane@cursor-fb-leak.html
- shard-mtlp: [PASS][182] -> [FAIL][183] ([i915#9196]) +1 other test fail
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-mtlp-4/igt@kms_universal_plane@cursor-fb-leak.html
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-mtlp-5/igt@kms_universal_plane@cursor-fb-leak.html
* igt@kms_vrr@lobf:
- shard-dg1: NOTRUN -> [SKIP][184] ([i915#11920])
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@kms_vrr@lobf.html
* igt@kms_vrr@max-min:
- shard-dg1: NOTRUN -> [SKIP][185] ([i915#9906])
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@kms_vrr@max-min.html
- shard-tglu: NOTRUN -> [SKIP][186] ([i915#9906])
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@kms_vrr@max-min.html
* igt@kms_vrr@seamless-rr-switch-vrr:
- shard-rkl: NOTRUN -> [SKIP][187] ([i915#9906])
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-3/igt@kms_vrr@seamless-rr-switch-vrr.html
* igt@kms_writeback@writeback-fb-id:
- shard-rkl: NOTRUN -> [SKIP][188] ([i915#2437])
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@kms_writeback@writeback-fb-id.html
* igt@kms_writeback@writeback-invalid-parameters:
- shard-glk: NOTRUN -> [SKIP][189] ([i915#2437]) +1 other test skip
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-glk5/igt@kms_writeback@writeback-invalid-parameters.html
- shard-dg2: NOTRUN -> [SKIP][190] ([i915#2437])
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@kms_writeback@writeback-invalid-parameters.html
* igt@perf@mi-rpc:
- shard-dg1: NOTRUN -> [SKIP][191] ([i915#2434])
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@perf@mi-rpc.html
* igt@perf@unprivileged-single-ctx-counters:
- shard-dg1: NOTRUN -> [SKIP][192] ([i915#2433])
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@perf@unprivileged-single-ctx-counters.html
* igt@perf_pmu@cpu-hotplug:
- shard-rkl: NOTRUN -> [SKIP][193] ([i915#8850])
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@perf_pmu@cpu-hotplug.html
* igt@perf_pmu@rc6-all-gts:
- shard-dg1: NOTRUN -> [SKIP][194] ([i915#8516]) +1 other test skip
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@perf_pmu@rc6-all-gts.html
* igt@perf_pmu@rc6@other-idle-gt0:
- shard-tglu: NOTRUN -> [SKIP][195] ([i915#8516])
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-5/igt@perf_pmu@rc6@other-idle-gt0.html
* igt@prime_vgem@basic-fence-flip:
- shard-dg1: NOTRUN -> [SKIP][196] ([i915#3708]) +2 other tests skip
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@prime_vgem@basic-fence-flip.html
* igt@prime_vgem@basic-gtt:
- shard-dg2: NOTRUN -> [SKIP][197] ([i915#3708] / [i915#4077])
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-10/igt@prime_vgem@basic-gtt.html
* igt@prime_vgem@fence-read-hang:
- shard-rkl: NOTRUN -> [SKIP][198] ([i915#3708])
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-3/igt@prime_vgem@fence-read-hang.html
* igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all:
- shard-dg1: NOTRUN -> [SKIP][199] ([i915#9917])
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-13/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html
#### Possible fixes ####
* igt@gem_ctx_freq@sysfs:
- shard-dg2: [FAIL][200] ([i915#9561]) -> [PASS][201] +1 other test pass
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-10/igt@gem_ctx_freq@sysfs.html
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-1/igt@gem_ctx_freq@sysfs.html
* igt@gem_exec_fair@basic-pace-share:
- shard-tglu: [FAIL][202] ([i915#2842]) -> [PASS][203] +1 other test pass
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-tglu-9/igt@gem_exec_fair@basic-pace-share.html
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-3/igt@gem_exec_fair@basic-pace-share.html
* igt@gem_exec_schedule@wide@rcs0:
- shard-mtlp: [DMESG-WARN][204] -> [PASS][205] +1 other test pass
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-mtlp-2/igt@gem_exec_schedule@wide@rcs0.html
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-mtlp-1/igt@gem_exec_schedule@wide@rcs0.html
* igt@gem_lmem_swapping@smem-oom@lmem0:
- shard-dg2: [TIMEOUT][206] ([i915#5493]) -> [PASS][207] +1 other test pass
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-3/igt@gem_lmem_swapping@smem-oom@lmem0.html
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-6/igt@gem_lmem_swapping@smem-oom@lmem0.html
* igt@i915_module_load@reload-with-fault-injection:
- shard-dg1: [ABORT][208] ([i915#9820]) -> [PASS][209]
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg1-18/igt@i915_module_load@reload-with-fault-injection.html
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-14/igt@i915_module_load@reload-with-fault-injection.html
* igt@i915_pm_rc6_residency@rc6-idle@gt0-bcs0:
- shard-dg1: [FAIL][210] ([i915#3591]) -> [PASS][211]
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg1-17/igt@i915_pm_rc6_residency@rc6-idle@gt0-bcs0.html
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@gt0-bcs0.html
* igt@kms_atomic_transition@modeset-transition-fencing:
- shard-glk: [FAIL][212] ([i915#12238]) -> [PASS][213]
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-glk8/igt@kms_atomic_transition@modeset-transition-fencing.html
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-glk5/igt@kms_atomic_transition@modeset-transition-fencing.html
* igt@kms_atomic_transition@modeset-transition-fencing@2x-outputs:
- shard-glk: [FAIL][214] ([i915#11859]) -> [PASS][215]
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-glk8/igt@kms_atomic_transition@modeset-transition-fencing@2x-outputs.html
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-glk5/igt@kms_atomic_transition@modeset-transition-fencing@2x-outputs.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
- shard-mtlp: [FAIL][216] ([i915#11808] / [i915#5956]) -> [PASS][217] +1 other test pass
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-mtlp-1/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-mtlp-8/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
* igt@kms_flip@2x-plain-flip-ts-check:
- shard-snb: [FAIL][218] ([i915#2122]) -> [PASS][219] +1 other test pass
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-snb7/igt@kms_flip@2x-plain-flip-ts-check.html
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-snb5/igt@kms_flip@2x-plain-flip-ts-check.html
* igt@kms_hdr@bpc-switch-dpms:
- shard-dg2: [SKIP][220] ([i915#3555] / [i915#8228]) -> [PASS][221]
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-5/igt@kms_hdr@bpc-switch-dpms.html
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-11/igt@kms_hdr@bpc-switch-dpms.html
* igt@kms_pm_dc@dc9-dpms:
- shard-tglu: [SKIP][222] ([i915#4281]) -> [PASS][223]
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-tglu-7/igt@kms_pm_dc@dc9-dpms.html
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-tglu-3/igt@kms_pm_dc@dc9-dpms.html
* igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
- shard-dg2: [SKIP][224] ([i915#9519]) -> [PASS][225] +1 other test pass
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-2/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-11/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
- shard-rkl: [SKIP][226] ([i915#9519]) -> [PASS][227] +1 other test pass
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-rkl-4/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-6/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
#### Warnings ####
* igt@kms_cursor_crc@cursor-rapid-movement-512x170:
- shard-dg2: [SKIP][228] ([i915#11453] / [i915#3359]) -> [SKIP][229] ([i915#11453])
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-11/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-4/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html
* igt@kms_cursor_crc@cursor-sliding-512x170:
- shard-dg2: [SKIP][230] ([i915#11453]) -> [SKIP][231] ([i915#11453] / [i915#3359]) +1 other test skip
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-2/igt@kms_cursor_crc@cursor-sliding-512x170.html
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-11/igt@kms_cursor_crc@cursor-sliding-512x170.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode:
- shard-mtlp: [SKIP][232] ([i915#3555] / [i915#8810]) -> [ABORT][233] ([i915#10354])
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-mtlp-5/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode.html
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite:
- shard-dg2: [SKIP][234] ([i915#10433] / [i915#3458]) -> [SKIP][235] ([i915#3458]) +2 other tests skip
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite.html
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-11/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-rte:
- shard-dg2: [SKIP][236] ([i915#3458]) -> [SKIP][237] ([i915#10433] / [i915#3458])
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-11/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html
* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-rkl: [SKIP][238] ([i915#4816]) -> [SKIP][239] ([i915#4070] / [i915#4816])
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-rkl-3/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-5/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
* igt@kms_plane_scaling@intel-max-src-size:
- shard-dg2: [SKIP][240] ([i915#6953] / [i915#9423]) -> [FAIL][241] ([i915#8292])
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-2/igt@kms_plane_scaling@intel-max-src-size.html
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-11/igt@kms_plane_scaling@intel-max-src-size.html
* igt@kms_pm_dc@dc6-dpms:
- shard-rkl: [FAIL][242] ([i915#9295]) -> [SKIP][243] ([i915#3361])
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-rkl-5/igt@kms_pm_dc@dc6-dpms.html
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-rkl-1/igt@kms_pm_dc@dc6-dpms.html
* igt@kms_psr@fbc-pr-primary-mmap-gtt:
- shard-dg2: [SKIP][244] ([i915#1072] / [i915#9732]) -> [SKIP][245] ([i915#1072] / [i915#9673] / [i915#9732]) +13 other tests skip
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-5/igt@kms_psr@fbc-pr-primary-mmap-gtt.html
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-11/igt@kms_psr@fbc-pr-primary-mmap-gtt.html
* igt@kms_psr@fbc-psr-cursor-plane-move:
- shard-dg2: [SKIP][246] ([i915#1072] / [i915#9673] / [i915#9732]) -> [SKIP][247] ([i915#1072] / [i915#9732]) +12 other tests skip
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-11/igt@kms_psr@fbc-psr-cursor-plane-move.html
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-5/igt@kms_psr@fbc-psr-cursor-plane-move.html
* igt@kms_rotation_crc@bad-pixel-format:
- shard-dg2: [SKIP][248] ([i915#11131]) -> [SKIP][249] ([i915#11131] / [i915#4235])
[248]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15427/shard-dg2-4/igt@kms_rotation_crc@bad-pixel-format.html
[249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/shard-dg2-11/igt@kms_rotation_crc@bad-pixel-format.html
[IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2
[i915#10166]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10166
[i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
[i915#10354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10354
[i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
[i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
[i915#10647]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10647
[i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078
[i915#11131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11131
[i915#11453]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11453
[i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
[i915#11616]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11616
[i915#11808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11808
[i915#11859]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11859
[i915#11920]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11920
[i915#11980]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11980
[i915#12027]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12027
[i915#12169]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12169
[i915#12238]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12238
[i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247
[i915#1257]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1257
[i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
[i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
[i915#1982]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1982
[i915#2122]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2122
[i915#2433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2433
[i915#2434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2434
[i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
[i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
[i915#2842]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2846
[i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
[i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
[i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
[i915#3359]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3359
[i915#3361]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3361
[i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
[i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3591
[i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#3936]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3936
[i915#3966]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3966
[i915#4036]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4036
[i915#4070]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4070
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4087]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4087
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
[i915#4235]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4235
[i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
[i915#4281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4281
[i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
[i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
[i915#4816]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4816
[i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
[i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
[i915#4880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4880
[i915#4881]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4881
[i915#4885]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4885
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
[i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#5493]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5493
[i915#5723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5723
[i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956
[i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
[i915#6227]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6227
[i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
[i915#6334]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6334
[i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
[i915#6944]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944
[i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
[i915#7116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7116
[i915#7213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7213
[i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
[i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
[i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
[i915#8292]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8292
[i915#8381]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8381
[i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
[i915#8414]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8414
[i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
[i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516
[i915#8562]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8562
[i915#8588]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8588
[i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623
[i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
[i915#8709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8709
[i915#8806]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8806
[i915#8810]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8810
[i915#8813]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8813
[i915#8850]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8850
[i915#9067]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9067
[i915#9196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9196
[i915#9295]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9295
[i915#9311]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9311
[i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
[i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340
[i915#9423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9423
[i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
[i915#9519]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9519
[i915#9561]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9561
[i915#9673]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9673
[i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9820]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9820
[i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
[i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917
[i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934
Build changes
-------------
* Linux: CI_DRM_15427 -> Patchwork_138069v3
CI-20190529: 20190529
CI_DRM_15427: e08d67347c6c3fd164c1346ea9e2ae8788da1976 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8021: f620a7baed19c51e3e9c6f7429bea13b50686d27 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_138069v3: e08d67347c6c3fd164c1346ea9e2ae8788da1976 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v3/index.html
[-- Attachment #2: Type: text/html, Size: 84928 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v5 2/4] drm: Expose wedge recovery methods
2024-09-17 7:49 ` Jani Nikula
@ 2024-09-19 4:05 ` Raag Jadav
2024-09-19 7:38 ` Jani Nikula
0 siblings, 1 reply; 24+ messages in thread
From: Raag Jadav @ 2024-09-19 4:05 UTC (permalink / raw)
To: Jani Nikula
Cc: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
joonas.lahtinen, tursulin, lina, intel-xe, intel-gfx, dri-devel,
himal.prasad.ghimiray, francois.dugast, aravind.iddamsetty,
anshuman.gupta, andi.shyti, andriy.shevchenko, matthew.d.roper
On Tue, Sep 17, 2024 at 10:49:07AM +0300, Jani Nikula wrote:
> On Tue, 17 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
> > Now that we have device wedged event in place, add wedge_recovery sysfs
> > attribute which will expose recovery methods supported by the DRM device.
> > This is useful for userspace consumers in cases where the device supports
> > multiple recovery methods which can be used as fallbacks.
> >
> > $ cat /sys/class/drm/card0/wedge_recovery
> > rebind
> > bus-reset
> > reboot
> >
> > Signed-off-by: Raag Jadav <raag.jadav@intel.com>
> > ---
> > drivers/gpu/drm/drm_sysfs.c | 23 +++++++++++++++++++++++
> > 1 file changed, 23 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
> > index fb3bbb6adcd1..b88cdbfa3b5e 100644
> > --- a/drivers/gpu/drm/drm_sysfs.c
> > +++ b/drivers/gpu/drm/drm_sysfs.c
> > @@ -36,6 +36,8 @@
> > #define to_drm_minor(d) dev_get_drvdata(d)
> > #define to_drm_connector(d) dev_get_drvdata(d)
> >
> > +extern const char *const wedge_recovery_opts[];
>
> Data is not an interface. Please add a function for this.
For a single user?
> Side note, extern declarations for outside stuff don't belong in .c
> files anyway.
Sure.
Raag
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v5 2/4] drm: Expose wedge recovery methods
2024-09-19 4:05 ` Raag Jadav
@ 2024-09-19 7:38 ` Jani Nikula
2024-09-19 8:38 ` Raag Jadav
0 siblings, 1 reply; 24+ messages in thread
From: Jani Nikula @ 2024-09-19 7:38 UTC (permalink / raw)
To: Raag Jadav
Cc: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
joonas.lahtinen, tursulin, lina, intel-xe, intel-gfx, dri-devel,
himal.prasad.ghimiray, francois.dugast, aravind.iddamsetty,
anshuman.gupta, andi.shyti, andriy.shevchenko, matthew.d.roper
On Thu, 19 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
> On Tue, Sep 17, 2024 at 10:49:07AM +0300, Jani Nikula wrote:
>> On Tue, 17 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
>> > Now that we have device wedged event in place, add wedge_recovery sysfs
>> > attribute which will expose recovery methods supported by the DRM device.
>> > This is useful for userspace consumers in cases where the device supports
>> > multiple recovery methods which can be used as fallbacks.
>> >
>> > $ cat /sys/class/drm/card0/wedge_recovery
>> > rebind
>> > bus-reset
>> > reboot
>> >
>> > Signed-off-by: Raag Jadav <raag.jadav@intel.com>
>> > ---
>> > drivers/gpu/drm/drm_sysfs.c | 23 +++++++++++++++++++++++
>> > 1 file changed, 23 insertions(+)
>> >
>> > diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
>> > index fb3bbb6adcd1..b88cdbfa3b5e 100644
>> > --- a/drivers/gpu/drm/drm_sysfs.c
>> > +++ b/drivers/gpu/drm/drm_sysfs.c
>> > @@ -36,6 +36,8 @@
>> > #define to_drm_minor(d) dev_get_drvdata(d)
>> > #define to_drm_connector(d) dev_get_drvdata(d)
>> >
>> > +extern const char *const wedge_recovery_opts[];
>>
>> Data is not an interface. Please add a function for this.
>
> For a single user?
Yes.
Well, you kind of have two, and both places need to do bounds checking
on indexing the array. You also need to do bounds checking on the string
manipulation, you can't just strcat and assume it'll be all right.
BR,
Jani.
>
>> Side note, extern declarations for outside stuff don't belong in .c
>> files anyway.
>
> Sure.
>
> Raag
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v5 1/4] drm: Introduce device wedged event
2024-09-17 4:02 ` [PATCH v5 1/4] drm: Introduce " Raag Jadav
@ 2024-09-19 7:43 ` Jani Nikula
0 siblings, 0 replies; 24+ messages in thread
From: Jani Nikula @ 2024-09-19 7:43 UTC (permalink / raw)
To: Raag Jadav, airlied, simona, lucas.demarchi, thomas.hellstrom,
rodrigo.vivi, joonas.lahtinen, tursulin, lina
Cc: intel-xe, intel-gfx, dri-devel, himal.prasad.ghimiray,
francois.dugast, aravind.iddamsetty, anshuman.gupta, andi.shyti,
andriy.shevchenko, matthew.d.roper, Raag Jadav
On Tue, 17 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
> Introduce device wedged event, which will notify userspace of wedged
> (hanged/unusable) state of the DRM device through a uevent. This is
> useful especially in cases where the device is no longer operating as
> expected and has become unrecoverable from driver context.
>
> Purpose of this implementation is to provide drivers a way to recover
> through userspace intervention. Different drivers may have different
> ideas of a "wedged device" depending on their hardware implementation,
> and hence the vendor agnostic nature of the event. It is upto the drivers
> to decide when they see the need for recovery and how they want to recover
> from the available methods.
>
> Current implementation defines three recovery methods, out of which,
> drivers can choose to support any one or multiple of them. Preferred
> recovery method will be sent in the uevent environment as WEDGED=<method>.
> Userspace consumers (sysadmin) can define udev rules to parse this event
> and take respective action to recover the device.
>
> Method | Consumer expectations
> -----------|-----------------------------------
> rebind | unbind + rebind driver
> bus-reset | unbind + reset bus device + rebind
> reboot | reboot system
>
> v4: s/drm_dev_wedged/drm_dev_wedged_event
> Use drm_info() (Jani)
> Kernel doc adjustment (Aravind)
> v5: Send recovery method with uevent (Lina)
>
> Signed-off-by: Raag Jadav <raag.jadav@intel.com>
> ---
> drivers/gpu/drm/drm_drv.c | 37 +++++++++++++++++++++++++++++++++++++
> include/drm/drm_device.h | 24 ++++++++++++++++++++++++
> include/drm/drm_drv.h | 1 +
> 3 files changed, 62 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> index ac30b0ec9d93..1e850a9f608d 100644
> --- a/drivers/gpu/drm/drm_drv.c
> +++ b/drivers/gpu/drm/drm_drv.c
> @@ -497,6 +497,43 @@ void drm_dev_unplug(struct drm_device *dev)
> }
> EXPORT_SYMBOL(drm_dev_unplug);
>
> +const char *const wedge_recovery_opts[] = {
> + [DRM_WEDGE_RECOVERY_REBIND] = "rebind",
> + [DRM_WEDGE_RECOVERY_BUS_RESET] = "bus-reset",
> + [DRM_WEDGE_RECOVERY_REBOOT] = "reboot",
> +};
> +
> +/**
> + * drm_dev_wedged_event - generate a device wedged uevent
> + * @dev: DRM device
> + * @method: method to be used for recovery
> + *
> + * This generates a device wedged uevent for the DRM device specified by @dev.
> + * Recovery @method from wedge_recovery_opts[] (if supprted by the device) is
> + * sent in the uevent environment as WEDGED=<method>, on the basis of which,
> + * userspace may take respective action to recover the device.
> + *
> + * Returns: 0 on success, or negative error code otherwise.
> + */
> +int drm_dev_wedged_event(struct drm_device *dev, enum wedge_recovery_method method)
> +{
> + char event_string[32] = "WEDGED=";
> + char *envp[] = { event_string, NULL };
> + bool supported;
> +
> + supported = test_bit(method, &dev->wedge_recovery);
> + if (unlikely(!supported)) {
The unlikely is unnecessary.
> + drm_err(dev, "device wedged, recovery method not supported\n");
> + return -EOPNOTSUPP;
> + }
> +
> + strcat(event_string, wedge_recovery_opts[method]);
Emphasizing here too, you need bounds checking for
wedge_recovery_opts. And avoid strcat, it's hardly ever the right
choice, as you'll need bounds checking on event_string.
> +
> + drm_info(dev, "device wedged, generating uevent\n");
> + return kobject_uevent_env(&dev->primary->kdev->kobj, KOBJ_CHANGE, envp);
> +}
> +EXPORT_SYMBOL(drm_dev_wedged_event);
> +
> /*
> * DRM internal mount
> * We want to be able to allocate our own "struct address_space" to control
> diff --git a/include/drm/drm_device.h b/include/drm/drm_device.h
> index c91f87b5242d..e4f32967b5ae 100644
> --- a/include/drm/drm_device.h
> +++ b/include/drm/drm_device.h
> @@ -40,6 +40,27 @@ enum switch_power_state {
> DRM_SWITCH_POWER_DYNAMIC_OFF = 3,
> };
>
> +/**
> + * enum wedge_recovery_method - Recovery method for wedged device in order
> + * of severity. To be set as bit fields in drm_device.wedge_recovery variable.
> + * Drivers can choose to support any one or multiple of them depending on their
> + * needs.
> + */
> +
> +enum wedge_recovery_method {
> + /** @DRM_WEDGE_RECOVERY_REBIND: unbind + rebind driver */
> + DRM_WEDGE_RECOVERY_REBIND = 0,
I don't see a need to initialize the enumerations, it's automatic.
> +
> + /** @DRM_WEDGE_RECOVERY_BUS_RESET: unbind + reset bus device + rebind */
> + DRM_WEDGE_RECOVERY_BUS_RESET = 1,
> +
> + /** @DRM_WEDGE_RECOVERY_REBOOT: reboot system */
> + DRM_WEDGE_RECOVERY_REBOOT = 2,
> +
> + /** @DRM_WEDGE_RECOVERY_MAX: for bounds checking, do not use */
> + DRM_WEDGE_RECOVERY_MAX = 3,
> +};
> +
> /**
> * struct drm_device - DRM device structure
> *
> @@ -317,6 +338,9 @@ struct drm_device {
> * Root directory for debugfs files.
> */
> struct dentry *debugfs_root;
> +
> + /** @wedge_recovery: Supported recovery methods for wedged device */
> + unsigned long wedge_recovery;
> };
>
> #endif
> diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
> index 02ea4e3248fd..6e02187f1f6c 100644
> --- a/include/drm/drm_drv.h
> +++ b/include/drm/drm_drv.h
> @@ -461,6 +461,7 @@ void drm_put_dev(struct drm_device *dev);
> bool drm_dev_enter(struct drm_device *dev, int *idx);
> void drm_dev_exit(int idx);
> void drm_dev_unplug(struct drm_device *dev);
> +int drm_dev_wedged_event(struct drm_device *dev, enum wedge_recovery_method method);
>
> /**
> * drm_dev_is_unplugged - is a DRM device unplugged
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v5 2/4] drm: Expose wedge recovery methods
2024-09-19 7:38 ` Jani Nikula
@ 2024-09-19 8:38 ` Raag Jadav
2024-09-19 9:24 ` Jani Nikula
2024-09-19 13:45 ` Andy Shevchenko
0 siblings, 2 replies; 24+ messages in thread
From: Raag Jadav @ 2024-09-19 8:38 UTC (permalink / raw)
To: Jani Nikula
Cc: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
joonas.lahtinen, tursulin, lina, intel-xe, intel-gfx, dri-devel,
himal.prasad.ghimiray, francois.dugast, aravind.iddamsetty,
anshuman.gupta, andi.shyti, andriy.shevchenko, matthew.d.roper
On Thu, Sep 19, 2024 at 10:38:51AM +0300, Jani Nikula wrote:
> On Thu, 19 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
> > On Tue, Sep 17, 2024 at 10:49:07AM +0300, Jani Nikula wrote:
> >> On Tue, 17 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
> >> > Now that we have device wedged event in place, add wedge_recovery sysfs
> >> > attribute which will expose recovery methods supported by the DRM device.
> >> > This is useful for userspace consumers in cases where the device supports
> >> > multiple recovery methods which can be used as fallbacks.
> >> >
> >> > $ cat /sys/class/drm/card0/wedge_recovery
> >> > rebind
> >> > bus-reset
> >> > reboot
> >> >
> >> > Signed-off-by: Raag Jadav <raag.jadav@intel.com>
> >> > ---
> >> > drivers/gpu/drm/drm_sysfs.c | 23 +++++++++++++++++++++++
> >> > 1 file changed, 23 insertions(+)
> >> >
> >> > diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
> >> > index fb3bbb6adcd1..b88cdbfa3b5e 100644
> >> > --- a/drivers/gpu/drm/drm_sysfs.c
> >> > +++ b/drivers/gpu/drm/drm_sysfs.c
> >> > @@ -36,6 +36,8 @@
> >> > #define to_drm_minor(d) dev_get_drvdata(d)
> >> > #define to_drm_connector(d) dev_get_drvdata(d)
> >> >
> >> > +extern const char *const wedge_recovery_opts[];
> >>
> >> Data is not an interface. Please add a function for this.
> >
> > For a single user?
>
> Yes.
>
> Well, you kind of have two, and both places need to do bounds checking
> on indexing the array. You also need to do bounds checking on the string
> manipulation, you can't just strcat and assume it'll be all right.
Which would be true if we were to receive an unknown string. Here we sorta
know it offhand so we're not gonna shoot in our foot :D
Anyway, would you prefer strlcat instead?
Raag
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v5 2/4] drm: Expose wedge recovery methods
2024-09-19 8:38 ` Raag Jadav
@ 2024-09-19 9:24 ` Jani Nikula
2024-09-19 11:33 ` Raag Jadav
2024-09-19 13:45 ` Andy Shevchenko
1 sibling, 1 reply; 24+ messages in thread
From: Jani Nikula @ 2024-09-19 9:24 UTC (permalink / raw)
To: Raag Jadav
Cc: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
joonas.lahtinen, tursulin, lina, intel-xe, intel-gfx, dri-devel,
himal.prasad.ghimiray, francois.dugast, aravind.iddamsetty,
anshuman.gupta, andi.shyti, andriy.shevchenko, matthew.d.roper
On Thu, 19 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
> On Thu, Sep 19, 2024 at 10:38:51AM +0300, Jani Nikula wrote:
>> On Thu, 19 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
>> > On Tue, Sep 17, 2024 at 10:49:07AM +0300, Jani Nikula wrote:
>> >> On Tue, 17 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
>> >> >
>> >> > +extern const char *const wedge_recovery_opts[];
>> >>
>> >> Data is not an interface. Please add a function for this.
>> >
>> > For a single user?
>>
>> Yes.
>>
>> Well, you kind of have two, and both places need to do bounds checking
>> on indexing the array. You also need to do bounds checking on the string
>> manipulation, you can't just strcat and assume it'll be all right.
>
> Which would be true if we were to receive an unknown string. Here we sorta
> know it offhand so we're not gonna shoot in our foot :D
The thing about long term code maintenance is that "we know" often turns
into "not too obvious" and "probably" somewhere down the line, as
features get added and code gets refactored and moved about.
Here, it only takes a new, longer string, and failure to manually check
that the lengths don't exceed the magic 32 bytes. Just be safe from the
start, and you don't have to worry about it later.
> Anyway, would you prefer strlcat instead?
I think the cleaner option is:
char event_string[32];
snprintf(event_string, sizeof(event_string), "WEDGED=%s", wedge_name(method));
which is also what most other code constructing environments for
kobject_uevent_env() do.
BR,
Jani.
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v5 2/4] drm: Expose wedge recovery methods
2024-09-19 9:24 ` Jani Nikula
@ 2024-09-19 11:33 ` Raag Jadav
2024-09-19 11:39 ` Jani Nikula
0 siblings, 1 reply; 24+ messages in thread
From: Raag Jadav @ 2024-09-19 11:33 UTC (permalink / raw)
To: Jani Nikula
Cc: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
joonas.lahtinen, tursulin, lina, intel-xe, intel-gfx, dri-devel,
himal.prasad.ghimiray, francois.dugast, aravind.iddamsetty,
anshuman.gupta, andi.shyti, andriy.shevchenko, matthew.d.roper
On Thu, Sep 19, 2024 at 12:24:09PM +0300, Jani Nikula wrote:
> On Thu, 19 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
> > On Thu, Sep 19, 2024 at 10:38:51AM +0300, Jani Nikula wrote:
> >> On Thu, 19 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
> >> > On Tue, Sep 17, 2024 at 10:49:07AM +0300, Jani Nikula wrote:
> >> >> On Tue, 17 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
> >> >> >
> >> >> > +extern const char *const wedge_recovery_opts[];
> >> >>
> >> >> Data is not an interface. Please add a function for this.
> >> >
> >> > For a single user?
> >>
> >> Yes.
> >>
> >> Well, you kind of have two, and both places need to do bounds checking
> >> on indexing the array. You also need to do bounds checking on the string
> >> manipulation, you can't just strcat and assume it'll be all right.
> >
> > Which would be true if we were to receive an unknown string. Here we sorta
> > know it offhand so we're not gonna shoot in our foot :D
>
> The thing about long term code maintenance is that "we know" often turns
> into "not too obvious" and "probably" somewhere down the line, as
> features get added and code gets refactored and moved about.
>
> Here, it only takes a new, longer string, and failure to manually check
> that the lengths don't exceed the magic 32 bytes. Just be safe from the
> start, and you don't have to worry about it later.
On that note...
> > Anyway, would you prefer strlcat instead?
>
> I think the cleaner option is:
>
> char event_string[32];
>
> snprintf(event_string, sizeof(event_string), "WEDGED=%s", wedge_name(method));
>
> which is also what most other code constructing environments for
> kobject_uevent_env() do.
...should we use kasprintf instead of hardcoding size?
Raag
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v5 2/4] drm: Expose wedge recovery methods
2024-09-19 11:33 ` Raag Jadav
@ 2024-09-19 11:39 ` Jani Nikula
0 siblings, 0 replies; 24+ messages in thread
From: Jani Nikula @ 2024-09-19 11:39 UTC (permalink / raw)
To: Raag Jadav
Cc: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
joonas.lahtinen, tursulin, lina, intel-xe, intel-gfx, dri-devel,
himal.prasad.ghimiray, francois.dugast, aravind.iddamsetty,
anshuman.gupta, andi.shyti, andriy.shevchenko, matthew.d.roper
On Thu, 19 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
> On Thu, Sep 19, 2024 at 12:24:09PM +0300, Jani Nikula wrote:
>> On Thu, 19 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
>> > On Thu, Sep 19, 2024 at 10:38:51AM +0300, Jani Nikula wrote:
>> >> On Thu, 19 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
>> >> > On Tue, Sep 17, 2024 at 10:49:07AM +0300, Jani Nikula wrote:
>> >> >> On Tue, 17 Sep 2024, Raag Jadav <raag.jadav@intel.com> wrote:
>> >> >> >
>> >> >> > +extern const char *const wedge_recovery_opts[];
>> >> >>
>> >> >> Data is not an interface. Please add a function for this.
>> >> >
>> >> > For a single user?
>> >>
>> >> Yes.
>> >>
>> >> Well, you kind of have two, and both places need to do bounds checking
>> >> on indexing the array. You also need to do bounds checking on the string
>> >> manipulation, you can't just strcat and assume it'll be all right.
>> >
>> > Which would be true if we were to receive an unknown string. Here we sorta
>> > know it offhand so we're not gonna shoot in our foot :D
>>
>> The thing about long term code maintenance is that "we know" often turns
>> into "not too obvious" and "probably" somewhere down the line, as
>> features get added and code gets refactored and moved about.
>>
>> Here, it only takes a new, longer string, and failure to manually check
>> that the lengths don't exceed the magic 32 bytes. Just be safe from the
>> start, and you don't have to worry about it later.
>
> On that note...
>
>> > Anyway, would you prefer strlcat instead?
>>
>> I think the cleaner option is:
>>
>> char event_string[32];
>>
>> snprintf(event_string, sizeof(event_string), "WEDGED=%s", wedge_name(method));
>>
>> which is also what most other code constructing environments for
>> kobject_uevent_env() do.
>
> ...should we use kasprintf instead of hardcoding size?
You can if you want.
>
> Raag
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v5 2/4] drm: Expose wedge recovery methods
2024-09-19 8:38 ` Raag Jadav
2024-09-19 9:24 ` Jani Nikula
@ 2024-09-19 13:45 ` Andy Shevchenko
2024-09-20 11:18 ` Raag Jadav
1 sibling, 1 reply; 24+ messages in thread
From: Andy Shevchenko @ 2024-09-19 13:45 UTC (permalink / raw)
To: Raag Jadav
Cc: Jani Nikula, airlied, simona, lucas.demarchi, thomas.hellstrom,
rodrigo.vivi, joonas.lahtinen, tursulin, lina, intel-xe,
intel-gfx, dri-devel, himal.prasad.ghimiray, francois.dugast,
aravind.iddamsetty, anshuman.gupta, andi.shyti, matthew.d.roper
On Thu, Sep 19, 2024 at 11:38:50AM +0300, Raag Jadav wrote:
> On Thu, Sep 19, 2024 at 10:38:51AM +0300, Jani Nikula wrote:
...
> Anyway, would you prefer strlcat instead?
FYI: strl*() are subject to remove. They are bad, no-one should really prefer
them in the Linux kernel.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v5 2/4] drm: Expose wedge recovery methods
2024-09-19 13:45 ` Andy Shevchenko
@ 2024-09-20 11:18 ` Raag Jadav
2024-09-20 14:27 ` Andy Shevchenko
0 siblings, 1 reply; 24+ messages in thread
From: Raag Jadav @ 2024-09-20 11:18 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Jani Nikula, airlied, simona, lucas.demarchi, thomas.hellstrom,
rodrigo.vivi, joonas.lahtinen, tursulin, lina, intel-xe,
intel-gfx, dri-devel, himal.prasad.ghimiray, francois.dugast,
aravind.iddamsetty, anshuman.gupta, andi.shyti, matthew.d.roper
On Thu, Sep 19, 2024 at 04:45:28PM +0300, Andy Shevchenko wrote:
> On Thu, Sep 19, 2024 at 11:38:50AM +0300, Raag Jadav wrote:
> > On Thu, Sep 19, 2024 at 10:38:51AM +0300, Jani Nikula wrote:
>
> ...
>
> > Anyway, would you prefer strlcat instead?
>
> FYI: strl*() are subject to remove. They are bad, no-one should really prefer
> them in the Linux kernel.
Not showing up on checkpatch (along with a few others from deprecated.rst).
Raag
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v5 2/4] drm: Expose wedge recovery methods
2024-09-20 11:18 ` Raag Jadav
@ 2024-09-20 14:27 ` Andy Shevchenko
0 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2024-09-20 14:27 UTC (permalink / raw)
To: Raag Jadav, Kees Cook
Cc: Jani Nikula, airlied, simona, lucas.demarchi, thomas.hellstrom,
rodrigo.vivi, joonas.lahtinen, tursulin, lina, intel-xe,
intel-gfx, dri-devel, himal.prasad.ghimiray, francois.dugast,
aravind.iddamsetty, anshuman.gupta, andi.shyti, matthew.d.roper
+Cc: Kees
On Fri, Sep 20, 2024 at 02:18:19PM +0300, Raag Jadav wrote:
> On Thu, Sep 19, 2024 at 04:45:28PM +0300, Andy Shevchenko wrote:
> > On Thu, Sep 19, 2024 at 11:38:50AM +0300, Raag Jadav wrote:
> > > On Thu, Sep 19, 2024 at 10:38:51AM +0300, Jani Nikula wrote:
...
> > > Anyway, would you prefer strlcat instead?
> >
> > FYI: strl*() are subject to remove. They are bad, no-one should really prefer
> > them in the Linux kernel.
>
> Not showing up on checkpatch (along with a few others from deprecated.rst).
Feel free to update!
See d26270061ae6 ("string: Remove strlcpy()")
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2024-09-20 14:28 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-17 4:02 [PATCH v5 0/4] Introduce DRM device wedged event Raag Jadav
2024-09-17 4:02 ` [PATCH v5 1/4] drm: Introduce " Raag Jadav
2024-09-19 7:43 ` Jani Nikula
2024-09-17 4:02 ` [PATCH v5 2/4] drm: Expose wedge recovery methods Raag Jadav
2024-09-17 7:49 ` Jani Nikula
2024-09-19 4:05 ` Raag Jadav
2024-09-19 7:38 ` Jani Nikula
2024-09-19 8:38 ` Raag Jadav
2024-09-19 9:24 ` Jani Nikula
2024-09-19 11:33 ` Raag Jadav
2024-09-19 11:39 ` Jani Nikula
2024-09-19 13:45 ` Andy Shevchenko
2024-09-20 11:18 ` Raag Jadav
2024-09-20 14:27 ` Andy Shevchenko
2024-09-17 4:02 ` [PATCH v5 3/4] drm/xe: Use device wedged event Raag Jadav
2024-09-17 4:41 ` Ghimiray, Himal Prasad
2024-09-17 6:38 ` Raag Jadav
2024-09-17 8:03 ` Ghimiray, Himal Prasad
2024-09-17 8:18 ` Aravind Iddamsetty
2024-09-17 4:02 ` [PATCH v5 4/4] drm/i915: " Raag Jadav
2024-09-17 4:53 ` ✗ Fi.CI.CHECKPATCH: warning for Introduce DRM device wedged event (rev3) Patchwork
2024-09-17 4:53 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-09-17 5:13 ` ✓ Fi.CI.BAT: success " Patchwork
2024-09-17 12:23 ` ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox