* [PATCH v6 1/4] drm: Introduce device wedged event
2024-09-23 3:58 [PATCH v6 0/4] Introduce DRM device wedged event Raag Jadav
@ 2024-09-23 3:58 ` Raag Jadav
2024-09-23 8:38 ` Andy Shevchenko
2024-09-24 11:23 ` Simona Vetter
2024-09-23 3:58 ` [PATCH v6 2/4] drm: Expose wedge recovery methods Raag Jadav
` (5 subsequent siblings)
6 siblings, 2 replies; 15+ messages in thread
From: Raag Jadav @ 2024-09-23 3:58 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 up to 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)
v6: Access wedge_recovery_opts[] using helper function (Jani)
Use snprintf() (Jani)
Signed-off-by: Raag Jadav <raag.jadav@intel.com>
---
drivers/gpu/drm/drm_drv.c | 41 +++++++++++++++++++++++++++++++++++++++
include/drm/drm_device.h | 24 +++++++++++++++++++++++
include/drm/drm_drv.h | 18 +++++++++++++++++
3 files changed, 83 insertions(+)
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index ac30b0ec9d93..03a5d9009689 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -70,6 +70,18 @@ static struct dentry *drm_debugfs_root;
DEFINE_STATIC_SRCU(drm_unplug_srcu);
+/*
+ * Available recovery methods for wedged device. To be sent along with device
+ * wedged uevent.
+ */
+#define WEDGE_LEN 32 /* Need 16+ */
+
+const char *const wedge_recovery_opts[] = {
+ [DRM_WEDGE_RECOVERY_REBIND] = "rebind",
+ [DRM_WEDGE_RECOVERY_BUS_RESET] = "bus-reset",
+ [DRM_WEDGE_RECOVERY_REBOOT] = "reboot",
+};
+
/*
* DRM Minors
* A DRM device can provide several char-dev interfaces on the DRM-Major. Each
@@ -497,6 +509,35 @@ void drm_dev_unplug(struct drm_device *dev)
}
EXPORT_SYMBOL(drm_dev_unplug);
+/**
+ * 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[WEDGE_LEN] = {};
+ char *envp[] = { event_string, NULL };
+
+ if (!test_bit(method, &dev->wedge_recovery)) {
+ drm_err(dev, "device wedged, recovery method not supported\n");
+ return -EOPNOTSUPP;
+ }
+
+ snprintf(event_string, sizeof(event_string), "WEDGED=%s", recovery_method_name(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..f1a71763c22a 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,
+
+ /** @DRM_WEDGE_RECOVERY_BUS_RESET: unbind + reset bus device + rebind */
+ DRM_WEDGE_RECOVERY_BUS_RESET,
+
+ /** @DRM_WEDGE_RECOVERY_REBOOT: reboot system */
+ DRM_WEDGE_RECOVERY_REBOOT,
+
+ /** @DRM_WEDGE_RECOVERY_MAX: for bounds checking, do not use */
+ DRM_WEDGE_RECOVERY_MAX
+};
+
/**
* 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..83d44e153557 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -45,6 +45,8 @@ struct drm_mode_create_dumb;
struct drm_printer;
struct sg_table;
+extern const char *const wedge_recovery_opts[];
+
/**
* enum drm_driver_feature - feature flags
*
@@ -461,6 +463,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
@@ -551,4 +554,19 @@ static inline void drm_debugfs_dev_init(struct drm_device *dev, struct dentry *r
}
#endif
+static inline bool recovery_method_is_valid(enum wedge_recovery_method method)
+{
+ if (method >= DRM_WEDGE_RECOVERY_REBIND && method < DRM_WEDGE_RECOVERY_MAX)
+ return true;
+
+ return false;
+}
+
+static inline const char *recovery_method_name(enum wedge_recovery_method method)
+{
+ if (recovery_method_is_valid(method))
+ return wedge_recovery_opts[method];
+
+ return NULL;
+}
#endif
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread* Re: [PATCH v6 1/4] drm: Introduce device wedged event
2024-09-23 3:58 ` [PATCH v6 1/4] drm: Introduce " Raag Jadav
@ 2024-09-23 8:38 ` Andy Shevchenko
2024-09-23 14:35 ` Raag Jadav
2024-09-24 11:23 ` Simona Vetter
1 sibling, 1 reply; 15+ messages in thread
From: Andy Shevchenko @ 2024-09-23 8:38 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, himal.prasad.ghimiray, francois.dugast,
aravind.iddamsetty, anshuman.gupta, andi.shyti, matthew.d.roper
On Mon, Sep 23, 2024 at 09:28:23AM +0530, Raag Jadav 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 up to 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)
> v6: Access wedge_recovery_opts[] using helper function (Jani)
> Use snprintf() (Jani)
Hmm... Isn't changelog in the cover letter is not enough?
...
> +/*
> + * Available recovery methods for wedged device. To be sent along with device
> + * wedged uevent.
> + */
> +#define WEDGE_LEN 32 /* Need 16+ */
This "Need 16+" comment seems unfinished as it doesn't tell why.
...
> +int drm_dev_wedged_event(struct drm_device *dev, enum wedge_recovery_method method)
> +{
> + char event_string[WEDGE_LEN] = {};
> + char *envp[] = { event_string, NULL };
> +
> + if (!test_bit(method, &dev->wedge_recovery)) {
> + drm_err(dev, "device wedged, recovery method not supported\n");
> + return -EOPNOTSUPP;
> + }
> + snprintf(event_string, sizeof(event_string), "WEDGED=%s", recovery_method_name(method));
Is sprintf.h being included already?
> + drm_info(dev, "device wedged, generating uevent\n");
> + return kobject_uevent_env(&dev->primary->kdev->kobj, KOBJ_CHANGE, envp);
> +}
...
> +/**
> + * 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.
> + */
> +
Redundant blank line.
> +enum wedge_recovery_method {
> + /** @DRM_WEDGE_RECOVERY_REBIND: unbind + rebind driver */
> + DRM_WEDGE_RECOVERY_REBIND,
> +
> + /** @DRM_WEDGE_RECOVERY_BUS_RESET: unbind + reset bus device + rebind */
> + DRM_WEDGE_RECOVERY_BUS_RESET,
> +
> + /** @DRM_WEDGE_RECOVERY_REBOOT: reboot system */
> + DRM_WEDGE_RECOVERY_REBOOT,
> +
> + /** @DRM_WEDGE_RECOVERY_MAX: for bounds checking, do not use */
> + DRM_WEDGE_RECOVERY_MAX
> +};
...
> +extern const char *const wedge_recovery_opts[];
It's not NULL terminated. How users will know that they have an index valid?
Either you NULL-terminate that, or export the size as well (personally I would
go with the first approach).
...
> +static inline bool recovery_method_is_valid(enum wedge_recovery_method method)
> +{
> + if (method >= DRM_WEDGE_RECOVERY_REBIND && method < DRM_WEDGE_RECOVERY_MAX)
> + return true;
> +
> + return false;
Besides that this can be written as
return method >= DRM_WEDGE_RECOVERY_REBIND && method < DRM_WEDGE_RECOVERY_MAX;
> +}
this seems a runtime approach for what we have at compile-time, i.e. static_assert()
It's also possible to have as a third approach, but it's less robust.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH v6 1/4] drm: Introduce device wedged event
2024-09-23 8:38 ` Andy Shevchenko
@ 2024-09-23 14:35 ` Raag Jadav
2024-09-23 14:57 ` Andy Shevchenko
0 siblings, 1 reply; 15+ messages in thread
From: Raag Jadav @ 2024-09-23 14:35 UTC (permalink / raw)
To: Andy Shevchenko
Cc: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
jani.nikula, 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 Mon, Sep 23, 2024 at 11:38:55AM +0300, Andy Shevchenko wrote:
> On Mon, Sep 23, 2024 at 09:28:23AM +0530, Raag Jadav 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 up to 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)
> > v6: Access wedge_recovery_opts[] using helper function (Jani)
> > Use snprintf() (Jani)
>
> Hmm... Isn't changelog in the cover letter is not enough?
Which was initial thought but I'm told otherwise ¯\_(ツ)_/¯
> ...
>
> > +extern const char *const wedge_recovery_opts[];
>
> It's not NULL terminated. How users will know that they have an index valid?
It's expected to be accessed using recovery_*() helpers.
> Either you NULL-terminate that, or export the size as well (personally I would
> go with the first approach).
>
> ...
>
> > +static inline bool recovery_method_is_valid(enum wedge_recovery_method method)
> > +{
> > + if (method >= DRM_WEDGE_RECOVERY_REBIND && method < DRM_WEDGE_RECOVERY_MAX)
> > + return true;
> > +
> > + return false;
>
> Besides that this can be written as
>
> return method >= DRM_WEDGE_RECOVERY_REBIND && method < DRM_WEDGE_RECOVERY_MAX;
>
> > +}
>
> this seems a runtime approach for what we have at compile-time, i.e. static_assert()
My understanding is that we have runtime users that the compiler may not be
able to resolve.
Raag
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH v6 1/4] drm: Introduce device wedged event
2024-09-23 14:35 ` Raag Jadav
@ 2024-09-23 14:57 ` Andy Shevchenko
2024-09-23 22:01 ` Jani Nikula
0 siblings, 1 reply; 15+ messages in thread
From: Andy Shevchenko @ 2024-09-23 14:57 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, himal.prasad.ghimiray, francois.dugast,
aravind.iddamsetty, anshuman.gupta, andi.shyti, matthew.d.roper
On Mon, Sep 23, 2024 at 05:35:23PM +0300, Raag Jadav wrote:
> On Mon, Sep 23, 2024 at 11:38:55AM +0300, Andy Shevchenko wrote:
> > On Mon, Sep 23, 2024 at 09:28:23AM +0530, Raag Jadav wrote:
...
> > > +extern const char *const wedge_recovery_opts[];
> >
> > It's not NULL terminated. How users will know that they have an index valid?
>
> It's expected to be accessed using recovery_*() helpers.
If so, this has to be static then.
> > Either you NULL-terminate that, or export the size as well (personally I would
> > go with the first approach).
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v6 1/4] drm: Introduce device wedged event
2024-09-23 14:57 ` Andy Shevchenko
@ 2024-09-23 22:01 ` Jani Nikula
0 siblings, 0 replies; 15+ messages in thread
From: Jani Nikula @ 2024-09-23 22:01 UTC (permalink / raw)
To: Andy Shevchenko, 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, matthew.d.roper
On Mon, 23 Sep 2024, Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> On Mon, Sep 23, 2024 at 05:35:23PM +0300, Raag Jadav wrote:
>> On Mon, Sep 23, 2024 at 11:38:55AM +0300, Andy Shevchenko wrote:
>> > On Mon, Sep 23, 2024 at 09:28:23AM +0530, Raag Jadav wrote:
>
> ...
>
>> > > +extern const char *const wedge_recovery_opts[];
>> >
>> > It's not NULL terminated. How users will know that they have an index valid?
>>
>> It's expected to be accessed using recovery_*() helpers.
>
> If so, this has to be static then.
Yeah, please make the helpers regular functions. Static inlines are just
harmful here.
BR,
Jani.
>
>> > Either you NULL-terminate that, or export the size as well (personally I would
>> > go with the first approach).
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v6 1/4] drm: Introduce device wedged event
2024-09-23 3:58 ` [PATCH v6 1/4] drm: Introduce " Raag Jadav
2024-09-23 8:38 ` Andy Shevchenko
@ 2024-09-24 11:23 ` Simona Vetter
2024-09-25 3:04 ` Raag Jadav
1 sibling, 1 reply; 15+ messages in thread
From: Simona Vetter @ 2024-09-24 11:23 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, himal.prasad.ghimiray, francois.dugast,
aravind.iddamsetty, anshuman.gupta, andi.shyti, andriy.shevchenko,
matthew.d.roper
On Mon, Sep 23, 2024 at 09:28:23AM +0530, Raag Jadav 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 up to 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)
> v6: Access wedge_recovery_opts[] using helper function (Jani)
> Use snprintf() (Jani)
>
> Signed-off-by: Raag Jadav <raag.jadav@intel.com>
Finally caught up on mail, so dropping this here again: Please also add a
small section to drm-uapi.rst, pointing at these functions. Just the
kerneldoc for developers is kinda not enough I think.
Also maybe link to an example udev script which handles this would be
neat.
Cheers, Sima
> ---
> drivers/gpu/drm/drm_drv.c | 41 +++++++++++++++++++++++++++++++++++++++
> include/drm/drm_device.h | 24 +++++++++++++++++++++++
> include/drm/drm_drv.h | 18 +++++++++++++++++
> 3 files changed, 83 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> index ac30b0ec9d93..03a5d9009689 100644
> --- a/drivers/gpu/drm/drm_drv.c
> +++ b/drivers/gpu/drm/drm_drv.c
> @@ -70,6 +70,18 @@ static struct dentry *drm_debugfs_root;
>
> DEFINE_STATIC_SRCU(drm_unplug_srcu);
>
> +/*
> + * Available recovery methods for wedged device. To be sent along with device
> + * wedged uevent.
> + */
> +#define WEDGE_LEN 32 /* Need 16+ */
> +
> +const char *const wedge_recovery_opts[] = {
> + [DRM_WEDGE_RECOVERY_REBIND] = "rebind",
> + [DRM_WEDGE_RECOVERY_BUS_RESET] = "bus-reset",
> + [DRM_WEDGE_RECOVERY_REBOOT] = "reboot",
> +};
> +
> /*
> * DRM Minors
> * A DRM device can provide several char-dev interfaces on the DRM-Major. Each
> @@ -497,6 +509,35 @@ void drm_dev_unplug(struct drm_device *dev)
> }
> EXPORT_SYMBOL(drm_dev_unplug);
>
> +/**
> + * 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[WEDGE_LEN] = {};
> + char *envp[] = { event_string, NULL };
> +
> + if (!test_bit(method, &dev->wedge_recovery)) {
> + drm_err(dev, "device wedged, recovery method not supported\n");
> + return -EOPNOTSUPP;
> + }
> +
> + snprintf(event_string, sizeof(event_string), "WEDGED=%s", recovery_method_name(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..f1a71763c22a 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,
> +
> + /** @DRM_WEDGE_RECOVERY_BUS_RESET: unbind + reset bus device + rebind */
> + DRM_WEDGE_RECOVERY_BUS_RESET,
> +
> + /** @DRM_WEDGE_RECOVERY_REBOOT: reboot system */
> + DRM_WEDGE_RECOVERY_REBOOT,
> +
> + /** @DRM_WEDGE_RECOVERY_MAX: for bounds checking, do not use */
> + DRM_WEDGE_RECOVERY_MAX
> +};
> +
> /**
> * 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..83d44e153557 100644
> --- a/include/drm/drm_drv.h
> +++ b/include/drm/drm_drv.h
> @@ -45,6 +45,8 @@ struct drm_mode_create_dumb;
> struct drm_printer;
> struct sg_table;
>
> +extern const char *const wedge_recovery_opts[];
> +
> /**
> * enum drm_driver_feature - feature flags
> *
> @@ -461,6 +463,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
> @@ -551,4 +554,19 @@ static inline void drm_debugfs_dev_init(struct drm_device *dev, struct dentry *r
> }
> #endif
>
> +static inline bool recovery_method_is_valid(enum wedge_recovery_method method)
> +{
> + if (method >= DRM_WEDGE_RECOVERY_REBIND && method < DRM_WEDGE_RECOVERY_MAX)
> + return true;
> +
> + return false;
> +}
> +
> +static inline const char *recovery_method_name(enum wedge_recovery_method method)
> +{
> + if (recovery_method_is_valid(method))
> + return wedge_recovery_opts[method];
> +
> + return NULL;
> +}
> #endif
> --
> 2.34.1
>
--
Simona Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH v6 1/4] drm: Introduce device wedged event
2024-09-24 11:23 ` Simona Vetter
@ 2024-09-25 3:04 ` Raag Jadav
2024-09-25 11:53 ` Simona Vetter
0 siblings, 1 reply; 15+ messages in thread
From: Raag Jadav @ 2024-09-25 3:04 UTC (permalink / raw)
To: Simona Vetter
Cc: airlied, simona, lucas.demarchi, thomas.hellstrom, rodrigo.vivi,
jani.nikula, 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 24, 2024 at 01:23:13PM +0200, Simona Vetter wrote:
> On Mon, Sep 23, 2024 at 09:28:23AM +0530, Raag Jadav 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 up to 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)
> > v6: Access wedge_recovery_opts[] using helper function (Jani)
> > Use snprintf() (Jani)
> >
> > Signed-off-by: Raag Jadav <raag.jadav@intel.com>
>
> Finally caught up on mail, so dropping this here again: Please also add a
> small section to drm-uapi.rst, pointing at these functions. Just the
> kerneldoc for developers is kinda not enough I think.
Would you prefer a new section or have the existing one (Device reset which
looks somewhat similar but not entirely) modified?
Raag
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v6 1/4] drm: Introduce device wedged event
2024-09-25 3:04 ` Raag Jadav
@ 2024-09-25 11:53 ` Simona Vetter
0 siblings, 0 replies; 15+ messages in thread
From: Simona Vetter @ 2024-09-25 11:53 UTC (permalink / raw)
To: Raag Jadav
Cc: Simona Vetter, airlied, simona, lucas.demarchi, thomas.hellstrom,
rodrigo.vivi, jani.nikula, 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 Wed, Sep 25, 2024 at 06:04:43AM +0300, Raag Jadav wrote:
> On Tue, Sep 24, 2024 at 01:23:13PM +0200, Simona Vetter wrote:
> > On Mon, Sep 23, 2024 at 09:28:23AM +0530, Raag Jadav 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 up to 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)
> > > v6: Access wedge_recovery_opts[] using helper function (Jani)
> > > Use snprintf() (Jani)
> > >
> > > Signed-off-by: Raag Jadav <raag.jadav@intel.com>
> >
> > Finally caught up on mail, so dropping this here again: Please also add a
> > small section to drm-uapi.rst, pointing at these functions. Just the
> > kerneldoc for developers is kinda not enough I think.
>
> Would you prefer a new section or have the existing one (Device reset which
> looks somewhat similar but not entirely) modified?
Great point, I think just adding a paragraph and maybe the table/list you
have to the device reset section is perfect.
-Sima
--
Simona Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v6 2/4] drm: Expose wedge recovery methods
2024-09-23 3:58 [PATCH v6 0/4] Introduce DRM device wedged event Raag Jadav
2024-09-23 3:58 ` [PATCH v6 1/4] drm: Introduce " Raag Jadav
@ 2024-09-23 3:58 ` Raag Jadav
2024-09-23 3:58 ` [PATCH v6 3/4] drm/xe: Use device wedged event Raag Jadav
` (4 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Raag Jadav @ 2024-09-23 3:58 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 | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
index fb3bbb6adcd1..99767de9e685 100644
--- a/drivers/gpu/drm/drm_sysfs.c
+++ b/drivers/gpu/drm/drm_sysfs.c
@@ -24,6 +24,7 @@
#include <drm/drm_accel.h>
#include <drm/drm_connector.h>
#include <drm/drm_device.h>
+#include <drm/drm_drv.h>
#include <drm/drm_file.h>
#include <drm/drm_modes.h>
#include <drm/drm_print.h>
@@ -508,6 +509,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 method, count = 0;
+
+ for_each_set_bit(method, &dev->wedge_recovery, DRM_WEDGE_RECOVERY_MAX)
+ count += sysfs_emit_at(buf, count, "%s\n", recovery_method_name(method));
+
+ 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 +553,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] 15+ messages in thread* [PATCH v6 3/4] drm/xe: Use device wedged event
2024-09-23 3:58 [PATCH v6 0/4] Introduce DRM device wedged event Raag Jadav
2024-09-23 3:58 ` [PATCH v6 1/4] drm: Introduce " Raag Jadav
2024-09-23 3:58 ` [PATCH v6 2/4] drm: Expose wedge recovery methods Raag Jadav
@ 2024-09-23 3:58 ` Raag Jadav
2024-09-23 3:58 ` [PATCH v6 4/4] drm/i915: " Raag Jadav
` (3 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Raag Jadav @ 2024-09-23 3:58 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 cb5a9fd820cf..8edafea18f45 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -783,6 +783,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);
@@ -989,11 +998,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
@@ -1023,6 +1033,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 4c3f0ebe78a9..ca4b3935a982 100644
--- a/drivers/gpu/drm/xe/xe_device.h
+++ b/drivers/gpu/drm/xe/xe_device.h
@@ -186,6 +186,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 edaeefd2d648..e7a1d59c40a9 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -860,6 +860,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] 15+ messages in thread* [PATCH v6 4/4] drm/i915: Use device wedged event
2024-09-23 3:58 [PATCH v6 0/4] Introduce DRM device wedged event Raag Jadav
` (2 preceding siblings ...)
2024-09-23 3:58 ` [PATCH v6 3/4] drm/xe: Use device wedged event Raag Jadav
@ 2024-09-23 3:58 ` Raag Jadav
2024-09-25 15:34 ` ✗ Fi.CI.CHECKPATCH: warning for Introduce DRM device wedged event (rev4) Patchwork
` (2 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Raag Jadav @ 2024-09-23 3:58 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] 15+ messages in thread* ✗ Fi.CI.CHECKPATCH: warning for Introduce DRM device wedged event (rev4)
2024-09-23 3:58 [PATCH v6 0/4] Introduce DRM device wedged event Raag Jadav
` (3 preceding siblings ...)
2024-09-23 3:58 ` [PATCH v6 4/4] drm/i915: " Raag Jadav
@ 2024-09-25 15:34 ` Patchwork
2024-09-25 15:34 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-09-25 16:11 ` ✗ Fi.CI.BAT: failure " Patchwork
6 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2024-09-25 15:34 UTC (permalink / raw)
To: Raag Jadav; +Cc: intel-gfx
== Series Details ==
Series: Introduce DRM device wedged event (rev4)
URL : https://patchwork.freedesktop.org/series/138069/
State : warning
== Summary ==
Error: dim checkpatch failed
78a73d92fd9a drm: Introduce device wedged event
-:81: WARNING:STATIC_CONST_CHAR_ARRAY: char * array declaration might be better as static const
#81: FILE: drivers/gpu/drm/drm_drv.c:527:
+ char *envp[] = { event_string, NULL };
total: 0 errors, 1 warnings, 0 checks, 123 lines checked
deebcbe26144 drm: Expose wedge recovery methods
0f793a2aadf0 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
0c3a2cf2f57d drm/i915: Use device wedged event
^ permalink raw reply [flat|nested] 15+ messages in thread* ✗ Fi.CI.SPARSE: warning for Introduce DRM device wedged event (rev4)
2024-09-23 3:58 [PATCH v6 0/4] Introduce DRM device wedged event Raag Jadav
` (4 preceding siblings ...)
2024-09-25 15:34 ` ✗ Fi.CI.CHECKPATCH: warning for Introduce DRM device wedged event (rev4) Patchwork
@ 2024-09-25 15:34 ` Patchwork
2024-09-25 16:11 ` ✗ Fi.CI.BAT: failure " Patchwork
6 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2024-09-25 15:34 UTC (permalink / raw)
To: Raag Jadav; +Cc: intel-gfx
== Series Details ==
Series: Introduce DRM device wedged event (rev4)
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] 15+ messages in thread* ✗ Fi.CI.BAT: failure for Introduce DRM device wedged event (rev4)
2024-09-23 3:58 [PATCH v6 0/4] Introduce DRM device wedged event Raag Jadav
` (5 preceding siblings ...)
2024-09-25 15:34 ` ✗ Fi.CI.SPARSE: " Patchwork
@ 2024-09-25 16:11 ` Patchwork
6 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2024-09-25 16:11 UTC (permalink / raw)
To: Raag Jadav; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 36194 bytes --]
== Series Details ==
Series: Introduce DRM device wedged event (rev4)
URL : https://patchwork.freedesktop.org/series/138069/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_15443 -> Patchwork_138069v4
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_138069v4 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_138069v4, 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.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/index.html
Participating hosts (37 -> 37)
------------------------------
Additional (4): fi-hsw-4770 fi-kbl-8809g fi-ilk-650 bat-adls-6
Missing (4): bat-dg1-7 fi-bsw-n3050 fi-snb-2520m fi-pnv-d510
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_138069v4:
### IGT changes ###
#### Possible regressions ####
* igt@debugfs_test@basic-hwmon:
- bat-adls-6: NOTRUN -> [SKIP][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adls-6/igt@debugfs_test@basic-hwmon.html
* igt@kms_addfb_basic@too-high:
- fi-kbl-8809g: NOTRUN -> [FAIL][2] +2 other tests fail
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-kbl-8809g/igt@kms_addfb_basic@too-high.html
* igt@kms_force_connector_basic@force-edid:
- fi-kbl-8809g: NOTRUN -> [DMESG-FAIL][3]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-kbl-8809g/igt@kms_force_connector_basic@force-edid.html
* igt@kms_force_connector_basic@prune-stale-modes:
- fi-kbl-8809g: NOTRUN -> [DMESG-WARN][4] +1 other test dmesg-warn
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-kbl-8809g/igt@kms_force_connector_basic@prune-stale-modes.html
* igt@runner@aborted:
- bat-dg2-14: NOTRUN -> [FAIL][5]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-dg2-14/igt@runner@aborted.html
- bat-dg2-13: NOTRUN -> [FAIL][6]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-dg2-13/igt@runner@aborted.html
#### Warnings ####
* igt@debugfs_test@basic-hwmon:
- bat-mtlp-8: [SKIP][7] ([i915#9318]) -> [SKIP][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-mtlp-8/igt@debugfs_test@basic-hwmon.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-mtlp-8/igt@debugfs_test@basic-hwmon.html
- bat-adlp-9: [SKIP][9] ([i915#9318]) -> [SKIP][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-adlp-9/igt@debugfs_test@basic-hwmon.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adlp-9/igt@debugfs_test@basic-hwmon.html
- bat-twl-2: [SKIP][11] ([i915#9318]) -> [SKIP][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-twl-2/igt@debugfs_test@basic-hwmon.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-twl-2/igt@debugfs_test@basic-hwmon.html
- bat-twl-1: [SKIP][13] ([i915#9318]) -> [SKIP][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-twl-1/igt@debugfs_test@basic-hwmon.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-twl-1/igt@debugfs_test@basic-hwmon.html
- bat-arls-5: [SKIP][15] ([i915#9318]) -> [SKIP][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-5/igt@debugfs_test@basic-hwmon.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-5/igt@debugfs_test@basic-hwmon.html
- bat-adlp-6: [SKIP][17] ([i915#9318]) -> [SKIP][18]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-adlp-6/igt@debugfs_test@basic-hwmon.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adlp-6/igt@debugfs_test@basic-hwmon.html
- bat-rplp-1: [SKIP][19] ([i915#9318]) -> [SKIP][20]
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-rplp-1/igt@debugfs_test@basic-hwmon.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-rplp-1/igt@debugfs_test@basic-hwmon.html
- bat-arlh-2: [SKIP][21] ([i915#9318]) -> [SKIP][22]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arlh-2/igt@debugfs_test@basic-hwmon.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arlh-2/igt@debugfs_test@basic-hwmon.html
- fi-rkl-11600: [SKIP][23] ([i915#9318]) -> [SKIP][24]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/fi-rkl-11600/igt@debugfs_test@basic-hwmon.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-rkl-11600/igt@debugfs_test@basic-hwmon.html
- bat-adlp-11: [SKIP][25] ([i915#9318]) -> [SKIP][26]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-adlp-11/igt@debugfs_test@basic-hwmon.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adlp-11/igt@debugfs_test@basic-hwmon.html
- bat-rpls-4: [SKIP][27] ([i915#9318]) -> [SKIP][28]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-rpls-4/igt@debugfs_test@basic-hwmon.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-rpls-4/igt@debugfs_test@basic-hwmon.html
- bat-jsl-1: [SKIP][29] ([i915#9318]) -> [SKIP][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-jsl-1/igt@debugfs_test@basic-hwmon.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-jsl-1/igt@debugfs_test@basic-hwmon.html
- fi-tgl-1115g4: [SKIP][31] ([i915#9318]) -> [SKIP][32]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/fi-tgl-1115g4/igt@debugfs_test@basic-hwmon.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-tgl-1115g4/igt@debugfs_test@basic-hwmon.html
- bat-arls-1: [SKIP][33] ([i915#9318]) -> [SKIP][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-1/igt@debugfs_test@basic-hwmon.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-1/igt@debugfs_test@basic-hwmon.html
- bat-mtlp-6: [SKIP][35] ([i915#9318]) -> [SKIP][36]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-mtlp-6/igt@debugfs_test@basic-hwmon.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-mtlp-6/igt@debugfs_test@basic-hwmon.html
- bat-arls-2: [SKIP][37] ([i915#9318]) -> [SKIP][38]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-2/igt@debugfs_test@basic-hwmon.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-2/igt@debugfs_test@basic-hwmon.html
* igt@fbdev@eof:
- bat-arlh-2: [SKIP][39] ([i915#11345]) -> [SKIP][40] +3 other tests skip
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arlh-2/igt@fbdev@eof.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arlh-2/igt@fbdev@eof.html
* igt@gem_lmem_swapping@basic:
- bat-twl-2: [SKIP][41] ([i915#10213]) -> [SKIP][42] +3 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-twl-2/igt@gem_lmem_swapping@basic.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-twl-2/igt@gem_lmem_swapping@basic.html
- bat-twl-1: [SKIP][43] ([i915#10213]) -> [SKIP][44] +3 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-twl-1/igt@gem_lmem_swapping@basic.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-twl-1/igt@gem_lmem_swapping@basic.html
* igt@gem_lmem_swapping@parallel-random-engines:
- bat-arls-5: [SKIP][45] ([i915#10213]) -> [SKIP][46] +3 other tests skip
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-5/igt@gem_lmem_swapping@parallel-random-engines.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-5/igt@gem_lmem_swapping@parallel-random-engines.html
- bat-arlh-2: [SKIP][47] ([i915#10213] / [i915#11671]) -> [SKIP][48] +3 other tests skip
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arlh-2/igt@gem_lmem_swapping@parallel-random-engines.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arlh-2/igt@gem_lmem_swapping@parallel-random-engines.html
* igt@gem_lmem_swapping@random-engines:
- bat-arls-1: [SKIP][49] ([i915#10213]) -> [SKIP][50] +3 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-1/igt@gem_lmem_swapping@random-engines.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-1/igt@gem_lmem_swapping@random-engines.html
* igt@gem_lmem_swapping@verify-random:
- bat-arls-2: [SKIP][51] ([i915#10213]) -> [SKIP][52] +3 other tests skip
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-2/igt@gem_lmem_swapping@verify-random.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-2/igt@gem_lmem_swapping@verify-random.html
* igt@gem_mmap@basic:
- bat-arlh-2: [SKIP][53] ([i915#11343]) -> [SKIP][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arlh-2/igt@gem_mmap@basic.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arlh-2/igt@gem_mmap@basic.html
* igt@gem_render_tiled_blits@basic:
- bat-arlh-2: [SKIP][55] ([i915#10197] / [i915#11725]) -> [SKIP][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arlh-2/igt@gem_render_tiled_blits@basic.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arlh-2/igt@gem_render_tiled_blits@basic.html
* igt@gem_tiled_pread_basic:
- bat-arlh-2: [SKIP][57] ([i915#10206] / [i915#11724]) -> [SKIP][58]
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arlh-2/igt@gem_tiled_pread_basic.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arlh-2/igt@gem_tiled_pread_basic.html
* igt@i915_pm_rps@basic-api:
- bat-twl-2: [SKIP][59] ([i915#10209]) -> [SKIP][60]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-twl-2/igt@i915_pm_rps@basic-api.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-twl-2/igt@i915_pm_rps@basic-api.html
- bat-twl-1: [SKIP][61] ([i915#10209]) -> [SKIP][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-twl-1/igt@i915_pm_rps@basic-api.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-twl-1/igt@i915_pm_rps@basic-api.html
- bat-arls-5: [SKIP][63] ([i915#10209] / [i915#11681]) -> [SKIP][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-5/igt@i915_pm_rps@basic-api.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-5/igt@i915_pm_rps@basic-api.html
- bat-arlh-2: [SKIP][65] ([i915#10209] / [i915#11681]) -> [SKIP][66]
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arlh-2/igt@i915_pm_rps@basic-api.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arlh-2/igt@i915_pm_rps@basic-api.html
- bat-arls-2: [SKIP][67] ([i915#10209] / [i915#11681]) -> [SKIP][68]
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-2/igt@i915_pm_rps@basic-api.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-2/igt@i915_pm_rps@basic-api.html
- bat-arls-1: [SKIP][69] ([i915#10209] / [i915#11681]) -> [SKIP][70]
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-1/igt@i915_pm_rps@basic-api.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-1/igt@i915_pm_rps@basic-api.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- bat-twl-2: [SKIP][71] ([i915#11030]) -> [SKIP][72] +1 other test skip
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-twl-2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-twl-2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-twl-1: [SKIP][73] ([i915#11030]) -> [SKIP][74] +1 other test skip
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-twl-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-twl-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@debugfs_test@basic-hwmon:
- {bat-arlh-3}: [SKIP][75] ([i915#9318]) -> [SKIP][76]
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arlh-3/igt@debugfs_test@basic-hwmon.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arlh-3/igt@debugfs_test@basic-hwmon.html
* igt@gem_lmem_swapping@basic:
- {bat-arlh-3}: [SKIP][77] ([i915#11671]) -> [SKIP][78] +3 other tests skip
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arlh-3/igt@gem_lmem_swapping@basic.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arlh-3/igt@gem_lmem_swapping@basic.html
* igt@gem_mmap@basic:
- {bat-arlh-3}: [SKIP][79] ([i915#11343]) -> [SKIP][80]
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arlh-3/igt@gem_mmap@basic.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arlh-3/igt@gem_mmap@basic.html
* igt@gem_render_tiled_blits@basic:
- {bat-arlh-3}: [SKIP][81] ([i915#11725]) -> [SKIP][82]
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arlh-3/igt@gem_render_tiled_blits@basic.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arlh-3/igt@gem_render_tiled_blits@basic.html
* igt@gem_tiled_pread_basic:
- {bat-arlh-3}: [SKIP][83] ([i915#11724]) -> [SKIP][84]
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arlh-3/igt@gem_tiled_pread_basic.html
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arlh-3/igt@gem_tiled_pread_basic.html
* igt@i915_pm_rps@basic-api:
- {bat-arlh-3}: [SKIP][85] ([i915#11681]) -> [SKIP][86]
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arlh-3/igt@i915_pm_rps@basic-api.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arlh-3/igt@i915_pm_rps@basic-api.html
New tests
---------
New tests have been introduced between CI_DRM_15443 and Patchwork_138069v4:
### New IGT tests (14) ###
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-e-hdmi-a-1:
- Statuses : 1 skip(s)
- Exec time: [0.0] s
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-f-hdmi-a-1:
- Statuses : 1 skip(s)
- Exec time: [0.00] s
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24@pipe-e-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.23] s
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24@pipe-f-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.23] s
* igt@kms_pipe_crc_basic@hang-read-crc@pipe-e-hdmi-a-1:
- Statuses : 1 skip(s)
- Exec time: [0.0] s
* igt@kms_pipe_crc_basic@hang-read-crc@pipe-f-hdmi-a-1:
- Statuses : 1 skip(s)
- Exec time: [0.0] s
* igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-e-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.38] s
* igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-f-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.36] s
* igt@kms_pipe_crc_basic@nonblocking-crc@pipe-e-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.37] s
* igt@kms_pipe_crc_basic@nonblocking-crc@pipe-f-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.38] s
* igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-e-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.30] s
* igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-f-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.28] s
* igt@kms_pipe_crc_basic@read-crc@pipe-e-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.28] s
* igt@kms_pipe_crc_basic@read-crc@pipe-f-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.28] s
Known issues
------------
Here are the changes found in Patchwork_138069v4 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@core_hotunplug@unbind-rebind:
- fi-kbl-8809g: NOTRUN -> [DMESG-WARN][87] ([i915#10462])
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-kbl-8809g/igt@core_hotunplug@unbind-rebind.html
* igt@fbdev@info:
- fi-kbl-8809g: NOTRUN -> [SKIP][88] ([i915#1849])
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-kbl-8809g/igt@fbdev@info.html
* igt@gem_huc_copy@huc-copy:
- fi-kbl-8809g: NOTRUN -> [SKIP][89] ([i915#2190])
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-kbl-8809g/igt@gem_huc_copy@huc-copy.html
- fi-kbl-guc: [PASS][90] -> [SKIP][91] ([i915#2190])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/fi-kbl-guc/igt@gem_huc_copy@huc-copy.html
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-kbl-guc/igt@gem_huc_copy@huc-copy.html
- fi-cfl-guc: [PASS][92] -> [SKIP][93] ([i915#2190])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/fi-cfl-guc/igt@gem_huc_copy@huc-copy.html
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-cfl-guc/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@basic:
- fi-kbl-8809g: NOTRUN -> [SKIP][94] ([i915#4613]) +3 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-kbl-8809g/igt@gem_lmem_swapping@basic.html
* igt@gem_lmem_swapping@verify-random:
- bat-adls-6: NOTRUN -> [SKIP][95] ([i915#4613]) +3 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adls-6/igt@gem_lmem_swapping@verify-random.html
* igt@gem_tiled_pread_basic:
- bat-adls-6: NOTRUN -> [SKIP][96] ([i915#3282])
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adls-6/igt@gem_tiled_pread_basic.html
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- fi-hsw-4770: NOTRUN -> [SKIP][97] ([i915#5190])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-hsw-4770/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-adls-6: NOTRUN -> [SKIP][98] ([i915#4103]) +1 other test skip
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adls-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_dsc@dsc-basic:
- bat-adls-6: NOTRUN -> [SKIP][99] ([i915#3555] / [i915#3840])
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adls-6/igt@kms_dsc@dsc-basic.html
* igt@kms_force_connector_basic@force-load-detect:
- bat-adls-6: NOTRUN -> [SKIP][100]
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adls-6/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_hdmi_inject@inject-audio:
- fi-kbl-8809g: NOTRUN -> [FAIL][101] ([IGT#3])
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-kbl-8809g/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-a-hdmi-a-1:
- fi-kbl-8809g: NOTRUN -> [SKIP][102] +60 other tests skip
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-kbl-8809g/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-a-hdmi-a-1.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-a-vga-1:
- fi-hsw-4770: NOTRUN -> [SKIP][103] +14 other tests skip
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-hsw-4770/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-a-vga-1.html
* igt@kms_pm_backlight@basic-brightness:
- bat-adls-6: NOTRUN -> [SKIP][104] ([i915#5354])
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adls-6/igt@kms_pm_backlight@basic-brightness.html
* igt@kms_pm_rpm@basic-pci-d3-state:
- fi-ilk-650: NOTRUN -> [SKIP][105] +23 other tests skip
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-ilk-650/igt@kms_pm_rpm@basic-pci-d3-state.html
* igt@kms_psr@psr-primary-mmap-gtt:
- bat-adls-6: NOTRUN -> [SKIP][106] ([i915#1072] / [i915#9732]) +3 other tests skip
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adls-6/igt@kms_psr@psr-primary-mmap-gtt.html
* igt@kms_psr@psr-sprite-plane-onoff:
- fi-hsw-4770: NOTRUN -> [SKIP][107] ([i915#1072]) +3 other tests skip
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/fi-hsw-4770/igt@kms_psr@psr-sprite-plane-onoff.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-adls-6: NOTRUN -> [SKIP][108] ([i915#3555])
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adls-6/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-fence-read:
- bat-adls-6: NOTRUN -> [SKIP][109] ([i915#3291]) +2 other tests skip
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adls-6/igt@prime_vgem@basic-fence-read.html
#### Possible fixes ####
* igt@i915_selftest@live:
- bat-arls-1: [DMESG-FAIL][110] ([i915#10262] / [i915#10341]) -> [PASS][111]
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-1/igt@i915_selftest@live.html
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-1/igt@i915_selftest@live.html
- bat-twl-1: [INCOMPLETE][112] ([i915#9413]) -> [PASS][113]
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-twl-1/igt@i915_selftest@live.html
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-twl-1/igt@i915_selftest@live.html
* igt@i915_selftest@live@evict:
- bat-arls-1: [DMESG-WARN][114] ([i915#10341]) -> [PASS][115]
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-1/igt@i915_selftest@live@evict.html
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-1/igt@i915_selftest@live@evict.html
* igt@i915_selftest@live@execlists:
- bat-arls-1: [DMESG-FAIL][116] ([i915#10262]) -> [PASS][117] +14 other tests pass
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-1/igt@i915_selftest@live@execlists.html
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-1/igt@i915_selftest@live@execlists.html
* igt@i915_selftest@live@gt_lrc:
- bat-twl-2: [INCOMPLETE][118] ([i915#9413]) -> [PASS][119] +1 other test pass
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-twl-2/igt@i915_selftest@live@gt_lrc.html
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-twl-2/igt@i915_selftest@live@gt_lrc.html
- bat-twl-1: [INCOMPLETE][120] ([i915#10886] / [i915#9413]) -> [PASS][121]
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-twl-1/igt@i915_selftest@live@gt_lrc.html
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-twl-1/igt@i915_selftest@live@gt_lrc.html
#### Warnings ####
* igt@gem_mmap@basic:
- bat-arls-2: [SKIP][122] ([i915#11343] / [i915#4083]) -> [SKIP][123] ([i915#4083])
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-2/igt@gem_mmap@basic.html
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-2/igt@gem_mmap@basic.html
- bat-arls-1: [SKIP][124] ([i915#11343] / [i915#4083]) -> [SKIP][125] ([i915#4083])
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-1/igt@gem_mmap@basic.html
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-1/igt@gem_mmap@basic.html
- bat-arls-5: [SKIP][126] ([i915#11343] / [i915#4083]) -> [SKIP][127] ([i915#4083])
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-5/igt@gem_mmap@basic.html
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-5/igt@gem_mmap@basic.html
* igt@gem_render_tiled_blits@basic:
- bat-arls-2: [SKIP][128] ([i915#10197] / [i915#10211] / [i915#4079]) -> [SKIP][129] ([i915#4079])
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-2/igt@gem_render_tiled_blits@basic.html
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-2/igt@gem_render_tiled_blits@basic.html
- bat-arls-5: [SKIP][130] ([i915#10197] / [i915#10211] / [i915#4079]) -> [SKIP][131] ([i915#4079])
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-5/igt@gem_render_tiled_blits@basic.html
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-5/igt@gem_render_tiled_blits@basic.html
- bat-arls-1: [SKIP][132] ([i915#10197] / [i915#10211] / [i915#4079]) -> [SKIP][133] ([i915#4079])
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-1/igt@gem_render_tiled_blits@basic.html
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-1/igt@gem_render_tiled_blits@basic.html
* igt@gem_tiled_pread_basic:
- bat-arls-5: [SKIP][134] ([i915#10206] / [i915#4079]) -> [SKIP][135] ([i915#4079])
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-5/igt@gem_tiled_pread_basic.html
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-5/igt@gem_tiled_pread_basic.html
- bat-arls-1: [SKIP][136] ([i915#10206] / [i915#4079]) -> [SKIP][137] ([i915#4079])
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-1/igt@gem_tiled_pread_basic.html
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-1/igt@gem_tiled_pread_basic.html
- bat-arls-2: [SKIP][138] ([i915#10206] / [i915#4079]) -> [SKIP][139] ([i915#4079])
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-2/igt@gem_tiled_pread_basic.html
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-2/igt@gem_tiled_pread_basic.html
* igt@i915_module_load@reload:
- bat-arls-5: [DMESG-WARN][140] ([i915#11637]) -> [DMESG-WARN][141] ([i915#11637] / [i915#1982])
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-5/igt@i915_module_load@reload.html
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-5/igt@i915_module_load@reload.html
* igt@i915_pm_rps@basic-api:
- bat-dg2-9: [SKIP][142] ([i915#11681] / [i915#6621]) -> [SKIP][143] ([i915#6621])
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-dg2-9/igt@i915_pm_rps@basic-api.html
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-dg2-9/igt@i915_pm_rps@basic-api.html
- bat-dg2-11: [SKIP][144] ([i915#11681] / [i915#6621]) -> [SKIP][145] ([i915#6621])
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-dg2-11/igt@i915_pm_rps@basic-api.html
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-dg2-11/igt@i915_pm_rps@basic-api.html
- bat-mtlp-8: [SKIP][146] ([i915#11681] / [i915#6621]) -> [SKIP][147] ([i915#6621])
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-mtlp-8/igt@i915_pm_rps@basic-api.html
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-mtlp-8/igt@i915_pm_rps@basic-api.html
- bat-mtlp-6: [SKIP][148] ([i915#11681] / [i915#6621]) -> [SKIP][149] ([i915#6621])
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-mtlp-6/igt@i915_pm_rps@basic-api.html
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-mtlp-6/igt@i915_pm_rps@basic-api.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-arls-5: [SKIP][150] ([i915#10202] / [i915#11346]) -> [SKIP][151] ([i915#11346]) +1 other test skip
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-5/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-5/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
- bat-arls-2: [SKIP][152] ([i915#10202] / [i915#11346]) -> [SKIP][153] ([i915#11346]) +1 other test skip
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
- bat-arls-1: [SKIP][154] ([i915#10202] / [i915#11346]) -> [SKIP][155] ([i915#11346]) +1 other test skip
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-arls-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-arls-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_psr@psr-cursor-plane-move:
- bat-mtlp-6: [SKIP][156] ([i915#1072] / [i915#9673] / [i915#9732] / [i915#9792]) -> [SKIP][157] ([i915#1072] / [i915#9732] / [i915#9792]) +3 other tests skip
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-mtlp-6/igt@kms_psr@psr-cursor-plane-move.html
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-mtlp-6/igt@kms_psr@psr-cursor-plane-move.html
* igt@kms_psr@psr-sprite-plane-onoff:
- bat-adlp-9: [SKIP][158] ([i915#1072] / [i915#9673] / [i915#9732]) -> [SKIP][159] ([i915#1072] / [i915#9732]) +3 other tests skip
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-adlp-9/igt@kms_psr@psr-sprite-plane-onoff.html
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adlp-9/igt@kms_psr@psr-sprite-plane-onoff.html
- bat-rplp-1: [SKIP][160] ([i915#1072] / [i915#9673] / [i915#9732]) -> [SKIP][161] ([i915#1072] / [i915#9732]) +3 other tests skip
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-rplp-1/igt@kms_psr@psr-sprite-plane-onoff.html
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-rplp-1/igt@kms_psr@psr-sprite-plane-onoff.html
- bat-dg2-9: [SKIP][162] ([i915#1072] / [i915#9673] / [i915#9732]) -> [SKIP][163] ([i915#1072] / [i915#9732]) +3 other tests skip
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-dg2-9/igt@kms_psr@psr-sprite-plane-onoff.html
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-dg2-9/igt@kms_psr@psr-sprite-plane-onoff.html
- bat-adlp-11: [SKIP][164] ([i915#1072] / [i915#9673] / [i915#9732]) -> [SKIP][165] ([i915#1072] / [i915#9732]) +3 other tests skip
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-adlp-11/igt@kms_psr@psr-sprite-plane-onoff.html
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adlp-11/igt@kms_psr@psr-sprite-plane-onoff.html
- bat-adlm-1: [SKIP][166] ([i915#1072] / [i915#9673] / [i915#9732]) -> [SKIP][167] ([i915#1072] / [i915#9732]) +3 other tests skip
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15443/bat-adlm-1/igt@kms_psr@psr-sprite-plane-onoff.html
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/bat-adlm-1/igt@kms_psr@psr-sprite-plane-onoff.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[IGT#3]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/3
[i915#10197]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10197
[i915#10202]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10202
[i915#10206]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10206
[i915#10209]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10209
[i915#10211]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10211
[i915#10213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10213
[i915#10262]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10262
[i915#10341]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10341
[i915#10462]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10462
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#10886]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10886
[i915#11030]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11030
[i915#11343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11343
[i915#11345]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11345
[i915#11346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11346
[i915#11637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11637
[i915#11671]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11671
[i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
[i915#11724]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11724
[i915#11725]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11725
[i915#1849]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1849
[i915#1982]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1982
[i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[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#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
[i915#9318]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9318
[i915#9413]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9413
[i915#9673]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9673
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9792]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9792
Build changes
-------------
* Linux: CI_DRM_15443 -> Patchwork_138069v4
CI-20190529: 20190529
CI_DRM_15443: abfe8cf977e1abd1f414b2a90d223cd4dd2f1f47 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8031: 27ba1f4756f12a3694dce6d456aed947f22a8e34 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_138069v4: abfe8cf977e1abd1f414b2a90d223cd4dd2f1f47 @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138069v4/index.html
[-- Attachment #2: Type: text/html, Size: 47513 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread