* [PATCH v4 0/3] Add drm_ras netlink error event support
@ 2026-07-01 9:44 Riana Tauro
2026-07-01 9:44 ` [PATCH v4 1/3] drm/drm_ras: Add drm_ras netlink error event Riana Tauro
` (5 more replies)
0 siblings, 6 replies; 12+ messages in thread
From: Riana Tauro @ 2026-07-01 9:44 UTC (permalink / raw)
To: intel-xe, dri-devel, netdev
Cc: aravind.iddamsetty, anshuman.gupta, rodrigo.vivi, joonas.lahtinen,
kuba, simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan,
ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri,
raag.jadav, maarten.lankhorst, mallesh.koujalagi, soham.purkait,
Riana Tauro
Define a new netlink event 'error-event' and a new multicast group
'error-report' in drm_ras. Each event contains device name, node and
error information to identify the error triggering the event.
Add drm_ras_nl_error_event() to trigger an event from the driver.
Wire this support to xe drm_ras to notify userspace whenever a GT or
SoC error occurs in PVC. Also add support for correctable errors in
CRI.
$ sudo ynl --family drm_ras --output-json --subscribe error-report
{
"name": "error-event",
"msg": {
"device-name": "0000:03:00.0",
"node-id": 1,
"node-name": "uncorrectable-errors",
"error-id": 1,
"error-name": "core-compute",
"error-value": 1
}
}
Rev2: use ynl in document and commit message
fix cosmetic review comments
simplify caller
Rev3: replace error-event with error-report
had has_drm_ras check
add support for correctable errors in CRI
Rev4: send an event at most once per component for each interrupt
add xe_warn for unexpected values from firmware
fix sashiko reported issues
Riana Tauro (3):
drm/drm_ras: Add drm_ras netlink error event
drm/xe/xe_drm_ras: Add error-event support for PVC
drm/xe/xe_ras: Add error-event support for CRI
Documentation/gpu/drm-ras.rst | 21 ++++++
Documentation/netlink/specs/drm_ras.yaml | 48 +++++++++++++
drivers/gpu/drm/drm_ras.c | 87 ++++++++++++++++++++++++
drivers/gpu/drm/drm_ras_nl.c | 6 ++
drivers/gpu/drm/drm_ras_nl.h | 4 ++
drivers/gpu/drm/xe/xe_drm_ras.c | 32 +++++++++
drivers/gpu/drm/xe/xe_drm_ras.h | 3 +
drivers/gpu/drm/xe/xe_hw_error.c | 5 +-
drivers/gpu/drm/xe/xe_ras.c | 75 ++++++++++++++++++++
include/drm/drm_ras.h | 5 ++
include/uapi/drm/drm_ras.h | 15 ++++
11 files changed, 300 insertions(+), 1 deletion(-)
--
2.47.1
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH v4 1/3] drm/drm_ras: Add drm_ras netlink error event 2026-07-01 9:44 [PATCH v4 0/3] Add drm_ras netlink error event support Riana Tauro @ 2026-07-01 9:44 ` Riana Tauro 2026-07-07 6:32 ` Tauro, Riana 2026-07-01 9:44 ` [PATCH v4 2/3] drm/xe/xe_drm_ras: Add error-event support for PVC Riana Tauro ` (4 subsequent siblings) 5 siblings, 1 reply; 12+ messages in thread From: Riana Tauro @ 2026-07-01 9:44 UTC (permalink / raw) To: intel-xe, dri-devel, netdev Cc: aravind.iddamsetty, anshuman.gupta, rodrigo.vivi, joonas.lahtinen, kuba, simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan, ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri, raag.jadav, maarten.lankhorst, mallesh.koujalagi, soham.purkait, Riana Tauro, Zack McKevitt, Lijo Lazar, Hawking Zhang, David S. Miller, Paolo Abeni, Eric Dumazet Define a new netlink event 'error-event' and a new multicast group 'error-report' in drm_ras. Each event contains device name, node and error information to identify the error triggering the event. Add drm_ras_nl_error_event() to trigger an event from the driver. Userspace must subscribe to 'error-report' to receive 'error-event' notifications. Usage: $ sudo ynl --family drm_ras --subscribe error-report Cc: Jakub Kicinski <kuba@kernel.org> Cc: Zack McKevitt <zachary.mckevitt@oss.qualcomm.com> Cc: Lijo Lazar <lijo.lazar@amd.com> Cc: Hawking Zhang <Hawking.Zhang@amd.com> Cc: David S. Miller <davem@davemloft.net> Cc: Paolo Abeni <pabeni@redhat.com> Cc: Eric Dumazet <edumazet@google.com> Signed-off-by: Riana Tauro <riana.tauro@intel.com> Reviewed-by: Raag Jadav <raag.jadav@intel.com> --- v2: remove redundant initialization remove unnecessary space use ynl in commit message and doc (Raag) simplify doc for error-event attrs v3: rename error-notify to error-report Replace notify with report across the file (Raag) --- Documentation/gpu/drm-ras.rst | 21 ++++++ Documentation/netlink/specs/drm_ras.yaml | 48 +++++++++++++ drivers/gpu/drm/drm_ras.c | 87 ++++++++++++++++++++++++ drivers/gpu/drm/drm_ras_nl.c | 6 ++ drivers/gpu/drm/drm_ras_nl.h | 4 ++ include/drm/drm_ras.h | 5 ++ include/uapi/drm/drm_ras.h | 15 ++++ 7 files changed, 186 insertions(+) diff --git a/Documentation/gpu/drm-ras.rst b/Documentation/gpu/drm-ras.rst index 83c21853b74b..406e4c49bac1 100644 --- a/Documentation/gpu/drm-ras.rst +++ b/Documentation/gpu/drm-ras.rst @@ -56,6 +56,7 @@ User space tools can: ``node-id`` and ``error-id`` as parameters. * Clear specific error counters with the ``clear-error-counter`` command, using both ``node-id`` and ``error-id`` as parameters. +* Subscribe to the ``error-report`` multicast group to receive ``error-event``. YAML-based Interface -------------------- @@ -111,3 +112,23 @@ Example: Clear an error counter for a given node sudo ynl --family drm_ras --do clear-error-counter --json '{"node-id":0, "error-id":1}' None + +Example: Subscribe to ``error-report`` multicast group + +.. code-block:: bash + + sudo ynl --family drm_ras --output-json --subscribe error-report + +.. code-block:: json + + { + "name": "error-event", + "msg": { + "device-name": "0000:03:00.0", + "node-id": 1, + "node-name": "uncorrectable-errors", + "error-id": 1, + "error-name": "error_name1", + "error-value": 1 + } + } diff --git a/Documentation/netlink/specs/drm_ras.yaml b/Documentation/netlink/specs/drm_ras.yaml index e113056f8c01..8aed3d4515e5 100644 --- a/Documentation/netlink/specs/drm_ras.yaml +++ b/Documentation/netlink/specs/drm_ras.yaml @@ -69,6 +69,33 @@ attribute-sets: name: error-value type: u32 doc: Current value of the requested error counter. + - + name: error-event-attrs + attributes: + - + name: device-name + type: string + doc: Device (PCI BDF, UUID) that reported the error. + - + name: node-id + type: u32 + doc: ID of the node that reported the error. + - + name: node-name + type: string + doc: Name of the node that reported the error. + - + name: error-id + type: u32 + doc: ID of the error counter. + - + name: error-name + type: string + doc: Name of the error. + - + name: error-value + type: u32 + doc: Current value of the error counter. operations: list: @@ -124,3 +151,24 @@ operations: do: request: attributes: *id-attrs + - + name: error-event + doc: >- + Report an error event to userspace. + The event includes the device, node and error information + of the error that triggered the event. + attribute-set: error-event-attrs + mcgrp: error-report + event: + attributes: + - device-name + - node-id + - node-name + - error-id + - error-name + - error-value + +mcast-groups: + list: + - + name: error-report diff --git a/drivers/gpu/drm/drm_ras.c b/drivers/gpu/drm/drm_ras.c index d6eab29a1394..77f912a4d101 100644 --- a/drivers/gpu/drm/drm_ras.c +++ b/drivers/gpu/drm/drm_ras.c @@ -41,6 +41,11 @@ * Userspace must provide Node ID, Error ID. * Clears specific error counter of a node if supported. * + * 4. ERROR_REPORT: Subscribe to this multicast group to receive error events + * + * 5. ERROR_EVENT: Report an error event to userspace. The event contains device, node + * and error information that triggered the event. + * * Node registration: * * - drm_ras_node_register(): Registers a new node and assigns @@ -186,6 +191,34 @@ static int msg_reply_value(struct sk_buff *msg, u32 error_id, value); } +static int msg_put_error_event_attrs(struct sk_buff *msg, struct drm_ras_node *node, + u32 error_id, const char *error_name, u32 value) +{ + int ret; + + ret = nla_put_string(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_DEVICE_NAME, node->device_name); + if (ret) + return ret; + + ret = nla_put_u32(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_ID, node->id); + if (ret) + return ret; + + ret = nla_put_string(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_NAME, node->node_name); + if (ret) + return ret; + + ret = nla_put_u32(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_ID, error_id); + if (ret) + return ret; + + ret = nla_put_string(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_NAME, error_name); + if (ret) + return ret; + + return nla_put_u32(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_VALUE, value); +} + static int doit_reply_value(struct genl_info *info, u32 node_id, u32 error_id) { @@ -222,6 +255,60 @@ static int doit_reply_value(struct genl_info *info, u32 node_id, return genlmsg_reply(msg, info); } +/** + * drm_ras_nl_error_event() - Report an error event + * @node: Node structure + * @error_id: ID of the error + * @error_name: Name of the error + * @value: Value associated with the error + * @flags: GFP flags for memory allocation + * + * Report an error-event to userspace using the error-report multicast group. + * + * Return: 0 on success, or negative errno on failure. + */ +int drm_ras_nl_error_event(struct drm_ras_node *node, u32 error_id, const char *error_name, + u32 value, gfp_t flags) +{ + struct genl_info info; + struct sk_buff *msg; + struct nlattr *hdr; + int ret; + + if (!error_name) + return -EINVAL; + + if (!genl_has_listeners(&drm_ras_nl_family, &init_net, DRM_RAS_NLGRP_ERROR_REPORT)) + return 0; + + genl_info_init_ntf(&info, &drm_ras_nl_family, DRM_RAS_CMD_ERROR_EVENT); + + msg = genlmsg_new(NLMSG_GOODSIZE, flags); + if (!msg) + return -ENOMEM; + + hdr = genlmsg_iput(msg, &info); + if (!hdr) { + ret = -EMSGSIZE; + goto free_msg; + } + + ret = msg_put_error_event_attrs(msg, node, error_id, error_name, value); + if (ret) + goto cancel_msg; + + genlmsg_end(msg, hdr); + genlmsg_multicast(&drm_ras_nl_family, msg, 0, DRM_RAS_NLGRP_ERROR_REPORT, flags); + return 0; + +cancel_msg: + genlmsg_cancel(msg, hdr); +free_msg: + nlmsg_free(msg); + return ret; +} +EXPORT_SYMBOL(drm_ras_nl_error_event); + /** * drm_ras_nl_get_error_counter_dumpit() - Dump all Error Counters * @skb: Netlink message buffer diff --git a/drivers/gpu/drm/drm_ras_nl.c b/drivers/gpu/drm/drm_ras_nl.c index dea1c1b2494e..9d3123cc9f9c 100644 --- a/drivers/gpu/drm/drm_ras_nl.c +++ b/drivers/gpu/drm/drm_ras_nl.c @@ -58,6 +58,10 @@ static const struct genl_split_ops drm_ras_nl_ops[] = { }, }; +static const struct genl_multicast_group drm_ras_nl_mcgrps[] = { + [DRM_RAS_NLGRP_ERROR_REPORT] = { "error-report", }, +}; + struct genl_family drm_ras_nl_family __ro_after_init = { .name = DRM_RAS_FAMILY_NAME, .version = DRM_RAS_FAMILY_VERSION, @@ -66,4 +70,6 @@ struct genl_family drm_ras_nl_family __ro_after_init = { .module = THIS_MODULE, .split_ops = drm_ras_nl_ops, .n_split_ops = ARRAY_SIZE(drm_ras_nl_ops), + .mcgrps = drm_ras_nl_mcgrps, + .n_mcgrps = ARRAY_SIZE(drm_ras_nl_mcgrps), }; diff --git a/drivers/gpu/drm/drm_ras_nl.h b/drivers/gpu/drm/drm_ras_nl.h index a398643572a5..03ec275aca92 100644 --- a/drivers/gpu/drm/drm_ras_nl.h +++ b/drivers/gpu/drm/drm_ras_nl.h @@ -21,6 +21,10 @@ int drm_ras_nl_get_error_counter_dumpit(struct sk_buff *skb, int drm_ras_nl_clear_error_counter_doit(struct sk_buff *skb, struct genl_info *info); +enum { + DRM_RAS_NLGRP_ERROR_REPORT, +}; + extern struct genl_family drm_ras_nl_family; #endif /* _LINUX_DRM_RAS_GEN_H */ diff --git a/include/drm/drm_ras.h b/include/drm/drm_ras.h index 0beede3ddc4e..8abfb7d2077b 100644 --- a/include/drm/drm_ras.h +++ b/include/drm/drm_ras.h @@ -80,9 +80,14 @@ struct drm_device; #if IS_ENABLED(CONFIG_DRM_RAS) int drm_ras_node_register(struct drm_ras_node *node); void drm_ras_node_unregister(struct drm_ras_node *node); +int drm_ras_nl_error_event(struct drm_ras_node *node, u32 error_id, const char *error_name, + u32 value, gfp_t flags); #else static inline int drm_ras_node_register(struct drm_ras_node *node) { return 0; } static inline void drm_ras_node_unregister(struct drm_ras_node *node) { } +static inline int drm_ras_nl_error_event(struct drm_ras_node *node, u32 error_id, + const char *error_name, u32 value, gfp_t flags) +{ return 0; } #endif #endif diff --git a/include/uapi/drm/drm_ras.h b/include/uapi/drm/drm_ras.h index 218a3ee86805..eab8231aa87c 100644 --- a/include/uapi/drm/drm_ras.h +++ b/include/uapi/drm/drm_ras.h @@ -38,13 +38,28 @@ enum { DRM_RAS_A_ERROR_COUNTER_ATTRS_MAX = (__DRM_RAS_A_ERROR_COUNTER_ATTRS_MAX - 1) }; +enum { + DRM_RAS_A_ERROR_EVENT_ATTRS_DEVICE_NAME = 1, + DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_ID, + DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_NAME, + DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_ID, + DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_NAME, + DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_VALUE, + + __DRM_RAS_A_ERROR_EVENT_ATTRS_MAX, + DRM_RAS_A_ERROR_EVENT_ATTRS_MAX = (__DRM_RAS_A_ERROR_EVENT_ATTRS_MAX - 1) +}; + enum { DRM_RAS_CMD_LIST_NODES = 1, DRM_RAS_CMD_GET_ERROR_COUNTER, DRM_RAS_CMD_CLEAR_ERROR_COUNTER, + DRM_RAS_CMD_ERROR_EVENT, __DRM_RAS_CMD_MAX, DRM_RAS_CMD_MAX = (__DRM_RAS_CMD_MAX - 1) }; +#define DRM_RAS_MCGRP_ERROR_REPORT "error-report" + #endif /* _UAPI_LINUX_DRM_RAS_H */ -- 2.47.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v4 1/3] drm/drm_ras: Add drm_ras netlink error event 2026-07-01 9:44 ` [PATCH v4 1/3] drm/drm_ras: Add drm_ras netlink error event Riana Tauro @ 2026-07-07 6:32 ` Tauro, Riana 2026-07-08 20:21 ` Rodrigo Vivi 0 siblings, 1 reply; 12+ messages in thread From: Tauro, Riana @ 2026-07-07 6:32 UTC (permalink / raw) To: intel-xe, aravind.iddamsetty, kuba, rodrigo.vivi Cc: anshuman.gupta, joonas.lahtinen, simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan, ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri, raag.jadav, maarten.lankhorst, mallesh.koujalagi, soham.purkait, Zack McKevitt, Lijo Lazar, Hawking Zhang, David S. Miller, Paolo Abeni, Eric Dumazet, dri-devel, netdev Hi Rodrigo/Jakub/Aravind Please let me know if you have any feedback for this patch or can you please ack this if it looks good to you. Thanks Riana On 01-07-2026 15:14, Riana Tauro wrote: > Define a new netlink event 'error-event' and a new multicast group > 'error-report' in drm_ras. Each event contains device name, node and > error information to identify the error triggering the event. > > Add drm_ras_nl_error_event() to trigger an event from the driver. > Userspace must subscribe to 'error-report' to receive 'error-event' > notifications. > > Usage: > > $ sudo ynl --family drm_ras --subscribe error-report > > Cc: Jakub Kicinski <kuba@kernel.org> > Cc: Zack McKevitt <zachary.mckevitt@oss.qualcomm.com> > Cc: Lijo Lazar <lijo.lazar@amd.com> > Cc: Hawking Zhang <Hawking.Zhang@amd.com> > Cc: David S. Miller <davem@davemloft.net> > Cc: Paolo Abeni <pabeni@redhat.com> > Cc: Eric Dumazet <edumazet@google.com> > Signed-off-by: Riana Tauro <riana.tauro@intel.com> > Reviewed-by: Raag Jadav <raag.jadav@intel.com> > --- > v2: remove redundant initialization > remove unnecessary space > use ynl in commit message and doc (Raag) > simplify doc for error-event attrs > > v3: rename error-notify to error-report > Replace notify with report across the file (Raag) > --- > Documentation/gpu/drm-ras.rst | 21 ++++++ > Documentation/netlink/specs/drm_ras.yaml | 48 +++++++++++++ > drivers/gpu/drm/drm_ras.c | 87 ++++++++++++++++++++++++ > drivers/gpu/drm/drm_ras_nl.c | 6 ++ > drivers/gpu/drm/drm_ras_nl.h | 4 ++ > include/drm/drm_ras.h | 5 ++ > include/uapi/drm/drm_ras.h | 15 ++++ > 7 files changed, 186 insertions(+) > > diff --git a/Documentation/gpu/drm-ras.rst b/Documentation/gpu/drm-ras.rst > index 83c21853b74b..406e4c49bac1 100644 > --- a/Documentation/gpu/drm-ras.rst > +++ b/Documentation/gpu/drm-ras.rst > @@ -56,6 +56,7 @@ User space tools can: > ``node-id`` and ``error-id`` as parameters. > * Clear specific error counters with the ``clear-error-counter`` command, using both > ``node-id`` and ``error-id`` as parameters. > +* Subscribe to the ``error-report`` multicast group to receive ``error-event``. > > YAML-based Interface > -------------------- > @@ -111,3 +112,23 @@ Example: Clear an error counter for a given node > > sudo ynl --family drm_ras --do clear-error-counter --json '{"node-id":0, "error-id":1}' > None > + > +Example: Subscribe to ``error-report`` multicast group > + > +.. code-block:: bash > + > + sudo ynl --family drm_ras --output-json --subscribe error-report > + > +.. code-block:: json > + > + { > + "name": "error-event", > + "msg": { > + "device-name": "0000:03:00.0", > + "node-id": 1, > + "node-name": "uncorrectable-errors", > + "error-id": 1, > + "error-name": "error_name1", > + "error-value": 1 > + } > + } > diff --git a/Documentation/netlink/specs/drm_ras.yaml b/Documentation/netlink/specs/drm_ras.yaml > index e113056f8c01..8aed3d4515e5 100644 > --- a/Documentation/netlink/specs/drm_ras.yaml > +++ b/Documentation/netlink/specs/drm_ras.yaml > @@ -69,6 +69,33 @@ attribute-sets: > name: error-value > type: u32 > doc: Current value of the requested error counter. > + - > + name: error-event-attrs > + attributes: > + - > + name: device-name > + type: string > + doc: Device (PCI BDF, UUID) that reported the error. > + - > + name: node-id > + type: u32 > + doc: ID of the node that reported the error. > + - > + name: node-name > + type: string > + doc: Name of the node that reported the error. > + - > + name: error-id > + type: u32 > + doc: ID of the error counter. > + - > + name: error-name > + type: string > + doc: Name of the error. > + - > + name: error-value > + type: u32 > + doc: Current value of the error counter. > > operations: > list: > @@ -124,3 +151,24 @@ operations: > do: > request: > attributes: *id-attrs > + - > + name: error-event > + doc: >- > + Report an error event to userspace. > + The event includes the device, node and error information > + of the error that triggered the event. > + attribute-set: error-event-attrs > + mcgrp: error-report > + event: > + attributes: > + - device-name > + - node-id > + - node-name > + - error-id > + - error-name > + - error-value > + > +mcast-groups: > + list: > + - > + name: error-report > diff --git a/drivers/gpu/drm/drm_ras.c b/drivers/gpu/drm/drm_ras.c > index d6eab29a1394..77f912a4d101 100644 > --- a/drivers/gpu/drm/drm_ras.c > +++ b/drivers/gpu/drm/drm_ras.c > @@ -41,6 +41,11 @@ > * Userspace must provide Node ID, Error ID. > * Clears specific error counter of a node if supported. > * > + * 4. ERROR_REPORT: Subscribe to this multicast group to receive error events > + * > + * 5. ERROR_EVENT: Report an error event to userspace. The event contains device, node > + * and error information that triggered the event. > + * > * Node registration: > * > * - drm_ras_node_register(): Registers a new node and assigns > @@ -186,6 +191,34 @@ static int msg_reply_value(struct sk_buff *msg, u32 error_id, > value); > } > > +static int msg_put_error_event_attrs(struct sk_buff *msg, struct drm_ras_node *node, > + u32 error_id, const char *error_name, u32 value) > +{ > + int ret; > + > + ret = nla_put_string(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_DEVICE_NAME, node->device_name); > + if (ret) > + return ret; > + > + ret = nla_put_u32(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_ID, node->id); > + if (ret) > + return ret; > + > + ret = nla_put_string(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_NAME, node->node_name); > + if (ret) > + return ret; > + > + ret = nla_put_u32(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_ID, error_id); > + if (ret) > + return ret; > + > + ret = nla_put_string(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_NAME, error_name); > + if (ret) > + return ret; > + > + return nla_put_u32(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_VALUE, value); > +} > + > static int doit_reply_value(struct genl_info *info, u32 node_id, > u32 error_id) > { > @@ -222,6 +255,60 @@ static int doit_reply_value(struct genl_info *info, u32 node_id, > return genlmsg_reply(msg, info); > } > > +/** > + * drm_ras_nl_error_event() - Report an error event > + * @node: Node structure > + * @error_id: ID of the error > + * @error_name: Name of the error > + * @value: Value associated with the error > + * @flags: GFP flags for memory allocation > + * > + * Report an error-event to userspace using the error-report multicast group. > + * > + * Return: 0 on success, or negative errno on failure. > + */ > +int drm_ras_nl_error_event(struct drm_ras_node *node, u32 error_id, const char *error_name, > + u32 value, gfp_t flags) > +{ > + struct genl_info info; > + struct sk_buff *msg; > + struct nlattr *hdr; > + int ret; > + > + if (!error_name) > + return -EINVAL; > + > + if (!genl_has_listeners(&drm_ras_nl_family, &init_net, DRM_RAS_NLGRP_ERROR_REPORT)) > + return 0; > + > + genl_info_init_ntf(&info, &drm_ras_nl_family, DRM_RAS_CMD_ERROR_EVENT); > + > + msg = genlmsg_new(NLMSG_GOODSIZE, flags); > + if (!msg) > + return -ENOMEM; > + > + hdr = genlmsg_iput(msg, &info); > + if (!hdr) { > + ret = -EMSGSIZE; > + goto free_msg; > + } > + > + ret = msg_put_error_event_attrs(msg, node, error_id, error_name, value); > + if (ret) > + goto cancel_msg; > + > + genlmsg_end(msg, hdr); > + genlmsg_multicast(&drm_ras_nl_family, msg, 0, DRM_RAS_NLGRP_ERROR_REPORT, flags); > + return 0; > + > +cancel_msg: > + genlmsg_cancel(msg, hdr); > +free_msg: > + nlmsg_free(msg); > + return ret; > +} > +EXPORT_SYMBOL(drm_ras_nl_error_event); > + > /** > * drm_ras_nl_get_error_counter_dumpit() - Dump all Error Counters > * @skb: Netlink message buffer > diff --git a/drivers/gpu/drm/drm_ras_nl.c b/drivers/gpu/drm/drm_ras_nl.c > index dea1c1b2494e..9d3123cc9f9c 100644 > --- a/drivers/gpu/drm/drm_ras_nl.c > +++ b/drivers/gpu/drm/drm_ras_nl.c > @@ -58,6 +58,10 @@ static const struct genl_split_ops drm_ras_nl_ops[] = { > }, > }; > > +static const struct genl_multicast_group drm_ras_nl_mcgrps[] = { > + [DRM_RAS_NLGRP_ERROR_REPORT] = { "error-report", }, > +}; > + > struct genl_family drm_ras_nl_family __ro_after_init = { > .name = DRM_RAS_FAMILY_NAME, > .version = DRM_RAS_FAMILY_VERSION, > @@ -66,4 +70,6 @@ struct genl_family drm_ras_nl_family __ro_after_init = { > .module = THIS_MODULE, > .split_ops = drm_ras_nl_ops, > .n_split_ops = ARRAY_SIZE(drm_ras_nl_ops), > + .mcgrps = drm_ras_nl_mcgrps, > + .n_mcgrps = ARRAY_SIZE(drm_ras_nl_mcgrps), > }; > diff --git a/drivers/gpu/drm/drm_ras_nl.h b/drivers/gpu/drm/drm_ras_nl.h > index a398643572a5..03ec275aca92 100644 > --- a/drivers/gpu/drm/drm_ras_nl.h > +++ b/drivers/gpu/drm/drm_ras_nl.h > @@ -21,6 +21,10 @@ int drm_ras_nl_get_error_counter_dumpit(struct sk_buff *skb, > int drm_ras_nl_clear_error_counter_doit(struct sk_buff *skb, > struct genl_info *info); > > +enum { > + DRM_RAS_NLGRP_ERROR_REPORT, > +}; > + > extern struct genl_family drm_ras_nl_family; > > #endif /* _LINUX_DRM_RAS_GEN_H */ > diff --git a/include/drm/drm_ras.h b/include/drm/drm_ras.h > index 0beede3ddc4e..8abfb7d2077b 100644 > --- a/include/drm/drm_ras.h > +++ b/include/drm/drm_ras.h > @@ -80,9 +80,14 @@ struct drm_device; > #if IS_ENABLED(CONFIG_DRM_RAS) > int drm_ras_node_register(struct drm_ras_node *node); > void drm_ras_node_unregister(struct drm_ras_node *node); > +int drm_ras_nl_error_event(struct drm_ras_node *node, u32 error_id, const char *error_name, > + u32 value, gfp_t flags); > #else > static inline int drm_ras_node_register(struct drm_ras_node *node) { return 0; } > static inline void drm_ras_node_unregister(struct drm_ras_node *node) { } > +static inline int drm_ras_nl_error_event(struct drm_ras_node *node, u32 error_id, > + const char *error_name, u32 value, gfp_t flags) > +{ return 0; } > #endif > > #endif > diff --git a/include/uapi/drm/drm_ras.h b/include/uapi/drm/drm_ras.h > index 218a3ee86805..eab8231aa87c 100644 > --- a/include/uapi/drm/drm_ras.h > +++ b/include/uapi/drm/drm_ras.h > @@ -38,13 +38,28 @@ enum { > DRM_RAS_A_ERROR_COUNTER_ATTRS_MAX = (__DRM_RAS_A_ERROR_COUNTER_ATTRS_MAX - 1) > }; > > +enum { > + DRM_RAS_A_ERROR_EVENT_ATTRS_DEVICE_NAME = 1, > + DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_ID, > + DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_NAME, > + DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_ID, > + DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_NAME, > + DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_VALUE, > + > + __DRM_RAS_A_ERROR_EVENT_ATTRS_MAX, > + DRM_RAS_A_ERROR_EVENT_ATTRS_MAX = (__DRM_RAS_A_ERROR_EVENT_ATTRS_MAX - 1) > +}; > + > enum { > DRM_RAS_CMD_LIST_NODES = 1, > DRM_RAS_CMD_GET_ERROR_COUNTER, > DRM_RAS_CMD_CLEAR_ERROR_COUNTER, > + DRM_RAS_CMD_ERROR_EVENT, > > __DRM_RAS_CMD_MAX, > DRM_RAS_CMD_MAX = (__DRM_RAS_CMD_MAX - 1) > }; > > +#define DRM_RAS_MCGRP_ERROR_REPORT "error-report" > + > #endif /* _UAPI_LINUX_DRM_RAS_H */ ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v4 1/3] drm/drm_ras: Add drm_ras netlink error event 2026-07-07 6:32 ` Tauro, Riana @ 2026-07-08 20:21 ` Rodrigo Vivi 2026-07-09 5:15 ` Tauro, Riana 0 siblings, 1 reply; 12+ messages in thread From: Rodrigo Vivi @ 2026-07-08 20:21 UTC (permalink / raw) To: Tauro, Riana Cc: intel-xe, aravind.iddamsetty, kuba, anshuman.gupta, joonas.lahtinen, simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan, ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri, raag.jadav, maarten.lankhorst, mallesh.koujalagi, soham.purkait, Zack McKevitt, Lijo Lazar, Hawking Zhang, David S. Miller, Paolo Abeni, Eric Dumazet, dri-devel, netdev On Tue, Jul 07, 2026 at 12:02:11PM +0530, Tauro, Riana wrote: > Hi Rodrigo/Jakub/Aravind > > Please let me know if you have any feedback for this patch or can you please > ack this if it looks good to you. I looks good to me, but could you please double check the sashiko's comments? Patch 3 still needs review I believe, then we get Jakub and drm maintainers acks to get this through drm-xe-next. Thanks, Rodrigo. > > Thanks > Riana > > On 01-07-2026 15:14, Riana Tauro wrote: > > Define a new netlink event 'error-event' and a new multicast group > > 'error-report' in drm_ras. Each event contains device name, node and > > error information to identify the error triggering the event. > > > > Add drm_ras_nl_error_event() to trigger an event from the driver. > > Userspace must subscribe to 'error-report' to receive 'error-event' > > notifications. > > > > Usage: > > > > $ sudo ynl --family drm_ras --subscribe error-report > > > > Cc: Jakub Kicinski <kuba@kernel.org> > > Cc: Zack McKevitt <zachary.mckevitt@oss.qualcomm.com> > > Cc: Lijo Lazar <lijo.lazar@amd.com> > > Cc: Hawking Zhang <Hawking.Zhang@amd.com> > > Cc: David S. Miller <davem@davemloft.net> > > Cc: Paolo Abeni <pabeni@redhat.com> > > Cc: Eric Dumazet <edumazet@google.com> > > Signed-off-by: Riana Tauro <riana.tauro@intel.com> > > Reviewed-by: Raag Jadav <raag.jadav@intel.com> > > --- > > v2: remove redundant initialization > > remove unnecessary space > > use ynl in commit message and doc (Raag) > > simplify doc for error-event attrs > > > > v3: rename error-notify to error-report > > Replace notify with report across the file (Raag) > > --- > > Documentation/gpu/drm-ras.rst | 21 ++++++ > > Documentation/netlink/specs/drm_ras.yaml | 48 +++++++++++++ > > drivers/gpu/drm/drm_ras.c | 87 ++++++++++++++++++++++++ > > drivers/gpu/drm/drm_ras_nl.c | 6 ++ > > drivers/gpu/drm/drm_ras_nl.h | 4 ++ > > include/drm/drm_ras.h | 5 ++ > > include/uapi/drm/drm_ras.h | 15 ++++ > > 7 files changed, 186 insertions(+) > > > > diff --git a/Documentation/gpu/drm-ras.rst b/Documentation/gpu/drm-ras.rst > > index 83c21853b74b..406e4c49bac1 100644 > > --- a/Documentation/gpu/drm-ras.rst > > +++ b/Documentation/gpu/drm-ras.rst > > @@ -56,6 +56,7 @@ User space tools can: > > ``node-id`` and ``error-id`` as parameters. > > * Clear specific error counters with the ``clear-error-counter`` command, using both > > ``node-id`` and ``error-id`` as parameters. > > +* Subscribe to the ``error-report`` multicast group to receive ``error-event``. > > YAML-based Interface > > -------------------- > > @@ -111,3 +112,23 @@ Example: Clear an error counter for a given node > > sudo ynl --family drm_ras --do clear-error-counter --json '{"node-id":0, "error-id":1}' > > None > > + > > +Example: Subscribe to ``error-report`` multicast group > > + > > +.. code-block:: bash > > + > > + sudo ynl --family drm_ras --output-json --subscribe error-report > > + > > +.. code-block:: json > > + > > + { > > + "name": "error-event", > > + "msg": { > > + "device-name": "0000:03:00.0", > > + "node-id": 1, > > + "node-name": "uncorrectable-errors", > > + "error-id": 1, > > + "error-name": "error_name1", > > + "error-value": 1 > > + } > > + } > > diff --git a/Documentation/netlink/specs/drm_ras.yaml b/Documentation/netlink/specs/drm_ras.yaml > > index e113056f8c01..8aed3d4515e5 100644 > > --- a/Documentation/netlink/specs/drm_ras.yaml > > +++ b/Documentation/netlink/specs/drm_ras.yaml > > @@ -69,6 +69,33 @@ attribute-sets: > > name: error-value > > type: u32 > > doc: Current value of the requested error counter. > > + - > > + name: error-event-attrs > > + attributes: > > + - > > + name: device-name > > + type: string > > + doc: Device (PCI BDF, UUID) that reported the error. > > + - > > + name: node-id > > + type: u32 > > + doc: ID of the node that reported the error. > > + - > > + name: node-name > > + type: string > > + doc: Name of the node that reported the error. > > + - > > + name: error-id > > + type: u32 > > + doc: ID of the error counter. > > + - > > + name: error-name > > + type: string > > + doc: Name of the error. > > + - > > + name: error-value > > + type: u32 > > + doc: Current value of the error counter. > > operations: > > list: > > @@ -124,3 +151,24 @@ operations: > > do: > > request: > > attributes: *id-attrs > > + - > > + name: error-event > > + doc: >- > > + Report an error event to userspace. > > + The event includes the device, node and error information > > + of the error that triggered the event. > > + attribute-set: error-event-attrs > > + mcgrp: error-report > > + event: > > + attributes: > > + - device-name > > + - node-id > > + - node-name > > + - error-id > > + - error-name > > + - error-value > > + > > +mcast-groups: > > + list: > > + - > > + name: error-report > > diff --git a/drivers/gpu/drm/drm_ras.c b/drivers/gpu/drm/drm_ras.c > > index d6eab29a1394..77f912a4d101 100644 > > --- a/drivers/gpu/drm/drm_ras.c > > +++ b/drivers/gpu/drm/drm_ras.c > > @@ -41,6 +41,11 @@ > > * Userspace must provide Node ID, Error ID. > > * Clears specific error counter of a node if supported. > > * > > + * 4. ERROR_REPORT: Subscribe to this multicast group to receive error events > > + * > > + * 5. ERROR_EVENT: Report an error event to userspace. The event contains device, node > > + * and error information that triggered the event. > > + * > > * Node registration: > > * > > * - drm_ras_node_register(): Registers a new node and assigns > > @@ -186,6 +191,34 @@ static int msg_reply_value(struct sk_buff *msg, u32 error_id, > > value); > > } > > +static int msg_put_error_event_attrs(struct sk_buff *msg, struct drm_ras_node *node, > > + u32 error_id, const char *error_name, u32 value) > > +{ > > + int ret; > > + > > + ret = nla_put_string(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_DEVICE_NAME, node->device_name); > > + if (ret) > > + return ret; > > + > > + ret = nla_put_u32(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_ID, node->id); > > + if (ret) > > + return ret; > > + > > + ret = nla_put_string(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_NAME, node->node_name); > > + if (ret) > > + return ret; > > + > > + ret = nla_put_u32(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_ID, error_id); > > + if (ret) > > + return ret; > > + > > + ret = nla_put_string(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_NAME, error_name); > > + if (ret) > > + return ret; > > + > > + return nla_put_u32(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_VALUE, value); > > +} > > + > > static int doit_reply_value(struct genl_info *info, u32 node_id, > > u32 error_id) > > { > > @@ -222,6 +255,60 @@ static int doit_reply_value(struct genl_info *info, u32 node_id, > > return genlmsg_reply(msg, info); > > } > > +/** > > + * drm_ras_nl_error_event() - Report an error event > > + * @node: Node structure > > + * @error_id: ID of the error > > + * @error_name: Name of the error > > + * @value: Value associated with the error > > + * @flags: GFP flags for memory allocation > > + * > > + * Report an error-event to userspace using the error-report multicast group. > > + * > > + * Return: 0 on success, or negative errno on failure. > > + */ > > +int drm_ras_nl_error_event(struct drm_ras_node *node, u32 error_id, const char *error_name, > > + u32 value, gfp_t flags) > > +{ > > + struct genl_info info; > > + struct sk_buff *msg; > > + struct nlattr *hdr; > > + int ret; > > + > > + if (!error_name) > > + return -EINVAL; > > + > > + if (!genl_has_listeners(&drm_ras_nl_family, &init_net, DRM_RAS_NLGRP_ERROR_REPORT)) > > + return 0; > > + > > + genl_info_init_ntf(&info, &drm_ras_nl_family, DRM_RAS_CMD_ERROR_EVENT); > > + > > + msg = genlmsg_new(NLMSG_GOODSIZE, flags); > > + if (!msg) > > + return -ENOMEM; > > + > > + hdr = genlmsg_iput(msg, &info); > > + if (!hdr) { > > + ret = -EMSGSIZE; > > + goto free_msg; > > + } > > + > > + ret = msg_put_error_event_attrs(msg, node, error_id, error_name, value); > > + if (ret) > > + goto cancel_msg; > > + > > + genlmsg_end(msg, hdr); > > + genlmsg_multicast(&drm_ras_nl_family, msg, 0, DRM_RAS_NLGRP_ERROR_REPORT, flags); > > + return 0; > > + > > +cancel_msg: > > + genlmsg_cancel(msg, hdr); > > +free_msg: > > + nlmsg_free(msg); > > + return ret; > > +} > > +EXPORT_SYMBOL(drm_ras_nl_error_event); > > + > > /** > > * drm_ras_nl_get_error_counter_dumpit() - Dump all Error Counters > > * @skb: Netlink message buffer > > diff --git a/drivers/gpu/drm/drm_ras_nl.c b/drivers/gpu/drm/drm_ras_nl.c > > index dea1c1b2494e..9d3123cc9f9c 100644 > > --- a/drivers/gpu/drm/drm_ras_nl.c > > +++ b/drivers/gpu/drm/drm_ras_nl.c > > @@ -58,6 +58,10 @@ static const struct genl_split_ops drm_ras_nl_ops[] = { > > }, > > }; > > +static const struct genl_multicast_group drm_ras_nl_mcgrps[] = { > > + [DRM_RAS_NLGRP_ERROR_REPORT] = { "error-report", }, > > +}; > > + > > struct genl_family drm_ras_nl_family __ro_after_init = { > > .name = DRM_RAS_FAMILY_NAME, > > .version = DRM_RAS_FAMILY_VERSION, > > @@ -66,4 +70,6 @@ struct genl_family drm_ras_nl_family __ro_after_init = { > > .module = THIS_MODULE, > > .split_ops = drm_ras_nl_ops, > > .n_split_ops = ARRAY_SIZE(drm_ras_nl_ops), > > + .mcgrps = drm_ras_nl_mcgrps, > > + .n_mcgrps = ARRAY_SIZE(drm_ras_nl_mcgrps), > > }; > > diff --git a/drivers/gpu/drm/drm_ras_nl.h b/drivers/gpu/drm/drm_ras_nl.h > > index a398643572a5..03ec275aca92 100644 > > --- a/drivers/gpu/drm/drm_ras_nl.h > > +++ b/drivers/gpu/drm/drm_ras_nl.h > > @@ -21,6 +21,10 @@ int drm_ras_nl_get_error_counter_dumpit(struct sk_buff *skb, > > int drm_ras_nl_clear_error_counter_doit(struct sk_buff *skb, > > struct genl_info *info); > > +enum { > > + DRM_RAS_NLGRP_ERROR_REPORT, > > +}; > > + > > extern struct genl_family drm_ras_nl_family; > > #endif /* _LINUX_DRM_RAS_GEN_H */ > > diff --git a/include/drm/drm_ras.h b/include/drm/drm_ras.h > > index 0beede3ddc4e..8abfb7d2077b 100644 > > --- a/include/drm/drm_ras.h > > +++ b/include/drm/drm_ras.h > > @@ -80,9 +80,14 @@ struct drm_device; > > #if IS_ENABLED(CONFIG_DRM_RAS) > > int drm_ras_node_register(struct drm_ras_node *node); > > void drm_ras_node_unregister(struct drm_ras_node *node); > > +int drm_ras_nl_error_event(struct drm_ras_node *node, u32 error_id, const char *error_name, > > + u32 value, gfp_t flags); > > #else > > static inline int drm_ras_node_register(struct drm_ras_node *node) { return 0; } > > static inline void drm_ras_node_unregister(struct drm_ras_node *node) { } > > +static inline int drm_ras_nl_error_event(struct drm_ras_node *node, u32 error_id, > > + const char *error_name, u32 value, gfp_t flags) > > +{ return 0; } > > #endif > > #endif > > diff --git a/include/uapi/drm/drm_ras.h b/include/uapi/drm/drm_ras.h > > index 218a3ee86805..eab8231aa87c 100644 > > --- a/include/uapi/drm/drm_ras.h > > +++ b/include/uapi/drm/drm_ras.h > > @@ -38,13 +38,28 @@ enum { > > DRM_RAS_A_ERROR_COUNTER_ATTRS_MAX = (__DRM_RAS_A_ERROR_COUNTER_ATTRS_MAX - 1) > > }; > > +enum { > > + DRM_RAS_A_ERROR_EVENT_ATTRS_DEVICE_NAME = 1, > > + DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_ID, > > + DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_NAME, > > + DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_ID, > > + DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_NAME, > > + DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_VALUE, > > + > > + __DRM_RAS_A_ERROR_EVENT_ATTRS_MAX, > > + DRM_RAS_A_ERROR_EVENT_ATTRS_MAX = (__DRM_RAS_A_ERROR_EVENT_ATTRS_MAX - 1) > > +}; > > + > > enum { > > DRM_RAS_CMD_LIST_NODES = 1, > > DRM_RAS_CMD_GET_ERROR_COUNTER, > > DRM_RAS_CMD_CLEAR_ERROR_COUNTER, > > + DRM_RAS_CMD_ERROR_EVENT, > > __DRM_RAS_CMD_MAX, > > DRM_RAS_CMD_MAX = (__DRM_RAS_CMD_MAX - 1) > > }; > > +#define DRM_RAS_MCGRP_ERROR_REPORT "error-report" > > + > > #endif /* _UAPI_LINUX_DRM_RAS_H */ ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v4 1/3] drm/drm_ras: Add drm_ras netlink error event 2026-07-08 20:21 ` Rodrigo Vivi @ 2026-07-09 5:15 ` Tauro, Riana 2026-07-09 9:22 ` Raag Jadav 0 siblings, 1 reply; 12+ messages in thread From: Tauro, Riana @ 2026-07-09 5:15 UTC (permalink / raw) To: Rodrigo Vivi, raag.jadav, kuba, aravind.iddamsetty Cc: intel-xe, anshuman.gupta, joonas.lahtinen, simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan, ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri, maarten.lankhorst, mallesh.koujalagi, soham.purkait, Zack McKevitt, Lijo Lazar, Hawking Zhang, David S. Miller, Paolo Abeni, Eric Dumazet, dri-devel, netdev On 09-07-2026 01:51, Rodrigo Vivi wrote: > On Tue, Jul 07, 2026 at 12:02:11PM +0530, Tauro, Riana wrote: >> Hi Rodrigo/Jakub/Aravind >> >> Please let me know if you have any feedback for this patch or can you please >> ack this if it looks good to you. > I looks good to me, but could you please double check the sashiko's comments? Sashiko has a comment regarding namespaces [Severity: Medium]Since the generic netlink family explicitly supports multiple networknamespaces by setting .netnsok = true, will hardcoding init_net hereprevent listeners in non-init namespaces from receiving error events .netnsok = true is auto generated not explicitly added in code. But from what i see, drm device is present in the host and not replicated across namespaces and most of the non-network implementations use inet. (ex: Binder) If this really needs a fix, we can drop the has_listeners suggested by raag in previous patch. I don't think in an error path, allocating a new buffer would be a big overhead if listeners are not present. @Raag let me know your thoughts. The 3rd patch can be floated seperately, I can drop it before merging and resend if i can get an ack for this patch Thanks Riana > > Patch 3 still needs review I believe, then we get Jakub and drm maintainers acks > to get this through drm-xe-next. > > Thanks, > Rodrigo. > >> Thanks >> Riana >> >> On 01-07-2026 15:14, Riana Tauro wrote: >>> Define a new netlink event 'error-event' and a new multicast group >>> 'error-report' in drm_ras. Each event contains device name, node and >>> error information to identify the error triggering the event. >>> >>> Add drm_ras_nl_error_event() to trigger an event from the driver. >>> Userspace must subscribe to 'error-report' to receive 'error-event' >>> notifications. >>> >>> Usage: >>> >>> $ sudo ynl --family drm_ras --subscribe error-report >>> >>> Cc: Jakub Kicinski <kuba@kernel.org> >>> Cc: Zack McKevitt <zachary.mckevitt@oss.qualcomm.com> >>> Cc: Lijo Lazar <lijo.lazar@amd.com> >>> Cc: Hawking Zhang <Hawking.Zhang@amd.com> >>> Cc: David S. Miller <davem@davemloft.net> >>> Cc: Paolo Abeni <pabeni@redhat.com> >>> Cc: Eric Dumazet <edumazet@google.com> >>> Signed-off-by: Riana Tauro <riana.tauro@intel.com> >>> Reviewed-by: Raag Jadav <raag.jadav@intel.com> >>> --- >>> v2: remove redundant initialization >>> remove unnecessary space >>> use ynl in commit message and doc (Raag) >>> simplify doc for error-event attrs >>> >>> v3: rename error-notify to error-report >>> Replace notify with report across the file (Raag) >>> --- >>> Documentation/gpu/drm-ras.rst | 21 ++++++ >>> Documentation/netlink/specs/drm_ras.yaml | 48 +++++++++++++ >>> drivers/gpu/drm/drm_ras.c | 87 ++++++++++++++++++++++++ >>> drivers/gpu/drm/drm_ras_nl.c | 6 ++ >>> drivers/gpu/drm/drm_ras_nl.h | 4 ++ >>> include/drm/drm_ras.h | 5 ++ >>> include/uapi/drm/drm_ras.h | 15 ++++ >>> 7 files changed, 186 insertions(+) >>> >>> diff --git a/Documentation/gpu/drm-ras.rst b/Documentation/gpu/drm-ras.rst >>> index 83c21853b74b..406e4c49bac1 100644 >>> --- a/Documentation/gpu/drm-ras.rst >>> +++ b/Documentation/gpu/drm-ras.rst >>> @@ -56,6 +56,7 @@ User space tools can: >>> ``node-id`` and ``error-id`` as parameters. >>> * Clear specific error counters with the ``clear-error-counter`` command, using both >>> ``node-id`` and ``error-id`` as parameters. >>> +* Subscribe to the ``error-report`` multicast group to receive ``error-event``. >>> YAML-based Interface >>> -------------------- >>> @@ -111,3 +112,23 @@ Example: Clear an error counter for a given node >>> sudo ynl --family drm_ras --do clear-error-counter --json '{"node-id":0, "error-id":1}' >>> None >>> + >>> +Example: Subscribe to ``error-report`` multicast group >>> + >>> +.. code-block:: bash >>> + >>> + sudo ynl --family drm_ras --output-json --subscribe error-report >>> + >>> +.. code-block:: json >>> + >>> + { >>> + "name": "error-event", >>> + "msg": { >>> + "device-name": "0000:03:00.0", >>> + "node-id": 1, >>> + "node-name": "uncorrectable-errors", >>> + "error-id": 1, >>> + "error-name": "error_name1", >>> + "error-value": 1 >>> + } >>> + } >>> diff --git a/Documentation/netlink/specs/drm_ras.yaml b/Documentation/netlink/specs/drm_ras.yaml >>> index e113056f8c01..8aed3d4515e5 100644 >>> --- a/Documentation/netlink/specs/drm_ras.yaml >>> +++ b/Documentation/netlink/specs/drm_ras.yaml >>> @@ -69,6 +69,33 @@ attribute-sets: >>> name: error-value >>> type: u32 >>> doc: Current value of the requested error counter. >>> + - >>> + name: error-event-attrs >>> + attributes: >>> + - >>> + name: device-name >>> + type: string >>> + doc: Device (PCI BDF, UUID) that reported the error. >>> + - >>> + name: node-id >>> + type: u32 >>> + doc: ID of the node that reported the error. >>> + - >>> + name: node-name >>> + type: string >>> + doc: Name of the node that reported the error. >>> + - >>> + name: error-id >>> + type: u32 >>> + doc: ID of the error counter. >>> + - >>> + name: error-name >>> + type: string >>> + doc: Name of the error. >>> + - >>> + name: error-value >>> + type: u32 >>> + doc: Current value of the error counter. >>> operations: >>> list: >>> @@ -124,3 +151,24 @@ operations: >>> do: >>> request: >>> attributes: *id-attrs >>> + - >>> + name: error-event >>> + doc: >- >>> + Report an error event to userspace. >>> + The event includes the device, node and error information >>> + of the error that triggered the event. >>> + attribute-set: error-event-attrs >>> + mcgrp: error-report >>> + event: >>> + attributes: >>> + - device-name >>> + - node-id >>> + - node-name >>> + - error-id >>> + - error-name >>> + - error-value >>> + >>> +mcast-groups: >>> + list: >>> + - >>> + name: error-report >>> diff --git a/drivers/gpu/drm/drm_ras.c b/drivers/gpu/drm/drm_ras.c >>> index d6eab29a1394..77f912a4d101 100644 >>> --- a/drivers/gpu/drm/drm_ras.c >>> +++ b/drivers/gpu/drm/drm_ras.c >>> @@ -41,6 +41,11 @@ >>> * Userspace must provide Node ID, Error ID. >>> * Clears specific error counter of a node if supported. >>> * >>> + * 4. ERROR_REPORT: Subscribe to this multicast group to receive error events >>> + * >>> + * 5. ERROR_EVENT: Report an error event to userspace. The event contains device, node >>> + * and error information that triggered the event. >>> + * >>> * Node registration: >>> * >>> * - drm_ras_node_register(): Registers a new node and assigns >>> @@ -186,6 +191,34 @@ static int msg_reply_value(struct sk_buff *msg, u32 error_id, >>> value); >>> } >>> +static int msg_put_error_event_attrs(struct sk_buff *msg, struct drm_ras_node *node, >>> + u32 error_id, const char *error_name, u32 value) >>> +{ >>> + int ret; >>> + >>> + ret = nla_put_string(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_DEVICE_NAME, node->device_name); >>> + if (ret) >>> + return ret; >>> + >>> + ret = nla_put_u32(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_ID, node->id); >>> + if (ret) >>> + return ret; >>> + >>> + ret = nla_put_string(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_NAME, node->node_name); >>> + if (ret) >>> + return ret; >>> + >>> + ret = nla_put_u32(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_ID, error_id); >>> + if (ret) >>> + return ret; >>> + >>> + ret = nla_put_string(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_NAME, error_name); >>> + if (ret) >>> + return ret; >>> + >>> + return nla_put_u32(msg, DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_VALUE, value); >>> +} >>> + >>> static int doit_reply_value(struct genl_info *info, u32 node_id, >>> u32 error_id) >>> { >>> @@ -222,6 +255,60 @@ static int doit_reply_value(struct genl_info *info, u32 node_id, >>> return genlmsg_reply(msg, info); >>> } >>> +/** >>> + * drm_ras_nl_error_event() - Report an error event >>> + * @node: Node structure >>> + * @error_id: ID of the error >>> + * @error_name: Name of the error >>> + * @value: Value associated with the error >>> + * @flags: GFP flags for memory allocation >>> + * >>> + * Report an error-event to userspace using the error-report multicast group. >>> + * >>> + * Return: 0 on success, or negative errno on failure. >>> + */ >>> +int drm_ras_nl_error_event(struct drm_ras_node *node, u32 error_id, const char *error_name, >>> + u32 value, gfp_t flags) >>> +{ >>> + struct genl_info info; >>> + struct sk_buff *msg; >>> + struct nlattr *hdr; >>> + int ret; >>> + >>> + if (!error_name) >>> + return -EINVAL; >>> + >>> + if (!genl_has_listeners(&drm_ras_nl_family, &init_net, DRM_RAS_NLGRP_ERROR_REPORT)) >>> + return 0; >>> + >>> + genl_info_init_ntf(&info, &drm_ras_nl_family, DRM_RAS_CMD_ERROR_EVENT); >>> + >>> + msg = genlmsg_new(NLMSG_GOODSIZE, flags); >>> + if (!msg) >>> + return -ENOMEM; >>> + >>> + hdr = genlmsg_iput(msg, &info); >>> + if (!hdr) { >>> + ret = -EMSGSIZE; >>> + goto free_msg; >>> + } >>> + >>> + ret = msg_put_error_event_attrs(msg, node, error_id, error_name, value); >>> + if (ret) >>> + goto cancel_msg; >>> + >>> + genlmsg_end(msg, hdr); >>> + genlmsg_multicast(&drm_ras_nl_family, msg, 0, DRM_RAS_NLGRP_ERROR_REPORT, flags); >>> + return 0; >>> + >>> +cancel_msg: >>> + genlmsg_cancel(msg, hdr); >>> +free_msg: >>> + nlmsg_free(msg); >>> + return ret; >>> +} >>> +EXPORT_SYMBOL(drm_ras_nl_error_event); >>> + >>> /** >>> * drm_ras_nl_get_error_counter_dumpit() - Dump all Error Counters >>> * @skb: Netlink message buffer >>> diff --git a/drivers/gpu/drm/drm_ras_nl.c b/drivers/gpu/drm/drm_ras_nl.c >>> index dea1c1b2494e..9d3123cc9f9c 100644 >>> --- a/drivers/gpu/drm/drm_ras_nl.c >>> +++ b/drivers/gpu/drm/drm_ras_nl.c >>> @@ -58,6 +58,10 @@ static const struct genl_split_ops drm_ras_nl_ops[] = { >>> }, >>> }; >>> +static const struct genl_multicast_group drm_ras_nl_mcgrps[] = { >>> + [DRM_RAS_NLGRP_ERROR_REPORT] = { "error-report", }, >>> +}; >>> + >>> struct genl_family drm_ras_nl_family __ro_after_init = { >>> .name = DRM_RAS_FAMILY_NAME, >>> .version = DRM_RAS_FAMILY_VERSION, >>> @@ -66,4 +70,6 @@ struct genl_family drm_ras_nl_family __ro_after_init = { >>> .module = THIS_MODULE, >>> .split_ops = drm_ras_nl_ops, >>> .n_split_ops = ARRAY_SIZE(drm_ras_nl_ops), >>> + .mcgrps = drm_ras_nl_mcgrps, >>> + .n_mcgrps = ARRAY_SIZE(drm_ras_nl_mcgrps), >>> }; >>> diff --git a/drivers/gpu/drm/drm_ras_nl.h b/drivers/gpu/drm/drm_ras_nl.h >>> index a398643572a5..03ec275aca92 100644 >>> --- a/drivers/gpu/drm/drm_ras_nl.h >>> +++ b/drivers/gpu/drm/drm_ras_nl.h >>> @@ -21,6 +21,10 @@ int drm_ras_nl_get_error_counter_dumpit(struct sk_buff *skb, >>> int drm_ras_nl_clear_error_counter_doit(struct sk_buff *skb, >>> struct genl_info *info); >>> +enum { >>> + DRM_RAS_NLGRP_ERROR_REPORT, >>> +}; >>> + >>> extern struct genl_family drm_ras_nl_family; >>> #endif /* _LINUX_DRM_RAS_GEN_H */ >>> diff --git a/include/drm/drm_ras.h b/include/drm/drm_ras.h >>> index 0beede3ddc4e..8abfb7d2077b 100644 >>> --- a/include/drm/drm_ras.h >>> +++ b/include/drm/drm_ras.h >>> @@ -80,9 +80,14 @@ struct drm_device; >>> #if IS_ENABLED(CONFIG_DRM_RAS) >>> int drm_ras_node_register(struct drm_ras_node *node); >>> void drm_ras_node_unregister(struct drm_ras_node *node); >>> +int drm_ras_nl_error_event(struct drm_ras_node *node, u32 error_id, const char *error_name, >>> + u32 value, gfp_t flags); >>> #else >>> static inline int drm_ras_node_register(struct drm_ras_node *node) { return 0; } >>> static inline void drm_ras_node_unregister(struct drm_ras_node *node) { } >>> +static inline int drm_ras_nl_error_event(struct drm_ras_node *node, u32 error_id, >>> + const char *error_name, u32 value, gfp_t flags) >>> +{ return 0; } >>> #endif >>> #endif >>> diff --git a/include/uapi/drm/drm_ras.h b/include/uapi/drm/drm_ras.h >>> index 218a3ee86805..eab8231aa87c 100644 >>> --- a/include/uapi/drm/drm_ras.h >>> +++ b/include/uapi/drm/drm_ras.h >>> @@ -38,13 +38,28 @@ enum { >>> DRM_RAS_A_ERROR_COUNTER_ATTRS_MAX = (__DRM_RAS_A_ERROR_COUNTER_ATTRS_MAX - 1) >>> }; >>> +enum { >>> + DRM_RAS_A_ERROR_EVENT_ATTRS_DEVICE_NAME = 1, >>> + DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_ID, >>> + DRM_RAS_A_ERROR_EVENT_ATTRS_NODE_NAME, >>> + DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_ID, >>> + DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_NAME, >>> + DRM_RAS_A_ERROR_EVENT_ATTRS_ERROR_VALUE, >>> + >>> + __DRM_RAS_A_ERROR_EVENT_ATTRS_MAX, >>> + DRM_RAS_A_ERROR_EVENT_ATTRS_MAX = (__DRM_RAS_A_ERROR_EVENT_ATTRS_MAX - 1) >>> +}; >>> + >>> enum { >>> DRM_RAS_CMD_LIST_NODES = 1, >>> DRM_RAS_CMD_GET_ERROR_COUNTER, >>> DRM_RAS_CMD_CLEAR_ERROR_COUNTER, >>> + DRM_RAS_CMD_ERROR_EVENT, >>> __DRM_RAS_CMD_MAX, >>> DRM_RAS_CMD_MAX = (__DRM_RAS_CMD_MAX - 1) >>> }; >>> +#define DRM_RAS_MCGRP_ERROR_REPORT "error-report" >>> + >>> #endif /* _UAPI_LINUX_DRM_RAS_H */ ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v4 1/3] drm/drm_ras: Add drm_ras netlink error event 2026-07-09 5:15 ` Tauro, Riana @ 2026-07-09 9:22 ` Raag Jadav 0 siblings, 0 replies; 12+ messages in thread From: Raag Jadav @ 2026-07-09 9:22 UTC (permalink / raw) To: Tauro, Riana Cc: Rodrigo Vivi, kuba, aravind.iddamsetty, intel-xe, anshuman.gupta, joonas.lahtinen, simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan, ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri, maarten.lankhorst, mallesh.koujalagi, soham.purkait, Zack McKevitt, Lijo Lazar, Hawking Zhang, David S. Miller, Paolo Abeni, Eric Dumazet, dri-devel, netdev On Thu, Jul 09, 2026 at 10:45:27AM +0530, Tauro, Riana wrote: > On 09-07-2026 01:51, Rodrigo Vivi wrote: > > On Tue, Jul 07, 2026 at 12:02:11PM +0530, Tauro, Riana wrote: > > > Hi Rodrigo/Jakub/Aravind > > > > > > Please let me know if you have any feedback for this patch or can you please > > > ack this if it looks good to you. > > I looks good to me, but could you please double check the sashiko's comments? > > Sashiko has a comment regarding namespaces > > [Severity: Medium]Since the generic netlink family explicitly supports > multiple networknamespaces by setting .netnsok = true, > will hardcoding init_net hereprevent listeners in non-init namespaces from > receiving error events > > .netnsok = true is auto generated not explicitly added in code. Because that's what ynl_gen_c.py does without it being parsed from anywhere. > But from what i see, drm device is present in the host and not replicated > across namespaces > and most of the non-network implementations use inet. (ex: Binder) > If this really needs a fix, we can drop the has_listeners suggested by raag > in previous patch. > I don't think in an error path, allocating a new buffer would be a big > overhead if listeners are not present. I don't know enough about namespaces to comment on this. I'll rely on Jakub's disposition if netnsok is relevant here, or needed at all for our usecase. Raag ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v4 2/3] drm/xe/xe_drm_ras: Add error-event support for PVC 2026-07-01 9:44 [PATCH v4 0/3] Add drm_ras netlink error event support Riana Tauro 2026-07-01 9:44 ` [PATCH v4 1/3] drm/drm_ras: Add drm_ras netlink error event Riana Tauro @ 2026-07-01 9:44 ` Riana Tauro 2026-07-01 9:44 ` [PATCH v4 3/3] drm/xe/xe_ras: Add error-event support for CRI Riana Tauro ` (3 subsequent siblings) 5 siblings, 0 replies; 12+ messages in thread From: Riana Tauro @ 2026-07-01 9:44 UTC (permalink / raw) To: intel-xe, dri-devel, netdev Cc: aravind.iddamsetty, anshuman.gupta, rodrigo.vivi, joonas.lahtinen, kuba, simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan, ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri, raag.jadav, maarten.lankhorst, mallesh.koujalagi, soham.purkait, Riana Tauro Report drm_ras error event to userspace when an error occurs. Add support for core-compute and SoC errors in PVC. $ sudo ynl --family drm_ras --output-json --subscribe error-report { "name": "error-event", "msg": { "device-name": "0000:03:00.0", "node-id": 1, "node-name": "uncorrectable-errors", "error-id": 1, "error-name": "core-compute", "error-value": 1 } } Signed-off-by: Riana Tauro <riana.tauro@intel.com> Reviewed-by: Raag Jadav <raag.jadav@intel.com> --- v2: use ynl (Raag) use value as function parameter move error event call to hw_error_source_handler v3: add has_drm_ras check v4: use drm_err_ratelimited initialize node post drm_ras check (Sashiko) --- drivers/gpu/drm/xe/xe_drm_ras.c | 32 ++++++++++++++++++++++++++++++++ drivers/gpu/drm/xe/xe_drm_ras.h | 3 +++ drivers/gpu/drm/xe/xe_hw_error.c | 5 ++++- 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/xe_drm_ras.c index 7937d8ba0ed9..8e247a8139b1 100644 --- a/drivers/gpu/drm/xe/xe_drm_ras.c +++ b/drivers/gpu/drm/xe/xe_drm_ras.c @@ -185,6 +185,38 @@ static int register_nodes(struct xe_device *xe) return ret; } +/** + * xe_drm_ras_event() - Report drm_ras error event to userspace + * @xe: xe device structure + * @component: error component (see &enum drm_xe_ras_error_component) + * @severity: error severity (see &enum drm_xe_ras_error_severity) + * @value: value of error counter + * @flags: flags for allocation + * + * Report an error-event to userspace. + */ +void xe_drm_ras_event(struct xe_device *xe, u32 component, u32 severity, u32 value, gfp_t flags) +{ + struct xe_drm_ras *ras = &xe->ras; + struct xe_drm_ras_counter *info = ras->info[severity]; + struct drm_ras_node *node; + int ret; + + /* Event is supported only if drm_ras is enabled */ + if (!xe->info.has_drm_ras) + return; + + node = &ras->node[severity]; + + if (!info || !info[component].name) + return; + + ret = drm_ras_nl_error_event(node, component, info[component].name, value, flags); + if (ret) + drm_err_ratelimited(&xe->drm, "drm_ras error-event failed: %d for %s %s\n", ret, + info[component].name, error_severity[severity]); +} + /** * xe_drm_ras_init() - Initialize DRM RAS * @xe: xe device instance diff --git a/drivers/gpu/drm/xe/xe_drm_ras.h b/drivers/gpu/drm/xe/xe_drm_ras.h index 365c70e93e82..2a694bf69478 100644 --- a/drivers/gpu/drm/xe/xe_drm_ras.h +++ b/drivers/gpu/drm/xe/xe_drm_ras.h @@ -5,11 +5,14 @@ #ifndef _XE_DRM_RAS_H_ #define _XE_DRM_RAS_H_ +#include <linux/types.h> + struct xe_device; #define for_each_error_severity(i) \ for (i = 0; i < DRM_XE_RAS_ERR_SEV_MAX; i++) int xe_drm_ras_init(struct xe_device *xe); +void xe_drm_ras_event(struct xe_device *xe, u32 component, u32 severity, u32 value, gfp_t flags); #endif diff --git a/drivers/gpu/drm/xe/xe_hw_error.c b/drivers/gpu/drm/xe/xe_hw_error.c index 4a4b363fc844..a833cecc74ec 100644 --- a/drivers/gpu/drm/xe/xe_hw_error.c +++ b/drivers/gpu/drm/xe/xe_hw_error.c @@ -432,7 +432,7 @@ static void hw_error_source_handler(struct xe_tile *tile, const enum hardware_er struct xe_drm_ras *ras = &xe->ras; struct xe_drm_ras_counter *info = ras->info[severity]; unsigned long flags, err_src; - u32 err_bit; + u32 err_bit, value; if (!IS_DGFX(xe)) return; @@ -495,6 +495,9 @@ static void hw_error_source_handler(struct xe_tile *tile, const enum hardware_er gt_hw_error_handler(tile, hw_err, error_id); if (err_bit == XE_SOC_ERROR) soc_hw_error_handler(tile, hw_err, error_id); + + value = atomic_read(&info[error_id].counter); + xe_drm_ras_event(xe, error_id, severity, value, GFP_ATOMIC); } clear_reg: -- 2.47.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v4 3/3] drm/xe/xe_ras: Add error-event support for CRI 2026-07-01 9:44 [PATCH v4 0/3] Add drm_ras netlink error event support Riana Tauro 2026-07-01 9:44 ` [PATCH v4 1/3] drm/drm_ras: Add drm_ras netlink error event Riana Tauro 2026-07-01 9:44 ` [PATCH v4 2/3] drm/xe/xe_drm_ras: Add error-event support for PVC Riana Tauro @ 2026-07-01 9:44 ` Riana Tauro 2026-07-09 10:04 ` Raag Jadav 2026-07-01 10:52 ` ✓ CI.KUnit: success for Add drm_ras netlink error event support (rev4) Patchwork ` (2 subsequent siblings) 5 siblings, 1 reply; 12+ messages in thread From: Riana Tauro @ 2026-07-01 9:44 UTC (permalink / raw) To: intel-xe, dri-devel, netdev Cc: aravind.iddamsetty, anshuman.gupta, rodrigo.vivi, joonas.lahtinen, kuba, simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan, ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri, raag.jadav, maarten.lankhorst, mallesh.koujalagi, soham.purkait, Riana Tauro, Michal Wajdeczko Add error-event support for Correctable errors in CRI. Report an error event to userspace for every component that has crossed the threshold on receiving an interrupt. Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Signed-off-by: Riana Tauro <riana.tauro@intel.com> --- v2: add warns for unexpected values from system controller (Michal) send an event at most once per component for each interrupt (Raag) use correct parameters for get_counter (Sashiko) --- drivers/gpu/drm/xe/xe_ras.c | 75 +++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c index 44f4e1a3455b..b71d51285954 100644 --- a/drivers/gpu/drm/xe/xe_ras.c +++ b/drivers/gpu/drm/xe/xe_ras.c @@ -77,6 +77,18 @@ static u8 drm_to_xe_ras_severity(u8 severity) } } +static u8 xe_to_drm_ras_severity(u8 severity) +{ + switch (severity) { + case XE_RAS_SEV_CORRECTABLE: + return DRM_XE_RAS_ERR_SEV_CORRECTABLE; + case XE_RAS_SEV_UNCORRECTABLE: + return DRM_XE_RAS_ERR_SEV_UNCORRECTABLE; + default: + return DRM_XE_RAS_ERR_SEV_MAX; + } +} + static u8 drm_to_xe_ras_component(u8 component) { switch (component) { @@ -95,6 +107,24 @@ static u8 drm_to_xe_ras_component(u8 component) } } +static u8 xe_to_drm_ras_component(u8 component) +{ + switch (component) { + case XE_RAS_COMP_DEVICE_MEMORY: + return DRM_XE_RAS_ERR_COMP_DEVICE_MEMORY; + case XE_RAS_COMP_CORE_COMPUTE: + return DRM_XE_RAS_ERR_COMP_CORE_COMPUTE; + case XE_RAS_COMP_PCIE: + return DRM_XE_RAS_ERR_COMP_PCIE; + case XE_RAS_COMP_FABRIC: + return DRM_XE_RAS_ERR_COMP_FABRIC; + case XE_RAS_COMP_SOC_INTERNAL: + return DRM_XE_RAS_ERR_COMP_SOC_INTERNAL; + default: + return DRM_XE_RAS_ERR_COMP_MAX; + } +} + static int ras_status_to_errno(u32 status) { switch (status) { @@ -131,14 +161,41 @@ static inline const char *comp_to_str(u8 component) return xe_ras_components[component]; } +static void ras_send_error_event(struct xe_device *xe, u8 severity, u8 component) +{ + u8 drm_severity, drm_component; + u32 value; + int ret; + + drm_severity = xe_to_drm_ras_severity(severity); + if (drm_severity == DRM_XE_RAS_ERR_SEV_MAX) { + xe_warn(xe, "sysctrl: unexpected severity %u\n", severity); + return; + } + + drm_component = xe_to_drm_ras_component(component); + if (drm_component == DRM_XE_RAS_ERR_COMP_MAX) { + xe_warn(xe, "sysctrl: unexpected component %u\n", component); + return; + } + + ret = xe_ras_get_counter(xe, drm_severity, drm_component, &value); + if (ret) + return; + + xe_drm_ras_event(xe, drm_component, drm_severity, value, GFP_KERNEL); +} + void xe_ras_counter_threshold_crossed(struct xe_device *xe, struct xe_sysctrl_event_response *response) { struct xe_ras_threshold_crossed *pending = (void *)&response->data; struct xe_ras_error_class *errors = pending->counters; u32 id, ncounters = pending->ncounters; + u8 sent = 0; BUILD_BUG_ON(sizeof(response->data) < sizeof(*pending)); + BUILD_BUG_ON(XE_RAS_COMP_MAX > (BITS_PER_BYTE * sizeof(sent))); xe_device_assert_mem_access(xe); if (!ncounters || ncounters > XE_RAS_NUM_COUNTERS) @@ -154,6 +211,24 @@ void xe_ras_counter_threshold_crossed(struct xe_device *xe, xe_warn(xe, "[RAS]: %s %s detected\n", comp_to_str(component), sev_to_str(severity)); + + if (severity != XE_RAS_SEV_CORRECTABLE) { + xe_warn(xe, "sysctrl: unexpected severity %s (%u)\n", sev_to_str(severity), + severity); + continue; + } + + if (component >= XE_RAS_COMP_MAX) { + xe_warn(xe, "sysctrl: unexpected component %u\n", component); + continue; + } + + /* Send event once per component */ + if (sent & BIT(component)) + continue; + sent |= BIT(component); + + ras_send_error_event(xe, severity, component); } } -- 2.47.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v4 3/3] drm/xe/xe_ras: Add error-event support for CRI 2026-07-01 9:44 ` [PATCH v4 3/3] drm/xe/xe_ras: Add error-event support for CRI Riana Tauro @ 2026-07-09 10:04 ` Raag Jadav 0 siblings, 0 replies; 12+ messages in thread From: Raag Jadav @ 2026-07-09 10:04 UTC (permalink / raw) To: Riana Tauro Cc: intel-xe, dri-devel, netdev, aravind.iddamsetty, anshuman.gupta, rodrigo.vivi, joonas.lahtinen, kuba, simona.vetter, airlied, pratik.bari, joshua.santosh.ranjan, ashwin.kumar.kulkarni, shubham.kumar, ravi.kishore.koppuravuri, maarten.lankhorst, mallesh.koujalagi, soham.purkait, Michal Wajdeczko On Wed, Jul 01, 2026 at 03:14:13PM +0530, Riana Tauro wrote: > Add error-event support for Correctable errors in CRI. Report an error > event to userspace for every component that has crossed the threshold on > receiving an interrupt. ... > +static void ras_send_error_event(struct xe_device *xe, u8 severity, u8 component) > +{ > + u8 drm_severity, drm_component; > + u32 value; > + int ret; > + > + drm_severity = xe_to_drm_ras_severity(severity); > + if (drm_severity == DRM_XE_RAS_ERR_SEV_MAX) { > + xe_warn(xe, "sysctrl: unexpected severity %u\n", severity); This is uapi and not coming from sysctrl, so the message is a bit misleading. But if at all it needs validation, it should be done in drm_ras layer. > + return; > + } > + > + drm_component = xe_to_drm_ras_component(component); > + if (drm_component == DRM_XE_RAS_ERR_COMP_MAX) { > + xe_warn(xe, "sysctrl: unexpected component %u\n", component); Ditto. > + return; > + } > + > + ret = xe_ras_get_counter(xe, drm_severity, drm_component, &value); No, instead of converting back and forth just do get_counter() using sysctrl values and send_event() afterwards. > + if (ret) > + return; > + > + xe_drm_ras_event(xe, drm_component, drm_severity, value, GFP_KERNEL); > +} > + > void xe_ras_counter_threshold_crossed(struct xe_device *xe, > struct xe_sysctrl_event_response *response) > { > struct xe_ras_threshold_crossed *pending = (void *)&response->data; > struct xe_ras_error_class *errors = pending->counters; > u32 id, ncounters = pending->ncounters; > + u8 sent = 0; > > BUILD_BUG_ON(sizeof(response->data) < sizeof(*pending)); > + BUILD_BUG_ON(XE_RAS_COMP_MAX > (BITS_PER_BYTE * sizeof(sent))); I prefer it the other way around. Also, have you tried using BITS_PER_TYPE()? BUILD_BUG_ON(BITS_PER_TYPE(sent) < XE_RAS_COMP_MAX)); > xe_device_assert_mem_access(xe); > > if (!ncounters || ncounters > XE_RAS_NUM_COUNTERS) > @@ -154,6 +211,24 @@ void xe_ras_counter_threshold_crossed(struct xe_device *xe, > > xe_warn(xe, "[RAS]: %s %s detected\n", > comp_to_str(component), sev_to_str(severity)); > + > + if (severity != XE_RAS_SEV_CORRECTABLE) { > + xe_warn(xe, "sysctrl: unexpected severity %s (%u)\n", sev_to_str(severity), > + severity); This should be before "detected" log above. > + continue; > + } > + > + if (component >= XE_RAS_COMP_MAX) { > + xe_warn(xe, "sysctrl: unexpected component %u\n", component); Ditto. Also, use xx_to_str() in both cases or don't but be consistent. Raag > + continue; > + } > + > + /* Send event once per component */ > + if (sent & BIT(component)) > + continue; > + sent |= BIT(component); > + > + ras_send_error_event(xe, severity, component); > } > } > > -- > 2.47.1 > ^ permalink raw reply [flat|nested] 12+ messages in thread
* ✓ CI.KUnit: success for Add drm_ras netlink error event support (rev4) 2026-07-01 9:44 [PATCH v4 0/3] Add drm_ras netlink error event support Riana Tauro ` (2 preceding siblings ...) 2026-07-01 9:44 ` [PATCH v4 3/3] drm/xe/xe_ras: Add error-event support for CRI Riana Tauro @ 2026-07-01 10:52 ` Patchwork 2026-07-01 11:32 ` ✓ Xe.CI.BAT: " Patchwork 2026-07-02 3:52 ` ✓ Xe.CI.FULL: " Patchwork 5 siblings, 0 replies; 12+ messages in thread From: Patchwork @ 2026-07-01 10:52 UTC (permalink / raw) To: Tauro, Riana; +Cc: intel-xe == Series Details == Series: Add drm_ras netlink error event support (rev4) URL : https://patchwork.freedesktop.org/series/166765/ State : success == Summary == + trap cleanup EXIT + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig [10:50:44] Configuring KUnit Kernel ... Generating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [10:50:52] Building KUnit Kernel ... Populating config with: $ make ARCH=um O=.kunit olddefconfig Building with: $ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48 ../drivers/gpu/drm/xe/xe_pt.c:1420:13: warning: ‘xe_pt_svm_userptr_notifier_lock’ defined but not used [-Wunused-function] 1420 | static void xe_pt_svm_userptr_notifier_lock(struct xe_vm *vm) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [10:51:25] Starting KUnit Kernel (1/1)... [10:51:25] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [10:51:25] ================== guc_buf (11 subtests) =================== [10:51:25] [PASSED] test_smallest [10:51:25] [PASSED] test_largest [10:51:25] [PASSED] test_granular [10:51:25] [PASSED] test_unique [10:51:25] [PASSED] test_overlap [10:51:25] [PASSED] test_reusable [10:51:25] [PASSED] test_too_big [10:51:25] [PASSED] test_flush [10:51:25] [PASSED] test_lookup [10:51:25] [PASSED] test_data [10:51:25] [PASSED] test_class [10:51:25] ===================== [PASSED] guc_buf ===================== [10:51:25] =================== guc_dbm (7 subtests) =================== [10:51:25] [PASSED] test_empty [10:51:25] [PASSED] test_default [10:51:25] ======================== test_size ======================== [10:51:25] [PASSED] 4 [10:51:25] [PASSED] 8 [10:51:25] [PASSED] 32 [10:51:25] [PASSED] 256 [10:51:25] ==================== [PASSED] test_size ==================== [10:51:25] ======================= test_reuse ======================== [10:51:25] [PASSED] 4 [10:51:25] [PASSED] 8 [10:51:25] [PASSED] 32 [10:51:25] [PASSED] 256 [10:51:25] =================== [PASSED] test_reuse ==================== [10:51:25] =================== test_range_overlap ==================== [10:51:25] [PASSED] 4 [10:51:25] [PASSED] 8 [10:51:25] [PASSED] 32 [10:51:25] [PASSED] 256 [10:51:25] =============== [PASSED] test_range_overlap ================ [10:51:25] =================== test_range_compact ==================== [10:51:25] [PASSED] 4 [10:51:25] [PASSED] 8 [10:51:25] [PASSED] 32 [10:51:25] [PASSED] 256 [10:51:25] =============== [PASSED] test_range_compact ================ [10:51:25] ==================== test_range_spare ===================== [10:51:25] [PASSED] 4 [10:51:25] [PASSED] 8 [10:51:25] [PASSED] 32 [10:51:25] [PASSED] 256 [10:51:25] ================ [PASSED] test_range_spare ================= [10:51:25] ===================== [PASSED] guc_dbm ===================== [10:51:25] =================== guc_idm (6 subtests) =================== [10:51:25] [PASSED] bad_init [10:51:25] [PASSED] no_init [10:51:25] [PASSED] init_fini [10:51:25] [PASSED] check_used [10:51:25] [PASSED] check_quota [10:51:25] [PASSED] check_all [10:51:25] ===================== [PASSED] guc_idm ===================== [10:51:25] ================== no_relay (3 subtests) =================== [10:51:25] [PASSED] xe_drops_guc2pf_if_not_ready [10:51:25] [PASSED] xe_drops_guc2vf_if_not_ready [10:51:25] [PASSED] xe_rejects_send_if_not_ready [10:51:25] ==================== [PASSED] no_relay ===================== [10:51:25] ================== pf_relay (14 subtests) ================== [10:51:25] [PASSED] pf_rejects_guc2pf_too_short [10:51:25] [PASSED] pf_rejects_guc2pf_too_long [10:51:25] [PASSED] pf_rejects_guc2pf_no_payload [10:51:25] [PASSED] pf_fails_no_payload [10:51:25] [PASSED] pf_fails_bad_origin [10:51:25] [PASSED] pf_fails_bad_type [10:51:25] [PASSED] pf_txn_reports_error [10:51:25] [PASSED] pf_txn_sends_pf2guc [10:51:25] [PASSED] pf_sends_pf2guc [10:51:25] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV) [10:51:25] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV) [10:51:25] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV) [10:51:25] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV) [10:51:25] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV) [10:51:25] ==================== [PASSED] pf_relay ===================== [10:51:25] ================== vf_relay (3 subtests) =================== [10:51:25] [PASSED] vf_rejects_guc2vf_too_short [10:51:25] [PASSED] vf_rejects_guc2vf_too_long [10:51:25] [PASSED] vf_rejects_guc2vf_no_payload [10:51:25] ==================== [PASSED] vf_relay ===================== [10:51:25] ================ pf_gt_config (9 subtests) ================= [10:51:25] [PASSED] fair_contexts_1vf [10:51:25] [PASSED] fair_doorbells_1vf [10:51:25] [PASSED] fair_ggtt_1vf [10:51:25] ====================== fair_vram_1vf ====================== [10:51:25] [PASSED] 3.50 GiB [10:51:25] [PASSED] 11.5 GiB [10:51:25] [PASSED] 15.5 GiB [10:51:25] [PASSED] 31.5 GiB [10:51:25] [PASSED] 63.5 GiB [10:51:25] [PASSED] 1.91 GiB [10:51:25] ================== [PASSED] fair_vram_1vf ================== [10:51:25] ================ fair_vram_1vf_admin_only ================= [10:51:25] [PASSED] 3.50 GiB [10:51:25] [PASSED] 11.5 GiB [10:51:25] [PASSED] 15.5 GiB [10:51:25] [PASSED] 31.5 GiB [10:51:25] [PASSED] 63.5 GiB [10:51:25] [PASSED] 1.91 GiB [10:51:25] ============ [PASSED] fair_vram_1vf_admin_only ============= [10:51:25] ====================== fair_contexts ====================== [10:51:25] [PASSED] 1 VF [10:51:25] [PASSED] 2 VFs [10:51:25] [PASSED] 3 VFs [10:51:25] [PASSED] 4 VFs [10:51:25] [PASSED] 5 VFs [10:51:25] [PASSED] 6 VFs [10:51:25] [PASSED] 7 VFs [10:51:25] [PASSED] 8 VFs [10:51:25] [PASSED] 9 VFs [10:51:25] [PASSED] 10 VFs [10:51:25] [PASSED] 11 VFs [10:51:25] [PASSED] 12 VFs [10:51:25] [PASSED] 13 VFs [10:51:25] [PASSED] 14 VFs [10:51:25] [PASSED] 15 VFs [10:51:25] [PASSED] 16 VFs [10:51:25] [PASSED] 17 VFs [10:51:25] [PASSED] 18 VFs [10:51:25] [PASSED] 19 VFs [10:51:25] [PASSED] 20 VFs [10:51:25] [PASSED] 21 VFs [10:51:25] [PASSED] 22 VFs [10:51:25] [PASSED] 23 VFs [10:51:25] [PASSED] 24 VFs [10:51:25] [PASSED] 25 VFs [10:51:25] [PASSED] 26 VFs [10:51:25] [PASSED] 27 VFs [10:51:25] [PASSED] 28 VFs [10:51:25] [PASSED] 29 VFs [10:51:25] [PASSED] 30 VFs [10:51:25] [PASSED] 31 VFs [10:51:25] [PASSED] 32 VFs [10:51:25] [PASSED] 33 VFs [10:51:25] [PASSED] 34 VFs [10:51:25] [PASSED] 35 VFs [10:51:25] [PASSED] 36 VFs [10:51:25] [PASSED] 37 VFs [10:51:25] [PASSED] 38 VFs [10:51:25] [PASSED] 39 VFs [10:51:25] [PASSED] 40 VFs [10:51:25] [PASSED] 41 VFs [10:51:25] [PASSED] 42 VFs [10:51:25] [PASSED] 43 VFs [10:51:25] [PASSED] 44 VFs [10:51:25] [PASSED] 45 VFs [10:51:25] [PASSED] 46 VFs [10:51:25] [PASSED] 47 VFs [10:51:25] [PASSED] 48 VFs [10:51:25] [PASSED] 49 VFs [10:51:25] [PASSED] 50 VFs [10:51:25] [PASSED] 51 VFs [10:51:25] [PASSED] 52 VFs [10:51:25] [PASSED] 53 VFs [10:51:25] [PASSED] 54 VFs [10:51:25] [PASSED] 55 VFs [10:51:25] [PASSED] 56 VFs [10:51:25] [PASSED] 57 VFs [10:51:25] [PASSED] 58 VFs [10:51:25] [PASSED] 59 VFs [10:51:25] [PASSED] 60 VFs [10:51:25] [PASSED] 61 VFs [10:51:25] [PASSED] 62 VFs [10:51:25] [PASSED] 63 VFs [10:51:25] ================== [PASSED] fair_contexts ================== [10:51:25] ===================== fair_doorbells ====================== [10:51:25] [PASSED] 1 VF [10:51:25] [PASSED] 2 VFs [10:51:25] [PASSED] 3 VFs [10:51:25] [PASSED] 4 VFs [10:51:25] [PASSED] 5 VFs [10:51:25] [PASSED] 6 VFs [10:51:25] [PASSED] 7 VFs [10:51:25] [PASSED] 8 VFs [10:51:25] [PASSED] 9 VFs [10:51:25] [PASSED] 10 VFs [10:51:25] [PASSED] 11 VFs [10:51:25] [PASSED] 12 VFs [10:51:25] [PASSED] 13 VFs [10:51:25] [PASSED] 14 VFs [10:51:25] [PASSED] 15 VFs [10:51:25] [PASSED] 16 VFs [10:51:25] [PASSED] 17 VFs [10:51:25] [PASSED] 18 VFs [10:51:25] [PASSED] 19 VFs [10:51:25] [PASSED] 20 VFs [10:51:25] [PASSED] 21 VFs [10:51:25] [PASSED] 22 VFs [10:51:25] [PASSED] 23 VFs [10:51:25] [PASSED] 24 VFs [10:51:26] [PASSED] 25 VFs [10:51:26] [PASSED] 26 VFs [10:51:26] [PASSED] 27 VFs [10:51:26] [PASSED] 28 VFs [10:51:26] [PASSED] 29 VFs [10:51:26] [PASSED] 30 VFs [10:51:26] [PASSED] 31 VFs [10:51:26] [PASSED] 32 VFs [10:51:26] [PASSED] 33 VFs [10:51:26] [PASSED] 34 VFs [10:51:26] [PASSED] 35 VFs [10:51:26] [PASSED] 36 VFs [10:51:26] [PASSED] 37 VFs [10:51:26] [PASSED] 38 VFs [10:51:26] [PASSED] 39 VFs [10:51:26] [PASSED] 40 VFs [10:51:26] [PASSED] 41 VFs [10:51:26] [PASSED] 42 VFs [10:51:26] [PASSED] 43 VFs [10:51:26] [PASSED] 44 VFs [10:51:26] [PASSED] 45 VFs [10:51:26] [PASSED] 46 VFs [10:51:26] [PASSED] 47 VFs [10:51:26] [PASSED] 48 VFs [10:51:26] [PASSED] 49 VFs [10:51:26] [PASSED] 50 VFs [10:51:26] [PASSED] 51 VFs [10:51:26] [PASSED] 52 VFs [10:51:26] [PASSED] 53 VFs [10:51:26] [PASSED] 54 VFs [10:51:26] [PASSED] 55 VFs [10:51:26] [PASSED] 56 VFs [10:51:26] [PASSED] 57 VFs [10:51:26] [PASSED] 58 VFs [10:51:26] [PASSED] 59 VFs [10:51:26] [PASSED] 60 VFs [10:51:26] [PASSED] 61 VFs [10:51:26] [PASSED] 62 VFs [10:51:26] [PASSED] 63 VFs [10:51:26] ================= [PASSED] fair_doorbells ================== [10:51:26] ======================== fair_ggtt ======================== [10:51:26] [PASSED] 1 VF [10:51:26] [PASSED] 2 VFs [10:51:26] [PASSED] 3 VFs [10:51:26] [PASSED] 4 VFs [10:51:26] [PASSED] 5 VFs [10:51:26] [PASSED] 6 VFs [10:51:26] [PASSED] 7 VFs [10:51:26] [PASSED] 8 VFs [10:51:26] [PASSED] 9 VFs [10:51:26] [PASSED] 10 VFs [10:51:26] [PASSED] 11 VFs [10:51:26] [PASSED] 12 VFs [10:51:26] [PASSED] 13 VFs [10:51:26] [PASSED] 14 VFs [10:51:26] [PASSED] 15 VFs [10:51:26] [PASSED] 16 VFs [10:51:26] [PASSED] 17 VFs [10:51:26] [PASSED] 18 VFs [10:51:26] [PASSED] 19 VFs [10:51:26] [PASSED] 20 VFs [10:51:26] [PASSED] 21 VFs [10:51:26] [PASSED] 22 VFs [10:51:26] [PASSED] 23 VFs [10:51:26] [PASSED] 24 VFs [10:51:26] [PASSED] 25 VFs [10:51:26] [PASSED] 26 VFs [10:51:26] [PASSED] 27 VFs [10:51:26] [PASSED] 28 VFs [10:51:26] [PASSED] 29 VFs [10:51:26] [PASSED] 30 VFs [10:51:26] [PASSED] 31 VFs [10:51:26] [PASSED] 32 VFs [10:51:26] [PASSED] 33 VFs [10:51:26] [PASSED] 34 VFs [10:51:26] [PASSED] 35 VFs [10:51:26] [PASSED] 36 VFs [10:51:26] [PASSED] 37 VFs [10:51:26] [PASSED] 38 VFs [10:51:26] [PASSED] 39 VFs [10:51:26] [PASSED] 40 VFs [10:51:26] [PASSED] 41 VFs [10:51:26] [PASSED] 42 VFs [10:51:26] [PASSED] 43 VFs [10:51:26] [PASSED] 44 VFs [10:51:26] [PASSED] 45 VFs [10:51:26] [PASSED] 46 VFs [10:51:26] [PASSED] 47 VFs [10:51:26] [PASSED] 48 VFs [10:51:26] [PASSED] 49 VFs [10:51:26] [PASSED] 50 VFs [10:51:26] [PASSED] 51 VFs [10:51:26] [PASSED] 52 VFs [10:51:26] [PASSED] 53 VFs [10:51:26] [PASSED] 54 VFs [10:51:26] [PASSED] 55 VFs [10:51:26] [PASSED] 56 VFs [10:51:26] [PASSED] 57 VFs [10:51:26] [PASSED] 58 VFs [10:51:26] [PASSED] 59 VFs [10:51:26] [PASSED] 60 VFs [10:51:26] [PASSED] 61 VFs [10:51:26] [PASSED] 62 VFs [10:51:26] [PASSED] 63 VFs [10:51:26] ==================== [PASSED] fair_ggtt ==================== [10:51:26] ======================== fair_vram ======================== [10:51:26] [PASSED] 1 VF [10:51:26] [PASSED] 2 VFs [10:51:26] [PASSED] 3 VFs [10:51:26] [PASSED] 4 VFs [10:51:26] [PASSED] 5 VFs [10:51:26] [PASSED] 6 VFs [10:51:26] [PASSED] 7 VFs [10:51:26] [PASSED] 8 VFs [10:51:26] [PASSED] 9 VFs [10:51:26] [PASSED] 10 VFs [10:51:26] [PASSED] 11 VFs [10:51:26] [PASSED] 12 VFs [10:51:26] [PASSED] 13 VFs [10:51:26] [PASSED] 14 VFs [10:51:26] [PASSED] 15 VFs [10:51:26] [PASSED] 16 VFs [10:51:26] [PASSED] 17 VFs [10:51:26] [PASSED] 18 VFs [10:51:26] [PASSED] 19 VFs [10:51:26] [PASSED] 20 VFs [10:51:26] [PASSED] 21 VFs [10:51:26] [PASSED] 22 VFs [10:51:26] [PASSED] 23 VFs [10:51:26] [PASSED] 24 VFs [10:51:26] [PASSED] 25 VFs [10:51:26] [PASSED] 26 VFs [10:51:26] [PASSED] 27 VFs [10:51:26] [PASSED] 28 VFs [10:51:26] [PASSED] 29 VFs [10:51:26] [PASSED] 30 VFs [10:51:26] [PASSED] 31 VFs [10:51:26] [PASSED] 32 VFs [10:51:26] [PASSED] 33 VFs [10:51:26] [PASSED] 34 VFs [10:51:26] [PASSED] 35 VFs [10:51:26] [PASSED] 36 VFs [10:51:26] [PASSED] 37 VFs [10:51:26] [PASSED] 38 VFs [10:51:26] [PASSED] 39 VFs [10:51:26] [PASSED] 40 VFs [10:51:26] [PASSED] 41 VFs [10:51:26] [PASSED] 42 VFs [10:51:26] [PASSED] 43 VFs [10:51:26] [PASSED] 44 VFs [10:51:26] [PASSED] 45 VFs [10:51:26] [PASSED] 46 VFs [10:51:26] [PASSED] 47 VFs [10:51:26] [PASSED] 48 VFs [10:51:26] [PASSED] 49 VFs [10:51:26] [PASSED] 50 VFs [10:51:26] [PASSED] 51 VFs [10:51:26] [PASSED] 52 VFs [10:51:26] [PASSED] 53 VFs [10:51:26] [PASSED] 54 VFs [10:51:26] [PASSED] 55 VFs [10:51:26] [PASSED] 56 VFs [10:51:26] [PASSED] 57 VFs [10:51:26] [PASSED] 58 VFs [10:51:26] [PASSED] 59 VFs [10:51:26] [PASSED] 60 VFs [10:51:26] [PASSED] 61 VFs [10:51:26] [PASSED] 62 VFs [10:51:26] [PASSED] 63 VFs [10:51:26] ==================== [PASSED] fair_vram ==================== [10:51:26] ================== [PASSED] pf_gt_config =================== [10:51:26] ===================== lmtt (1 subtest) ===================== [10:51:26] ======================== test_ops ========================= [10:51:26] [PASSED] 2-level [10:51:26] [PASSED] multi-level [10:51:26] ==================== [PASSED] test_ops ===================== [10:51:26] ====================== [PASSED] lmtt ======================= [10:51:26] ================= pf_service (11 subtests) ================= [10:51:26] [PASSED] pf_negotiate_any [10:51:26] [PASSED] pf_negotiate_base_match [10:51:26] [PASSED] pf_negotiate_base_newer [10:51:26] [PASSED] pf_negotiate_base_next [10:51:26] [SKIPPED] pf_negotiate_base_older (no older minor) [10:51:26] [PASSED] pf_negotiate_base_prev [10:51:26] [PASSED] pf_negotiate_latest_match [10:51:26] [PASSED] pf_negotiate_latest_newer [10:51:26] [PASSED] pf_negotiate_latest_next [10:51:26] [SKIPPED] pf_negotiate_latest_older (no older minor) [10:51:26] [SKIPPED] pf_negotiate_latest_prev (no prev major) [10:51:26] =================== [PASSED] pf_service ==================== [10:51:26] ================= xe_guc_g2g (2 subtests) ================== [10:51:26] ============== xe_live_guc_g2g_kunit_default ============== [10:51:26] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ========== [10:51:26] ============== xe_live_guc_g2g_kunit_allmem =============== [10:51:26] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ========== [10:51:26] =================== [SKIPPED] xe_guc_g2g =================== [10:51:26] =================== xe_mocs (2 subtests) =================== [10:51:26] ================ xe_live_mocs_kernel_kunit ================ [10:51:26] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============ [10:51:26] ================ xe_live_mocs_reset_kunit ================= [10:51:26] ============ [SKIPPED] xe_live_mocs_reset_kunit ============ [10:51:26] ==================== [SKIPPED] xe_mocs ===================== [10:51:26] ================= xe_migrate (2 subtests) ================== [10:51:26] ================= xe_migrate_sanity_kunit ================= [10:51:26] ============ [SKIPPED] xe_migrate_sanity_kunit ============= [10:51:26] ================== xe_validate_ccs_kunit ================== [10:51:26] ============= [SKIPPED] xe_validate_ccs_kunit ============== [10:51:26] =================== [SKIPPED] xe_migrate =================== [10:51:26] ================== xe_dma_buf (1 subtest) ================== [10:51:26] ==================== xe_dma_buf_kunit ===================== [10:51:26] ================ [SKIPPED] xe_dma_buf_kunit ================ [10:51:26] =================== [SKIPPED] xe_dma_buf =================== [10:51:26] ================= xe_bo_shrink (1 subtest) ================= [10:51:26] =================== xe_bo_shrink_kunit ==================== [10:51:26] =============== [SKIPPED] xe_bo_shrink_kunit =============== [10:51:26] ================== [SKIPPED] xe_bo_shrink ================== [10:51:26] ==================== xe_bo (2 subtests) ==================== [10:51:26] ================== xe_ccs_migrate_kunit =================== [10:51:26] ============== [SKIPPED] xe_ccs_migrate_kunit ============== [10:51:26] ==================== xe_bo_evict_kunit ==================== [10:51:26] =============== [SKIPPED] xe_bo_evict_kunit ================ [10:51:26] ===================== [SKIPPED] xe_bo ====================== [10:51:26] ==================== args (13 subtests) ==================== [10:51:26] [PASSED] count_args_test [10:51:26] [PASSED] call_args_example [10:51:26] [PASSED] call_args_test [10:51:26] [PASSED] drop_first_arg_example [10:51:26] [PASSED] drop_first_arg_test [10:51:26] [PASSED] first_arg_example [10:51:26] [PASSED] first_arg_test [10:51:26] [PASSED] last_arg_example [10:51:26] [PASSED] last_arg_test [10:51:26] [PASSED] pick_arg_example [10:51:26] [PASSED] if_args_example [10:51:26] [PASSED] if_args_test [10:51:26] [PASSED] sep_comma_example [10:51:26] ====================== [PASSED] args ======================= [10:51:26] =================== xe_pci (3 subtests) ==================== [10:51:26] ==================== check_graphics_ip ==================== [10:51:26] [PASSED] 12.00 Xe_LP [10:51:26] [PASSED] 12.10 Xe_LP+ [10:51:26] [PASSED] 12.55 Xe_HPG [10:51:26] [PASSED] 12.60 Xe_HPC [10:51:26] [PASSED] 12.70 Xe_LPG [10:51:26] [PASSED] 12.71 Xe_LPG [10:51:26] [PASSED] 12.74 Xe_LPG+ [10:51:26] [PASSED] 20.01 Xe2_HPG [10:51:26] [PASSED] 20.02 Xe2_HPG [10:51:26] [PASSED] 20.04 Xe2_LPG [10:51:26] [PASSED] 30.00 Xe3_LPG [10:51:26] [PASSED] 30.01 Xe3_LPG [10:51:26] [PASSED] 30.03 Xe3_LPG [10:51:26] [PASSED] 30.04 Xe3_LPG [10:51:26] [PASSED] 30.05 Xe3_LPG [10:51:26] [PASSED] 35.10 Xe3p_LPG [10:51:26] [PASSED] 35.11 Xe3p_XPC [10:51:26] ================ [PASSED] check_graphics_ip ================ [10:51:26] ===================== check_media_ip ====================== [10:51:26] [PASSED] 12.00 Xe_M [10:51:26] [PASSED] 12.55 Xe_HPM [10:51:26] [PASSED] 13.00 Xe_LPM+ [10:51:26] [PASSED] 13.01 Xe2_HPM [10:51:26] [PASSED] 20.00 Xe2_LPM [10:51:26] [PASSED] 30.00 Xe3_LPM [10:51:26] [PASSED] 30.02 Xe3_LPM [10:51:26] [PASSED] 35.00 Xe3p_LPM [10:51:26] [PASSED] 35.03 Xe3p_HPM [10:51:26] ================= [PASSED] check_media_ip ================== [10:51:26] =================== check_platform_desc =================== [10:51:26] [PASSED] 0x9A60 (TIGERLAKE) [10:51:26] [PASSED] 0x9A68 (TIGERLAKE) [10:51:26] [PASSED] 0x9A70 (TIGERLAKE) [10:51:26] [PASSED] 0x9A40 (TIGERLAKE) [10:51:26] [PASSED] 0x9A49 (TIGERLAKE) [10:51:26] [PASSED] 0x9A59 (TIGERLAKE) [10:51:26] [PASSED] 0x9A78 (TIGERLAKE) [10:51:26] [PASSED] 0x9AC0 (TIGERLAKE) [10:51:26] [PASSED] 0x9AC9 (TIGERLAKE) [10:51:26] [PASSED] 0x9AD9 (TIGERLAKE) [10:51:26] [PASSED] 0x9AF8 (TIGERLAKE) [10:51:26] [PASSED] 0x4C80 (ROCKETLAKE) [10:51:26] [PASSED] 0x4C8A (ROCKETLAKE) [10:51:26] [PASSED] 0x4C8B (ROCKETLAKE) [10:51:26] [PASSED] 0x4C8C (ROCKETLAKE) [10:51:26] [PASSED] 0x4C90 (ROCKETLAKE) [10:51:26] [PASSED] 0x4C9A (ROCKETLAKE) [10:51:26] [PASSED] 0x4680 (ALDERLAKE_S) [10:51:26] [PASSED] 0x4682 (ALDERLAKE_S) [10:51:26] [PASSED] 0x4688 (ALDERLAKE_S) [10:51:26] [PASSED] 0x468A (ALDERLAKE_S) [10:51:26] [PASSED] 0x468B (ALDERLAKE_S) [10:51:26] [PASSED] 0x4690 (ALDERLAKE_S) [10:51:26] [PASSED] 0x4692 (ALDERLAKE_S) [10:51:26] [PASSED] 0x4693 (ALDERLAKE_S) [10:51:26] [PASSED] 0x46A0 (ALDERLAKE_P) [10:51:26] [PASSED] 0x46A1 (ALDERLAKE_P) [10:51:26] [PASSED] 0x46A2 (ALDERLAKE_P) [10:51:26] [PASSED] 0x46A3 (ALDERLAKE_P) [10:51:26] [PASSED] 0x46A6 (ALDERLAKE_P) [10:51:26] [PASSED] 0x46A8 (ALDERLAKE_P) [10:51:26] [PASSED] 0x46AA (ALDERLAKE_P) [10:51:26] [PASSED] 0x462A (ALDERLAKE_P) [10:51:26] [PASSED] 0x4626 (ALDERLAKE_P) [10:51:26] [PASSED] 0x4628 (ALDERLAKE_P) [10:51:26] [PASSED] 0x46B0 (ALDERLAKE_P) [10:51:26] [PASSED] 0x46B1 (ALDERLAKE_P) [10:51:26] [PASSED] 0x46B2 (ALDERLAKE_P) [10:51:26] [PASSED] 0x46B3 (ALDERLAKE_P) [10:51:26] [PASSED] 0x46C0 (ALDERLAKE_P) [10:51:26] [PASSED] 0x46C1 (ALDERLAKE_P) [10:51:26] [PASSED] 0x46C2 (ALDERLAKE_P) [10:51:26] [PASSED] 0x46C3 (ALDERLAKE_P) [10:51:26] [PASSED] 0x46D0 (ALDERLAKE_N) [10:51:26] [PASSED] 0x46D1 (ALDERLAKE_N) [10:51:26] [PASSED] 0x46D2 (ALDERLAKE_N) [10:51:26] [PASSED] 0x46D3 (ALDERLAKE_N) [10:51:26] [PASSED] 0x46D4 (ALDERLAKE_N) [10:51:26] [PASSED] 0xA721 (ALDERLAKE_P) [10:51:26] [PASSED] 0xA7A1 (ALDERLAKE_P) [10:51:26] [PASSED] 0xA7A9 (ALDERLAKE_P) [10:51:26] [PASSED] 0xA7AC (ALDERLAKE_P) [10:51:26] [PASSED] 0xA7AD (ALDERLAKE_P) [10:51:26] [PASSED] 0xA720 (ALDERLAKE_P) [10:51:26] [PASSED] 0xA7A0 (ALDERLAKE_P) [10:51:26] [PASSED] 0xA7A8 (ALDERLAKE_P) [10:51:26] [PASSED] 0xA7AA (ALDERLAKE_P) [10:51:26] [PASSED] 0xA7AB (ALDERLAKE_P) [10:51:26] [PASSED] 0xA780 (ALDERLAKE_S) [10:51:26] [PASSED] 0xA781 (ALDERLAKE_S) [10:51:26] [PASSED] 0xA782 (ALDERLAKE_S) [10:51:26] [PASSED] 0xA783 (ALDERLAKE_S) [10:51:26] [PASSED] 0xA788 (ALDERLAKE_S) [10:51:26] [PASSED] 0xA789 (ALDERLAKE_S) [10:51:26] [PASSED] 0xA78A (ALDERLAKE_S) [10:51:26] [PASSED] 0xA78B (ALDERLAKE_S) [10:51:26] [PASSED] 0x4905 (DG1) [10:51:26] [PASSED] 0x4906 (DG1) [10:51:26] [PASSED] 0x4907 (DG1) [10:51:26] [PASSED] 0x4908 (DG1) [10:51:26] [PASSED] 0x4909 (DG1) [10:51:26] [PASSED] 0x56C0 (DG2) [10:51:26] [PASSED] 0x56C2 (DG2) [10:51:26] [PASSED] 0x56C1 (DG2) [10:51:26] [PASSED] 0x7D51 (METEORLAKE) [10:51:26] [PASSED] 0x7DD1 (METEORLAKE) [10:51:26] [PASSED] 0x7D41 (METEORLAKE) [10:51:26] [PASSED] 0x7D67 (METEORLAKE) [10:51:26] [PASSED] 0xB640 (METEORLAKE) [10:51:26] [PASSED] 0x56A0 (DG2) [10:51:26] [PASSED] 0x56A1 (DG2) [10:51:26] [PASSED] 0x56A2 (DG2) [10:51:26] [PASSED] 0x56BE (DG2) [10:51:26] [PASSED] 0x56BF (DG2) [10:51:26] [PASSED] 0x5690 (DG2) [10:51:26] [PASSED] 0x5691 (DG2) [10:51:26] [PASSED] 0x5692 (DG2) [10:51:26] [PASSED] 0x56A5 (DG2) [10:51:26] [PASSED] 0x56A6 (DG2) [10:51:26] [PASSED] 0x56B0 (DG2) [10:51:26] [PASSED] 0x56B1 (DG2) [10:51:26] [PASSED] 0x56BA (DG2) [10:51:26] [PASSED] 0x56BB (DG2) [10:51:26] [PASSED] 0x56BC (DG2) [10:51:26] [PASSED] 0x56BD (DG2) [10:51:26] [PASSED] 0x5693 (DG2) [10:51:26] [PASSED] 0x5694 (DG2) [10:51:26] [PASSED] 0x5695 (DG2) [10:51:26] [PASSED] 0x56A3 (DG2) [10:51:26] [PASSED] 0x56A4 (DG2) [10:51:26] [PASSED] 0x56B2 (DG2) [10:51:26] [PASSED] 0x56B3 (DG2) [10:51:26] [PASSED] 0x5696 (DG2) [10:51:26] [PASSED] 0x5697 (DG2) [10:51:26] [PASSED] 0xB69 (PVC) [10:51:26] [PASSED] 0xB6E (PVC) [10:51:26] [PASSED] 0xBD4 (PVC) [10:51:26] [PASSED] 0xBD5 (PVC) [10:51:26] [PASSED] 0xBD6 (PVC) [10:51:26] [PASSED] 0xBD7 (PVC) [10:51:26] [PASSED] 0xBD8 (PVC) [10:51:26] [PASSED] 0xBD9 (PVC) [10:51:26] [PASSED] 0xBDA (PVC) [10:51:26] [PASSED] 0xBDB (PVC) [10:51:26] [PASSED] 0xBE0 (PVC) [10:51:26] [PASSED] 0xBE1 (PVC) [10:51:26] [PASSED] 0xBE5 (PVC) [10:51:26] [PASSED] 0x7D40 (METEORLAKE) [10:51:26] [PASSED] 0x7D45 (METEORLAKE) [10:51:26] [PASSED] 0x7D55 (METEORLAKE) [10:51:26] [PASSED] 0x7D60 (METEORLAKE) [10:51:26] [PASSED] 0x7DD5 (METEORLAKE) [10:51:26] [PASSED] 0x6420 (LUNARLAKE) [10:51:26] [PASSED] 0x64A0 (LUNARLAKE) [10:51:26] [PASSED] 0x64B0 (LUNARLAKE) [10:51:26] [PASSED] 0xE202 (BATTLEMAGE) [10:51:26] [PASSED] 0xE209 (BATTLEMAGE) [10:51:26] [PASSED] 0xE20B (BATTLEMAGE) [10:51:26] [PASSED] 0xE20C (BATTLEMAGE) [10:51:26] [PASSED] 0xE20D (BATTLEMAGE) [10:51:26] [PASSED] 0xE210 (BATTLEMAGE) [10:51:26] [PASSED] 0xE211 (BATTLEMAGE) [10:51:26] [PASSED] 0xE212 (BATTLEMAGE) [10:51:26] [PASSED] 0xE216 (BATTLEMAGE) [10:51:26] [PASSED] 0xE220 (BATTLEMAGE) [10:51:26] [PASSED] 0xE221 (BATTLEMAGE) [10:51:26] [PASSED] 0xE222 (BATTLEMAGE) [10:51:26] [PASSED] 0xE223 (BATTLEMAGE) [10:51:26] [PASSED] 0xB080 (PANTHERLAKE) [10:51:26] [PASSED] 0xB081 (PANTHERLAKE) [10:51:26] [PASSED] 0xB082 (PANTHERLAKE) [10:51:26] [PASSED] 0xB083 (PANTHERLAKE) [10:51:26] [PASSED] 0xB084 (PANTHERLAKE) [10:51:26] [PASSED] 0xB085 (PANTHERLAKE) [10:51:26] [PASSED] 0xB086 (PANTHERLAKE) [10:51:26] [PASSED] 0xB087 (PANTHERLAKE) [10:51:26] [PASSED] 0xB08F (PANTHERLAKE) [10:51:26] [PASSED] 0xB090 (PANTHERLAKE) [10:51:26] [PASSED] 0xB0A0 (PANTHERLAKE) [10:51:26] [PASSED] 0xB0B0 (PANTHERLAKE) [10:51:26] [PASSED] 0xFD80 (PANTHERLAKE) [10:51:26] [PASSED] 0xFD81 (PANTHERLAKE) [10:51:26] [PASSED] 0xD740 (NOVALAKE_S) [10:51:26] [PASSED] 0xD741 (NOVALAKE_S) [10:51:26] [PASSED] 0xD742 (NOVALAKE_S) [10:51:26] [PASSED] 0xD743 (NOVALAKE_S) [10:51:26] [PASSED] 0xD745 (NOVALAKE_S) [10:51:26] [PASSED] 0xD74A (NOVALAKE_S) [10:51:26] [PASSED] 0xD74B (NOVALAKE_S) [10:51:26] [PASSED] 0x674C (CRESCENTISLAND) [10:51:26] [PASSED] 0x674D (CRESCENTISLAND) [10:51:26] [PASSED] 0x674E (CRESCENTISLAND) [10:51:26] [PASSED] 0x674F (CRESCENTISLAND) [10:51:26] [PASSED] 0x6750 (CRESCENTISLAND) [10:51:26] [PASSED] 0xD750 (NOVALAKE_P) [10:51:26] [PASSED] 0xD751 (NOVALAKE_P) [10:51:26] [PASSED] 0xD752 (NOVALAKE_P) [10:51:26] [PASSED] 0xD753 (NOVALAKE_P) [10:51:26] [PASSED] 0xD754 (NOVALAKE_P) [10:51:26] [PASSED] 0xD755 (NOVALAKE_P) [10:51:26] [PASSED] 0xD756 (NOVALAKE_P) [10:51:26] [PASSED] 0xD757 (NOVALAKE_P) [10:51:26] [PASSED] 0xD75F (NOVALAKE_P) [10:51:26] =============== [PASSED] check_platform_desc =============== [10:51:26] ===================== [PASSED] xe_pci ====================== [10:51:26] ============= xe_rtp_tables_test (5 subtests) ============== [10:51:26] ================== xe_rtp_table_gt_test =================== [10:51:26] [PASSED] gt_was/14011060649 [10:51:26] [PASSED] gt_was/14011059788 [10:51:26] [PASSED] gt_was/14015795083 [10:51:26] [PASSED] gt_was/16021867713 [10:51:26] [PASSED] gt_was/14019449301 [10:51:26] [PASSED] gt_was/16028005424 [10:51:26] [PASSED] gt_was/14026578760 [10:51:26] [PASSED] gt_was/1409420604 [10:51:26] [PASSED] gt_was/1408615072 [10:51:26] [PASSED] gt_was/22010523718 [10:51:26] [PASSED] gt_was/14011006942 [10:51:26] [PASSED] gt_was/14014830051 [10:51:26] [PASSED] gt_was/18018781329 [10:51:26] [PASSED] gt_was/1509235366 [10:51:26] [PASSED] gt_was/18018781329 [10:51:26] [PASSED] gt_was/16016694945 [10:51:26] [PASSED] gt_was/14018575942 [10:51:26] [PASSED] gt_was/22016670082 [10:51:26] [PASSED] gt_was/22016670082 [10:51:26] [PASSED] gt_was/14017421178 [10:51:26] [PASSED] gt_was/16025250150 [10:51:26] [PASSED] gt_was/14021871409 [10:51:26] [PASSED] gt_was/16021865536 [10:51:26] [PASSED] gt_was/14021486841 [10:51:26] [PASSED] gt_was/14025160223 [10:51:26] [PASSED] gt_was/14026144927, 16029437861, 14026127056 [10:51:26] [PASSED] gt_was/14025635424 [10:51:26] [PASSED] gt_was/16028005424 [10:51:26] ============== [PASSED] xe_rtp_table_gt_test =============== [10:51:26] ================== xe_rtp_table_gt_test =================== [10:51:26] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable [10:51:26] [PASSED] gt_tunings/Tuning: 32B Access Enable [10:51:26] [PASSED] gt_tunings/Tuning: L3 cache [10:51:26] [PASSED] gt_tunings/Tuning: L3 cache - media [10:51:26] [PASSED] gt_tunings/Tuning: Compression Overfetch [10:51:26] [PASSED] gt_tunings/Tuning: Compression Overfetch - media [10:51:26] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 [10:51:26] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media [10:51:26] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only [10:51:26] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media [10:51:26] [PASSED] gt_tunings/Tuning: Stateless compression control [10:51:26] [PASSED] gt_tunings/Tuning: Stateless compression control - media [10:51:26] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache [10:51:26] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media [10:51:26] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB [10:51:26] ============== [PASSED] xe_rtp_table_gt_test =============== [10:51:26] ================== xe_rtp_table_oob_test ================== [10:51:26] [PASSED] oob_was/1607983814 [10:51:26] [PASSED] oob_was/16010904313 [10:51:26] [PASSED] oob_was/18022495364 [10:51:26] [PASSED] oob_was/22012773006 [10:51:26] [PASSED] oob_was/14014475959 [10:51:26] [PASSED] oob_was/22011391025 [10:51:26] [PASSED] oob_was/22012727170 [10:51:26] [PASSED] oob_was/22012727685 [10:51:26] [PASSED] oob_was/22016596838 [10:51:26] [PASSED] oob_was/18020744125 [10:51:26] [PASSED] oob_was/1409600907 [10:51:26] [PASSED] oob_was/22014953428 [10:51:26] [PASSED] oob_was/16017236439 [10:51:26] [PASSED] oob_was/14019821291 [10:51:26] [PASSED] oob_was/14015076503 [10:51:26] [PASSED] oob_was/14018913170 [10:51:26] [PASSED] oob_was/14018094691 [10:51:26] [PASSED] oob_was/18024947630 [10:51:26] [PASSED] oob_was/16022287689 [10:51:26] [PASSED] oob_was/13011645652 [10:51:26] [PASSED] oob_was/14022293748 [10:51:26] [PASSED] oob_was/22019794406 [10:51:26] [PASSED] oob_was/22019338487 [10:51:26] [PASSED] oob_was/16023588340 [10:51:26] [PASSED] oob_was/14019789679 [10:51:26] [PASSED] oob_was/14022866841 [10:51:26] [PASSED] oob_was/16021333562 [10:51:26] [PASSED] oob_was/14016712196 [10:51:26] [PASSED] oob_was/14015568240 [10:51:26] [PASSED] oob_was/18013179988 [10:51:26] [PASSED] oob_was/1508761755 [10:51:26] [PASSED] oob_was/16023105232 [10:51:26] [PASSED] oob_was/16026508708 [10:51:26] [PASSED] oob_was/14020001231 [10:51:26] [PASSED] oob_was/16023683509 [10:51:26] [PASSED] oob_was/14025515070 [10:51:26] [PASSED] oob_was/15015404425_disable [10:51:26] [PASSED] oob_was/16026007364 [10:51:26] [PASSED] oob_was/14020316580 [10:51:26] [PASSED] oob_was/14025883347 [10:51:26] [PASSED] oob_was/16029380221 [10:51:26] ============== [PASSED] xe_rtp_table_oob_test ============== [10:51:26] ================ xe_rtp_table_dev_oob_test ================ [10:51:26] [PASSED] device_oob_was/22010954014 [10:51:26] [PASSED] device_oob_was/15015404425 [10:51:26] [PASSED] device_oob_was/22019338487_display [10:51:26] [PASSED] device_oob_was/14022085890 [10:51:26] [PASSED] device_oob_was/14026539277 [10:51:26] [PASSED] device_oob_was/14026633728 [10:51:26] [PASSED] device_oob_was/14026746987 [10:51:26] [PASSED] device_oob_was/14026779378 [10:51:26] ============ [PASSED] xe_rtp_table_dev_oob_test ============ [10:51:26] ========== xe_rtp_table_missing_upper_bound_test ========== [10:51:26] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865 [10:51:26] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037 [10:51:26] [PASSED] register_whitelist/1806527549 [10:51:26] [PASSED] register_whitelist/allow_read_ctx_timestamp [10:51:26] [PASSED] register_whitelist/allow_read_queue_timestamp [10:51:26] [PASSED] register_whitelist/16014440446 [10:51:26] [PASSED] register_whitelist/16017236439 [10:51:26] [PASSED] register_whitelist/16020183090 [10:51:26] [PASSED] register_whitelist/14024997852 [10:51:26] [PASSED] register_whitelist/14024997852 [10:51:26] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ====== [10:51:26] =============== [PASSED] xe_rtp_tables_test ================ [10:51:26] =================== xe_rtp (3 subtests) ==================== [10:51:26] =================== xe_rtp_rules_tests ==================== [10:51:26] [PASSED] no [10:51:26] [PASSED] yes [10:51:26] [PASSED] no-and-no [10:51:26] [PASSED] no-and-yes [10:51:26] [PASSED] yes-and-no [10:51:26] [PASSED] yes-and-yes [10:51:26] [PASSED] no-or-no [10:51:26] [PASSED] no-or-yes [10:51:26] [PASSED] yes-or-no [10:51:26] [PASSED] yes-or-yes [10:51:26] [PASSED] no-yes-or-yes-no [10:51:26] [PASSED] no-yes-or-yes-yes [10:51:26] [PASSED] yes-yes-or-no-yes [10:51:26] [PASSED] yes-yes-or-yes-yes [10:51:26] [PASSED] no-no-or-yes-or-no [10:51:26] [PASSED] or [10:51:26] [PASSED] or-yes [10:51:26] [PASSED] or-no [10:51:26] [PASSED] yes-or [10:51:26] [PASSED] no-or [10:51:26] [PASSED] no-or-or-yes [10:51:26] [PASSED] yes-or-or-no [10:51:26] [PASSED] no-or-or-no [10:51:26] [PASSED] missing-context-engine-class [10:51:26] [PASSED] missing-context-engine-class-or-yes [10:51:26] [PASSED] missing-context-engine-class-or-or-yes [10:51:26] =============== [PASSED] xe_rtp_rules_tests ================ [10:51:26] =============== xe_rtp_process_to_sr_tests ================ [10:51:26] [PASSED] coalesce-same-reg [10:51:26] [PASSED] coalesce-same-reg-literal-and-func [10:51:26] [PASSED] no-match-no-add [10:51:26] [PASSED] two-regs-two-entries [10:51:26] [PASSED] clr-one-set-other [10:51:26] [PASSED] set-field [10:51:26] [PASSED] conflict-duplicate [10:51:26] [PASSED] conflict-not-disjoint [10:51:26] [PASSED] conflict-not-disjoint-literal-and-func [10:51:26] [PASSED] conflict-reg-type [10:51:26] [PASSED] bad-mcr-reg-forced-to-regular [10:51:26] [PASSED] bad-regular-reg-forced-to-mcr [10:51:26] =========== [PASSED] xe_rtp_process_to_sr_tests ============ [10:51:26] ================== xe_rtp_process_tests =================== [10:51:26] [PASSED] active1 [10:51:26] [PASSED] active2 [10:51:26] [PASSED] active-inactive [10:51:26] [PASSED] inactive-active [10:51:26] [PASSED] inactive-active-inactive [10:51:26] [PASSED] inactive-inactive-inactive [10:51:26] ============== [PASSED] xe_rtp_process_tests =============== [10:51:26] ===================== [PASSED] xe_rtp ====================== [10:51:26] ==================== xe_wa (1 subtest) ===================== [10:51:26] ======================== xe_wa_gt ========================= [10:51:26] [PASSED] TIGERLAKE B0 [10:51:26] [PASSED] DG1 A0 [10:51:26] [PASSED] DG1 B0 [10:51:26] [PASSED] ALDERLAKE_S A0 [10:51:26] [PASSED] ALDERLAKE_S B0 [10:51:26] [PASSED] ALDERLAKE_S C0 [10:51:26] [PASSED] ALDERLAKE_S D0 [10:51:26] [PASSED] ALDERLAKE_P A0 [10:51:26] [PASSED] ALDERLAKE_P B0 [10:51:26] [PASSED] ALDERLAKE_P C0 [10:51:26] [PASSED] ALDERLAKE_S RPLS D0 [10:51:26] [PASSED] ALDERLAKE_P RPLU E0 [10:51:26] [PASSED] DG2 G10 C0 [10:51:26] [PASSED] DG2 G11 B1 [10:51:26] [PASSED] DG2 G12 A1 [10:51:26] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0 [10:51:26] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0 [10:51:26] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0 [10:51:26] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0 [10:51:26] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0 [10:51:26] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1 [10:51:26] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0 [10:51:26] ==================== [PASSED] xe_wa_gt ===================== [10:51:26] ====================== [PASSED] xe_wa ====================== [10:51:26] ============================================================ [10:51:26] Testing complete. Ran 729 tests: passed: 711, skipped: 18 [10:51:26] Elapsed time: 41.502s total, 7.369s configuring, 33.466s building, 0.656s running + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig [10:51:26] Configuring KUnit Kernel ... Regenerating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [10:51:28] Building KUnit Kernel ... Populating config with: $ make ARCH=um O=.kunit olddefconfig Building with: $ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48 [10:52:15] Starting KUnit Kernel (1/1)... [10:52:15] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [10:52:15] ============ drm_test_pick_cmdline (2 subtests) ============ [10:52:15] [PASSED] drm_test_pick_cmdline_res_1920_1080_60 [10:52:15] =============== drm_test_pick_cmdline_named =============== [10:52:15] [PASSED] NTSC [10:52:15] [PASSED] NTSC-J [10:52:15] [PASSED] PAL [10:52:15] [PASSED] PAL-M [10:52:15] =========== [PASSED] drm_test_pick_cmdline_named =========== [10:52:15] ============== [PASSED] drm_test_pick_cmdline ============== [10:52:15] == drm_test_atomic_get_connector_for_encoder (1 subtest) === [10:52:15] [PASSED] drm_test_drm_atomic_get_connector_for_encoder [10:52:15] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ==== [10:52:15] =========== drm_validate_clone_mode (2 subtests) =========== [10:52:15] ============== drm_test_check_in_clone_mode =============== [10:52:15] [PASSED] in_clone_mode [10:52:15] [PASSED] not_in_clone_mode [10:52:15] ========== [PASSED] drm_test_check_in_clone_mode =========== [10:52:15] =============== drm_test_check_valid_clones =============== [10:52:15] [PASSED] not_in_clone_mode [10:52:15] [PASSED] valid_clone [10:52:15] [PASSED] invalid_clone [10:52:15] =========== [PASSED] drm_test_check_valid_clones =========== [10:52:15] ============= [PASSED] drm_validate_clone_mode ============= [10:52:15] ============= drm_validate_modeset (1 subtest) ============= [10:52:15] [PASSED] drm_test_check_connector_changed_modeset [10:52:15] ============== [PASSED] drm_validate_modeset =============== [10:52:15] ====== drm_test_bridge_get_current_state (2 subtests) ====== [10:52:15] [PASSED] drm_test_drm_bridge_get_current_state_atomic [10:52:15] [PASSED] drm_test_drm_bridge_get_current_state_legacy [10:52:15] ======== [PASSED] drm_test_bridge_get_current_state ======== [10:52:15] ====== drm_test_bridge_helper_reset_crtc (4 subtests) ====== [10:52:15] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic [10:52:15] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled [10:52:15] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy [10:52:15] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts [10:52:15] ======== [PASSED] drm_test_bridge_helper_reset_crtc ======== [10:52:15] ============== drm_bridge_alloc (2 subtests) =============== [10:52:15] [PASSED] drm_test_drm_bridge_alloc_basic [10:52:15] [PASSED] drm_test_drm_bridge_alloc_get_put [10:52:15] ================ [PASSED] drm_bridge_alloc ================= [10:52:15] ============= drm_bridge_bus_fmt (5 subtests) ============== [10:52:15] [PASSED] drm_test_bridge_rgb_yuv_rgb [10:52:15] [PASSED] drm_test_bridge_must_convert_to_yuv444 [10:52:15] [PASSED] drm_test_bridge_hdmi_auto_rgb [10:52:15] [PASSED] drm_test_bridge_auto_first [10:52:15] [PASSED] drm_test_bridge_rgb_yuv_no_path [10:52:15] =============== [PASSED] drm_bridge_bus_fmt ================ [10:52:15] ============= drm_cmdline_parser (40 subtests) ============= [10:52:15] [PASSED] drm_test_cmdline_force_d_only [10:52:15] [PASSED] drm_test_cmdline_force_D_only_dvi [10:52:15] [PASSED] drm_test_cmdline_force_D_only_hdmi [10:52:15] [PASSED] drm_test_cmdline_force_D_only_not_digital [10:52:15] [PASSED] drm_test_cmdline_force_e_only [10:52:15] [PASSED] drm_test_cmdline_res [10:52:15] [PASSED] drm_test_cmdline_res_vesa [10:52:15] [PASSED] drm_test_cmdline_res_vesa_rblank [10:52:15] [PASSED] drm_test_cmdline_res_rblank [10:52:15] [PASSED] drm_test_cmdline_res_bpp [10:52:15] [PASSED] drm_test_cmdline_res_refresh [10:52:15] [PASSED] drm_test_cmdline_res_bpp_refresh [10:52:15] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced [10:52:15] [PASSED] drm_test_cmdline_res_bpp_refresh_margins [10:52:15] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off [10:52:15] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on [10:52:15] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog [10:52:15] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital [10:52:15] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on [10:52:15] [PASSED] drm_test_cmdline_res_margins_force_on [10:52:15] [PASSED] drm_test_cmdline_res_vesa_margins [10:52:15] [PASSED] drm_test_cmdline_name [10:52:15] [PASSED] drm_test_cmdline_name_bpp [10:52:15] [PASSED] drm_test_cmdline_name_option [10:52:15] [PASSED] drm_test_cmdline_name_bpp_option [10:52:15] [PASSED] drm_test_cmdline_rotate_0 [10:52:15] [PASSED] drm_test_cmdline_rotate_90 [10:52:15] [PASSED] drm_test_cmdline_rotate_180 [10:52:15] [PASSED] drm_test_cmdline_rotate_270 [10:52:15] [PASSED] drm_test_cmdline_hmirror [10:52:15] [PASSED] drm_test_cmdline_vmirror [10:52:15] [PASSED] drm_test_cmdline_margin_options [10:52:15] [PASSED] drm_test_cmdline_multiple_options [10:52:15] [PASSED] drm_test_cmdline_bpp_extra_and_option [10:52:15] [PASSED] drm_test_cmdline_extra_and_option [10:52:15] [PASSED] drm_test_cmdline_freestanding_options [10:52:15] [PASSED] drm_test_cmdline_freestanding_force_e_and_options [10:52:15] [PASSED] drm_test_cmdline_panel_orientation [10:52:15] ================ drm_test_cmdline_invalid ================= [10:52:15] [PASSED] margin_only [10:52:15] [PASSED] interlace_only [10:52:15] [PASSED] res_missing_x [10:52:15] [PASSED] res_missing_y [10:52:15] [PASSED] res_bad_y [10:52:15] [PASSED] res_missing_y_bpp [10:52:15] [PASSED] res_bad_bpp [10:52:15] [PASSED] res_bad_refresh [10:52:15] [PASSED] res_bpp_refresh_force_on_off [10:52:15] [PASSED] res_invalid_mode [10:52:15] [PASSED] res_bpp_wrong_place_mode [10:52:15] [PASSED] name_bpp_refresh [10:52:15] [PASSED] name_refresh [10:52:15] [PASSED] name_refresh_wrong_mode [10:52:15] [PASSED] name_refresh_invalid_mode [10:52:15] [PASSED] rotate_multiple [10:52:15] [PASSED] rotate_invalid_val [10:52:15] [PASSED] rotate_truncated [10:52:15] [PASSED] invalid_option [10:52:15] [PASSED] invalid_tv_option [10:52:15] [PASSED] truncated_tv_option [10:52:15] ============ [PASSED] drm_test_cmdline_invalid ============= [10:52:15] =============== drm_test_cmdline_tv_options =============== [10:52:15] [PASSED] NTSC [10:52:15] [PASSED] NTSC_443 [10:52:15] [PASSED] NTSC_J [10:52:15] [PASSED] PAL [10:52:15] [PASSED] PAL_M [10:52:15] [PASSED] PAL_N [10:52:15] [PASSED] SECAM [10:52:15] [PASSED] MONO_525 [10:52:15] [PASSED] MONO_625 [10:52:15] =========== [PASSED] drm_test_cmdline_tv_options =========== [10:52:15] =============== [PASSED] drm_cmdline_parser ================ [10:52:15] ========== drmm_connector_hdmi_init (20 subtests) ========== [10:52:15] [PASSED] drm_test_connector_hdmi_init_valid [10:52:15] [PASSED] drm_test_connector_hdmi_init_bpc_8 [10:52:15] [PASSED] drm_test_connector_hdmi_init_bpc_10 [10:52:15] [PASSED] drm_test_connector_hdmi_init_bpc_12 [10:52:15] [PASSED] drm_test_connector_hdmi_init_bpc_invalid [10:52:15] [PASSED] drm_test_connector_hdmi_init_bpc_null [10:52:15] [PASSED] drm_test_connector_hdmi_init_formats_empty [10:52:15] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb [10:52:15] === drm_test_connector_hdmi_init_formats_yuv420_allowed === [10:52:15] [PASSED] supported_formats=0x9 yuv420_allowed=1 [10:52:15] [PASSED] supported_formats=0x9 yuv420_allowed=0 [10:52:15] [PASSED] supported_formats=0x5 yuv420_allowed=1 [10:52:15] [PASSED] supported_formats=0x5 yuv420_allowed=0 [10:52:15] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed === [10:52:15] [PASSED] drm_test_connector_hdmi_init_null_ddc [10:52:15] [PASSED] drm_test_connector_hdmi_init_null_product [10:52:15] [PASSED] drm_test_connector_hdmi_init_null_vendor [10:52:15] [PASSED] drm_test_connector_hdmi_init_product_length_exact [10:52:15] [PASSED] drm_test_connector_hdmi_init_product_length_too_long [10:52:15] [PASSED] drm_test_connector_hdmi_init_product_valid [10:52:15] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact [10:52:15] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long [10:52:15] [PASSED] drm_test_connector_hdmi_init_vendor_valid [10:52:15] ========= drm_test_connector_hdmi_init_type_valid ========= [10:52:15] [PASSED] HDMI-A [10:52:15] [PASSED] HDMI-B [10:52:15] ===== [PASSED] drm_test_connector_hdmi_init_type_valid ===== [10:52:15] ======== drm_test_connector_hdmi_init_type_invalid ======== [10:52:15] [PASSED] Unknown [10:52:15] [PASSED] VGA [10:52:15] [PASSED] DVI-I [10:52:15] [PASSED] DVI-D [10:52:15] [PASSED] DVI-A [10:52:15] [PASSED] Composite [10:52:15] [PASSED] SVIDEO [10:52:15] [PASSED] LVDS [10:52:15] [PASSED] Component [10:52:15] [PASSED] DIN [10:52:15] [PASSED] DP [10:52:15] [PASSED] TV [10:52:15] [PASSED] eDP [10:52:15] [PASSED] Virtual [10:52:15] [PASSED] DSI [10:52:15] [PASSED] DPI [10:52:15] [PASSED] Writeback [10:52:15] [PASSED] SPI [10:52:15] [PASSED] USB [10:52:15] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ==== [10:52:15] ============ [PASSED] drmm_connector_hdmi_init ============= [10:52:15] ============= drmm_connector_init (3 subtests) ============= [10:52:15] [PASSED] drm_test_drmm_connector_init [10:52:15] [PASSED] drm_test_drmm_connector_init_null_ddc [10:52:15] ========= drm_test_drmm_connector_init_type_valid ========= [10:52:15] [PASSED] Unknown [10:52:15] [PASSED] VGA [10:52:15] [PASSED] DVI-I [10:52:15] [PASSED] DVI-D [10:52:15] [PASSED] DVI-A [10:52:15] [PASSED] Composite [10:52:15] [PASSED] SVIDEO [10:52:15] [PASSED] LVDS [10:52:15] [PASSED] Component [10:52:15] [PASSED] DIN [10:52:15] [PASSED] DP [10:52:15] [PASSED] HDMI-A [10:52:15] [PASSED] HDMI-B [10:52:15] [PASSED] TV [10:52:15] [PASSED] eDP [10:52:15] [PASSED] Virtual [10:52:15] [PASSED] DSI [10:52:15] [PASSED] DPI [10:52:15] [PASSED] Writeback [10:52:15] [PASSED] SPI [10:52:15] [PASSED] USB [10:52:15] ===== [PASSED] drm_test_drmm_connector_init_type_valid ===== [10:52:15] =============== [PASSED] drmm_connector_init =============== [10:52:15] ========= drm_connector_dynamic_init (6 subtests) ========== [10:52:15] [PASSED] drm_test_drm_connector_dynamic_init [10:52:15] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc [10:52:15] [PASSED] drm_test_drm_connector_dynamic_init_not_added [10:52:15] [PASSED] drm_test_drm_connector_dynamic_init_properties [10:52:15] ===== drm_test_drm_connector_dynamic_init_type_valid ====== [10:52:15] [PASSED] Unknown [10:52:15] [PASSED] VGA [10:52:15] [PASSED] DVI-I [10:52:15] [PASSED] DVI-D [10:52:15] [PASSED] DVI-A [10:52:15] [PASSED] Composite [10:52:15] [PASSED] SVIDEO [10:52:15] [PASSED] LVDS [10:52:15] [PASSED] Component [10:52:15] [PASSED] DIN [10:52:15] [PASSED] DP [10:52:15] [PASSED] HDMI-A [10:52:15] [PASSED] HDMI-B [10:52:15] [PASSED] TV [10:52:15] [PASSED] eDP [10:52:15] [PASSED] Virtual [10:52:15] [PASSED] DSI [10:52:15] [PASSED] DPI [10:52:15] [PASSED] Writeback [10:52:15] [PASSED] SPI [10:52:15] [PASSED] USB [10:52:15] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid == [10:52:15] ======== drm_test_drm_connector_dynamic_init_name ========= [10:52:15] [PASSED] Unknown [10:52:15] [PASSED] VGA [10:52:15] [PASSED] DVI-I [10:52:15] [PASSED] DVI-D [10:52:15] [PASSED] DVI-A [10:52:15] [PASSED] Composite [10:52:15] [PASSED] SVIDEO [10:52:15] [PASSED] LVDS [10:52:15] [PASSED] Component [10:52:15] [PASSED] DIN [10:52:15] [PASSED] DP [10:52:15] [PASSED] HDMI-A [10:52:15] [PASSED] HDMI-B [10:52:15] [PASSED] TV [10:52:15] [PASSED] eDP [10:52:15] [PASSED] Virtual [10:52:15] [PASSED] DSI [10:52:15] [PASSED] DPI [10:52:15] [PASSED] Writeback [10:52:15] [PASSED] SPI [10:52:15] [PASSED] USB [10:52:15] ==== [PASSED] drm_test_drm_connector_dynamic_init_name ===== [10:52:15] =========== [PASSED] drm_connector_dynamic_init ============ [10:52:15] ==== drm_connector_dynamic_register_early (4 subtests) ===== [10:52:15] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list [10:52:15] [PASSED] drm_test_drm_connector_dynamic_register_early_defer [10:52:15] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init [10:52:15] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object [10:52:15] ====== [PASSED] drm_connector_dynamic_register_early ======= [10:52:15] ======= drm_connector_dynamic_register (7 subtests) ======== [10:52:15] [PASSED] drm_test_drm_connector_dynamic_register_on_list [10:52:15] [PASSED] drm_test_drm_connector_dynamic_register_no_defer [10:52:15] [PASSED] drm_test_drm_connector_dynamic_register_no_init [10:52:15] [PASSED] drm_test_drm_connector_dynamic_register_mode_object [10:52:15] [PASSED] drm_test_drm_connector_dynamic_register_sysfs [10:52:15] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name [10:52:15] [PASSED] drm_test_drm_connector_dynamic_register_debugfs [10:52:15] ========= [PASSED] drm_connector_dynamic_register ========== [10:52:15] = drm_connector_attach_broadcast_rgb_property (2 subtests) = [10:52:15] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property [10:52:15] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector [10:52:15] === [PASSED] drm_connector_attach_broadcast_rgb_property === [10:52:15] ========== drm_get_tv_mode_from_name (2 subtests) ========== [10:52:15] ========== drm_test_get_tv_mode_from_name_valid =========== [10:52:15] [PASSED] NTSC [10:52:15] [PASSED] NTSC-443 [10:52:15] [PASSED] NTSC-J [10:52:15] [PASSED] PAL [10:52:15] [PASSED] PAL-M [10:52:15] [PASSED] PAL-N [10:52:15] [PASSED] SECAM [10:52:15] [PASSED] Mono [10:52:15] ====== [PASSED] drm_test_get_tv_mode_from_name_valid ======= [10:52:15] [PASSED] drm_test_get_tv_mode_from_name_truncated [10:52:15] ============ [PASSED] drm_get_tv_mode_from_name ============ [10:52:15] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) = [10:52:15] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb [10:52:15] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc [10:52:15] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1 [10:52:15] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc [10:52:15] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1 [10:52:15] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double [10:52:15] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid = [10:52:15] [PASSED] VIC 96 [10:52:15] [PASSED] VIC 97 [10:52:15] [PASSED] VIC 101 [10:52:15] [PASSED] VIC 102 [10:52:15] [PASSED] VIC 106 [10:52:15] [PASSED] VIC 107 [10:52:15] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid === [10:52:15] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc [10:52:15] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc [10:52:15] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc [10:52:15] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc [10:52:15] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc [10:52:15] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ==== [10:52:15] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) == [10:52:15] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ==== [10:52:15] [PASSED] Automatic [10:52:15] [PASSED] Full [10:52:15] [PASSED] Limited 16:235 [10:52:15] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name === [10:52:15] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid [10:52:15] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ==== [10:52:15] == drm_hdmi_connector_get_output_format_name (2 subtests) == [10:52:15] === drm_test_drm_hdmi_connector_get_output_format_name ==== [10:52:15] [PASSED] RGB [10:52:15] [PASSED] YUV 4:2:0 [10:52:15] [PASSED] YUV 4:2:2 [10:52:15] [PASSED] YUV 4:4:4 [10:52:15] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name === [10:52:15] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid [10:52:15] ==== [PASSED] drm_hdmi_connector_get_output_format_name ==== [10:52:15] ============= drm_damage_helper (21 subtests) ============== [10:52:15] [PASSED] drm_test_damage_iter_no_damage [10:52:15] [PASSED] drm_test_damage_iter_no_damage_fractional_src [10:52:15] [PASSED] drm_test_damage_iter_no_damage_src_moved [10:52:15] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved [10:52:15] [PASSED] drm_test_damage_iter_no_damage_not_visible [10:52:15] [PASSED] drm_test_damage_iter_no_damage_no_crtc [10:52:15] [PASSED] drm_test_damage_iter_no_damage_no_fb [10:52:15] [PASSED] drm_test_damage_iter_simple_damage [10:52:15] [PASSED] drm_test_damage_iter_single_damage [10:52:15] [PASSED] drm_test_damage_iter_single_damage_intersect_src [10:52:15] [PASSED] drm_test_damage_iter_single_damage_outside_src [10:52:15] [PASSED] drm_test_damage_iter_single_damage_fractional_src [10:52:15] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src [10:52:15] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src [10:52:15] [PASSED] drm_test_damage_iter_single_damage_src_moved [10:52:15] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved [10:52:15] [PASSED] drm_test_damage_iter_damage [10:52:15] [PASSED] drm_test_damage_iter_damage_one_intersect [10:52:15] [PASSED] drm_test_damage_iter_damage_one_outside [10:52:15] [PASSED] drm_test_damage_iter_damage_src_moved [10:52:15] [PASSED] drm_test_damage_iter_damage_not_visible [10:52:15] ================ [PASSED] drm_damage_helper ================ [10:52:15] ============== drm_dp_mst_helper (3 subtests) ============== [10:52:15] ============== drm_test_dp_mst_calc_pbn_mode ============== [10:52:15] [PASSED] Clock 154000 BPP 30 DSC disabled [10:52:15] [PASSED] Clock 234000 BPP 30 DSC disabled [10:52:15] [PASSED] Clock 297000 BPP 24 DSC disabled [10:52:15] [PASSED] Clock 332880 BPP 24 DSC enabled [10:52:15] [PASSED] Clock 324540 BPP 24 DSC enabled [10:52:15] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ========== [10:52:15] ============== drm_test_dp_mst_calc_pbn_div =============== [10:52:15] [PASSED] Link rate 2000000 lane count 4 [10:52:15] [PASSED] Link rate 2000000 lane count 2 [10:52:15] [PASSED] Link rate 2000000 lane count 1 [10:52:15] [PASSED] Link rate 1350000 lane count 4 [10:52:15] [PASSED] Link rate 1350000 lane count 2 [10:52:15] [PASSED] Link rate 1350000 lane count 1 [10:52:15] [PASSED] Link rate 1000000 lane count 4 [10:52:15] [PASSED] Link rate 1000000 lane count 2 [10:52:15] [PASSED] Link rate 1000000 lane count 1 [10:52:15] [PASSED] Link rate 810000 lane count 4 [10:52:15] [PASSED] Link rate 810000 lane count 2 [10:52:15] [PASSED] Link rate 810000 lane count 1 [10:52:15] [PASSED] Link rate 540000 lane count 4 [10:52:15] [PASSED] Link rate 540000 lane count 2 [10:52:15] [PASSED] Link rate 540000 lane count 1 [10:52:15] [PASSED] Link rate 270000 lane count 4 [10:52:15] [PASSED] Link rate 270000 lane count 2 [10:52:15] [PASSED] Link rate 270000 lane count 1 [10:52:15] [PASSED] Link rate 162000 lane count 4 [10:52:15] [PASSED] Link rate 162000 lane count 2 [10:52:15] [PASSED] Link rate 162000 lane count 1 [10:52:15] ========== [PASSED] drm_test_dp_mst_calc_pbn_div =========== [10:52:15] ========= drm_test_dp_mst_sideband_msg_req_decode ========= [10:52:15] [PASSED] DP_ENUM_PATH_RESOURCES with port number [10:52:15] [PASSED] DP_POWER_UP_PHY with port number [10:52:15] [PASSED] DP_POWER_DOWN_PHY with port number [10:52:15] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks [10:52:15] [PASSED] DP_ALLOCATE_PAYLOAD with port number [10:52:15] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI [10:52:15] [PASSED] DP_ALLOCATE_PAYLOAD with PBN [10:52:15] [PASSED] DP_QUERY_PAYLOAD with port number [10:52:15] [PASSED] DP_QUERY_PAYLOAD with VCPI [10:52:15] [PASSED] DP_REMOTE_DPCD_READ with port number [10:52:15] [PASSED] DP_REMOTE_DPCD_READ with DPCD address [10:52:15] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes [10:52:15] [PASSED] DP_REMOTE_DPCD_WRITE with port number [10:52:15] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address [10:52:15] [PASSED] DP_REMOTE_DPCD_WRITE with data array [10:52:15] [PASSED] DP_REMOTE_I2C_READ with port number [10:52:15] [PASSED] DP_REMOTE_I2C_READ with I2C device ID [10:52:15] [PASSED] DP_REMOTE_I2C_READ with transactions array [10:52:15] [PASSED] DP_REMOTE_I2C_WRITE with port number [10:52:15] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID [10:52:15] [PASSED] DP_REMOTE_I2C_WRITE with data array [10:52:15] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID [10:52:15] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID [10:52:15] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event [10:52:15] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event [10:52:15] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior [10:52:15] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior [10:52:15] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode ===== [10:52:15] ================ [PASSED] drm_dp_mst_helper ================ [10:52:15] ================== drm_exec (7 subtests) =================== [10:52:15] [PASSED] sanitycheck [10:52:15] [PASSED] test_lock [10:52:15] [PASSED] test_lock_unlock [10:52:15] [PASSED] test_duplicates [10:52:15] [PASSED] test_prepare [10:52:15] [PASSED] test_prepare_array [10:52:15] [PASSED] test_multiple_loops [10:52:15] ==================== [PASSED] drm_exec ===================== [10:52:15] =========== drm_format_helper_test (17 subtests) =========== [10:52:15] ============== drm_test_fb_xrgb8888_to_gray8 ============== [10:52:15] [PASSED] single_pixel_source_buffer [10:52:15] [PASSED] single_pixel_clip_rectangle [10:52:15] [PASSED] well_known_colors [10:52:15] [PASSED] destination_pitch [10:52:15] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ========== [10:52:15] ============= drm_test_fb_xrgb8888_to_rgb332 ============== [10:52:15] [PASSED] single_pixel_source_buffer [10:52:15] [PASSED] single_pixel_clip_rectangle [10:52:15] [PASSED] well_known_colors [10:52:15] [PASSED] destination_pitch [10:52:15] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ========== [10:52:15] ============= drm_test_fb_xrgb8888_to_rgb565 ============== [10:52:15] [PASSED] single_pixel_source_buffer [10:52:15] [PASSED] single_pixel_clip_rectangle [10:52:15] [PASSED] well_known_colors [10:52:15] [PASSED] destination_pitch [10:52:15] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ========== [10:52:15] ============ drm_test_fb_xrgb8888_to_xrgb1555 ============= [10:52:15] [PASSED] single_pixel_source_buffer [10:52:15] [PASSED] single_pixel_clip_rectangle [10:52:15] [PASSED] well_known_colors [10:52:15] [PASSED] destination_pitch [10:52:15] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 ========= [10:52:15] ============ drm_test_fb_xrgb8888_to_argb1555 ============= [10:52:15] [PASSED] single_pixel_source_buffer [10:52:15] [PASSED] single_pixel_clip_rectangle [10:52:15] [PASSED] well_known_colors [10:52:15] [PASSED] destination_pitch [10:52:15] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 ========= [10:52:15] ============ drm_test_fb_xrgb8888_to_rgba5551 ============= [10:52:15] [PASSED] single_pixel_source_buffer [10:52:15] [PASSED] single_pixel_clip_rectangle [10:52:15] [PASSED] well_known_colors [10:52:15] [PASSED] destination_pitch [10:52:15] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 ========= [10:52:15] ============= drm_test_fb_xrgb8888_to_rgb888 ============== [10:52:15] [PASSED] single_pixel_source_buffer [10:52:15] [PASSED] single_pixel_clip_rectangle [10:52:15] [PASSED] well_known_colors [10:52:15] [PASSED] destination_pitch [10:52:15] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ========== [10:52:15] ============= drm_test_fb_xrgb8888_to_bgr888 ============== [10:52:15] [PASSED] single_pixel_source_buffer [10:52:15] [PASSED] single_pixel_clip_rectangle [10:52:15] [PASSED] well_known_colors [10:52:15] [PASSED] destination_pitch [10:52:15] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ========== [10:52:15] ============ drm_test_fb_xrgb8888_to_argb8888 ============= [10:52:15] [PASSED] single_pixel_source_buffer [10:52:15] [PASSED] single_pixel_clip_rectangle [10:52:15] [PASSED] well_known_colors [10:52:15] [PASSED] destination_pitch [10:52:15] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 ========= [10:52:15] =========== drm_test_fb_xrgb8888_to_xrgb2101010 =========== [10:52:15] [PASSED] single_pixel_source_buffer [10:52:15] [PASSED] single_pixel_clip_rectangle [10:52:15] [PASSED] well_known_colors [10:52:15] [PASSED] destination_pitch [10:52:15] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 ======= [10:52:15] =========== drm_test_fb_xrgb8888_to_argb2101010 =========== [10:52:15] [PASSED] single_pixel_source_buffer [10:52:15] [PASSED] single_pixel_clip_rectangle [10:52:15] [PASSED] well_known_colors [10:52:15] [PASSED] destination_pitch [10:52:15] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 ======= [10:52:15] ============== drm_test_fb_xrgb8888_to_mono =============== [10:52:15] [PASSED] single_pixel_source_buffer [10:52:15] [PASSED] single_pixel_clip_rectangle [10:52:15] [PASSED] well_known_colors [10:52:15] [PASSED] destination_pitch [10:52:15] ========== [PASSED] drm_test_fb_xrgb8888_to_mono =========== [10:52:15] ==================== drm_test_fb_swab ===================== [10:52:15] [PASSED] single_pixel_source_buffer [10:52:15] [PASSED] single_pixel_clip_rectangle [10:52:15] [PASSED] well_known_colors [10:52:15] [PASSED] destination_pitch [10:52:15] ================ [PASSED] drm_test_fb_swab ================= [10:52:15] ============ drm_test_fb_xrgb8888_to_xbgr8888 ============= [10:52:15] [PASSED] single_pixel_source_buffer [10:52:15] [PASSED] single_pixel_clip_rectangle [10:52:15] [PASSED] well_known_colors [10:52:15] [PASSED] destination_pitch [10:52:15] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 ========= [10:52:15] ============ drm_test_fb_xrgb8888_to_abgr8888 ============= [10:52:15] [PASSED] single_pixel_source_buffer [10:52:15] [PASSED] single_pixel_clip_rectangle [10:52:15] [PASSED] well_known_colors [10:52:15] [PASSED] destination_pitch [10:52:15] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 ========= [10:52:15] ================= drm_test_fb_clip_offset ================= [10:52:15] [PASSED] pass through [10:52:15] [PASSED] horizontal offset [10:52:15] [PASSED] vertical offset [10:52:15] [PASSED] horizontal and vertical offset [10:52:15] [PASSED] horizontal offset (custom pitch) [10:52:15] [PASSED] vertical offset (custom pitch) [10:52:15] [PASSED] horizontal and vertical offset (custom pitch) [10:52:15] ============= [PASSED] drm_test_fb_clip_offset ============= [10:52:15] =================== drm_test_fb_memcpy ==================== [10:52:15] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258) [10:52:15] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258) [10:52:15] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559) [10:52:15] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258) [10:52:15] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258) [10:52:15] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559) [10:52:15] [PASSED] well_known_colors: XB24 little-endian (0x34324258) [10:52:15] [PASSED] well_known_colors: XRA8 little-endian (0x38415258) [10:52:15] [PASSED] well_known_colors: YU24 little-endian (0x34325559) [10:52:15] [PASSED] destination_pitch: XB24 little-endian (0x34324258) [10:52:15] [PASSED] destination_pitch: XRA8 little-endian (0x38415258) [10:52:15] [PASSED] destination_pitch: YU24 little-endian (0x34325559) [10:52:15] =============== [PASSED] drm_test_fb_memcpy ================ [10:52:15] ============= [PASSED] drm_format_helper_test ============== [10:52:15] ================= drm_format (18 subtests) ================= [10:52:15] [PASSED] drm_test_format_block_width_invalid [10:52:15] [PASSED] drm_test_format_block_width_one_plane [10:52:15] [PASSED] drm_test_format_block_width_two_plane [10:52:15] [PASSED] drm_test_format_block_width_three_plane [10:52:15] [PASSED] drm_test_format_block_width_tiled [10:52:15] [PASSED] drm_test_format_block_height_invalid [10:52:15] [PASSED] drm_test_format_block_height_one_plane [10:52:15] [PASSED] drm_test_format_block_height_two_plane [10:52:15] [PASSED] drm_test_format_block_height_three_plane [10:52:15] [PASSED] drm_test_format_block_height_tiled [10:52:15] [PASSED] drm_test_format_min_pitch_invalid [10:52:15] [PASSED] drm_test_format_min_pitch_one_plane_8bpp [10:52:15] [PASSED] drm_test_format_min_pitch_one_plane_16bpp [10:52:15] [PASSED] drm_test_format_min_pitch_one_plane_24bpp [10:52:15] [PASSED] drm_test_format_min_pitch_one_plane_32bpp [10:52:15] [PASSED] drm_test_format_min_pitch_two_plane [10:52:15] [PASSED] drm_test_format_min_pitch_three_plane_8bpp [10:52:15] [PASSED] drm_test_format_min_pitch_tiled [10:52:15] =================== [PASSED] drm_format ==================== [10:52:15] ============== drm_framebuffer (10 subtests) =============== [10:52:15] ========== drm_test_framebuffer_check_src_coords ========== [10:52:15] [PASSED] Success: source fits into fb [10:52:15] [PASSED] Fail: overflowing fb with x-axis coordinate [10:52:15] [PASSED] Fail: overflowing fb with y-axis coordinate [10:52:15] [PASSED] Fail: overflowing fb with source width [10:52:15] [PASSED] Fail: overflowing fb with source height [10:52:15] ====== [PASSED] drm_test_framebuffer_check_src_coords ====== [10:52:15] [PASSED] drm_test_framebuffer_cleanup [10:52:15] =============== drm_test_framebuffer_create =============== [10:52:15] [PASSED] ABGR8888 normal sizes [10:52:15] [PASSED] ABGR8888 max sizes [10:52:15] [PASSED] ABGR8888 pitch greater than min required [10:52:15] [PASSED] ABGR8888 pitch less than min required [10:52:15] [PASSED] ABGR8888 Invalid width [10:52:15] [PASSED] ABGR8888 Invalid buffer handle [10:52:15] [PASSED] No pixel format [10:52:15] [PASSED] ABGR8888 Width 0 [10:52:15] [PASSED] ABGR8888 Height 0 [10:52:15] [PASSED] ABGR8888 Out of bound height * pitch combination [10:52:15] [PASSED] ABGR8888 Large buffer offset [10:52:15] [PASSED] ABGR8888 Buffer offset for inexistent plane [10:52:15] [PASSED] ABGR8888 Invalid flag [10:52:15] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers [10:52:15] [PASSED] ABGR8888 Valid buffer modifier [10:52:15] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE) [10:52:15] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS [10:52:15] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS [10:52:15] [PASSED] NV12 Normal sizes [10:52:15] [PASSED] NV12 Max sizes [10:52:15] [PASSED] NV12 Invalid pitch [10:52:15] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag [10:52:15] [PASSED] NV12 different modifier per-plane [10:52:15] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE [10:52:15] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS [10:52:15] [PASSED] NV12 Modifier for inexistent plane [10:52:15] [PASSED] NV12 Handle for inexistent plane [10:52:15] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS [10:52:15] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier [10:52:15] [PASSED] YVU420 Normal sizes [10:52:15] [PASSED] YVU420 Max sizes [10:52:15] [PASSED] YVU420 Invalid pitch [10:52:15] [PASSED] YVU420 Different pitches [10:52:15] [PASSED] YVU420 Different buffer offsets/pitches [10:52:15] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS [10:52:15] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS [10:52:15] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS [10:52:15] [PASSED] YVU420 Valid modifier [10:52:15] [PASSED] YVU420 Different modifiers per plane [10:52:15] [PASSED] YVU420 Modifier for inexistent plane [10:52:15] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR) [10:52:15] [PASSED] X0L2 Normal sizes [10:52:15] [PASSED] X0L2 Max sizes [10:52:15] [PASSED] X0L2 Invalid pitch [10:52:15] [PASSED] X0L2 Pitch greater than minimum required [10:52:15] [PASSED] X0L2 Handle for inexistent plane [10:52:15] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set [10:52:15] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set [10:52:15] [PASSED] X0L2 Valid modifier [10:52:15] [PASSED] X0L2 Modifier for inexistent plane [10:52:15] =========== [PASSED] drm_test_framebuffer_create =========== [10:52:15] [PASSED] drm_test_framebuffer_free [10:52:15] [PASSED] drm_test_framebuffer_init [10:52:15] [PASSED] drm_test_framebuffer_init_bad_format [10:52:15] [PASSED] drm_test_framebuffer_init_dev_mismatch [10:52:15] [PASSED] drm_test_framebuffer_lookup [10:52:15] [PASSED] drm_test_framebuffer_lookup_inexistent [10:52:15] [PASSED] drm_test_framebuffer_modifiers_not_supported [10:52:15] ================= [PASSED] drm_framebuffer ================= [10:52:15] ================ drm_gem_shmem (8 subtests) ================ [10:52:15] [PASSED] drm_gem_shmem_test_obj_create [10:52:15] [PASSED] drm_gem_shmem_test_obj_create_private [10:52:15] [PASSED] drm_gem_shmem_test_pin_pages [10:52:15] [PASSED] drm_gem_shmem_test_vmap [10:52:15] [PASSED] drm_gem_shmem_test_get_sg_table [10:52:15] [PASSED] drm_gem_shmem_test_get_pages_sgt [10:52:15] [PASSED] drm_gem_shmem_test_madvise [10:52:15] [PASSED] drm_gem_shmem_test_purge [10:52:15] ================== [PASSED] drm_gem_shmem ================== [10:52:15] === drm_atomic_helper_connector_hdmi_check (29 subtests) === [10:52:15] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode [10:52:15] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1 [10:52:15] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode [10:52:15] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1 [10:52:15] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode [10:52:15] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1 [10:52:15] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 ======= [10:52:15] [PASSED] Automatic [10:52:15] [PASSED] Full [10:52:15] [PASSED] Limited 16:235 [10:52:15] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 === [10:52:15] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed [10:52:15] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed [10:52:15] [PASSED] drm_test_check_disable_connector [10:52:15] [PASSED] drm_test_check_hdmi_funcs_reject_rate [10:52:15] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb [10:52:15] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420 [10:52:15] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422 [10:52:15] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420 [10:52:15] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420 [10:52:15] [PASSED] drm_test_check_output_bpc_crtc_mode_changed [10:52:15] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed [10:52:15] [PASSED] drm_test_check_output_bpc_dvi [10:52:15] [PASSED] drm_test_check_output_bpc_format_vic_1 [10:52:15] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only [10:52:15] [PASSED] drm_test_check_output_bpc_format_display_rgb_only [10:52:15] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only [10:52:15] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only [10:52:15] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc [10:52:15] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc [10:52:15] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc [10:52:15] ============ drm_test_check_hdmi_color_format ============= [10:52:15] [PASSED] AUTO -> RGB [10:52:15] [PASSED] YCBCR422 -> YUV422 [10:52:15] [PASSED] YCBCR420 -> YUV420 [10:52:15] [PASSED] YCBCR444 -> YUV444 [10:52:15] [PASSED] RGB -> RGB [10:52:15] ======== [PASSED] drm_test_check_hdmi_color_format ========= [10:52:15] ======== drm_test_check_hdmi_color_format_420_only ======== [10:52:15] [PASSED] RGB should fail [10:52:15] [PASSED] YUV444 should fail [10:52:15] [PASSED] YUV422 should fail [10:52:15] [PASSED] YUV420 should work [10:52:15] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ==== [10:52:15] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ====== [10:52:15] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ==== [10:52:15] [PASSED] drm_test_check_broadcast_rgb_value [10:52:15] [PASSED] drm_test_check_bpc_8_value [10:52:15] [PASSED] drm_test_check_bpc_10_value [10:52:15] [PASSED] drm_test_check_bpc_12_value [10:52:15] [PASSED] drm_test_check_format_value [10:52:15] [PASSED] drm_test_check_tmds_char_value [10:52:15] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ====== [10:52:15] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) = [10:52:15] [PASSED] drm_test_check_mode_valid [10:52:15] [PASSED] drm_test_check_mode_valid_reject [10:52:15] [PASSED] drm_test_check_mode_valid_reject_rate [10:52:15] [PASSED] drm_test_check_mode_valid_reject_max_clock [10:52:15] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock [10:52:15] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector [10:52:15] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb [10:52:15] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid === [10:52:15] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) = [10:52:15] [PASSED] drm_test_check_infoframes [10:52:15] [PASSED] drm_test_check_reject_avi_infoframe [10:52:15] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8 [10:52:15] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10 [10:52:15] [PASSED] drm_test_check_reject_audio_infoframe [10:52:15] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes === [10:52:15] ================= drm_managed (2 subtests) ================= [10:52:15] [PASSED] drm_test_managed_release_action [10:52:15] [PASSED] drm_test_managed_run_action [10:52:15] =================== [PASSED] drm_managed =================== [10:52:15] =================== drm_mm (6 subtests) ==================== [10:52:15] [PASSED] drm_test_mm_init [10:52:15] [PASSED] drm_test_mm_debug [10:52:15] [PASSED] drm_test_mm_align32 [10:52:15] [PASSED] drm_test_mm_align64 [10:52:15] [PASSED] drm_test_mm_lowest [10:52:15] [PASSED] drm_test_mm_highest [10:52:15] ===================== [PASSED] drm_mm ====================== [10:52:15] ============= drm_modes_analog_tv (5 subtests) ============= [10:52:15] [PASSED] drm_test_modes_analog_tv_mono_576i [10:52:15] [PASSED] drm_test_modes_analog_tv_ntsc_480i [10:52:15] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined [10:52:15] [PASSED] drm_test_modes_analog_tv_pal_576i [10:52:15] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined [10:52:15] =============== [PASSED] drm_modes_analog_tv =============== [10:52:15] ============== drm_plane_helper (2 subtests) =============== [10:52:15] =============== drm_test_check_plane_state ================ [10:52:15] [PASSED] clipping_simple [10:52:15] [PASSED] clipping_rotate_reflect [10:52:15] [PASSED] positioning_simple [10:52:15] [PASSED] upscaling [10:52:15] [PASSED] downscaling [10:52:15] [PASSED] rounding1 [10:52:15] [PASSED] rounding2 [10:52:15] [PASSED] rounding3 [10:52:15] [PASSED] rounding4 [10:52:15] =========== [PASSED] drm_test_check_plane_state ============ [10:52:15] =========== drm_test_check_invalid_plane_state ============ [10:52:15] [PASSED] positioning_invalid [10:52:15] [PASSED] upscaling_invalid [10:52:15] [PASSED] downscaling_invalid [10:52:15] ======= [PASSED] drm_test_check_invalid_plane_state ======== [10:52:15] ================ [PASSED] drm_plane_helper ================= [10:52:15] ====== drm_connector_helper_tv_get_modes (1 subtest) ======= [10:52:15] ====== drm_test_connector_helper_tv_get_modes_check ======= [10:52:15] [PASSED] None [10:52:15] [PASSED] PAL [10:52:15] [PASSED] NTSC [10:52:15] [PASSED] Both, NTSC Default [10:52:15] [PASSED] Both, PAL Default [10:52:15] [PASSED] Both, NTSC Default, with PAL on command-line [10:52:15] [PASSED] Both, PAL Default, with NTSC on command-line [10:52:15] == [PASSED] drm_test_connector_helper_tv_get_modes_check === [10:52:15] ======== [PASSED] drm_connector_helper_tv_get_modes ======== [10:52:15] ================== drm_rect (9 subtests) =================== [10:52:15] [PASSED] drm_test_rect_clip_scaled_div_by_zero [10:52:15] [PASSED] drm_test_rect_clip_scaled_not_clipped [10:52:15] [PASSED] drm_test_rect_clip_scaled_clipped [10:52:15] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned [10:52:15] ================= drm_test_rect_intersect ================= [10:52:15] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0 [10:52:15] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1 [10:52:15] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0 [10:52:15] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1 [10:52:15] [PASSED] right x left: 2x1+0+0 x 3x1+1+0 [10:52:15] [PASSED] left x right: 3x1+1+0 x 2x1+0+0 [10:52:15] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1 [10:52:15] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0 [10:52:15] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1 [10:52:15] [PASSED] touching side: 1x1+0+0 x 1x1+1+0 [10:52:15] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0 [10:52:15] [PASSED] inside another: 2x2+0+0 x 1x1+1+1 [10:52:15] [PASSED] far away: 1x1+0+0 x 1x1+3+6 [10:52:15] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10 [10:52:15] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10 [10:52:15] ============= [PASSED] drm_test_rect_intersect ============= [10:52:15] ================ drm_test_rect_calc_hscale ================ [10:52:15] [PASSED] normal use [10:52:15] [PASSED] out of max range [10:52:15] [PASSED] out of min range [10:52:15] [PASSED] zero dst [10:52:15] [PASSED] negative src [10:52:15] [PASSED] negative dst [10:52:15] ============ [PASSED] drm_test_rect_calc_hscale ============ [10:52:15] ================ drm_test_rect_calc_vscale ================ [10:52:15] [PASSED] normal use [10:52:15] [PASSED] out of max range [10:52:15] [PASSED] out of min range [10:52:15] [PASSED] zero dst [10:52:15] [PASSED] negative src [10:52:15] [PASSED] negative dst [10:52:15] ============ [PASSED] drm_test_rect_calc_vscale ============ [10:52:15] ================== drm_test_rect_rotate =================== [10:52:15] [PASSED] reflect-x [10:52:15] [PASSED] reflect-y [10:52:15] [PASSED] rotate-0 [10:52:15] [PASSED] rotate-90 [10:52:15] [PASSED] rotate-180 [10:52:15] [PASSED] rotate-270 [10:52:15] ============== [PASSED] drm_test_rect_rotate =============== [10:52:15] ================ drm_test_rect_rotate_inv ================= [10:52:15] [PASSED] reflect-x [10:52:15] [PASSED] reflect-y [10:52:15] [PASSED] rotate-0 [10:52:15] [PASSED] rotate-90 [10:52:15] [PASSED] rotate-180 [10:52:15] [PASSED] rotate-270 [10:52:15] ============ [PASSED] drm_test_rect_rotate_inv ============= [10:52:15] ==================== [PASSED] drm_rect ===================== [10:52:15] ============ drm_sysfb_modeset_test (1 subtest) ============ [10:52:15] ============ drm_test_sysfb_build_fourcc_list ============= [10:52:15] [PASSED] no native formats [10:52:15] [PASSED] XRGB8888 as native format [10:52:15] [PASSED] remove duplicates [10:52:15] [PASSED] convert alpha formats [10:52:15] [PASSED] random formats [10:52:15] ======== [PASSED] drm_test_sysfb_build_fourcc_list ========= [10:52:15] ============= [PASSED] drm_sysfb_modeset_test ============== [10:52:15] ================== drm_fixp (2 subtests) =================== [10:52:15] [PASSED] drm_test_int2fixp [10:52:15] [PASSED] drm_test_sm2fixp [10:52:15] ==================== [PASSED] drm_fixp ===================== [10:52:15] ============================================================ [10:52:15] Testing complete. Ran 639 tests: passed: 639 [10:52:15] Elapsed time: 49.174s total, 2.043s configuring, 46.861s building, 0.249s running + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig [10:52:15] Configuring KUnit Kernel ... Regenerating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [10:52:18] Building KUnit Kernel ... Populating config with: $ make ARCH=um O=.kunit olddefconfig Building with: $ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48 [10:52:34] Starting KUnit Kernel (1/1)... [10:52:34] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [10:52:34] ================= ttm_device (5 subtests) ================== [10:52:34] [PASSED] ttm_device_init_basic [10:52:34] [PASSED] ttm_device_init_multiple [10:52:34] [PASSED] ttm_device_fini_basic [10:52:34] [PASSED] ttm_device_init_no_vma_man [10:52:34] ================== ttm_device_init_pools ================== [10:52:34] [PASSED] No DMA allocations, no DMA32 required [10:52:34] [PASSED] DMA allocations, DMA32 required [10:52:34] [PASSED] No DMA allocations, DMA32 required [10:52:34] [PASSED] DMA allocations, no DMA32 required [10:52:34] ============== [PASSED] ttm_device_init_pools ============== [10:52:34] =================== [PASSED] ttm_device ==================== [10:52:34] ================== ttm_pool (8 subtests) =================== [10:52:34] ================== ttm_pool_alloc_basic =================== [10:52:34] [PASSED] One page [10:52:34] [PASSED] More than one page [10:52:34] [PASSED] Above the allocation limit [10:52:34] [PASSED] One page, with coherent DMA mappings enabled [10:52:34] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [10:52:34] ============== [PASSED] ttm_pool_alloc_basic =============== [10:52:34] ============== ttm_pool_alloc_basic_dma_addr ============== [10:52:34] [PASSED] One page [10:52:34] [PASSED] More than one page [10:52:34] [PASSED] Above the allocation limit [10:52:34] [PASSED] One page, with coherent DMA mappings enabled [10:52:34] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [10:52:34] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ========== [10:52:34] [PASSED] ttm_pool_alloc_order_caching_match [10:52:34] [PASSED] ttm_pool_alloc_caching_mismatch [10:52:34] [PASSED] ttm_pool_alloc_order_mismatch [10:52:34] [PASSED] ttm_pool_free_dma_alloc [10:52:34] [PASSED] ttm_pool_free_no_dma_alloc [10:52:34] [PASSED] ttm_pool_fini_basic [10:52:34] ==================== [PASSED] ttm_pool ===================== [10:52:34] ================ ttm_resource (8 subtests) ================= [10:52:34] ================= ttm_resource_init_basic ================= [10:52:34] [PASSED] Init resource in TTM_PL_SYSTEM [10:52:34] [PASSED] Init resource in TTM_PL_VRAM [10:52:34] [PASSED] Init resource in a private placement [10:52:34] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags [10:52:34] ============= [PASSED] ttm_resource_init_basic ============= [10:52:34] [PASSED] ttm_resource_init_pinned [10:52:34] [PASSED] ttm_resource_fini_basic [10:52:34] [PASSED] ttm_resource_manager_init_basic [10:52:34] [PASSED] ttm_resource_manager_usage_basic [10:52:34] [PASSED] ttm_resource_manager_set_used_basic [10:52:34] [PASSED] ttm_sys_man_alloc_basic [10:52:34] [PASSED] ttm_sys_man_free_basic [10:52:34] ================== [PASSED] ttm_resource =================== [10:52:34] =================== ttm_tt (15 subtests) =================== [10:52:34] ==================== ttm_tt_init_basic ==================== [10:52:34] [PASSED] Page-aligned size [10:52:34] [PASSED] Extra pages requested [10:52:34] ================ [PASSED] ttm_tt_init_basic ================ [10:52:34] [PASSED] ttm_tt_init_misaligned [10:52:34] [PASSED] ttm_tt_fini_basic [10:52:34] [PASSED] ttm_tt_fini_sg [10:52:34] [PASSED] ttm_tt_fini_shmem [10:52:34] [PASSED] ttm_tt_create_basic [10:52:34] [PASSED] ttm_tt_create_invalid_bo_type [10:52:34] [PASSED] ttm_tt_create_ttm_exists [10:52:34] [PASSED] ttm_tt_create_failed [10:52:34] [PASSED] ttm_tt_destroy_basic [10:52:34] [PASSED] ttm_tt_populate_null_ttm [10:52:34] [PASSED] ttm_tt_populate_populated_ttm [10:52:34] [PASSED] ttm_tt_unpopulate_basic [10:52:34] [PASSED] ttm_tt_unpopulate_empty_ttm [10:52:34] [PASSED] ttm_tt_swapin_basic [10:52:34] ===================== [PASSED] ttm_tt ====================== [10:52:34] =================== ttm_bo (14 subtests) =================== [10:52:34] =========== ttm_bo_reserve_optimistic_no_ticket =========== [10:52:34] [PASSED] Cannot be interrupted and sleeps [10:52:34] [PASSED] Cannot be interrupted, locks straight away [10:52:34] [PASSED] Can be interrupted, sleeps [10:52:34] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket ======= [10:52:34] [PASSED] ttm_bo_reserve_locked_no_sleep [10:52:34] [PASSED] ttm_bo_reserve_no_wait_ticket [10:52:35] [PASSED] ttm_bo_reserve_double_resv [10:52:35] [PASSED] ttm_bo_reserve_interrupted [10:52:35] [PASSED] ttm_bo_reserve_deadlock [10:52:35] [PASSED] ttm_bo_unreserve_basic [10:52:35] [PASSED] ttm_bo_unreserve_pinned [10:52:35] [PASSED] ttm_bo_unreserve_bulk [10:52:35] [PASSED] ttm_bo_fini_basic [10:52:35] [PASSED] ttm_bo_fini_shared_resv [10:52:35] [PASSED] ttm_bo_pin_basic [10:52:35] [PASSED] ttm_bo_pin_unpin_resource [10:52:35] [PASSED] ttm_bo_multiple_pin_one_unpin [10:52:35] ===================== [PASSED] ttm_bo ====================== [10:52:35] ============== ttm_bo_validate (22 subtests) =============== [10:52:35] ============== ttm_bo_init_reserved_sys_man =============== [10:52:35] [PASSED] Buffer object for userspace [10:52:35] [PASSED] Kernel buffer object [10:52:35] [PASSED] Shared buffer object [10:52:35] ========== [PASSED] ttm_bo_init_reserved_sys_man =========== [10:52:35] ============== ttm_bo_init_reserved_mock_man ============== [10:52:35] [PASSED] Buffer object for userspace [10:52:35] [PASSED] Kernel buffer object [10:52:35] [PASSED] Shared buffer object [10:52:35] ========== [PASSED] ttm_bo_init_reserved_mock_man ========== [10:52:35] [PASSED] ttm_bo_init_reserved_resv [10:52:35] ================== ttm_bo_validate_basic ================== [10:52:35] [PASSED] Buffer object for userspace [10:52:35] [PASSED] Kernel buffer object [10:52:35] [PASSED] Shared buffer object [10:52:35] ============== [PASSED] ttm_bo_validate_basic ============== [10:52:35] [PASSED] ttm_bo_validate_invalid_placement [10:52:35] ============= ttm_bo_validate_same_placement ============== [10:52:35] [PASSED] System manager [10:52:35] [PASSED] VRAM manager [10:52:35] ========= [PASSED] ttm_bo_validate_same_placement ========== [10:52:35] [PASSED] ttm_bo_validate_failed_alloc [10:52:35] [PASSED] ttm_bo_validate_pinned [10:52:35] [PASSED] ttm_bo_validate_busy_placement [10:52:35] ================ ttm_bo_validate_multihop ================= [10:52:35] [PASSED] Buffer object for userspace [10:52:35] [PASSED] Kernel buffer object [10:52:35] [PASSED] Shared buffer object [10:52:35] ============ [PASSED] ttm_bo_validate_multihop ============= [10:52:35] ========== ttm_bo_validate_no_placement_signaled ========== [10:52:35] [PASSED] Buffer object in system domain, no page vector [10:52:35] [PASSED] Buffer object in system domain with an existing page vector [10:52:35] ====== [PASSED] ttm_bo_validate_no_placement_signaled ====== [10:52:35] ======== ttm_bo_validate_no_placement_not_signaled ======== [10:52:35] [PASSED] Buffer object for userspace [10:52:35] [PASSED] Kernel buffer object [10:52:35] [PASSED] Shared buffer object [10:52:35] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ==== [10:52:35] [PASSED] ttm_bo_validate_move_fence_signaled [10:52:35] ========= ttm_bo_validate_move_fence_not_signaled ========= [10:52:35] [PASSED] Waits for GPU [10:52:35] [PASSED] Tries to lock straight away [10:52:35] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled ===== [10:52:35] [PASSED] ttm_bo_validate_swapout [10:52:35] [PASSED] ttm_bo_validate_happy_evict [10:52:35] [PASSED] ttm_bo_validate_all_pinned_evict [10:52:35] [PASSED] ttm_bo_validate_allowed_only_evict [10:52:35] [PASSED] ttm_bo_validate_deleted_evict [10:52:35] [PASSED] ttm_bo_validate_busy_domain_evict [10:52:35] [PASSED] ttm_bo_validate_evict_gutting [10:52:35] [PASSED] ttm_bo_validate_recrusive_evict [10:52:35] ================= [PASSED] ttm_bo_validate ================= [10:52:35] ============================================================ [10:52:35] Testing complete. Ran 102 tests: passed: 102 [10:52:35] Elapsed time: 19.345s total, 2.742s configuring, 16.338s building, 0.223s running + cleanup ++ stat -c %u:%g /kernel + chown -R 1003:1003 /kernel ^ permalink raw reply [flat|nested] 12+ messages in thread
* ✓ Xe.CI.BAT: success for Add drm_ras netlink error event support (rev4) 2026-07-01 9:44 [PATCH v4 0/3] Add drm_ras netlink error event support Riana Tauro ` (3 preceding siblings ...) 2026-07-01 10:52 ` ✓ CI.KUnit: success for Add drm_ras netlink error event support (rev4) Patchwork @ 2026-07-01 11:32 ` Patchwork 2026-07-02 3:52 ` ✓ Xe.CI.FULL: " Patchwork 5 siblings, 0 replies; 12+ messages in thread From: Patchwork @ 2026-07-01 11:32 UTC (permalink / raw) To: Tauro, Riana; +Cc: intel-xe [-- Attachment #1: Type: text/plain, Size: 960 bytes --] == Series Details == Series: Add drm_ras netlink error event support (rev4) URL : https://patchwork.freedesktop.org/series/166765/ State : success == Summary == CI Bug Log - changes from xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047_BAT -> xe-pw-166765v4_BAT ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (13 -> 13) ------------------------------ No changes in participating hosts Changes ------- No changes found Build changes ------------- * Linux: xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047 -> xe-pw-166765v4 IGT_8989: a8e2cbd2854d7980a9eccecc6e0c801d0824b88f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047: 1441c1f8fee3995463a797cb1a759fe9f7ccb047 xe-pw-166765v4: 166765v4 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/index.html [-- Attachment #2: Type: text/html, Size: 1508 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* ✓ Xe.CI.FULL: success for Add drm_ras netlink error event support (rev4) 2026-07-01 9:44 [PATCH v4 0/3] Add drm_ras netlink error event support Riana Tauro ` (4 preceding siblings ...) 2026-07-01 11:32 ` ✓ Xe.CI.BAT: " Patchwork @ 2026-07-02 3:52 ` Patchwork 5 siblings, 0 replies; 12+ messages in thread From: Patchwork @ 2026-07-02 3:52 UTC (permalink / raw) To: Tauro, Riana; +Cc: intel-xe [-- Attachment #1: Type: text/plain, Size: 33560 bytes --] == Series Details == Series: Add drm_ras netlink error event support (rev4) URL : https://patchwork.freedesktop.org/series/166765/ State : success == Summary == CI Bug Log - changes from xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047_FULL -> xe-pw-166765v4_FULL ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (2 -> 2) ------------------------------ No changes in participating hosts Known issues ------------ Here are the changes found in xe-pw-166765v4_FULL that come from known issues: ### IGT changes ### #### Issues hit #### * igt@core_hotunplug@unplug-rescan: - shard-bmg: [PASS][1] -> [ABORT][2] ([Intel XE#8007]) +1 other test abort [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-6/igt@core_hotunplug@unplug-rescan.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-7/igt@core_hotunplug@unplug-rescan.html * igt@kms_async_flips@alternate-sync-async-flip-atomic: - shard-bmg: [PASS][3] -> [FAIL][4] ([Intel XE#3718] / [Intel XE#6078]) +2 other tests fail [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-4/igt@kms_async_flips@alternate-sync-async-flip-atomic.html [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-8/igt@kms_async_flips@alternate-sync-async-flip-atomic.html * igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-b-dp-2: - shard-bmg: [PASS][5] -> [FAIL][6] ([Intel XE#6078]) [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-4/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-b-dp-2.html [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-8/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-b-dp-2.html * igt@kms_big_fb@x-tiled-8bpp-rotate-90: - shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#2327]) [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_big_fb@x-tiled-8bpp-rotate-90.html * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow: - shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#607] / [Intel XE#7361]) [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip: - shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#1124]) +5 other tests skip [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip.html * igt@kms_bw@linear-tiling-1-displays-target-2560x1440p: - shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#367]) +1 other test skip [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_bw@linear-tiling-1-displays-target-2560x1440p.html * igt@kms_ccs@bad-pixel-format-y-tiled-gen12-rc-ccs-cc: - shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#2887]) +5 other tests skip [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_ccs@bad-pixel-format-y-tiled-gen12-rc-ccs-cc.html * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs: - shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#3432]) +1 other test skip [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html * igt@kms_chamelium_color@gamma: - shard-bmg: NOTRUN -> [SKIP][13] ([Intel XE#2325] / [Intel XE#7358]) [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_chamelium_color@gamma.html * igt@kms_chamelium_color_pipeline@plane-ctm3x4: - shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#7358]) +1 other test skip [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-4/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html * igt@kms_chamelium_hpd@common-hpd-after-suspend: - shard-bmg: NOTRUN -> [SKIP][15] ([Intel XE#2252]) +2 other tests skip [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_chamelium_hpd@common-hpd-after-suspend.html * igt@kms_chamelium_sharpness_filter@filter-basic: - shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#6507]) [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_chamelium_sharpness_filter@filter-basic.html * igt@kms_content_protection@atomic-dpms-hdcp14@pipe-a-dp-2: - shard-bmg: NOTRUN -> [FAIL][17] ([Intel XE#3304] / [Intel XE#7374]) +1 other test fail [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-4/igt@kms_content_protection@atomic-dpms-hdcp14@pipe-a-dp-2.html * igt@kms_content_protection@dp-mst-lic-type-0-hdcp14: - shard-bmg: NOTRUN -> [SKIP][18] ([Intel XE#6974]) [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_content_protection@dp-mst-lic-type-0-hdcp14.html * igt@kms_content_protection@dp-mst-type-1: - shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#2390] / [Intel XE#6974]) +1 other test skip [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_content_protection@dp-mst-type-1.html * igt@kms_content_protection@lic-type-0@pipe-a-dp-2: - shard-bmg: NOTRUN -> [FAIL][20] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_content_protection@lic-type-0@pipe-a-dp-2.html * igt@kms_cursor_crc@cursor-onscreen-32x10: - shard-bmg: NOTRUN -> [SKIP][21] ([Intel XE#2320]) +1 other test skip [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-4/igt@kms_cursor_crc@cursor-onscreen-32x10.html * igt@kms_cursor_crc@cursor-random-512x170: - shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#2321] / [Intel XE#7355]) +1 other test skip [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_cursor_crc@cursor-random-512x170.html * igt@kms_cursor_legacy@flip-vs-cursor-legacy: - shard-bmg: [PASS][23] -> [FAIL][24] ([Intel XE#7571]) [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-1/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-3/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions: - shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#2286] / [Intel XE#6035]) [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html * igt@kms_dirtyfb@fbc-dirtyfb-ioctl: - shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#4210] / [Intel XE#7467]) [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_dirtyfb@fbc-dirtyfb-ioctl.html * igt@kms_dirtyfb@psr-dirtyfb-ioctl: - shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#1508]) [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-4/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html * igt@kms_flip@flip-vs-expired-vblank@a-edp1: - shard-lnl: [PASS][28] -> [FAIL][29] ([Intel XE#301]) +1 other test fail [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-lnl-6/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling: - shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#7178] / [Intel XE#7351]) [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-7/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html * igt@kms_frontbuffer_tracking@drrs-argb161616f-draw-mmap-wc: - shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#7061] / [Intel XE#7356]) +2 other tests skip [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-argb161616f-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt: - shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#4141]) +8 other tests skip [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-indfb-pgflip-blt: - shard-bmg: NOTRUN -> [SKIP][33] ([Intel XE#2311]) +34 other tests skip [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-indfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbchdr-tiling-y: - shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#7399]) [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_frontbuffer_tracking@fbchdr-tiling-y.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt: - shard-bmg: NOTRUN -> [SKIP][35] ([Intel XE#2313]) +26 other tests skip [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-render: - shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#7061]) +4 other tests skip [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-render.html * igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier-source-clamping: - shard-bmg: NOTRUN -> [SKIP][37] ([Intel XE#7283]) +3 other tests skip [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier-source-clamping.html * igt@kms_pm_dc@dc3co-vpb-framegap@pr: - shard-bmg: NOTRUN -> [SKIP][38] ([Intel XE#8395]) +1 other test skip [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_pm_dc@dc3co-vpb-framegap@pr.html * igt@kms_pm_dc@dc3co-vpb-framegap@psr2: - shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#8396]) [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_pm_dc@dc3co-vpb-framegap@psr2.html * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf: - shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#1489]) +3 other tests skip [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf.html * igt@kms_psr@fbc-psr2-cursor-plane-move: - shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#2234] / [Intel XE#2850]) +6 other tests skip [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_psr@fbc-psr2-cursor-plane-move.html * igt@kms_rotation_crc@primary-y-tiled-reflect-x-180: - shard-bmg: NOTRUN -> [SKIP][42] ([Intel XE#2330] / [Intel XE#5813]) [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90: - shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#3904] / [Intel XE#7342]) [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html * igt@kms_sharpness_filter@invalid-filter-with-scaler: - shard-bmg: NOTRUN -> [SKIP][44] ([Intel XE#6503]) [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@kms_sharpness_filter@invalid-filter-with-scaler.html * igt@xe_eudebug@connect-user: - shard-bmg: NOTRUN -> [SKIP][45] ([Intel XE#7636]) +6 other tests skip [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@xe_eudebug@connect-user.html * igt@xe_evict@evict-cm-threads-small-multi-queue: - shard-bmg: NOTRUN -> [SKIP][46] ([Intel XE#8370]) [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-4/igt@xe_evict@evict-cm-threads-small-multi-queue.html * igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-invalidate: - shard-bmg: NOTRUN -> [SKIP][47] ([Intel XE#2322] / [Intel XE#7372]) +5 other tests skip [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-invalidate.html * igt@xe_exec_fault_mode@many-multi-queue-userptr-rebind-prefetch: - shard-bmg: NOTRUN -> [SKIP][48] ([Intel XE#8374]) +5 other tests skip [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@xe_exec_fault_mode@many-multi-queue-userptr-rebind-prefetch.html * igt@xe_exec_multi_queue@few-execs-preempt-mode-close-fd-smem: - shard-bmg: NOTRUN -> [SKIP][49] ([Intel XE#8364]) +12 other tests skip [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@xe_exec_multi_queue@few-execs-preempt-mode-close-fd-smem.html * igt@xe_exec_reset@cm-multi-queue-cat-error: - shard-bmg: NOTRUN -> [SKIP][50] ([Intel XE#8369]) +2 other tests skip [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-4/igt@xe_exec_reset@cm-multi-queue-cat-error.html * igt@xe_exec_system_allocator@threads-many-execqueues-malloc-bo-unmap-nomemset: - shard-bmg: NOTRUN -> [INCOMPLETE][51] ([Intel XE#2594] / [Intel XE#8159]) [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-7/igt@xe_exec_system_allocator@threads-many-execqueues-malloc-bo-unmap-nomemset.html * igt@xe_exec_threads@threads-multi-queue-mixed-userptr-rebind: - shard-bmg: NOTRUN -> [SKIP][52] ([Intel XE#8378]) +6 other tests skip [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@xe_exec_threads@threads-multi-queue-mixed-userptr-rebind.html * igt@xe_multigpu_svm@mgpu-xgpu-access-basic: - shard-bmg: NOTRUN -> [SKIP][53] ([Intel XE#6964]) [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@xe_multigpu_svm@mgpu-xgpu-access-basic.html * igt@xe_pm@d3cold-mocs: - shard-bmg: NOTRUN -> [SKIP][54] ([Intel XE#2284] / [Intel XE#7370]) +1 other test skip [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@xe_pm@d3cold-mocs.html * igt@xe_pxp@pxp-termination-key-update-post-termination-irq: - shard-bmg: NOTRUN -> [SKIP][55] ([Intel XE#4733] / [Intel XE#7417]) +1 other test skip [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-4/igt@xe_pxp@pxp-termination-key-update-post-termination-irq.html * igt@xe_query@multigpu-query-topology: - shard-bmg: NOTRUN -> [SKIP][56] ([Intel XE#944]) [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-10/igt@xe_query@multigpu-query-topology.html #### Possible fixes #### * igt@xe_exec_system_allocator@many-64k-mmap-nomemset: - shard-bmg: [SKIP][57] ([Intel XE#8480]) -> [PASS][58] +84 other tests pass [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@xe_exec_system_allocator@many-64k-mmap-nomemset.html [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@xe_exec_system_allocator@many-64k-mmap-nomemset.html * igt@xe_exec_system_allocator@threads-many-large-mmap-remap-ro: - shard-bmg: [DMESG-FAIL][59] ([Intel XE#6652]) -> [PASS][60] [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@xe_exec_system_allocator@threads-many-large-mmap-remap-ro.html [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@xe_exec_system_allocator@threads-many-large-mmap-remap-ro.html * igt@xe_live_ktest@xe_mocs@xe_live_mocs_kernel_kunit: - shard-bmg: [FAIL][61] -> [PASS][62] +2 other tests pass [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@xe_live_ktest@xe_mocs@xe_live_mocs_kernel_kunit.html [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@xe_live_ktest@xe_mocs@xe_live_mocs_kernel_kunit.html #### Warnings #### * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip: - shard-bmg: [SKIP][63] ([Intel XE#8480]) -> [SKIP][64] ([Intel XE#7059] / [Intel XE#7085]) [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip.html [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip.html * igt@kms_big_fb@yf-tiled-8bpp-rotate-180: - shard-bmg: [SKIP][65] ([Intel XE#8480]) -> [SKIP][66] ([Intel XE#1124]) +1 other test skip [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@kms_big_fb@yf-tiled-8bpp-rotate-180.html [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_big_fb@yf-tiled-8bpp-rotate-180.html * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs: - shard-bmg: [SKIP][67] ([Intel XE#8480]) -> [SKIP][68] ([Intel XE#2887]) +1 other test skip [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs.html [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs.html * igt@kms_chamelium_edid@hdmi-edid-read: - shard-bmg: [SKIP][69] ([Intel XE#8480]) -> [SKIP][70] ([Intel XE#2252]) [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@kms_chamelium_edid@hdmi-edid-read.html [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_chamelium_edid@hdmi-edid-read.html * igt@kms_content_protection@lic-type-0: - shard-bmg: [SKIP][71] ([Intel XE#8480]) -> [FAIL][72] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@kms_content_protection@lic-type-0.html [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_content_protection@lic-type-0.html * igt@kms_dsc@dsc-with-output-formats-with-bpc: - shard-bmg: [SKIP][73] ([Intel XE#8480]) -> [SKIP][74] ([Intel XE#8265]) [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@kms_dsc@dsc-with-output-formats-with-bpc.html [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_dsc@dsc-with-output-formats-with-bpc.html * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling: - shard-bmg: [SKIP][75] ([Intel XE#8480]) -> [SKIP][76] ([Intel XE#7178] / [Intel XE#7351]) [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling.html [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling.html * igt@kms_frontbuffer_tracking@fbcdrrshdr-rgb565-draw-blt: - shard-bmg: [SKIP][77] ([Intel XE#8480]) -> [SKIP][78] ([Intel XE#2311]) +8 other tests skip [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrshdr-rgb565-draw-blt.html [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcdrrshdr-rgb565-draw-blt.html * igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-pri-shrfb-draw-render: - shard-bmg: [SKIP][79] ([Intel XE#8480]) -> [SKIP][80] ([Intel XE#2313]) +5 other tests skip [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-pri-shrfb-draw-render.html [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-pri-shrfb-draw-render.html * igt@kms_hdr@brightness-with-hdr: - shard-bmg: [SKIP][81] ([Intel XE#3374] / [Intel XE#3544]) -> [SKIP][82] ([Intel XE#3544]) [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-2/igt@kms_hdr@brightness-with-hdr.html [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-5/igt@kms_hdr@brightness-with-hdr.html * igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping: - shard-bmg: [SKIP][83] ([Intel XE#8480]) -> [SKIP][84] ([Intel XE#7283]) [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html * igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area: - shard-bmg: [SKIP][85] ([Intel XE#8480]) -> [SKIP][86] ([Intel XE#1489]) [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html * igt@kms_psr@pr-primary-blt: - shard-bmg: [SKIP][87] ([Intel XE#8480]) -> [SKIP][88] ([Intel XE#2234] / [Intel XE#2850]) +2 other tests skip [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@kms_psr@pr-primary-blt.html [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_psr@pr-primary-blt.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270: - shard-bmg: [SKIP][89] ([Intel XE#8480]) -> [SKIP][90] ([Intel XE#3904] / [Intel XE#7342]) [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html * igt@kms_sharpness_filter@filter-dpms: - shard-bmg: [SKIP][91] ([Intel XE#8480]) -> [SKIP][92] ([Intel XE#6503]) [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@kms_sharpness_filter@filter-dpms.html [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_sharpness_filter@filter-dpms.html * igt@kms_tiled_display@basic-test-pattern: - shard-bmg: [SKIP][93] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][94] ([Intel XE#1729] / [Intel XE#7424]) [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-2/igt@kms_tiled_display@basic-test-pattern.html [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern.html * igt@kms_vrr@seamless-rr-switch-virtual: - shard-bmg: [SKIP][95] ([Intel XE#8480]) -> [SKIP][96] ([Intel XE#1499]) [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@kms_vrr@seamless-rr-switch-virtual.html [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@kms_vrr@seamless-rr-switch-virtual.html * igt@xe_eudebug@basic-vm-bind-extended-discovery: - shard-bmg: [SKIP][97] ([Intel XE#8480]) -> [SKIP][98] ([Intel XE#7636]) [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@xe_eudebug@basic-vm-bind-extended-discovery.html [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@xe_eudebug@basic-vm-bind-extended-discovery.html * igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-rebind: - shard-bmg: [SKIP][99] ([Intel XE#8480]) -> [SKIP][100] ([Intel XE#2322] / [Intel XE#7372]) [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-rebind.html [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-rebind.html * igt@xe_exec_fault_mode@once-multi-queue-invalid-userptr-fault: - shard-bmg: [SKIP][101] ([Intel XE#8480]) -> [SKIP][102] ([Intel XE#8374]) [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@xe_exec_fault_mode@once-multi-queue-invalid-userptr-fault.html [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@xe_exec_fault_mode@once-multi-queue-invalid-userptr-fault.html * igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-priority: - shard-bmg: [SKIP][103] ([Intel XE#8480]) -> [SKIP][104] ([Intel XE#8364]) +1 other test skip [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-priority.html [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-priority.html * igt@xe_exec_threads@threads-multi-queue-cm-userptr-rebind: - shard-bmg: [SKIP][105] ([Intel XE#8480]) -> [SKIP][106] ([Intel XE#8378]) [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@xe_exec_threads@threads-multi-queue-cm-userptr-rebind.html [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@xe_exec_threads@threads-multi-queue-cm-userptr-rebind.html * igt@xe_pxp@pxp-stale-queue-post-termination-irq: - shard-bmg: [SKIP][107] ([Intel XE#8480]) -> [SKIP][108] ([Intel XE#4733] / [Intel XE#7417]) [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047/shard-bmg-5/igt@xe_pxp@pxp-stale-queue-post-termination-irq.html [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/shard-bmg-1/igt@xe_pxp@pxp-stale-queue-post-termination-irq.html [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124 [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178 [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489 [Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499 [Intel XE#1508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1508 [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729 [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234 [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252 [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284 [Intel XE#2286]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2286 [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311 [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313 [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320 [Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321 [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322 [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325 [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327 [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330 [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390 [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426 [Intel XE#2594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2594 [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850 [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887 [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301 [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304 [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374 [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432 [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544 [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367 [Intel XE#3718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3718 [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904 [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141 [Intel XE#4210]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4210 [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733 [Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813 [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848 [Intel XE#6035]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6035 [Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607 [Intel XE#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078 [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503 [Intel XE#6507]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6507 [Intel XE#6652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6652 [Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964 [Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974 [Intel XE#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059 [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061 [Intel XE#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085 [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178 [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283 [Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342 [Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351 [Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355 [Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356 [Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358 [Intel XE#7361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7361 [Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370 [Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372 [Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374 [Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399 [Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417 [Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424 [Intel XE#7467]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7467 [Intel XE#7571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7571 [Intel XE#7636]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7636 [Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007 [Intel XE#8159]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8159 [Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265 [Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364 [Intel XE#8369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8369 [Intel XE#8370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8370 [Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374 [Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378 [Intel XE#8395]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8395 [Intel XE#8396]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8396 [Intel XE#8480]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8480 [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944 Build changes ------------- * Linux: xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047 -> xe-pw-166765v4 IGT_8989: a8e2cbd2854d7980a9eccecc6e0c801d0824b88f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-5318-1441c1f8fee3995463a797cb1a759fe9f7ccb047: 1441c1f8fee3995463a797cb1a759fe9f7ccb047 xe-pw-166765v4: 166765v4 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v4/index.html [-- Attachment #2: Type: text/html, Size: 39452 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2026-07-09 10:04 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-07-01 9:44 [PATCH v4 0/3] Add drm_ras netlink error event support Riana Tauro 2026-07-01 9:44 ` [PATCH v4 1/3] drm/drm_ras: Add drm_ras netlink error event Riana Tauro 2026-07-07 6:32 ` Tauro, Riana 2026-07-08 20:21 ` Rodrigo Vivi 2026-07-09 5:15 ` Tauro, Riana 2026-07-09 9:22 ` Raag Jadav 2026-07-01 9:44 ` [PATCH v4 2/3] drm/xe/xe_drm_ras: Add error-event support for PVC Riana Tauro 2026-07-01 9:44 ` [PATCH v4 3/3] drm/xe/xe_ras: Add error-event support for CRI Riana Tauro 2026-07-09 10:04 ` Raag Jadav 2026-07-01 10:52 ` ✓ CI.KUnit: success for Add drm_ras netlink error event support (rev4) Patchwork 2026-07-01 11:32 ` ✓ Xe.CI.BAT: " Patchwork 2026-07-02 3:52 ` ✓ Xe.CI.FULL: " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox