* [PATCH 0/2] Add drm_ras netlink error event support
@ 2026-05-18 11:20 Riana Tauro
2026-05-18 11:20 ` [PATCH 1/2] drm/drm_ras: Add drm_ras netlink error event Riana Tauro
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: Riana Tauro @ 2026-05-18 11:20 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-notify' 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.
$ sudo ./tools/net/ynl/pyynl/cli.py --family drm_ras --output-json \
--subscribe error-notify
{
"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
}
}
Riana Tauro (2):
drm/drm_ras: Add drm_ras netlink error event
drm/xe/xe_drm_ras: Add error-event support in XE drm_ras
Documentation/gpu/drm-ras.rst | 21 ++++++
Documentation/netlink/specs/drm_ras.yaml | 50 ++++++++++++++
drivers/gpu/drm/drm_ras.c | 86 ++++++++++++++++++++++++
drivers/gpu/drm/drm_ras_nl.c | 6 ++
drivers/gpu/drm/drm_ras_nl.h | 4 ++
drivers/gpu/drm/xe/xe_drm_ras.c | 29 ++++++++
drivers/gpu/drm/xe/xe_drm_ras.h | 6 ++
drivers/gpu/drm/xe/xe_hw_error.c | 7 +-
include/drm/drm_ras.h | 5 ++
include/uapi/drm/drm_ras.h | 15 +++++
10 files changed, 228 insertions(+), 1 deletion(-)
--
2.47.1
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH 1/2] drm/drm_ras: Add drm_ras netlink error event 2026-05-18 11:20 [PATCH 0/2] Add drm_ras netlink error event support Riana Tauro @ 2026-05-18 11:20 ` Riana Tauro 2026-06-01 6:22 ` Raag Jadav 2026-05-18 11:20 ` [PATCH 2/2] drm/xe/xe_drm_ras: Add error-event support in XE drm_ras Riana Tauro ` (3 subsequent siblings) 4 siblings, 1 reply; 8+ messages in thread From: Riana Tauro @ 2026-05-18 11:20 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-notify' 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-notify' to receive 'error-event' notifications. Usage: $ sudo ./tools/net/ynl/pyynl/cli.py --family drm_ras \ --subscribe error-notify 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> --- Documentation/gpu/drm-ras.rst | 21 ++++++ Documentation/netlink/specs/drm_ras.yaml | 50 ++++++++++++++ drivers/gpu/drm/drm_ras.c | 86 ++++++++++++++++++++++++ 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, 187 insertions(+) diff --git a/Documentation/gpu/drm-ras.rst b/Documentation/gpu/drm-ras.rst index 83c21853b74b..5a96dde75539 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-notify`` multicast group to receive ``error-event`` notifications. 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-notify`` multicast group + +.. code-block:: bash + + sudo ./tools/net/ynl/pyynl/cli.py --family drm_ras --output-json --subscribe error-notify + +.. 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..d94c73a61aea 100644 --- a/Documentation/netlink/specs/drm_ras.yaml +++ b/Documentation/netlink/specs/drm_ras.yaml @@ -69,6 +69,35 @@ 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 name chosen by the driver at registration. + Can be a PCI BDF, UUID, or module name if unique. + - + name: node-id + type: u32 + doc: Node ID of the node that triggered the event. + - + name: node-name + type: string + doc: Node name of the node that triggered the event. + - + name: error-id + type: u32 + doc: Error ID of the counter that triggered the event. + - + name: error-name + type: string + doc: Name of the error that triggered the event. + - + name: error-value + type: u32 + doc: Current value of the error counter. operations: list: @@ -124,3 +153,24 @@ operations: do: request: attributes: *id-attrs + - + name: error-event + doc: >- + Notify userspace of an error event. + The event includes the device, node and error information + of the error that triggered the event. + attribute-set: error-event-attrs + mcgrp: error-notify + event: + attributes: + - device-name + - node-id + - node-name + - error-id + - error-name + - error-value + +mcast-groups: + list: + - + name: error-notify diff --git a/drivers/gpu/drm/drm_ras.c b/drivers/gpu/drm/drm_ras.c index d6eab29a1394..6696ec21782e 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_NOTIFY: Subscribe to this multicast group to receive error events + * + * 5. ERROR_EVENT: Notify userspace of an error event. 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,59 @@ static int doit_reply_value(struct genl_info *info, u32 node_id, return genlmsg_reply(msg, info); } +/** + * drm_ras_nl_error_event() - Notify listeners of 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 + * + * Sends a notification to all listeners about an error event on a specific + * RAS node. + * + * 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 err = -EMSGSIZE; + + if (!error_name) + return -EINVAL; + + if (!genl_has_listeners(&drm_ras_nl_family, &init_net, DRM_RAS_NLGRP_ERROR_NOTIFY)) + 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) + goto err_free_msg; + + err = msg_put_error_event_attrs(msg, node, error_id, error_name, value); + if (err) + goto err_cancel; + + genlmsg_end(msg, hdr); + genlmsg_multicast(&drm_ras_nl_family, msg, 0, DRM_RAS_NLGRP_ERROR_NOTIFY, flags); + return 0; + +err_cancel: + genlmsg_cancel(msg, hdr); +err_free_msg: + nlmsg_free(msg); + return err; +} +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..ac724bb87a3b 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_NOTIFY] = { "error-notify", }, +}; + 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..17e1af8cc3b3 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_NOTIFY, +}; + 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 f2a787bc4f64..d4a275efdbb0 100644 --- a/include/drm/drm_ras.h +++ b/include/drm/drm_ras.h @@ -78,9 +78,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..bb2a8a872a44 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_NOTIFY "error-notify" + #endif /* _UAPI_LINUX_DRM_RAS_H */ -- 2.47.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] drm/drm_ras: Add drm_ras netlink error event 2026-05-18 11:20 ` [PATCH 1/2] drm/drm_ras: Add drm_ras netlink error event Riana Tauro @ 2026-06-01 6:22 ` Raag Jadav 2026-06-02 14:41 ` Tauro, Riana 0 siblings, 1 reply; 8+ messages in thread From: Raag Jadav @ 2026-06-01 6:22 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, Zack McKevitt, Lijo Lazar, Hawking Zhang, David S. Miller, Paolo Abeni, Eric Dumazet On Mon, May 18, 2026 at 04:50:50PM +0530, Riana Tauro wrote: > Define a new netlink event 'error-event' and a new multicast group > 'error-notify' 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-notify' to receive 'error-event' > notifications. > > Usage: > > $ sudo ./tools/net/ynl/pyynl/cli.py --family drm_ras \ Nit: Make the leading space consistent with other patches. > --subscribe error-notify > > 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> > --- > Documentation/gpu/drm-ras.rst | 21 ++++++ > Documentation/netlink/specs/drm_ras.yaml | 50 ++++++++++++++ > drivers/gpu/drm/drm_ras.c | 86 ++++++++++++++++++++++++ > 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, 187 insertions(+) > > diff --git a/Documentation/gpu/drm-ras.rst b/Documentation/gpu/drm-ras.rst > index 83c21853b74b..5a96dde75539 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-notify`` multicast group to receive ``error-event`` notifications. > > 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-notify`` multicast group > + > +.. code-block:: bash > + > + sudo ./tools/net/ynl/pyynl/cli.py --family drm_ras --output-json --subscribe error-notify So ynl can't do this? If yes, make it consistent with other commands (and also in commit message). If no, please document it. > + > +.. 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..d94c73a61aea 100644 > --- a/Documentation/netlink/specs/drm_ras.yaml > +++ b/Documentation/netlink/specs/drm_ras.yaml > @@ -69,6 +69,35 @@ 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 name chosen by the driver at registration. > + Can be a PCI BDF, UUID, or module name if unique. > + - > + name: node-id Curious, can we reuse existing partial attr-set? > + type: u32 > + doc: Node ID of the node that triggered the event. > + - > + name: node-name > + type: string > + doc: Node name of the node that triggered the event. > + - > + name: error-id > + type: u32 > + doc: Error ID of the counter that triggered the event. > + - > + name: error-name > + type: string > + doc: Name of the error that triggered the event. > + - > + name: error-value > + type: u32 > + doc: Current value of the error counter. > > operations: > list: > @@ -124,3 +153,24 @@ operations: > do: > request: > attributes: *id-attrs > + - > + name: error-event > + doc: >- > + Notify userspace of an error event. > + The event includes the device, node and error information > + of the error that triggered the event. > + attribute-set: error-event-attrs > + mcgrp: error-notify > + event: > + attributes: > + - device-name > + - node-id > + - node-name > + - error-id > + - error-name > + - error-value > + > +mcast-groups: > + list: > + - > + name: error-notify > diff --git a/drivers/gpu/drm/drm_ras.c b/drivers/gpu/drm/drm_ras.c > index d6eab29a1394..6696ec21782e 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_NOTIFY: Subscribe to this multicast group to receive error events > + * > + * 5. ERROR_EVENT: Notify userspace of an error event. 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,59 @@ static int doit_reply_value(struct genl_info *info, u32 node_id, > return genlmsg_reply(msg, info); > } > > +/** > + * drm_ras_nl_error_event() - Notify listeners of 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 > + * > + * Sends a notification to all listeners about an error event on a specific > + * RAS node. > + * > + * 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 err = -EMSGSIZE; Redundant initialization, see below. > + if (!error_name) > + return -EINVAL; > + > + if (!genl_has_listeners(&drm_ras_nl_family, &init_net, DRM_RAS_NLGRP_ERROR_NOTIFY)) > + 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); Make this part of below and return err directly. > + if (!hdr) > + goto err_free_msg; > + > + err = msg_put_error_event_attrs(msg, node, error_id, error_name, value); > + if (err) > + goto err_cancel; > + > + genlmsg_end(msg, hdr); > + genlmsg_multicast(&drm_ras_nl_family, msg, 0, DRM_RAS_NLGRP_ERROR_NOTIFY, flags); > + return 0; > + > +err_cancel: > + genlmsg_cancel(msg, hdr); > +err_free_msg: > + nlmsg_free(msg); > + return err; > +} > +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..ac724bb87a3b 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_NOTIFY] = { "error-notify", }, > +}; > + > 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..17e1af8cc3b3 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_NOTIFY, > +}; > + > 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 f2a787bc4f64..d4a275efdbb0 100644 > --- a/include/drm/drm_ras.h > +++ b/include/drm/drm_ras.h > @@ -78,9 +78,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..bb2a8a872a44 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_NOTIFY "error-notify" Where is this used? Raag > #endif /* _UAPI_LINUX_DRM_RAS_H */ > -- > 2.47.1 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] drm/drm_ras: Add drm_ras netlink error event 2026-06-01 6:22 ` Raag Jadav @ 2026-06-02 14:41 ` Tauro, Riana 0 siblings, 0 replies; 8+ messages in thread From: Tauro, Riana @ 2026-06-02 14:41 UTC (permalink / raw) To: Raag Jadav, rodrigo.vivi, aravind.iddamsetty Cc: intel-xe, dri-devel, netdev, 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, kuba On 6/1/2026 11:52 AM, Raag Jadav wrote: > On Mon, May 18, 2026 at 04:50:50PM +0530, Riana Tauro wrote: >> Define a new netlink event 'error-event' and a new multicast group >> 'error-notify' 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-notify' to receive 'error-event' >> notifications. >> >> Usage: >> >> $ sudo ./tools/net/ynl/pyynl/cli.py --family drm_ras \ > Nit: Make the leading space consistent with other patches. > >> --subscribe error-notify >> >> 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> >> --- >> Documentation/gpu/drm-ras.rst | 21 ++++++ >> Documentation/netlink/specs/drm_ras.yaml | 50 ++++++++++++++ >> drivers/gpu/drm/drm_ras.c | 86 ++++++++++++++++++++++++ >> 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, 187 insertions(+) >> >> diff --git a/Documentation/gpu/drm-ras.rst b/Documentation/gpu/drm-ras.rst >> index 83c21853b74b..5a96dde75539 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-notify`` multicast group to receive ``error-event`` notifications. >> >> 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-notify`` multicast group >> + >> +.. code-block:: bash >> + >> + sudo ./tools/net/ynl/pyynl/cli.py --family drm_ras --output-json --subscribe error-notify > So ynl can't do this? If yes, make it consistent with other commands > (and also in commit message). If no, please document it. Sorry . My mistake. Was using ubuntu and copy pasted directly from command line. Should work with ynl. Will check and update it > >> + >> +.. 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..d94c73a61aea 100644 >> --- a/Documentation/netlink/specs/drm_ras.yaml >> +++ b/Documentation/netlink/specs/drm_ras.yaml >> @@ -69,6 +69,35 @@ 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 name chosen by the driver at registration. >> + Can be a PCI BDF, UUID, or module name if unique. >> + - >> + name: node-id > Curious, can we reuse existing partial attr-set? I did try a few approaches before sending this 1) using nesting - Did not work with existing attribute sets because netlink does not allow root set (attribute-set directly used in operations) to be nested. name: error-event-attrs attributes: - name: node type: nest nested-attributes: node-attrs 2) subsetof- cannot use two parents The only way i could think of is to move all attrs into a superset (ie ras attributes) and the rest as subsets or Add node id to get error counter response and reuse the response as notify (Response - node id , error id, error name, error value) Let me know what you think. > >> + type: u32 >> + doc: Node ID of the node that triggered the event. >> + - >> + name: node-name >> + type: string >> + doc: Node name of the node that triggered the event. >> + - >> + name: error-id >> + type: u32 >> + doc: Error ID of the counter that triggered the event. >> + - >> + name: error-name >> + type: string >> + doc: Name of the error that triggered the event. >> + - >> + name: error-value >> + type: u32 >> + doc: Current value of the error counter. >> >> operations: >> list: >> @@ -124,3 +153,24 @@ operations: >> do: >> request: >> attributes: *id-attrs >> + - >> + name: error-event >> + doc: >- >> + Notify userspace of an error event. >> + The event includes the device, node and error information >> + of the error that triggered the event. >> + attribute-set: error-event-attrs >> + mcgrp: error-notify >> + event: >> + attributes: >> + - device-name >> + - node-id >> + - node-name >> + - error-id >> + - error-name >> + - error-value >> + >> +mcast-groups: >> + list: >> + - >> + name: error-notify >> diff --git a/drivers/gpu/drm/drm_ras.c b/drivers/gpu/drm/drm_ras.c >> index d6eab29a1394..6696ec21782e 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_NOTIFY: Subscribe to this multicast group to receive error events >> + * >> + * 5. ERROR_EVENT: Notify userspace of an error event. 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,59 @@ static int doit_reply_value(struct genl_info *info, u32 node_id, >> return genlmsg_reply(msg, info); >> } >> >> +/** >> + * drm_ras_nl_error_event() - Notify listeners of 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 >> + * >> + * Sends a notification to all listeners about an error event on a specific >> + * RAS node. >> + * >> + * 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 err = -EMSGSIZE; > Redundant initialization, see below. > >> + if (!error_name) >> + return -EINVAL; >> + >> + if (!genl_has_listeners(&drm_ras_nl_family, &init_net, DRM_RAS_NLGRP_ERROR_NOTIFY)) >> + 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); > Make this part of below and return err directly. > >> + if (!hdr) >> + goto err_free_msg; >> + >> + err = msg_put_error_event_attrs(msg, node, error_id, error_name, value); >> + if (err) >> + goto err_cancel; >> + >> + genlmsg_end(msg, hdr); >> + genlmsg_multicast(&drm_ras_nl_family, msg, 0, DRM_RAS_NLGRP_ERROR_NOTIFY, flags); >> + return 0; >> + >> +err_cancel: >> + genlmsg_cancel(msg, hdr); >> +err_free_msg: >> + nlmsg_free(msg); >> + return err; >> +} >> +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..ac724bb87a3b 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_NOTIFY] = { "error-notify", }, >> +}; >> + >> 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..17e1af8cc3b3 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_NOTIFY, >> +}; >> + >> 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 f2a787bc4f64..d4a275efdbb0 100644 >> --- a/include/drm/drm_ras.h >> +++ b/include/drm/drm_ras.h >> @@ -78,9 +78,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..bb2a8a872a44 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_NOTIFY "error-notify" > Where is this used? This is auto generated and part of UAPI. Will be used by userspace Thanks Riana > > Raag > >> #endif /* _UAPI_LINUX_DRM_RAS_H */ >> -- >> 2.47.1 >> ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/2] drm/xe/xe_drm_ras: Add error-event support in XE drm_ras 2026-05-18 11:20 [PATCH 0/2] Add drm_ras netlink error event support Riana Tauro 2026-05-18 11:20 ` [PATCH 1/2] drm/drm_ras: Add drm_ras netlink error event Riana Tauro @ 2026-05-18 11:20 ` Riana Tauro 2026-05-18 11:22 ` ✓ CI.KUnit: success for Add drm_ras netlink error event support Patchwork ` (2 subsequent siblings) 4 siblings, 0 replies; 8+ messages in thread From: Riana Tauro @ 2026-05-18 11:20 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 Add error-event support in XE drm_ras to notify userspace whenever a GT or SoC error occurs. $ sudo ./tools/net/ynl/pyynl/cli.py --family drm_ras --output-json \ --subscribe error-notify { "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> --- drivers/gpu/drm/xe/xe_drm_ras.c | 29 +++++++++++++++++++++++++++++ drivers/gpu/drm/xe/xe_drm_ras.h | 6 ++++++ drivers/gpu/drm/xe/xe_hw_error.c | 7 ++++++- 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/xe_drm_ras.c index c21c8b428de6..68d9f561d61d 100644 --- a/drivers/gpu/drm/xe/xe_drm_ras.c +++ b/drivers/gpu/drm/xe/xe_drm_ras.c @@ -181,6 +181,35 @@ static void xe_drm_ras_unregister_nodes(struct drm_device *device, void *arg) } } +/** + * xe_drm_ras_event() - Notify userspace of an error event + * @xe: xe device structure + * @error_id: error id + * @severity: error severity + * @flags: flags for allocation + * + * Notifies userspace of an error. + */ +void xe_drm_ras_event(struct xe_device *xe, u32 error_id, + enum drm_xe_ras_error_severity severity, gfp_t flags) +{ + struct xe_drm_ras *ras = &xe->ras; + struct drm_ras_node *node = &ras->node[severity]; + struct xe_drm_ras_counter *info = ras->info[severity]; + u32 value; + int ret; + + if (!info || !info[error_id].name) + return; + + value = atomic_read(&info[error_id].counter); + + ret = drm_ras_nl_error_event(node, error_id, info[error_id].name, value, flags); + if (ret) + drm_err(&xe->drm, "Failed to send RAS error event for error %s: %d\n", + info[error_id].name, ret); +} + /** * 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..b9b8b541d591 100644 --- a/drivers/gpu/drm/xe/xe_drm_ras.h +++ b/drivers/gpu/drm/xe/xe_drm_ras.h @@ -5,11 +5,17 @@ #ifndef _XE_DRM_RAS_H_ #define _XE_DRM_RAS_H_ +#include <linux/types.h> + +#include <drm/xe_drm.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 error_id, + enum drm_xe_ras_error_severity severity, 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 5135e8e4093f..c0fda18601cd 100644 --- a/drivers/gpu/drm/xe/xe_hw_error.c +++ b/drivers/gpu/drm/xe/xe_hw_error.c @@ -279,7 +279,7 @@ static void gt_hw_error_handler(struct xe_tile *tile, const enum hardware_error if (hw_err == HARDWARE_ERROR_NONFATAL) { atomic_inc(&info[error_id].counter); log_hw_error(tile, info[error_id].name, severity); - return; + goto notify; } for (i = 0; i < PVC_GT_VECTOR_LEN(hw_err); i++) { @@ -336,6 +336,9 @@ static void gt_hw_error_handler(struct xe_tile *tile, const enum hardware_error xe_mmio_write32(mmio, ERR_STAT_GT_VECTOR_REG(hw_err, i), vector); } + +notify: + xe_drm_ras_event(xe, error_id, severity, GFP_ATOMIC); } static void soc_slave_ieh_handler(struct xe_tile *tile, const enum hardware_error hw_err, u32 error_id) @@ -418,6 +421,8 @@ static void soc_hw_error_handler(struct xe_tile *tile, const enum hardware_error xe_mmio_write32(mmio, SOC_GLOBAL_ERR_STAT_REG(master, hw_err), master_global_errstat); + xe_drm_ras_event(xe, error_id, severity, GFP_ATOMIC); + unmask_gsysevtctl: for (i = 0; i < XE_SOC_NUM_IEH; i++) xe_mmio_write32(mmio, SOC_GSYSEVTCTL_REG(master, slave, i), -- 2.47.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* ✓ CI.KUnit: success for Add drm_ras netlink error event support 2026-05-18 11:20 [PATCH 0/2] Add drm_ras netlink error event support Riana Tauro 2026-05-18 11:20 ` [PATCH 1/2] drm/drm_ras: Add drm_ras netlink error event Riana Tauro 2026-05-18 11:20 ` [PATCH 2/2] drm/xe/xe_drm_ras: Add error-event support in XE drm_ras Riana Tauro @ 2026-05-18 11:22 ` Patchwork 2026-05-18 12:00 ` ✓ Xe.CI.BAT: " Patchwork 2026-05-18 15:23 ` ✓ Xe.CI.FULL: " Patchwork 4 siblings, 0 replies; 8+ messages in thread From: Patchwork @ 2026-05-18 11:22 UTC (permalink / raw) To: Riana Tauro; +Cc: intel-xe == Series Details == Series: Add drm_ras netlink error event support 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 [11:21:21] Configuring KUnit Kernel ... Generating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [11:21:25] 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 [11:21:56] Starting KUnit Kernel (1/1)... [11:21:56] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [11:21:56] ================== guc_buf (11 subtests) =================== [11:21:56] [PASSED] test_smallest [11:21:56] [PASSED] test_largest [11:21:56] [PASSED] test_granular [11:21:56] [PASSED] test_unique [11:21:56] [PASSED] test_overlap [11:21:56] [PASSED] test_reusable [11:21:56] [PASSED] test_too_big [11:21:56] [PASSED] test_flush [11:21:56] [PASSED] test_lookup [11:21:56] [PASSED] test_data [11:21:56] [PASSED] test_class [11:21:56] ===================== [PASSED] guc_buf ===================== [11:21:56] =================== guc_dbm (7 subtests) =================== [11:21:56] [PASSED] test_empty [11:21:56] [PASSED] test_default [11:21:56] ======================== test_size ======================== [11:21:56] [PASSED] 4 [11:21:56] [PASSED] 8 [11:21:56] [PASSED] 32 [11:21:56] [PASSED] 256 [11:21:56] ==================== [PASSED] test_size ==================== [11:21:56] ======================= test_reuse ======================== [11:21:56] [PASSED] 4 [11:21:56] [PASSED] 8 [11:21:56] [PASSED] 32 [11:21:56] [PASSED] 256 [11:21:56] =================== [PASSED] test_reuse ==================== [11:21:56] =================== test_range_overlap ==================== [11:21:56] [PASSED] 4 [11:21:56] [PASSED] 8 [11:21:56] [PASSED] 32 [11:21:56] [PASSED] 256 [11:21:56] =============== [PASSED] test_range_overlap ================ [11:21:56] =================== test_range_compact ==================== [11:21:56] [PASSED] 4 [11:21:56] [PASSED] 8 [11:21:56] [PASSED] 32 [11:21:56] [PASSED] 256 [11:21:56] =============== [PASSED] test_range_compact ================ [11:21:56] ==================== test_range_spare ===================== [11:21:56] [PASSED] 4 [11:21:56] [PASSED] 8 [11:21:56] [PASSED] 32 [11:21:56] [PASSED] 256 [11:21:56] ================ [PASSED] test_range_spare ================= [11:21:56] ===================== [PASSED] guc_dbm ===================== [11:21:56] =================== guc_idm (6 subtests) =================== [11:21:56] [PASSED] bad_init [11:21:56] [PASSED] no_init [11:21:56] [PASSED] init_fini [11:21:56] [PASSED] check_used [11:21:56] [PASSED] check_quota [11:21:56] [PASSED] check_all [11:21:56] ===================== [PASSED] guc_idm ===================== [11:21:56] ================== no_relay (3 subtests) =================== [11:21:56] [PASSED] xe_drops_guc2pf_if_not_ready [11:21:56] [PASSED] xe_drops_guc2vf_if_not_ready [11:21:56] [PASSED] xe_rejects_send_if_not_ready [11:21:56] ==================== [PASSED] no_relay ===================== [11:21:56] ================== pf_relay (14 subtests) ================== [11:21:56] [PASSED] pf_rejects_guc2pf_too_short [11:21:56] [PASSED] pf_rejects_guc2pf_too_long [11:21:56] [PASSED] pf_rejects_guc2pf_no_payload [11:21:56] [PASSED] pf_fails_no_payload [11:21:57] [PASSED] pf_fails_bad_origin [11:21:57] [PASSED] pf_fails_bad_type [11:21:57] [PASSED] pf_txn_reports_error [11:21:57] [PASSED] pf_txn_sends_pf2guc [11:21:57] [PASSED] pf_sends_pf2guc [11:21:57] [SKIPPED] pf_loopback_nop [11:21:57] [SKIPPED] pf_loopback_echo [11:21:57] [SKIPPED] pf_loopback_fail [11:21:57] [SKIPPED] pf_loopback_busy [11:21:57] [SKIPPED] pf_loopback_retry [11:21:57] ==================== [PASSED] pf_relay ===================== [11:21:57] ================== vf_relay (3 subtests) =================== [11:21:57] [PASSED] vf_rejects_guc2vf_too_short [11:21:57] [PASSED] vf_rejects_guc2vf_too_long [11:21:57] [PASSED] vf_rejects_guc2vf_no_payload [11:21:57] ==================== [PASSED] vf_relay ===================== [11:21:57] ================ pf_gt_config (9 subtests) ================= [11:21:57] [PASSED] fair_contexts_1vf [11:21:57] [PASSED] fair_doorbells_1vf [11:21:57] [PASSED] fair_ggtt_1vf [11:21:57] ====================== fair_vram_1vf ====================== [11:21:57] [PASSED] 3.50 GiB [11:21:57] [PASSED] 11.5 GiB [11:21:57] [PASSED] 15.5 GiB [11:21:57] [PASSED] 31.5 GiB [11:21:57] [PASSED] 63.5 GiB [11:21:57] [PASSED] 1.91 GiB [11:21:57] ================== [PASSED] fair_vram_1vf ================== [11:21:57] ================ fair_vram_1vf_admin_only ================= [11:21:57] [PASSED] 3.50 GiB [11:21:57] [PASSED] 11.5 GiB [11:21:57] [PASSED] 15.5 GiB [11:21:57] [PASSED] 31.5 GiB [11:21:57] [PASSED] 63.5 GiB [11:21:57] [PASSED] 1.91 GiB [11:21:57] ============ [PASSED] fair_vram_1vf_admin_only ============= [11:21:57] ====================== fair_contexts ====================== [11:21:57] [PASSED] 1 VF [11:21:57] [PASSED] 2 VFs [11:21:57] [PASSED] 3 VFs [11:21:57] [PASSED] 4 VFs [11:21:57] [PASSED] 5 VFs [11:21:57] [PASSED] 6 VFs [11:21:57] [PASSED] 7 VFs [11:21:57] [PASSED] 8 VFs [11:21:57] [PASSED] 9 VFs [11:21:57] [PASSED] 10 VFs [11:21:57] [PASSED] 11 VFs [11:21:57] [PASSED] 12 VFs [11:21:57] [PASSED] 13 VFs [11:21:57] [PASSED] 14 VFs [11:21:57] [PASSED] 15 VFs [11:21:57] [PASSED] 16 VFs [11:21:57] [PASSED] 17 VFs [11:21:57] [PASSED] 18 VFs [11:21:57] [PASSED] 19 VFs [11:21:57] [PASSED] 20 VFs [11:21:57] [PASSED] 21 VFs [11:21:57] [PASSED] 22 VFs [11:21:57] [PASSED] 23 VFs [11:21:57] [PASSED] 24 VFs [11:21:57] [PASSED] 25 VFs [11:21:57] [PASSED] 26 VFs [11:21:57] [PASSED] 27 VFs [11:21:57] [PASSED] 28 VFs [11:21:57] [PASSED] 29 VFs [11:21:57] [PASSED] 30 VFs [11:21:57] [PASSED] 31 VFs [11:21:57] [PASSED] 32 VFs [11:21:57] [PASSED] 33 VFs [11:21:57] [PASSED] 34 VFs [11:21:57] [PASSED] 35 VFs [11:21:57] [PASSED] 36 VFs [11:21:57] [PASSED] 37 VFs [11:21:57] [PASSED] 38 VFs [11:21:57] [PASSED] 39 VFs [11:21:57] [PASSED] 40 VFs [11:21:57] [PASSED] 41 VFs [11:21:57] [PASSED] 42 VFs [11:21:57] [PASSED] 43 VFs [11:21:57] [PASSED] 44 VFs [11:21:57] [PASSED] 45 VFs [11:21:57] [PASSED] 46 VFs [11:21:57] [PASSED] 47 VFs [11:21:57] [PASSED] 48 VFs [11:21:57] [PASSED] 49 VFs [11:21:57] [PASSED] 50 VFs [11:21:57] [PASSED] 51 VFs [11:21:57] [PASSED] 52 VFs [11:21:57] [PASSED] 53 VFs [11:21:57] [PASSED] 54 VFs [11:21:57] [PASSED] 55 VFs [11:21:57] [PASSED] 56 VFs [11:21:57] [PASSED] 57 VFs [11:21:57] [PASSED] 58 VFs [11:21:57] [PASSED] 59 VFs [11:21:57] [PASSED] 60 VFs [11:21:57] [PASSED] 61 VFs [11:21:57] [PASSED] 62 VFs [11:21:57] [PASSED] 63 VFs [11:21:57] ================== [PASSED] fair_contexts ================== [11:21:57] ===================== fair_doorbells ====================== [11:21:57] [PASSED] 1 VF [11:21:57] [PASSED] 2 VFs [11:21:57] [PASSED] 3 VFs [11:21:57] [PASSED] 4 VFs [11:21:57] [PASSED] 5 VFs [11:21:57] [PASSED] 6 VFs [11:21:57] [PASSED] 7 VFs [11:21:57] [PASSED] 8 VFs [11:21:57] [PASSED] 9 VFs [11:21:57] [PASSED] 10 VFs [11:21:57] [PASSED] 11 VFs [11:21:57] [PASSED] 12 VFs [11:21:57] [PASSED] 13 VFs [11:21:57] [PASSED] 14 VFs [11:21:57] [PASSED] 15 VFs [11:21:57] [PASSED] 16 VFs [11:21:57] [PASSED] 17 VFs [11:21:57] [PASSED] 18 VFs [11:21:57] [PASSED] 19 VFs [11:21:57] [PASSED] 20 VFs [11:21:57] [PASSED] 21 VFs [11:21:57] [PASSED] 22 VFs [11:21:57] [PASSED] 23 VFs [11:21:57] [PASSED] 24 VFs [11:21:57] [PASSED] 25 VFs [11:21:57] [PASSED] 26 VFs [11:21:57] [PASSED] 27 VFs [11:21:57] [PASSED] 28 VFs [11:21:57] [PASSED] 29 VFs [11:21:57] [PASSED] 30 VFs [11:21:57] [PASSED] 31 VFs [11:21:57] [PASSED] 32 VFs [11:21:57] [PASSED] 33 VFs [11:21:57] [PASSED] 34 VFs [11:21:57] [PASSED] 35 VFs [11:21:57] [PASSED] 36 VFs [11:21:57] [PASSED] 37 VFs [11:21:57] [PASSED] 38 VFs [11:21:57] [PASSED] 39 VFs [11:21:57] [PASSED] 40 VFs [11:21:57] [PASSED] 41 VFs [11:21:57] [PASSED] 42 VFs [11:21:57] [PASSED] 43 VFs [11:21:57] [PASSED] 44 VFs [11:21:57] [PASSED] 45 VFs [11:21:57] [PASSED] 46 VFs [11:21:57] [PASSED] 47 VFs [11:21:57] [PASSED] 48 VFs [11:21:57] [PASSED] 49 VFs [11:21:57] [PASSED] 50 VFs [11:21:57] [PASSED] 51 VFs [11:21:57] [PASSED] 52 VFs [11:21:57] [PASSED] 53 VFs [11:21:57] [PASSED] 54 VFs [11:21:57] [PASSED] 55 VFs [11:21:57] [PASSED] 56 VFs [11:21:57] [PASSED] 57 VFs [11:21:57] [PASSED] 58 VFs [11:21:57] [PASSED] 59 VFs [11:21:57] [PASSED] 60 VFs [11:21:57] [PASSED] 61 VFs [11:21:57] [PASSED] 62 VFs [11:21:57] [PASSED] 63 VFs [11:21:57] ================= [PASSED] fair_doorbells ================== [11:21:57] ======================== fair_ggtt ======================== [11:21:57] [PASSED] 1 VF [11:21:57] [PASSED] 2 VFs [11:21:57] [PASSED] 3 VFs [11:21:57] [PASSED] 4 VFs [11:21:57] [PASSED] 5 VFs [11:21:57] [PASSED] 6 VFs [11:21:57] [PASSED] 7 VFs [11:21:57] [PASSED] 8 VFs [11:21:57] [PASSED] 9 VFs [11:21:57] [PASSED] 10 VFs [11:21:57] [PASSED] 11 VFs [11:21:57] [PASSED] 12 VFs [11:21:57] [PASSED] 13 VFs [11:21:57] [PASSED] 14 VFs [11:21:57] [PASSED] 15 VFs [11:21:57] [PASSED] 16 VFs [11:21:57] [PASSED] 17 VFs [11:21:57] [PASSED] 18 VFs [11:21:57] [PASSED] 19 VFs [11:21:57] [PASSED] 20 VFs [11:21:57] [PASSED] 21 VFs [11:21:57] [PASSED] 22 VFs [11:21:57] [PASSED] 23 VFs [11:21:57] [PASSED] 24 VFs [11:21:57] [PASSED] 25 VFs [11:21:57] [PASSED] 26 VFs [11:21:57] [PASSED] 27 VFs [11:21:57] [PASSED] 28 VFs [11:21:57] [PASSED] 29 VFs [11:21:57] [PASSED] 30 VFs [11:21:57] [PASSED] 31 VFs [11:21:57] [PASSED] 32 VFs [11:21:57] [PASSED] 33 VFs [11:21:57] [PASSED] 34 VFs [11:21:57] [PASSED] 35 VFs [11:21:57] [PASSED] 36 VFs [11:21:57] [PASSED] 37 VFs [11:21:57] [PASSED] 38 VFs [11:21:57] [PASSED] 39 VFs [11:21:57] [PASSED] 40 VFs [11:21:57] [PASSED] 41 VFs [11:21:57] [PASSED] 42 VFs [11:21:57] [PASSED] 43 VFs [11:21:57] [PASSED] 44 VFs [11:21:57] [PASSED] 45 VFs [11:21:57] [PASSED] 46 VFs [11:21:57] [PASSED] 47 VFs [11:21:57] [PASSED] 48 VFs [11:21:57] [PASSED] 49 VFs [11:21:57] [PASSED] 50 VFs [11:21:57] [PASSED] 51 VFs [11:21:57] [PASSED] 52 VFs [11:21:57] [PASSED] 53 VFs [11:21:57] [PASSED] 54 VFs [11:21:57] [PASSED] 55 VFs [11:21:57] [PASSED] 56 VFs [11:21:57] [PASSED] 57 VFs [11:21:57] [PASSED] 58 VFs [11:21:57] [PASSED] 59 VFs [11:21:57] [PASSED] 60 VFs [11:21:57] [PASSED] 61 VFs [11:21:57] [PASSED] 62 VFs [11:21:57] [PASSED] 63 VFs [11:21:57] ==================== [PASSED] fair_ggtt ==================== [11:21:57] ======================== fair_vram ======================== [11:21:57] [PASSED] 1 VF [11:21:57] [PASSED] 2 VFs [11:21:57] [PASSED] 3 VFs [11:21:57] [PASSED] 4 VFs [11:21:57] [PASSED] 5 VFs [11:21:57] [PASSED] 6 VFs [11:21:57] [PASSED] 7 VFs [11:21:57] [PASSED] 8 VFs [11:21:57] [PASSED] 9 VFs [11:21:57] [PASSED] 10 VFs [11:21:57] [PASSED] 11 VFs [11:21:57] [PASSED] 12 VFs [11:21:57] [PASSED] 13 VFs [11:21:57] [PASSED] 14 VFs [11:21:57] [PASSED] 15 VFs [11:21:57] [PASSED] 16 VFs [11:21:57] [PASSED] 17 VFs [11:21:57] [PASSED] 18 VFs [11:21:57] [PASSED] 19 VFs [11:21:57] [PASSED] 20 VFs [11:21:57] [PASSED] 21 VFs [11:21:57] [PASSED] 22 VFs [11:21:57] [PASSED] 23 VFs [11:21:57] [PASSED] 24 VFs [11:21:57] [PASSED] 25 VFs [11:21:57] [PASSED] 26 VFs [11:21:57] [PASSED] 27 VFs [11:21:57] [PASSED] 28 VFs [11:21:57] [PASSED] 29 VFs [11:21:57] [PASSED] 30 VFs [11:21:57] [PASSED] 31 VFs [11:21:57] [PASSED] 32 VFs [11:21:57] [PASSED] 33 VFs [11:21:57] [PASSED] 34 VFs [11:21:57] [PASSED] 35 VFs [11:21:57] [PASSED] 36 VFs [11:21:57] [PASSED] 37 VFs [11:21:57] [PASSED] 38 VFs [11:21:57] [PASSED] 39 VFs [11:21:57] [PASSED] 40 VFs [11:21:57] [PASSED] 41 VFs [11:21:57] [PASSED] 42 VFs [11:21:57] [PASSED] 43 VFs [11:21:57] [PASSED] 44 VFs [11:21:57] [PASSED] 45 VFs [11:21:57] [PASSED] 46 VFs [11:21:57] [PASSED] 47 VFs [11:21:57] [PASSED] 48 VFs [11:21:57] [PASSED] 49 VFs [11:21:57] [PASSED] 50 VFs [11:21:57] [PASSED] 51 VFs [11:21:57] [PASSED] 52 VFs [11:21:57] [PASSED] 53 VFs [11:21:57] [PASSED] 54 VFs [11:21:57] [PASSED] 55 VFs [11:21:57] [PASSED] 56 VFs [11:21:57] [PASSED] 57 VFs [11:21:57] [PASSED] 58 VFs [11:21:57] [PASSED] 59 VFs [11:21:57] [PASSED] 60 VFs [11:21:57] [PASSED] 61 VFs [11:21:57] [PASSED] 62 VFs [11:21:57] [PASSED] 63 VFs [11:21:57] ==================== [PASSED] fair_vram ==================== [11:21:57] ================== [PASSED] pf_gt_config =================== [11:21:57] ===================== lmtt (1 subtest) ===================== [11:21:57] ======================== test_ops ========================= [11:21:57] [PASSED] 2-level [11:21:57] [PASSED] multi-level [11:21:57] ==================== [PASSED] test_ops ===================== [11:21:57] ====================== [PASSED] lmtt ======================= [11:21:57] ================= pf_service (11 subtests) ================= [11:21:57] [PASSED] pf_negotiate_any [11:21:57] [PASSED] pf_negotiate_base_match [11:21:57] [PASSED] pf_negotiate_base_newer [11:21:57] [PASSED] pf_negotiate_base_next [11:21:57] [SKIPPED] pf_negotiate_base_older [11:21:57] [PASSED] pf_negotiate_base_prev [11:21:57] [PASSED] pf_negotiate_latest_match [11:21:57] [PASSED] pf_negotiate_latest_newer [11:21:57] [PASSED] pf_negotiate_latest_next [11:21:57] [SKIPPED] pf_negotiate_latest_older [11:21:57] [SKIPPED] pf_negotiate_latest_prev [11:21:57] =================== [PASSED] pf_service ==================== [11:21:57] ================= xe_guc_g2g (2 subtests) ================== [11:21:57] ============== xe_live_guc_g2g_kunit_default ============== [11:21:57] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ========== [11:21:57] ============== xe_live_guc_g2g_kunit_allmem =============== [11:21:57] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ========== [11:21:57] =================== [SKIPPED] xe_guc_g2g =================== [11:21:57] =================== xe_mocs (2 subtests) =================== [11:21:57] ================ xe_live_mocs_kernel_kunit ================ [11:21:57] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============ [11:21:57] ================ xe_live_mocs_reset_kunit ================= [11:21:57] ============ [SKIPPED] xe_live_mocs_reset_kunit ============ [11:21:57] ==================== [SKIPPED] xe_mocs ===================== [11:21:57] ================= xe_migrate (2 subtests) ================== [11:21:57] ================= xe_migrate_sanity_kunit ================= [11:21:57] ============ [SKIPPED] xe_migrate_sanity_kunit ============= [11:21:57] ================== xe_validate_ccs_kunit ================== [11:21:57] ============= [SKIPPED] xe_validate_ccs_kunit ============== [11:21:57] =================== [SKIPPED] xe_migrate =================== [11:21:57] ================== xe_dma_buf (1 subtest) ================== [11:21:57] ==================== xe_dma_buf_kunit ===================== [11:21:57] ================ [SKIPPED] xe_dma_buf_kunit ================ [11:21:57] =================== [SKIPPED] xe_dma_buf =================== [11:21:57] ================= xe_bo_shrink (1 subtest) ================= [11:21:57] =================== xe_bo_shrink_kunit ==================== [11:21:57] =============== [SKIPPED] xe_bo_shrink_kunit =============== [11:21:57] ================== [SKIPPED] xe_bo_shrink ================== [11:21:57] ==================== xe_bo (2 subtests) ==================== [11:21:57] ================== xe_ccs_migrate_kunit =================== [11:21:57] ============== [SKIPPED] xe_ccs_migrate_kunit ============== [11:21:57] ==================== xe_bo_evict_kunit ==================== [11:21:57] =============== [SKIPPED] xe_bo_evict_kunit ================ [11:21:57] ===================== [SKIPPED] xe_bo ====================== [11:21:57] ==================== args (13 subtests) ==================== [11:21:57] [PASSED] count_args_test [11:21:57] [PASSED] call_args_example [11:21:57] [PASSED] call_args_test [11:21:57] [PASSED] drop_first_arg_example [11:21:57] [PASSED] drop_first_arg_test [11:21:57] [PASSED] first_arg_example [11:21:57] [PASSED] first_arg_test [11:21:57] [PASSED] last_arg_example [11:21:57] [PASSED] last_arg_test [11:21:57] [PASSED] pick_arg_example [11:21:57] [PASSED] if_args_example [11:21:57] [PASSED] if_args_test [11:21:57] [PASSED] sep_comma_example [11:21:57] ====================== [PASSED] args ======================= [11:21:57] =================== xe_pci (3 subtests) ==================== [11:21:57] ==================== check_graphics_ip ==================== [11:21:57] [PASSED] 12.00 Xe_LP [11:21:57] [PASSED] 12.10 Xe_LP+ [11:21:57] [PASSED] 12.55 Xe_HPG [11:21:57] [PASSED] 12.60 Xe_HPC [11:21:57] [PASSED] 12.70 Xe_LPG [11:21:57] [PASSED] 12.71 Xe_LPG [11:21:57] [PASSED] 12.74 Xe_LPG+ [11:21:57] [PASSED] 20.01 Xe2_HPG [11:21:57] [PASSED] 20.02 Xe2_HPG [11:21:57] [PASSED] 20.04 Xe2_LPG [11:21:57] [PASSED] 30.00 Xe3_LPG [11:21:57] [PASSED] 30.01 Xe3_LPG [11:21:57] [PASSED] 30.03 Xe3_LPG [11:21:57] [PASSED] 30.04 Xe3_LPG [11:21:57] [PASSED] 30.05 Xe3_LPG [11:21:57] [PASSED] 35.10 Xe3p_LPG [11:21:57] [PASSED] 35.11 Xe3p_XPC [11:21:57] ================ [PASSED] check_graphics_ip ================ [11:21:57] ===================== check_media_ip ====================== [11:21:57] [PASSED] 12.00 Xe_M [11:21:57] [PASSED] 12.55 Xe_HPM [11:21:57] [PASSED] 13.00 Xe_LPM+ [11:21:57] [PASSED] 13.01 Xe2_HPM [11:21:57] [PASSED] 20.00 Xe2_LPM [11:21:57] [PASSED] 30.00 Xe3_LPM [11:21:57] [PASSED] 30.02 Xe3_LPM [11:21:57] [PASSED] 35.00 Xe3p_LPM [11:21:57] [PASSED] 35.03 Xe3p_HPM [11:21:57] ================= [PASSED] check_media_ip ================== [11:21:57] =================== check_platform_desc =================== [11:21:57] [PASSED] 0x9A60 (TIGERLAKE) [11:21:57] [PASSED] 0x9A68 (TIGERLAKE) [11:21:57] [PASSED] 0x9A70 (TIGERLAKE) [11:21:57] [PASSED] 0x9A40 (TIGERLAKE) [11:21:57] [PASSED] 0x9A49 (TIGERLAKE) [11:21:57] [PASSED] 0x9A59 (TIGERLAKE) [11:21:57] [PASSED] 0x9A78 (TIGERLAKE) [11:21:57] [PASSED] 0x9AC0 (TIGERLAKE) [11:21:57] [PASSED] 0x9AC9 (TIGERLAKE) [11:21:57] [PASSED] 0x9AD9 (TIGERLAKE) [11:21:57] [PASSED] 0x9AF8 (TIGERLAKE) [11:21:57] [PASSED] 0x4C80 (ROCKETLAKE) [11:21:57] [PASSED] 0x4C8A (ROCKETLAKE) [11:21:57] [PASSED] 0x4C8B (ROCKETLAKE) [11:21:57] [PASSED] 0x4C8C (ROCKETLAKE) [11:21:57] [PASSED] 0x4C90 (ROCKETLAKE) [11:21:57] [PASSED] 0x4C9A (ROCKETLAKE) [11:21:57] [PASSED] 0x4680 (ALDERLAKE_S) [11:21:57] [PASSED] 0x4682 (ALDERLAKE_S) [11:21:57] [PASSED] 0x4688 (ALDERLAKE_S) [11:21:57] [PASSED] 0x468A (ALDERLAKE_S) [11:21:57] [PASSED] 0x468B (ALDERLAKE_S) [11:21:57] [PASSED] 0x4690 (ALDERLAKE_S) [11:21:57] [PASSED] 0x4692 (ALDERLAKE_S) [11:21:57] [PASSED] 0x4693 (ALDERLAKE_S) [11:21:57] [PASSED] 0x46A0 (ALDERLAKE_P) [11:21:57] [PASSED] 0x46A1 (ALDERLAKE_P) [11:21:57] [PASSED] 0x46A2 (ALDERLAKE_P) [11:21:57] [PASSED] 0x46A3 (ALDERLAKE_P) [11:21:57] [PASSED] 0x46A6 (ALDERLAKE_P) [11:21:57] [PASSED] 0x46A8 (ALDERLAKE_P) [11:21:57] [PASSED] 0x46AA (ALDERLAKE_P) [11:21:57] [PASSED] 0x462A (ALDERLAKE_P) [11:21:57] [PASSED] 0x4626 (ALDERLAKE_P) [11:21:57] [PASSED] 0x4628 (ALDERLAKE_P) [11:21:57] [PASSED] 0x46B0 (ALDERLAKE_P) [11:21:57] [PASSED] 0x46B1 (ALDERLAKE_P) [11:21:57] [PASSED] 0x46B2 (ALDERLAKE_P) [11:21:57] [PASSED] 0x46B3 (ALDERLAKE_P) [11:21:57] [PASSED] 0x46C0 (ALDERLAKE_P) [11:21:57] [PASSED] 0x46C1 (ALDERLAKE_P) [11:21:57] [PASSED] 0x46C2 (ALDERLAKE_P) [11:21:57] [PASSED] 0x46C3 (ALDERLAKE_P) [11:21:57] [PASSED] 0x46D0 (ALDERLAKE_N) [11:21:57] [PASSED] 0x46D1 (ALDERLAKE_N) [11:21:57] [PASSED] 0x46D2 (ALDERLAKE_N) [11:21:57] [PASSED] 0x46D3 (ALDERLAKE_N) [11:21:57] [PASSED] 0x46D4 (ALDERLAKE_N) [11:21:57] [PASSED] 0xA721 (ALDERLAKE_P) [11:21:57] [PASSED] 0xA7A1 (ALDERLAKE_P) [11:21:57] [PASSED] 0xA7A9 (ALDERLAKE_P) [11:21:57] [PASSED] 0xA7AC (ALDERLAKE_P) [11:21:57] [PASSED] 0xA7AD (ALDERLAKE_P) [11:21:57] [PASSED] 0xA720 (ALDERLAKE_P) [11:21:57] [PASSED] 0xA7A0 (ALDERLAKE_P) [11:21:57] [PASSED] 0xA7A8 (ALDERLAKE_P) [11:21:57] [PASSED] 0xA7AA (ALDERLAKE_P) [11:21:57] [PASSED] 0xA7AB (ALDERLAKE_P) [11:21:57] [PASSED] 0xA780 (ALDERLAKE_S) [11:21:57] [PASSED] 0xA781 (ALDERLAKE_S) [11:21:57] [PASSED] 0xA782 (ALDERLAKE_S) [11:21:57] [PASSED] 0xA783 (ALDERLAKE_S) [11:21:57] [PASSED] 0xA788 (ALDERLAKE_S) [11:21:57] [PASSED] 0xA789 (ALDERLAKE_S) [11:21:57] [PASSED] 0xA78A (ALDERLAKE_S) [11:21:57] [PASSED] 0xA78B (ALDERLAKE_S) [11:21:57] [PASSED] 0x4905 (DG1) [11:21:57] [PASSED] 0x4906 (DG1) [11:21:57] [PASSED] 0x4907 (DG1) [11:21:57] [PASSED] 0x4908 (DG1) [11:21:57] [PASSED] 0x4909 (DG1) [11:21:57] [PASSED] 0x56C0 (DG2) [11:21:57] [PASSED] 0x56C2 (DG2) [11:21:57] [PASSED] 0x56C1 (DG2) [11:21:57] [PASSED] 0x7D51 (METEORLAKE) [11:21:57] [PASSED] 0x7DD1 (METEORLAKE) [11:21:57] [PASSED] 0x7D41 (METEORLAKE) [11:21:57] [PASSED] 0x7D67 (METEORLAKE) [11:21:57] [PASSED] 0xB640 (METEORLAKE) [11:21:57] [PASSED] 0x56A0 (DG2) [11:21:57] [PASSED] 0x56A1 (DG2) [11:21:57] [PASSED] 0x56A2 (DG2) [11:21:57] [PASSED] 0x56BE (DG2) [11:21:57] [PASSED] 0x56BF (DG2) [11:21:57] [PASSED] 0x5690 (DG2) [11:21:57] [PASSED] 0x5691 (DG2) [11:21:57] [PASSED] 0x5692 (DG2) [11:21:57] [PASSED] 0x56A5 (DG2) [11:21:57] [PASSED] 0x56A6 (DG2) [11:21:57] [PASSED] 0x56B0 (DG2) [11:21:57] [PASSED] 0x56B1 (DG2) [11:21:57] [PASSED] 0x56BA (DG2) [11:21:57] [PASSED] 0x56BB (DG2) [11:21:57] [PASSED] 0x56BC (DG2) [11:21:57] [PASSED] 0x56BD (DG2) [11:21:57] [PASSED] 0x5693 (DG2) [11:21:57] [PASSED] 0x5694 (DG2) [11:21:57] [PASSED] 0x5695 (DG2) [11:21:57] [PASSED] 0x56A3 (DG2) [11:21:57] [PASSED] 0x56A4 (DG2) [11:21:57] [PASSED] 0x56B2 (DG2) [11:21:57] [PASSED] 0x56B3 (DG2) [11:21:57] [PASSED] 0x5696 (DG2) [11:21:57] [PASSED] 0x5697 (DG2) [11:21:57] [PASSED] 0xB69 (PVC) [11:21:57] [PASSED] 0xB6E (PVC) [11:21:57] [PASSED] 0xBD4 (PVC) [11:21:57] [PASSED] 0xBD5 (PVC) [11:21:57] [PASSED] 0xBD6 (PVC) [11:21:57] [PASSED] 0xBD7 (PVC) [11:21:57] [PASSED] 0xBD8 (PVC) [11:21:57] [PASSED] 0xBD9 (PVC) [11:21:57] [PASSED] 0xBDA (PVC) [11:21:57] [PASSED] 0xBDB (PVC) [11:21:57] [PASSED] 0xBE0 (PVC) [11:21:57] [PASSED] 0xBE1 (PVC) [11:21:57] [PASSED] 0xBE5 (PVC) [11:21:57] [PASSED] 0x7D40 (METEORLAKE) [11:21:57] [PASSED] 0x7D45 (METEORLAKE) [11:21:57] [PASSED] 0x7D55 (METEORLAKE) [11:21:57] [PASSED] 0x7D60 (METEORLAKE) [11:21:57] [PASSED] 0x7DD5 (METEORLAKE) [11:21:57] [PASSED] 0x6420 (LUNARLAKE) [11:21:57] [PASSED] 0x64A0 (LUNARLAKE) [11:21:57] [PASSED] 0x64B0 (LUNARLAKE) [11:21:57] [PASSED] 0xE202 (BATTLEMAGE) [11:21:57] [PASSED] 0xE209 (BATTLEMAGE) [11:21:57] [PASSED] 0xE20B (BATTLEMAGE) [11:21:57] [PASSED] 0xE20C (BATTLEMAGE) [11:21:57] [PASSED] 0xE20D (BATTLEMAGE) [11:21:57] [PASSED] 0xE210 (BATTLEMAGE) [11:21:57] [PASSED] 0xE211 (BATTLEMAGE) [11:21:57] [PASSED] 0xE212 (BATTLEMAGE) [11:21:57] [PASSED] 0xE216 (BATTLEMAGE) [11:21:57] [PASSED] 0xE220 (BATTLEMAGE) [11:21:57] [PASSED] 0xE221 (BATTLEMAGE) [11:21:57] [PASSED] 0xE222 (BATTLEMAGE) [11:21:57] [PASSED] 0xE223 (BATTLEMAGE) [11:21:57] [PASSED] 0xB080 (PANTHERLAKE) [11:21:57] [PASSED] 0xB081 (PANTHERLAKE) [11:21:57] [PASSED] 0xB082 (PANTHERLAKE) [11:21:57] [PASSED] 0xB083 (PANTHERLAKE) [11:21:57] [PASSED] 0xB084 (PANTHERLAKE) [11:21:57] [PASSED] 0xB085 (PANTHERLAKE) [11:21:57] [PASSED] 0xB086 (PANTHERLAKE) [11:21:57] [PASSED] 0xB087 (PANTHERLAKE) [11:21:57] [PASSED] 0xB08F (PANTHERLAKE) [11:21:57] [PASSED] 0xB090 (PANTHERLAKE) [11:21:57] [PASSED] 0xB0A0 (PANTHERLAKE) [11:21:57] [PASSED] 0xB0B0 (PANTHERLAKE) [11:21:57] [PASSED] 0xFD80 (PANTHERLAKE) [11:21:57] [PASSED] 0xFD81 (PANTHERLAKE) [11:21:57] [PASSED] 0xD740 (NOVALAKE_S) [11:21:57] [PASSED] 0xD741 (NOVALAKE_S) [11:21:57] [PASSED] 0xD742 (NOVALAKE_S) [11:21:57] [PASSED] 0xD743 (NOVALAKE_S) [11:21:57] [PASSED] 0xD744 (NOVALAKE_S) [11:21:57] [PASSED] 0xD745 (NOVALAKE_S) [11:21:57] [PASSED] 0x674C (CRESCENTISLAND) [11:21:57] [PASSED] 0x674D (CRESCENTISLAND) [11:21:57] [PASSED] 0x674E (CRESCENTISLAND) [11:21:57] [PASSED] 0x674F (CRESCENTISLAND) [11:21:57] [PASSED] 0x6750 (CRESCENTISLAND) [11:21:57] [PASSED] 0xD750 (NOVALAKE_P) [11:21:57] [PASSED] 0xD751 (NOVALAKE_P) [11:21:57] [PASSED] 0xD752 (NOVALAKE_P) [11:21:57] [PASSED] 0xD753 (NOVALAKE_P) [11:21:57] [PASSED] 0xD754 (NOVALAKE_P) [11:21:57] [PASSED] 0xD755 (NOVALAKE_P) [11:21:57] [PASSED] 0xD756 (NOVALAKE_P) [11:21:57] [PASSED] 0xD757 (NOVALAKE_P) [11:21:57] [PASSED] 0xD75F (NOVALAKE_P) [11:21:57] =============== [PASSED] check_platform_desc =============== [11:21:57] ===================== [PASSED] xe_pci ====================== [11:21:57] =================== xe_rtp (2 subtests) ==================== [11:21:57] =============== xe_rtp_process_to_sr_tests ================ [11:21:57] [PASSED] coalesce-same-reg [11:21:57] [PASSED] no-match-no-add [11:21:57] [PASSED] match-or [11:21:57] [PASSED] match-or-xfail [11:21:57] [PASSED] no-match-no-add-multiple-rules [11:21:57] [PASSED] two-regs-two-entries [11:21:57] [PASSED] clr-one-set-other [11:21:57] [PASSED] set-field [11:21:57] [PASSED] conflict-duplicate [11:21:57] [PASSED] conflict-not-disjoint [11:21:57] [PASSED] conflict-reg-type [11:21:57] [PASSED] bad-mcr-reg-forced-to-regular [11:21:57] [PASSED] bad-regular-reg-forced-to-mcr [11:21:57] =========== [PASSED] xe_rtp_process_to_sr_tests ============ [11:21:57] ================== xe_rtp_process_tests =================== [11:21:57] [PASSED] active1 [11:21:57] [PASSED] active2 [11:21:57] [PASSED] active-inactive [11:21:57] [PASSED] inactive-active [11:21:57] [PASSED] inactive-1st_or_active-inactive [11:21:57] [PASSED] inactive-2nd_or_active-inactive [11:21:57] [PASSED] inactive-last_or_active-inactive [11:21:57] [PASSED] inactive-no_or_active-inactive [11:21:57] ============== [PASSED] xe_rtp_process_tests =============== [11:21:57] ===================== [PASSED] xe_rtp ====================== [11:21:57] ==================== xe_wa (1 subtest) ===================== [11:21:57] ======================== xe_wa_gt ========================= [11:21:57] [PASSED] TIGERLAKE B0 [11:21:57] [PASSED] DG1 A0 [11:21:57] [PASSED] DG1 B0 [11:21:57] [PASSED] ALDERLAKE_S A0 [11:21:57] [PASSED] ALDERLAKE_S B0 [11:21:57] [PASSED] ALDERLAKE_S C0 [11:21:57] [PASSED] ALDERLAKE_S D0 [11:21:57] [PASSED] ALDERLAKE_P A0 [11:21:57] [PASSED] ALDERLAKE_P B0 [11:21:57] [PASSED] ALDERLAKE_P C0 [11:21:57] [PASSED] ALDERLAKE_S RPLS D0 [11:21:57] [PASSED] ALDERLAKE_P RPLU E0 [11:21:57] [PASSED] DG2 G10 C0 [11:21:57] [PASSED] DG2 G11 B1 [11:21:57] [PASSED] DG2 G12 A1 [11:21:57] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0 [11:21:57] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0 [11:21:57] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0 [11:21:57] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0 [11:21:57] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0 [11:21:57] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1 [11:21:57] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0 [11:21:57] ==================== [PASSED] xe_wa_gt ===================== [11:21:57] ====================== [PASSED] xe_wa ====================== [11:21:57] ============================================================ [11:21:57] Testing complete. Ran 603 tests: passed: 585, skipped: 18 [11:21:57] Elapsed time: 36.363s total, 4.357s configuring, 31.339s building, 0.618s running + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig [11:21:57] Configuring KUnit Kernel ... Regenerating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [11:21:59] 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 [11:22:23] Starting KUnit Kernel (1/1)... [11:22:23] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [11:22:23] ============ drm_test_pick_cmdline (2 subtests) ============ [11:22:23] [PASSED] drm_test_pick_cmdline_res_1920_1080_60 [11:22:23] =============== drm_test_pick_cmdline_named =============== [11:22:23] [PASSED] NTSC [11:22:23] [PASSED] NTSC-J [11:22:23] [PASSED] PAL [11:22:23] [PASSED] PAL-M [11:22:23] =========== [PASSED] drm_test_pick_cmdline_named =========== [11:22:23] ============== [PASSED] drm_test_pick_cmdline ============== [11:22:23] == drm_test_atomic_get_connector_for_encoder (1 subtest) === [11:22:23] [PASSED] drm_test_drm_atomic_get_connector_for_encoder [11:22:23] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ==== [11:22:23] =========== drm_validate_clone_mode (2 subtests) =========== [11:22:23] ============== drm_test_check_in_clone_mode =============== [11:22:23] [PASSED] in_clone_mode [11:22:23] [PASSED] not_in_clone_mode [11:22:23] ========== [PASSED] drm_test_check_in_clone_mode =========== [11:22:23] =============== drm_test_check_valid_clones =============== [11:22:23] [PASSED] not_in_clone_mode [11:22:23] [PASSED] valid_clone [11:22:23] [PASSED] invalid_clone [11:22:23] =========== [PASSED] drm_test_check_valid_clones =========== [11:22:23] ============= [PASSED] drm_validate_clone_mode ============= [11:22:23] ============= drm_validate_modeset (1 subtest) ============= [11:22:23] [PASSED] drm_test_check_connector_changed_modeset [11:22:23] ============== [PASSED] drm_validate_modeset =============== [11:22:23] ====== drm_test_bridge_get_current_state (2 subtests) ====== [11:22:23] [PASSED] drm_test_drm_bridge_get_current_state_atomic [11:22:23] [PASSED] drm_test_drm_bridge_get_current_state_legacy [11:22:23] ======== [PASSED] drm_test_bridge_get_current_state ======== [11:22:23] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ====== [11:22:23] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic [11:22:23] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled [11:22:23] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy [11:22:23] ======== [PASSED] drm_test_bridge_helper_reset_crtc ======== [11:22:23] ============== drm_bridge_alloc (2 subtests) =============== [11:22:23] [PASSED] drm_test_drm_bridge_alloc_basic [11:22:23] [PASSED] drm_test_drm_bridge_alloc_get_put [11:22:23] ================ [PASSED] drm_bridge_alloc ================= [11:22:23] ============= drm_cmdline_parser (40 subtests) ============= [11:22:23] [PASSED] drm_test_cmdline_force_d_only [11:22:23] [PASSED] drm_test_cmdline_force_D_only_dvi [11:22:23] [PASSED] drm_test_cmdline_force_D_only_hdmi [11:22:23] [PASSED] drm_test_cmdline_force_D_only_not_digital [11:22:23] [PASSED] drm_test_cmdline_force_e_only [11:22:23] [PASSED] drm_test_cmdline_res [11:22:23] [PASSED] drm_test_cmdline_res_vesa [11:22:23] [PASSED] drm_test_cmdline_res_vesa_rblank [11:22:23] [PASSED] drm_test_cmdline_res_rblank [11:22:23] [PASSED] drm_test_cmdline_res_bpp [11:22:23] [PASSED] drm_test_cmdline_res_refresh [11:22:23] [PASSED] drm_test_cmdline_res_bpp_refresh [11:22:23] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced [11:22:23] [PASSED] drm_test_cmdline_res_bpp_refresh_margins [11:22:23] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off [11:22:23] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on [11:22:23] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog [11:22:23] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital [11:22:23] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on [11:22:23] [PASSED] drm_test_cmdline_res_margins_force_on [11:22:23] [PASSED] drm_test_cmdline_res_vesa_margins [11:22:23] [PASSED] drm_test_cmdline_name [11:22:23] [PASSED] drm_test_cmdline_name_bpp [11:22:23] [PASSED] drm_test_cmdline_name_option [11:22:23] [PASSED] drm_test_cmdline_name_bpp_option [11:22:23] [PASSED] drm_test_cmdline_rotate_0 [11:22:23] [PASSED] drm_test_cmdline_rotate_90 [11:22:23] [PASSED] drm_test_cmdline_rotate_180 [11:22:23] [PASSED] drm_test_cmdline_rotate_270 [11:22:23] [PASSED] drm_test_cmdline_hmirror [11:22:23] [PASSED] drm_test_cmdline_vmirror [11:22:23] [PASSED] drm_test_cmdline_margin_options [11:22:23] [PASSED] drm_test_cmdline_multiple_options [11:22:23] [PASSED] drm_test_cmdline_bpp_extra_and_option [11:22:23] [PASSED] drm_test_cmdline_extra_and_option [11:22:23] [PASSED] drm_test_cmdline_freestanding_options [11:22:23] [PASSED] drm_test_cmdline_freestanding_force_e_and_options [11:22:23] [PASSED] drm_test_cmdline_panel_orientation [11:22:23] ================ drm_test_cmdline_invalid ================= [11:22:23] [PASSED] margin_only [11:22:23] [PASSED] interlace_only [11:22:23] [PASSED] res_missing_x [11:22:23] [PASSED] res_missing_y [11:22:23] [PASSED] res_bad_y [11:22:23] [PASSED] res_missing_y_bpp [11:22:23] [PASSED] res_bad_bpp [11:22:23] [PASSED] res_bad_refresh [11:22:23] [PASSED] res_bpp_refresh_force_on_off [11:22:23] [PASSED] res_invalid_mode [11:22:23] [PASSED] res_bpp_wrong_place_mode [11:22:23] [PASSED] name_bpp_refresh [11:22:23] [PASSED] name_refresh [11:22:23] [PASSED] name_refresh_wrong_mode [11:22:23] [PASSED] name_refresh_invalid_mode [11:22:23] [PASSED] rotate_multiple [11:22:23] [PASSED] rotate_invalid_val [11:22:23] [PASSED] rotate_truncated [11:22:23] [PASSED] invalid_option [11:22:23] [PASSED] invalid_tv_option [11:22:23] [PASSED] truncated_tv_option [11:22:23] ============ [PASSED] drm_test_cmdline_invalid ============= [11:22:23] =============== drm_test_cmdline_tv_options =============== [11:22:23] [PASSED] NTSC [11:22:23] [PASSED] NTSC_443 [11:22:23] [PASSED] NTSC_J [11:22:23] [PASSED] PAL [11:22:23] [PASSED] PAL_M [11:22:23] [PASSED] PAL_N [11:22:23] [PASSED] SECAM [11:22:23] [PASSED] MONO_525 [11:22:23] [PASSED] MONO_625 [11:22:23] =========== [PASSED] drm_test_cmdline_tv_options =========== [11:22:23] =============== [PASSED] drm_cmdline_parser ================ [11:22:23] ========== drmm_connector_hdmi_init (20 subtests) ========== [11:22:23] [PASSED] drm_test_connector_hdmi_init_valid [11:22:23] [PASSED] drm_test_connector_hdmi_init_bpc_8 [11:22:23] [PASSED] drm_test_connector_hdmi_init_bpc_10 [11:22:23] [PASSED] drm_test_connector_hdmi_init_bpc_12 [11:22:23] [PASSED] drm_test_connector_hdmi_init_bpc_invalid [11:22:23] [PASSED] drm_test_connector_hdmi_init_bpc_null [11:22:23] [PASSED] drm_test_connector_hdmi_init_formats_empty [11:22:23] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb [11:22:23] === drm_test_connector_hdmi_init_formats_yuv420_allowed === [11:22:23] [PASSED] supported_formats=0x9 yuv420_allowed=1 [11:22:23] [PASSED] supported_formats=0x9 yuv420_allowed=0 [11:22:23] [PASSED] supported_formats=0x5 yuv420_allowed=1 [11:22:23] [PASSED] supported_formats=0x5 yuv420_allowed=0 [11:22:23] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed === [11:22:23] [PASSED] drm_test_connector_hdmi_init_null_ddc [11:22:23] [PASSED] drm_test_connector_hdmi_init_null_product [11:22:23] [PASSED] drm_test_connector_hdmi_init_null_vendor [11:22:23] [PASSED] drm_test_connector_hdmi_init_product_length_exact [11:22:23] [PASSED] drm_test_connector_hdmi_init_product_length_too_long [11:22:23] [PASSED] drm_test_connector_hdmi_init_product_valid [11:22:23] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact [11:22:23] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long [11:22:23] [PASSED] drm_test_connector_hdmi_init_vendor_valid [11:22:23] ========= drm_test_connector_hdmi_init_type_valid ========= [11:22:23] [PASSED] HDMI-A [11:22:23] [PASSED] HDMI-B [11:22:23] ===== [PASSED] drm_test_connector_hdmi_init_type_valid ===== [11:22:23] ======== drm_test_connector_hdmi_init_type_invalid ======== [11:22:23] [PASSED] Unknown [11:22:23] [PASSED] VGA [11:22:23] [PASSED] DVI-I [11:22:23] [PASSED] DVI-D [11:22:23] [PASSED] DVI-A [11:22:23] [PASSED] Composite [11:22:23] [PASSED] SVIDEO [11:22:23] [PASSED] LVDS [11:22:23] [PASSED] Component [11:22:23] [PASSED] DIN [11:22:23] [PASSED] DP [11:22:23] [PASSED] TV [11:22:23] [PASSED] eDP [11:22:23] [PASSED] Virtual [11:22:23] [PASSED] DSI [11:22:23] [PASSED] DPI [11:22:23] [PASSED] Writeback [11:22:23] [PASSED] SPI [11:22:23] [PASSED] USB [11:22:23] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ==== [11:22:23] ============ [PASSED] drmm_connector_hdmi_init ============= [11:22:23] ============= drmm_connector_init (3 subtests) ============= [11:22:23] [PASSED] drm_test_drmm_connector_init [11:22:23] [PASSED] drm_test_drmm_connector_init_null_ddc [11:22:23] ========= drm_test_drmm_connector_init_type_valid ========= [11:22:23] [PASSED] Unknown [11:22:23] [PASSED] VGA [11:22:23] [PASSED] DVI-I [11:22:23] [PASSED] DVI-D [11:22:23] [PASSED] DVI-A [11:22:23] [PASSED] Composite [11:22:23] [PASSED] SVIDEO [11:22:23] [PASSED] LVDS [11:22:23] [PASSED] Component [11:22:23] [PASSED] DIN [11:22:23] [PASSED] DP [11:22:23] [PASSED] HDMI-A [11:22:23] [PASSED] HDMI-B [11:22:23] [PASSED] TV [11:22:23] [PASSED] eDP [11:22:23] [PASSED] Virtual [11:22:23] [PASSED] DSI [11:22:23] [PASSED] DPI [11:22:23] [PASSED] Writeback [11:22:23] [PASSED] SPI [11:22:23] [PASSED] USB [11:22:23] ===== [PASSED] drm_test_drmm_connector_init_type_valid ===== [11:22:23] =============== [PASSED] drmm_connector_init =============== [11:22:23] ========= drm_connector_dynamic_init (6 subtests) ========== [11:22:23] [PASSED] drm_test_drm_connector_dynamic_init [11:22:23] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc [11:22:23] [PASSED] drm_test_drm_connector_dynamic_init_not_added [11:22:23] [PASSED] drm_test_drm_connector_dynamic_init_properties [11:22:23] ===== drm_test_drm_connector_dynamic_init_type_valid ====== [11:22:23] [PASSED] Unknown [11:22:23] [PASSED] VGA [11:22:23] [PASSED] DVI-I [11:22:23] [PASSED] DVI-D [11:22:23] [PASSED] DVI-A [11:22:23] [PASSED] Composite [11:22:23] [PASSED] SVIDEO [11:22:23] [PASSED] LVDS [11:22:23] [PASSED] Component [11:22:23] [PASSED] DIN [11:22:23] [PASSED] DP [11:22:23] [PASSED] HDMI-A [11:22:23] [PASSED] HDMI-B [11:22:23] [PASSED] TV [11:22:23] [PASSED] eDP [11:22:23] [PASSED] Virtual [11:22:23] [PASSED] DSI [11:22:23] [PASSED] DPI [11:22:23] [PASSED] Writeback [11:22:23] [PASSED] SPI [11:22:23] [PASSED] USB [11:22:23] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid == [11:22:23] ======== drm_test_drm_connector_dynamic_init_name ========= [11:22:23] [PASSED] Unknown [11:22:23] [PASSED] VGA [11:22:23] [PASSED] DVI-I [11:22:23] [PASSED] DVI-D [11:22:23] [PASSED] DVI-A [11:22:23] [PASSED] Composite [11:22:23] [PASSED] SVIDEO [11:22:23] [PASSED] LVDS [11:22:23] [PASSED] Component [11:22:23] [PASSED] DIN [11:22:23] [PASSED] DP [11:22:23] [PASSED] HDMI-A [11:22:23] [PASSED] HDMI-B [11:22:23] [PASSED] TV [11:22:23] [PASSED] eDP [11:22:23] [PASSED] Virtual [11:22:23] [PASSED] DSI [11:22:23] [PASSED] DPI [11:22:23] [PASSED] Writeback [11:22:23] [PASSED] SPI [11:22:23] [PASSED] USB [11:22:23] ==== [PASSED] drm_test_drm_connector_dynamic_init_name ===== [11:22:23] =========== [PASSED] drm_connector_dynamic_init ============ [11:22:23] ==== drm_connector_dynamic_register_early (4 subtests) ===== [11:22:23] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list [11:22:23] [PASSED] drm_test_drm_connector_dynamic_register_early_defer [11:22:23] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init [11:22:23] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object [11:22:23] ====== [PASSED] drm_connector_dynamic_register_early ======= [11:22:23] ======= drm_connector_dynamic_register (7 subtests) ======== [11:22:23] [PASSED] drm_test_drm_connector_dynamic_register_on_list [11:22:23] [PASSED] drm_test_drm_connector_dynamic_register_no_defer [11:22:23] [PASSED] drm_test_drm_connector_dynamic_register_no_init [11:22:23] [PASSED] drm_test_drm_connector_dynamic_register_mode_object [11:22:23] [PASSED] drm_test_drm_connector_dynamic_register_sysfs [11:22:23] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name [11:22:23] [PASSED] drm_test_drm_connector_dynamic_register_debugfs [11:22:23] ========= [PASSED] drm_connector_dynamic_register ========== [11:22:23] = drm_connector_attach_broadcast_rgb_property (2 subtests) = [11:22:23] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property [11:22:23] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector [11:22:23] === [PASSED] drm_connector_attach_broadcast_rgb_property === [11:22:23] ========== drm_get_tv_mode_from_name (2 subtests) ========== [11:22:23] ========== drm_test_get_tv_mode_from_name_valid =========== [11:22:23] [PASSED] NTSC [11:22:23] [PASSED] NTSC-443 [11:22:23] [PASSED] NTSC-J [11:22:23] [PASSED] PAL [11:22:23] [PASSED] PAL-M [11:22:23] [PASSED] PAL-N [11:22:23] [PASSED] SECAM [11:22:23] [PASSED] Mono [11:22:23] ====== [PASSED] drm_test_get_tv_mode_from_name_valid ======= [11:22:23] [PASSED] drm_test_get_tv_mode_from_name_truncated [11:22:23] ============ [PASSED] drm_get_tv_mode_from_name ============ [11:22:23] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) = [11:22:23] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb [11:22:23] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc [11:22:23] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1 [11:22:23] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc [11:22:23] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1 [11:22:23] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double [11:22:23] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid = [11:22:23] [PASSED] VIC 96 [11:22:23] [PASSED] VIC 97 [11:22:23] [PASSED] VIC 101 [11:22:23] [PASSED] VIC 102 [11:22:23] [PASSED] VIC 106 [11:22:23] [PASSED] VIC 107 [11:22:23] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid === [11:22:23] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc [11:22:23] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc [11:22:23] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc [11:22:23] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc [11:22:23] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc [11:22:23] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ==== [11:22:23] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) == [11:22:23] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ==== [11:22:23] [PASSED] Automatic [11:22:23] [PASSED] Full [11:22:23] [PASSED] Limited 16:235 [11:22:23] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name === [11:22:23] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid [11:22:23] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ==== [11:22:23] == drm_hdmi_connector_get_output_format_name (2 subtests) == [11:22:23] === drm_test_drm_hdmi_connector_get_output_format_name ==== [11:22:23] [PASSED] RGB [11:22:23] [PASSED] YUV 4:2:0 [11:22:23] [PASSED] YUV 4:2:2 [11:22:23] [PASSED] YUV 4:4:4 [11:22:23] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name === [11:22:23] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid [11:22:23] ==== [PASSED] drm_hdmi_connector_get_output_format_name ==== [11:22:23] ============= drm_damage_helper (21 subtests) ============== [11:22:23] [PASSED] drm_test_damage_iter_no_damage [11:22:23] [PASSED] drm_test_damage_iter_no_damage_fractional_src [11:22:23] [PASSED] drm_test_damage_iter_no_damage_src_moved [11:22:23] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved [11:22:23] [PASSED] drm_test_damage_iter_no_damage_not_visible [11:22:23] [PASSED] drm_test_damage_iter_no_damage_no_crtc [11:22:23] [PASSED] drm_test_damage_iter_no_damage_no_fb [11:22:23] [PASSED] drm_test_damage_iter_simple_damage [11:22:23] [PASSED] drm_test_damage_iter_single_damage [11:22:23] [PASSED] drm_test_damage_iter_single_damage_intersect_src [11:22:23] [PASSED] drm_test_damage_iter_single_damage_outside_src [11:22:23] [PASSED] drm_test_damage_iter_single_damage_fractional_src [11:22:23] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src [11:22:23] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src [11:22:23] [PASSED] drm_test_damage_iter_single_damage_src_moved [11:22:23] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved [11:22:23] [PASSED] drm_test_damage_iter_damage [11:22:23] [PASSED] drm_test_damage_iter_damage_one_intersect [11:22:23] [PASSED] drm_test_damage_iter_damage_one_outside [11:22:23] [PASSED] drm_test_damage_iter_damage_src_moved [11:22:23] [PASSED] drm_test_damage_iter_damage_not_visible [11:22:23] ================ [PASSED] drm_damage_helper ================ [11:22:23] ============== drm_dp_mst_helper (3 subtests) ============== [11:22:23] ============== drm_test_dp_mst_calc_pbn_mode ============== [11:22:23] [PASSED] Clock 154000 BPP 30 DSC disabled [11:22:23] [PASSED] Clock 234000 BPP 30 DSC disabled [11:22:23] [PASSED] Clock 297000 BPP 24 DSC disabled [11:22:23] [PASSED] Clock 332880 BPP 24 DSC enabled [11:22:23] [PASSED] Clock 324540 BPP 24 DSC enabled [11:22:23] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ========== [11:22:23] ============== drm_test_dp_mst_calc_pbn_div =============== [11:22:23] [PASSED] Link rate 2000000 lane count 4 [11:22:23] [PASSED] Link rate 2000000 lane count 2 [11:22:23] [PASSED] Link rate 2000000 lane count 1 [11:22:23] [PASSED] Link rate 1350000 lane count 4 [11:22:23] [PASSED] Link rate 1350000 lane count 2 [11:22:23] [PASSED] Link rate 1350000 lane count 1 [11:22:23] [PASSED] Link rate 1000000 lane count 4 [11:22:23] [PASSED] Link rate 1000000 lane count 2 [11:22:23] [PASSED] Link rate 1000000 lane count 1 [11:22:23] [PASSED] Link rate 810000 lane count 4 [11:22:23] [PASSED] Link rate 810000 lane count 2 [11:22:23] [PASSED] Link rate 810000 lane count 1 [11:22:23] [PASSED] Link rate 540000 lane count 4 [11:22:23] [PASSED] Link rate 540000 lane count 2 [11:22:23] [PASSED] Link rate 540000 lane count 1 [11:22:23] [PASSED] Link rate 270000 lane count 4 [11:22:23] [PASSED] Link rate 270000 lane count 2 [11:22:23] [PASSED] Link rate 270000 lane count 1 [11:22:23] [PASSED] Link rate 162000 lane count 4 [11:22:23] [PASSED] Link rate 162000 lane count 2 [11:22:23] [PASSED] Link rate 162000 lane count 1 [11:22:23] ========== [PASSED] drm_test_dp_mst_calc_pbn_div =========== [11:22:23] ========= drm_test_dp_mst_sideband_msg_req_decode ========= [11:22:23] [PASSED] DP_ENUM_PATH_RESOURCES with port number [11:22:23] [PASSED] DP_POWER_UP_PHY with port number [11:22:23] [PASSED] DP_POWER_DOWN_PHY with port number [11:22:23] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks [11:22:23] [PASSED] DP_ALLOCATE_PAYLOAD with port number [11:22:23] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI [11:22:23] [PASSED] DP_ALLOCATE_PAYLOAD with PBN [11:22:23] [PASSED] DP_QUERY_PAYLOAD with port number [11:22:23] [PASSED] DP_QUERY_PAYLOAD with VCPI [11:22:23] [PASSED] DP_REMOTE_DPCD_READ with port number [11:22:23] [PASSED] DP_REMOTE_DPCD_READ with DPCD address [11:22:23] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes [11:22:23] [PASSED] DP_REMOTE_DPCD_WRITE with port number [11:22:23] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address [11:22:23] [PASSED] DP_REMOTE_DPCD_WRITE with data array [11:22:23] [PASSED] DP_REMOTE_I2C_READ with port number [11:22:23] [PASSED] DP_REMOTE_I2C_READ with I2C device ID [11:22:23] [PASSED] DP_REMOTE_I2C_READ with transactions array [11:22:23] [PASSED] DP_REMOTE_I2C_WRITE with port number [11:22:23] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID [11:22:23] [PASSED] DP_REMOTE_I2C_WRITE with data array [11:22:23] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID [11:22:23] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID [11:22:23] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event [11:22:23] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event [11:22:23] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior [11:22:23] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior [11:22:23] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode ===== [11:22:23] ================ [PASSED] drm_dp_mst_helper ================ [11:22:23] ================== drm_exec (7 subtests) =================== [11:22:23] [PASSED] sanitycheck [11:22:23] [PASSED] test_lock [11:22:23] [PASSED] test_lock_unlock [11:22:23] [PASSED] test_duplicates [11:22:23] [PASSED] test_prepare [11:22:23] [PASSED] test_prepare_array [11:22:23] [PASSED] test_multiple_loops [11:22:23] ==================== [PASSED] drm_exec ===================== [11:22:23] =========== drm_format_helper_test (17 subtests) =========== [11:22:23] ============== drm_test_fb_xrgb8888_to_gray8 ============== [11:22:23] [PASSED] single_pixel_source_buffer [11:22:23] [PASSED] single_pixel_clip_rectangle [11:22:23] [PASSED] well_known_colors [11:22:23] [PASSED] destination_pitch [11:22:23] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ========== [11:22:23] ============= drm_test_fb_xrgb8888_to_rgb332 ============== [11:22:23] [PASSED] single_pixel_source_buffer [11:22:23] [PASSED] single_pixel_clip_rectangle [11:22:23] [PASSED] well_known_colors [11:22:23] [PASSED] destination_pitch [11:22:23] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ========== [11:22:23] ============= drm_test_fb_xrgb8888_to_rgb565 ============== [11:22:23] [PASSED] single_pixel_source_buffer [11:22:23] [PASSED] single_pixel_clip_rectangle [11:22:23] [PASSED] well_known_colors [11:22:23] [PASSED] destination_pitch [11:22:23] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ========== [11:22:23] ============ drm_test_fb_xrgb8888_to_xrgb1555 ============= [11:22:23] [PASSED] single_pixel_source_buffer [11:22:23] [PASSED] single_pixel_clip_rectangle [11:22:23] [PASSED] well_known_colors [11:22:23] [PASSED] destination_pitch [11:22:23] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 ========= [11:22:23] ============ drm_test_fb_xrgb8888_to_argb1555 ============= [11:22:23] [PASSED] single_pixel_source_buffer [11:22:23] [PASSED] single_pixel_clip_rectangle [11:22:23] [PASSED] well_known_colors [11:22:23] [PASSED] destination_pitch [11:22:23] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 ========= [11:22:23] ============ drm_test_fb_xrgb8888_to_rgba5551 ============= [11:22:23] [PASSED] single_pixel_source_buffer [11:22:23] [PASSED] single_pixel_clip_rectangle [11:22:23] [PASSED] well_known_colors [11:22:23] [PASSED] destination_pitch [11:22:23] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 ========= [11:22:23] ============= drm_test_fb_xrgb8888_to_rgb888 ============== [11:22:23] [PASSED] single_pixel_source_buffer [11:22:23] [PASSED] single_pixel_clip_rectangle [11:22:23] [PASSED] well_known_colors [11:22:23] [PASSED] destination_pitch [11:22:23] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ========== [11:22:23] ============= drm_test_fb_xrgb8888_to_bgr888 ============== [11:22:23] [PASSED] single_pixel_source_buffer [11:22:23] [PASSED] single_pixel_clip_rectangle [11:22:23] [PASSED] well_known_colors [11:22:23] [PASSED] destination_pitch [11:22:23] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ========== [11:22:23] ============ drm_test_fb_xrgb8888_to_argb8888 ============= [11:22:23] [PASSED] single_pixel_source_buffer [11:22:23] [PASSED] single_pixel_clip_rectangle [11:22:23] [PASSED] well_known_colors [11:22:23] [PASSED] destination_pitch [11:22:23] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 ========= [11:22:23] =========== drm_test_fb_xrgb8888_to_xrgb2101010 =========== [11:22:23] [PASSED] single_pixel_source_buffer [11:22:23] [PASSED] single_pixel_clip_rectangle [11:22:23] [PASSED] well_known_colors [11:22:23] [PASSED] destination_pitch [11:22:23] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 ======= [11:22:23] =========== drm_test_fb_xrgb8888_to_argb2101010 =========== [11:22:23] [PASSED] single_pixel_source_buffer [11:22:23] [PASSED] single_pixel_clip_rectangle [11:22:23] [PASSED] well_known_colors [11:22:23] [PASSED] destination_pitch [11:22:23] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 ======= [11:22:23] ============== drm_test_fb_xrgb8888_to_mono =============== [11:22:23] [PASSED] single_pixel_source_buffer [11:22:23] [PASSED] single_pixel_clip_rectangle [11:22:23] [PASSED] well_known_colors [11:22:23] [PASSED] destination_pitch [11:22:23] ========== [PASSED] drm_test_fb_xrgb8888_to_mono =========== [11:22:23] ==================== drm_test_fb_swab ===================== [11:22:23] [PASSED] single_pixel_source_buffer [11:22:23] [PASSED] single_pixel_clip_rectangle [11:22:23] [PASSED] well_known_colors [11:22:23] [PASSED] destination_pitch [11:22:23] ================ [PASSED] drm_test_fb_swab ================= [11:22:23] ============ drm_test_fb_xrgb8888_to_xbgr8888 ============= [11:22:23] [PASSED] single_pixel_source_buffer [11:22:23] [PASSED] single_pixel_clip_rectangle [11:22:23] [PASSED] well_known_colors [11:22:23] [PASSED] destination_pitch [11:22:23] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 ========= [11:22:23] ============ drm_test_fb_xrgb8888_to_abgr8888 ============= [11:22:23] [PASSED] single_pixel_source_buffer [11:22:23] [PASSED] single_pixel_clip_rectangle [11:22:23] [PASSED] well_known_colors [11:22:23] [PASSED] destination_pitch [11:22:23] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 ========= [11:22:23] ================= drm_test_fb_clip_offset ================= [11:22:23] [PASSED] pass through [11:22:23] [PASSED] horizontal offset [11:22:23] [PASSED] vertical offset [11:22:23] [PASSED] horizontal and vertical offset [11:22:23] [PASSED] horizontal offset (custom pitch) [11:22:23] [PASSED] vertical offset (custom pitch) [11:22:23] [PASSED] horizontal and vertical offset (custom pitch) [11:22:23] ============= [PASSED] drm_test_fb_clip_offset ============= [11:22:23] =================== drm_test_fb_memcpy ==================== [11:22:23] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258) [11:22:23] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258) [11:22:23] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559) [11:22:23] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258) [11:22:23] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258) [11:22:23] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559) [11:22:23] [PASSED] well_known_colors: XB24 little-endian (0x34324258) [11:22:23] [PASSED] well_known_colors: XRA8 little-endian (0x38415258) [11:22:23] [PASSED] well_known_colors: YU24 little-endian (0x34325559) [11:22:23] [PASSED] destination_pitch: XB24 little-endian (0x34324258) [11:22:23] [PASSED] destination_pitch: XRA8 little-endian (0x38415258) [11:22:23] [PASSED] destination_pitch: YU24 little-endian (0x34325559) [11:22:23] =============== [PASSED] drm_test_fb_memcpy ================ [11:22:23] ============= [PASSED] drm_format_helper_test ============== [11:22:23] ================= drm_format (18 subtests) ================= [11:22:23] [PASSED] drm_test_format_block_width_invalid [11:22:23] [PASSED] drm_test_format_block_width_one_plane [11:22:23] [PASSED] drm_test_format_block_width_two_plane [11:22:23] [PASSED] drm_test_format_block_width_three_plane [11:22:23] [PASSED] drm_test_format_block_width_tiled [11:22:23] [PASSED] drm_test_format_block_height_invalid [11:22:23] [PASSED] drm_test_format_block_height_one_plane [11:22:23] [PASSED] drm_test_format_block_height_two_plane [11:22:23] [PASSED] drm_test_format_block_height_three_plane [11:22:23] [PASSED] drm_test_format_block_height_tiled [11:22:23] [PASSED] drm_test_format_min_pitch_invalid [11:22:23] [PASSED] drm_test_format_min_pitch_one_plane_8bpp [11:22:23] [PASSED] drm_test_format_min_pitch_one_plane_16bpp [11:22:23] [PASSED] drm_test_format_min_pitch_one_plane_24bpp [11:22:23] [PASSED] drm_test_format_min_pitch_one_plane_32bpp [11:22:23] [PASSED] drm_test_format_min_pitch_two_plane [11:22:23] [PASSED] drm_test_format_min_pitch_three_plane_8bpp [11:22:23] [PASSED] drm_test_format_min_pitch_tiled [11:22:23] =================== [PASSED] drm_format ==================== [11:22:23] ============== drm_framebuffer (10 subtests) =============== [11:22:23] ========== drm_test_framebuffer_check_src_coords ========== [11:22:23] [PASSED] Success: source fits into fb [11:22:23] [PASSED] Fail: overflowing fb with x-axis coordinate [11:22:23] [PASSED] Fail: overflowing fb with y-axis coordinate [11:22:23] [PASSED] Fail: overflowing fb with source width [11:22:23] [PASSED] Fail: overflowing fb with source height [11:22:23] ====== [PASSED] drm_test_framebuffer_check_src_coords ====== [11:22:23] [PASSED] drm_test_framebuffer_cleanup [11:22:23] =============== drm_test_framebuffer_create =============== [11:22:23] [PASSED] ABGR8888 normal sizes [11:22:23] [PASSED] ABGR8888 max sizes [11:22:23] [PASSED] ABGR8888 pitch greater than min required [11:22:23] [PASSED] ABGR8888 pitch less than min required [11:22:23] [PASSED] ABGR8888 Invalid width [11:22:23] [PASSED] ABGR8888 Invalid buffer handle [11:22:23] [PASSED] No pixel format [11:22:23] [PASSED] ABGR8888 Width 0 [11:22:23] [PASSED] ABGR8888 Height 0 [11:22:23] [PASSED] ABGR8888 Out of bound height * pitch combination [11:22:23] [PASSED] ABGR8888 Large buffer offset [11:22:23] [PASSED] ABGR8888 Buffer offset for inexistent plane [11:22:23] [PASSED] ABGR8888 Invalid flag [11:22:23] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers [11:22:23] [PASSED] ABGR8888 Valid buffer modifier [11:22:23] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE) [11:22:23] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS [11:22:23] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS [11:22:23] [PASSED] NV12 Normal sizes [11:22:23] [PASSED] NV12 Max sizes [11:22:23] [PASSED] NV12 Invalid pitch [11:22:23] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag [11:22:23] [PASSED] NV12 different modifier per-plane [11:22:23] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE [11:22:23] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS [11:22:23] [PASSED] NV12 Modifier for inexistent plane [11:22:23] [PASSED] NV12 Handle for inexistent plane [11:22:23] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS [11:22:23] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier [11:22:23] [PASSED] YVU420 Normal sizes [11:22:23] [PASSED] YVU420 Max sizes [11:22:23] [PASSED] YVU420 Invalid pitch [11:22:23] [PASSED] YVU420 Different pitches [11:22:23] [PASSED] YVU420 Different buffer offsets/pitches [11:22:23] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS [11:22:23] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS [11:22:23] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS [11:22:23] [PASSED] YVU420 Valid modifier [11:22:23] [PASSED] YVU420 Different modifiers per plane [11:22:23] [PASSED] YVU420 Modifier for inexistent plane [11:22:23] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR) [11:22:23] [PASSED] X0L2 Normal sizes [11:22:23] [PASSED] X0L2 Max sizes [11:22:23] [PASSED] X0L2 Invalid pitch [11:22:23] [PASSED] X0L2 Pitch greater than minimum required [11:22:23] [PASSED] X0L2 Handle for inexistent plane [11:22:23] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set [11:22:23] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set [11:22:23] [PASSED] X0L2 Valid modifier [11:22:23] [PASSED] X0L2 Modifier for inexistent plane [11:22:23] =========== [PASSED] drm_test_framebuffer_create =========== [11:22:23] [PASSED] drm_test_framebuffer_free [11:22:23] [PASSED] drm_test_framebuffer_init [11:22:23] [PASSED] drm_test_framebuffer_init_bad_format [11:22:23] [PASSED] drm_test_framebuffer_init_dev_mismatch [11:22:23] [PASSED] drm_test_framebuffer_lookup [11:22:23] [PASSED] drm_test_framebuffer_lookup_inexistent [11:22:23] [PASSED] drm_test_framebuffer_modifiers_not_supported [11:22:23] ================= [PASSED] drm_framebuffer ================= [11:22:23] ================ drm_gem_shmem (8 subtests) ================ [11:22:23] [PASSED] drm_gem_shmem_test_obj_create [11:22:23] [PASSED] drm_gem_shmem_test_obj_create_private [11:22:23] [PASSED] drm_gem_shmem_test_pin_pages [11:22:23] [PASSED] drm_gem_shmem_test_vmap [11:22:23] [PASSED] drm_gem_shmem_test_get_sg_table [11:22:23] [PASSED] drm_gem_shmem_test_get_pages_sgt [11:22:23] [PASSED] drm_gem_shmem_test_madvise [11:22:23] [PASSED] drm_gem_shmem_test_purge [11:22:23] ================== [PASSED] drm_gem_shmem ================== [11:22:23] === drm_atomic_helper_connector_hdmi_check (27 subtests) === [11:22:23] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode [11:22:23] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1 [11:22:23] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode [11:22:23] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1 [11:22:23] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode [11:22:23] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1 [11:22:23] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 ======= [11:22:23] [PASSED] Automatic [11:22:23] [PASSED] Full [11:22:23] [PASSED] Limited 16:235 [11:22:23] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 === [11:22:23] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed [11:22:23] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed [11:22:23] [PASSED] drm_test_check_disable_connector [11:22:23] [PASSED] drm_test_check_hdmi_funcs_reject_rate [11:22:23] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb [11:22:23] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420 [11:22:23] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422 [11:22:23] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420 [11:22:23] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420 [11:22:23] [PASSED] drm_test_check_output_bpc_crtc_mode_changed [11:22:23] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed [11:22:23] [PASSED] drm_test_check_output_bpc_dvi [11:22:23] [PASSED] drm_test_check_output_bpc_format_vic_1 [11:22:23] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only [11:22:23] [PASSED] drm_test_check_output_bpc_format_display_rgb_only [11:22:23] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only [11:22:23] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only [11:22:23] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc [11:22:23] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc [11:22:23] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc [11:22:23] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ====== [11:22:23] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ==== [11:22:23] [PASSED] drm_test_check_broadcast_rgb_value [11:22:23] [PASSED] drm_test_check_bpc_8_value [11:22:23] [PASSED] drm_test_check_bpc_10_value [11:22:23] [PASSED] drm_test_check_bpc_12_value [11:22:23] [PASSED] drm_test_check_format_value [11:22:23] [PASSED] drm_test_check_tmds_char_value [11:22:23] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ====== [11:22:23] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) = [11:22:23] [PASSED] drm_test_check_mode_valid [11:22:23] [PASSED] drm_test_check_mode_valid_reject [11:22:23] [PASSED] drm_test_check_mode_valid_reject_rate [11:22:23] [PASSED] drm_test_check_mode_valid_reject_max_clock [11:22:23] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid === [11:22:23] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) = [11:22:23] [PASSED] drm_test_check_infoframes [11:22:23] [PASSED] drm_test_check_reject_avi_infoframe [11:22:23] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8 [11:22:23] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10 [11:22:23] [PASSED] drm_test_check_reject_audio_infoframe [11:22:23] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes === [11:22:23] ================= drm_managed (2 subtests) ================= [11:22:23] [PASSED] drm_test_managed_release_action [11:22:23] [PASSED] drm_test_managed_run_action [11:22:23] =================== [PASSED] drm_managed =================== [11:22:23] =================== drm_mm (6 subtests) ==================== [11:22:23] [PASSED] drm_test_mm_init [11:22:23] [PASSED] drm_test_mm_debug [11:22:23] [PASSED] drm_test_mm_align32 [11:22:23] [PASSED] drm_test_mm_align64 [11:22:23] [PASSED] drm_test_mm_lowest [11:22:23] [PASSED] drm_test_mm_highest [11:22:23] ===================== [PASSED] drm_mm ====================== [11:22:23] ============= drm_modes_analog_tv (5 subtests) ============= [11:22:23] [PASSED] drm_test_modes_analog_tv_mono_576i [11:22:23] [PASSED] drm_test_modes_analog_tv_ntsc_480i [11:22:23] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined [11:22:23] [PASSED] drm_test_modes_analog_tv_pal_576i [11:22:23] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined [11:22:23] =============== [PASSED] drm_modes_analog_tv =============== [11:22:23] ============== drm_plane_helper (2 subtests) =============== [11:22:23] =============== drm_test_check_plane_state ================ [11:22:23] [PASSED] clipping_simple [11:22:23] [PASSED] clipping_rotate_reflect [11:22:23] [PASSED] positioning_simple [11:22:23] [PASSED] upscaling [11:22:23] [PASSED] downscaling [11:22:23] [PASSED] rounding1 [11:22:23] [PASSED] rounding2 [11:22:23] [PASSED] rounding3 [11:22:23] [PASSED] rounding4 [11:22:23] =========== [PASSED] drm_test_check_plane_state ============ [11:22:23] =========== drm_test_check_invalid_plane_state ============ [11:22:23] [PASSED] positioning_invalid [11:22:23] [PASSED] upscaling_invalid [11:22:23] [PASSED] downscaling_invalid [11:22:23] ======= [PASSED] drm_test_check_invalid_plane_state ======== [11:22:23] ================ [PASSED] drm_plane_helper ================= [11:22:23] ====== drm_connector_helper_tv_get_modes (1 subtest) ======= [11:22:23] ====== drm_test_connector_helper_tv_get_modes_check ======= [11:22:23] [PASSED] None [11:22:23] [PASSED] PAL [11:22:23] [PASSED] NTSC [11:22:23] [PASSED] Both, NTSC Default [11:22:23] [PASSED] Both, PAL Default [11:22:23] [PASSED] Both, NTSC Default, with PAL on command-line [11:22:23] [PASSED] Both, PAL Default, with NTSC on command-line [11:22:23] == [PASSED] drm_test_connector_helper_tv_get_modes_check === [11:22:23] ======== [PASSED] drm_connector_helper_tv_get_modes ======== [11:22:23] ================== drm_rect (9 subtests) =================== [11:22:23] [PASSED] drm_test_rect_clip_scaled_div_by_zero [11:22:23] [PASSED] drm_test_rect_clip_scaled_not_clipped [11:22:23] [PASSED] drm_test_rect_clip_scaled_clipped [11:22:23] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned [11:22:23] ================= drm_test_rect_intersect ================= [11:22:23] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0 [11:22:23] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1 [11:22:23] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0 [11:22:23] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1 [11:22:23] [PASSED] right x left: 2x1+0+0 x 3x1+1+0 [11:22:23] [PASSED] left x right: 3x1+1+0 x 2x1+0+0 [11:22:23] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1 [11:22:23] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0 [11:22:23] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1 [11:22:23] [PASSED] touching side: 1x1+0+0 x 1x1+1+0 [11:22:23] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0 [11:22:23] [PASSED] inside another: 2x2+0+0 x 1x1+1+1 [11:22:23] [PASSED] far away: 1x1+0+0 x 1x1+3+6 [11:22:23] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10 [11:22:23] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10 [11:22:23] ============= [PASSED] drm_test_rect_intersect ============= [11:22:23] ================ drm_test_rect_calc_hscale ================ [11:22:23] [PASSED] normal use [11:22:23] [PASSED] out of max range [11:22:23] [PASSED] out of min range [11:22:23] [PASSED] zero dst [11:22:23] [PASSED] negative src [11:22:23] [PASSED] negative dst [11:22:23] ============ [PASSED] drm_test_rect_calc_hscale ============ [11:22:23] ================ drm_test_rect_calc_vscale ================ [11:22:23] [PASSED] normal use [11:22:23] [PASSED] out of max range [11:22:23] [PASSED] out of min range [11:22:23] [PASSED] zero dst [11:22:23] [PASSED] negative src [11:22:23] [PASSED] negative dst [11:22:23] ============ [PASSED] drm_test_rect_calc_vscale ============ [11:22:23] ================== drm_test_rect_rotate =================== [11:22:23] [PASSED] reflect-x [11:22:23] [PASSED] reflect-y [11:22:23] [PASSED] rotate-0 [11:22:23] [PASSED] rotate-90 [11:22:23] [PASSED] rotate-180 [11:22:23] [PASSED] rotate-270 [11:22:23] ============== [PASSED] drm_test_rect_rotate =============== [11:22:23] ================ drm_test_rect_rotate_inv ================= [11:22:23] [PASSED] reflect-x [11:22:23] [PASSED] reflect-y [11:22:23] [PASSED] rotate-0 [11:22:23] [PASSED] rotate-90 [11:22:23] [PASSED] rotate-180 [11:22:23] [PASSED] rotate-270 [11:22:23] ============ [PASSED] drm_test_rect_rotate_inv ============= [11:22:23] ==================== [PASSED] drm_rect ===================== [11:22:23] ============ drm_sysfb_modeset_test (1 subtest) ============ [11:22:23] ============ drm_test_sysfb_build_fourcc_list ============= [11:22:23] [PASSED] no native formats [11:22:23] [PASSED] XRGB8888 as native format [11:22:23] [PASSED] remove duplicates [11:22:23] [PASSED] convert alpha formats [11:22:23] [PASSED] random formats [11:22:23] ======== [PASSED] drm_test_sysfb_build_fourcc_list ========= [11:22:23] ============= [PASSED] drm_sysfb_modeset_test ============== [11:22:23] ================== drm_fixp (2 subtests) =================== [11:22:23] [PASSED] drm_test_int2fixp [11:22:23] [PASSED] drm_test_sm2fixp [11:22:23] ==================== [PASSED] drm_fixp ===================== [11:22:23] ============================================================ [11:22:23] Testing complete. Ran 621 tests: passed: 621 [11:22:23] Elapsed time: 25.853s total, 1.722s configuring, 23.965s building, 0.132s running + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig [11:22:23] Configuring KUnit Kernel ... Regenerating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [11:22:25] 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 [11:22:34] Starting KUnit Kernel (1/1)... [11:22:34] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [11:22:34] ================= ttm_device (5 subtests) ================== [11:22:34] [PASSED] ttm_device_init_basic [11:22:34] [PASSED] ttm_device_init_multiple [11:22:34] [PASSED] ttm_device_fini_basic [11:22:34] [PASSED] ttm_device_init_no_vma_man [11:22:34] ================== ttm_device_init_pools ================== [11:22:34] [PASSED] No DMA allocations, no DMA32 required [11:22:34] [PASSED] DMA allocations, DMA32 required [11:22:34] [PASSED] No DMA allocations, DMA32 required [11:22:34] [PASSED] DMA allocations, no DMA32 required [11:22:34] ============== [PASSED] ttm_device_init_pools ============== [11:22:34] =================== [PASSED] ttm_device ==================== [11:22:34] ================== ttm_pool (8 subtests) =================== [11:22:34] ================== ttm_pool_alloc_basic =================== [11:22:34] [PASSED] One page [11:22:34] [PASSED] More than one page [11:22:34] [PASSED] Above the allocation limit [11:22:34] [PASSED] One page, with coherent DMA mappings enabled [11:22:34] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [11:22:34] ============== [PASSED] ttm_pool_alloc_basic =============== [11:22:34] ============== ttm_pool_alloc_basic_dma_addr ============== [11:22:34] [PASSED] One page [11:22:34] [PASSED] More than one page [11:22:34] [PASSED] Above the allocation limit [11:22:34] [PASSED] One page, with coherent DMA mappings enabled [11:22:34] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [11:22:34] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ========== [11:22:34] [PASSED] ttm_pool_alloc_order_caching_match [11:22:34] [PASSED] ttm_pool_alloc_caching_mismatch [11:22:34] [PASSED] ttm_pool_alloc_order_mismatch [11:22:34] [PASSED] ttm_pool_free_dma_alloc [11:22:34] [PASSED] ttm_pool_free_no_dma_alloc [11:22:34] [PASSED] ttm_pool_fini_basic [11:22:34] ==================== [PASSED] ttm_pool ===================== [11:22:34] ================ ttm_resource (8 subtests) ================= [11:22:34] ================= ttm_resource_init_basic ================= [11:22:34] [PASSED] Init resource in TTM_PL_SYSTEM [11:22:34] [PASSED] Init resource in TTM_PL_VRAM [11:22:34] [PASSED] Init resource in a private placement [11:22:34] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags [11:22:34] ============= [PASSED] ttm_resource_init_basic ============= [11:22:34] [PASSED] ttm_resource_init_pinned [11:22:34] [PASSED] ttm_resource_fini_basic [11:22:34] [PASSED] ttm_resource_manager_init_basic [11:22:34] [PASSED] ttm_resource_manager_usage_basic [11:22:34] [PASSED] ttm_resource_manager_set_used_basic [11:22:34] [PASSED] ttm_sys_man_alloc_basic [11:22:34] [PASSED] ttm_sys_man_free_basic [11:22:34] ================== [PASSED] ttm_resource =================== [11:22:34] =================== ttm_tt (15 subtests) =================== [11:22:34] ==================== ttm_tt_init_basic ==================== [11:22:34] [PASSED] Page-aligned size [11:22:34] [PASSED] Extra pages requested [11:22:34] ================ [PASSED] ttm_tt_init_basic ================ [11:22:34] [PASSED] ttm_tt_init_misaligned [11:22:34] [PASSED] ttm_tt_fini_basic [11:22:34] [PASSED] ttm_tt_fini_sg [11:22:34] [PASSED] ttm_tt_fini_shmem [11:22:34] [PASSED] ttm_tt_create_basic [11:22:34] [PASSED] ttm_tt_create_invalid_bo_type [11:22:34] [PASSED] ttm_tt_create_ttm_exists [11:22:34] [PASSED] ttm_tt_create_failed [11:22:34] [PASSED] ttm_tt_destroy_basic [11:22:34] [PASSED] ttm_tt_populate_null_ttm [11:22:34] [PASSED] ttm_tt_populate_populated_ttm [11:22:34] [PASSED] ttm_tt_unpopulate_basic [11:22:34] [PASSED] ttm_tt_unpopulate_empty_ttm [11:22:34] [PASSED] ttm_tt_swapin_basic [11:22:34] ===================== [PASSED] ttm_tt ====================== [11:22:34] =================== ttm_bo (14 subtests) =================== [11:22:34] =========== ttm_bo_reserve_optimistic_no_ticket =========== [11:22:34] [PASSED] Cannot be interrupted and sleeps [11:22:34] [PASSED] Cannot be interrupted, locks straight away [11:22:34] [PASSED] Can be interrupted, sleeps [11:22:34] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket ======= [11:22:34] [PASSED] ttm_bo_reserve_locked_no_sleep [11:22:34] [PASSED] ttm_bo_reserve_no_wait_ticket [11:22:34] [PASSED] ttm_bo_reserve_double_resv [11:22:34] [PASSED] ttm_bo_reserve_interrupted [11:22:34] [PASSED] ttm_bo_reserve_deadlock [11:22:34] [PASSED] ttm_bo_unreserve_basic [11:22:34] [PASSED] ttm_bo_unreserve_pinned [11:22:34] [PASSED] ttm_bo_unreserve_bulk [11:22:34] [PASSED] ttm_bo_fini_basic [11:22:34] [PASSED] ttm_bo_fini_shared_resv [11:22:34] [PASSED] ttm_bo_pin_basic [11:22:34] [PASSED] ttm_bo_pin_unpin_resource [11:22:34] [PASSED] ttm_bo_multiple_pin_one_unpin [11:22:34] ===================== [PASSED] ttm_bo ====================== [11:22:34] ============== ttm_bo_validate (22 subtests) =============== [11:22:34] ============== ttm_bo_init_reserved_sys_man =============== [11:22:34] [PASSED] Buffer object for userspace [11:22:34] [PASSED] Kernel buffer object [11:22:34] [PASSED] Shared buffer object [11:22:34] ========== [PASSED] ttm_bo_init_reserved_sys_man =========== [11:22:34] ============== ttm_bo_init_reserved_mock_man ============== [11:22:34] [PASSED] Buffer object for userspace [11:22:34] [PASSED] Kernel buffer object [11:22:34] [PASSED] Shared buffer object [11:22:34] ========== [PASSED] ttm_bo_init_reserved_mock_man ========== [11:22:34] [PASSED] ttm_bo_init_reserved_resv [11:22:34] ================== ttm_bo_validate_basic ================== [11:22:34] [PASSED] Buffer object for userspace [11:22:34] [PASSED] Kernel buffer object [11:22:34] [PASSED] Shared buffer object [11:22:34] ============== [PASSED] ttm_bo_validate_basic ============== [11:22:34] [PASSED] ttm_bo_validate_invalid_placement [11:22:34] ============= ttm_bo_validate_same_placement ============== [11:22:34] [PASSED] System manager [11:22:34] [PASSED] VRAM manager [11:22:34] ========= [PASSED] ttm_bo_validate_same_placement ========== [11:22:34] [PASSED] ttm_bo_validate_failed_alloc [11:22:34] [PASSED] ttm_bo_validate_pinned [11:22:34] [PASSED] ttm_bo_validate_busy_placement [11:22:34] ================ ttm_bo_validate_multihop ================= [11:22:34] [PASSED] Buffer object for userspace [11:22:34] [PASSED] Kernel buffer object [11:22:34] [PASSED] Shared buffer object [11:22:34] ============ [PASSED] ttm_bo_validate_multihop ============= [11:22:34] ========== ttm_bo_validate_no_placement_signaled ========== [11:22:34] [PASSED] Buffer object in system domain, no page vector [11:22:34] [PASSED] Buffer object in system domain with an existing page vector [11:22:34] ====== [PASSED] ttm_bo_validate_no_placement_signaled ====== [11:22:34] ======== ttm_bo_validate_no_placement_not_signaled ======== [11:22:34] [PASSED] Buffer object for userspace [11:22:34] [PASSED] Kernel buffer object [11:22:34] [PASSED] Shared buffer object [11:22:34] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ==== [11:22:34] [PASSED] ttm_bo_validate_move_fence_signaled [11:22:34] ========= ttm_bo_validate_move_fence_not_signaled ========= [11:22:34] [PASSED] Waits for GPU [11:22:34] [PASSED] Tries to lock straight away [11:22:35] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled ===== [11:22:35] [PASSED] ttm_bo_validate_swapout [11:22:35] [PASSED] ttm_bo_validate_happy_evict [11:22:35] [PASSED] ttm_bo_validate_all_pinned_evict [11:22:35] [PASSED] ttm_bo_validate_allowed_only_evict [11:22:35] [PASSED] ttm_bo_validate_deleted_evict [11:22:35] [PASSED] ttm_bo_validate_busy_domain_evict [11:22:35] [PASSED] ttm_bo_validate_evict_gutting [11:22:35] [PASSED] ttm_bo_validate_recrusive_evict [11:22:35] ================= [PASSED] ttm_bo_validate ================= [11:22:35] ============================================================ [11:22:35] Testing complete. Ran 102 tests: passed: 102 [11:22:35] Elapsed time: 11.597s total, 1.760s configuring, 9.622s building, 0.181s running + cleanup ++ stat -c %u:%g /kernel + chown -R 1003:1003 /kernel ^ permalink raw reply [flat|nested] 8+ messages in thread
* ✓ Xe.CI.BAT: success for Add drm_ras netlink error event support 2026-05-18 11:20 [PATCH 0/2] Add drm_ras netlink error event support Riana Tauro ` (2 preceding siblings ...) 2026-05-18 11:22 ` ✓ CI.KUnit: success for Add drm_ras netlink error event support Patchwork @ 2026-05-18 12:00 ` Patchwork 2026-05-18 15:23 ` ✓ Xe.CI.FULL: " Patchwork 4 siblings, 0 replies; 8+ messages in thread From: Patchwork @ 2026-05-18 12:00 UTC (permalink / raw) To: Riana Tauro; +Cc: intel-xe [-- Attachment #1: Type: text/plain, Size: 953 bytes --] == Series Details == Series: Add drm_ras netlink error event support URL : https://patchwork.freedesktop.org/series/166765/ State : success == Summary == CI Bug Log - changes from xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2_BAT -> xe-pw-166765v1_BAT ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (13 -> 13) ------------------------------ No changes in participating hosts Changes ------- No changes found Build changes ------------- * Linux: xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2 -> xe-pw-166765v1 IGT_8917: 65d691069f26fc2a42c79e2364241320b85d48bc @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2: 4a64e92e2b244c93c99832a0850204ed2ddca5b2 xe-pw-166765v1: 166765v1 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/index.html [-- Attachment #2: Type: text/html, Size: 1501 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* ✓ Xe.CI.FULL: success for Add drm_ras netlink error event support 2026-05-18 11:20 [PATCH 0/2] Add drm_ras netlink error event support Riana Tauro ` (3 preceding siblings ...) 2026-05-18 12:00 ` ✓ Xe.CI.BAT: " Patchwork @ 2026-05-18 15:23 ` Patchwork 4 siblings, 0 replies; 8+ messages in thread From: Patchwork @ 2026-05-18 15:23 UTC (permalink / raw) To: Riana Tauro; +Cc: intel-xe [-- Attachment #1: Type: text/plain, Size: 21555 bytes --] == Series Details == Series: Add drm_ras netlink error event support URL : https://patchwork.freedesktop.org/series/166765/ State : success == Summary == CI Bug Log - changes from xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2_FULL -> xe-pw-166765v1_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-166765v1_FULL that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_big_fb@x-tiled-16bpp-rotate-90: - shard-bmg: NOTRUN -> [SKIP][1] ([Intel XE#2327]) +1 other test skip [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html * igt@kms_bw@connected-linear-tiling-3-displays-target-2160x1440p: - shard-bmg: NOTRUN -> [SKIP][2] ([Intel XE#7679]) [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@kms_bw@connected-linear-tiling-3-displays-target-2160x1440p.html * igt@kms_ccs@random-ccs-data-4-tiled-mtl-mc-ccs: - shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#2887]) [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@kms_ccs@random-ccs-data-4-tiled-mtl-mc-ccs.html * igt@kms_chamelium_hpd@dp-hpd-storm: - shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#2252]) +1 other test skip [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@kms_chamelium_hpd@dp-hpd-storm.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1: - shard-lnl: [PASS][5] -> [FAIL][6] ([Intel XE#301]) [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling: - shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#7178] / [Intel XE#7351]) [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling.html * igt@kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw: - shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#4141]) [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw.html * igt@kms_frontbuffer_tracking@fbcdrrshdr-stridechange: - shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#2311]) +3 other tests skip [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@kms_frontbuffer_tracking@fbcdrrshdr-stridechange.html * igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-shrfb-plflip-blt: - shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#2313]) [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-shrfb-plflip-blt.html * igt@kms_hdmi_inject@inject-audio: - shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#7308]) [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@kms_hdmi_inject@inject-audio.html * igt@kms_hdr@invalid-hdr: - shard-bmg: [PASS][12] -> [SKIP][13] ([Intel XE#1503]) [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-7/igt@kms_hdr@invalid-hdr.html [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-4/igt@kms_hdr@invalid-hdr.html * igt@kms_hdr@invalid-hdr@pipe-a-hdmi-a-3-xrgb2101010: - shard-bmg: [PASS][14] -> [SKIP][15] ([Intel XE#7922]) +1 other test skip [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-7/igt@kms_hdr@invalid-hdr@pipe-a-hdmi-a-3-xrgb2101010.html [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-4/igt@kms_hdr@invalid-hdr@pipe-a-hdmi-a-3-xrgb2101010.html * igt@kms_hdr@static-toggle-suspend@pipe-a-hdmi-a-3-xrgb16161616f: - shard-bmg: [PASS][16] -> [SKIP][17] ([Intel XE#7915]) +1 other test skip [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-10/igt@kms_hdr@static-toggle-suspend@pipe-a-hdmi-a-3-xrgb16161616f.html [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@kms_hdr@static-toggle-suspend@pipe-a-hdmi-a-3-xrgb16161616f.html * igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier: - shard-bmg: NOTRUN -> [SKIP][18] ([Intel XE#7283]) [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier.html * igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf: - shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#1489]) [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf.html * igt@kms_psr@psr2-cursor-plane-move: - shard-bmg: NOTRUN -> [SKIP][20] ([Intel XE#2234] / [Intel XE#2850]) [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@kms_psr@psr2-cursor-plane-move.html * igt@kms_vrr@flipline: - shard-lnl: [PASS][21] -> [FAIL][22] ([Intel XE#4227] / [Intel XE#7397]) +1 other test fail [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-lnl-1/igt@kms_vrr@flipline.html [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-lnl-5/igt@kms_vrr@flipline.html * igt@kms_vrr@seamless-rr-switch-vrr: - shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#1499]) [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@kms_vrr@seamless-rr-switch-vrr.html * igt@xe_eudebug_online@writes-caching-vram-bb-vram-target-vram: - shard-bmg: NOTRUN -> [SKIP][24] ([Intel XE#7636]) +1 other test skip [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@xe_eudebug_online@writes-caching-vram-bb-vram-target-vram.html * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate-race: - shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#2322] / [Intel XE#7372]) [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate-race.html * igt@xe_exec_multi_queue@few-execs-preempt-mode-fault-basic: - shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#6874]) +2 other tests skip [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@xe_exec_multi_queue@few-execs-preempt-mode-fault-basic.html * igt@xe_pat@pat-index-xelp: - shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#2245] / [Intel XE#7590]) [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@xe_pat@pat-index-xelp.html * igt@xe_query@multigpu-query-invalid-cs-cycles: - shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#944]) [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@xe_query@multigpu-query-invalid-cs-cycles.html #### Possible fixes #### * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1: - shard-lnl: [FAIL][29] ([Intel XE#301]) -> [PASS][30] +2 other tests pass [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html * igt@kms_hdr@invalid-metadata-sizes@pipe-a-hdmi-a-3-xrgb16161616f: - shard-bmg: [SKIP][31] ([Intel XE#7915]) -> [PASS][32] +1 other test pass [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-8/igt@kms_hdr@invalid-metadata-sizes@pipe-a-hdmi-a-3-xrgb16161616f.html [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-2/igt@kms_hdr@invalid-metadata-sizes@pipe-a-hdmi-a-3-xrgb16161616f.html * igt@xe_exec_system_allocator@process-many-large-malloc-busy-nomemset: - shard-bmg: [ABORT][33] -> [PASS][34] [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@xe_exec_system_allocator@process-many-large-malloc-busy-nomemset.html [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-10/igt@xe_exec_system_allocator@process-many-large-malloc-busy-nomemset.html * igt@xe_pat@pt-caching-random-offsets: - shard-bmg: [SKIP][35] ([Intel XE#6703]) -> [PASS][36] +46 other tests pass [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@xe_pat@pt-caching-random-offsets.html [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@xe_pat@pt-caching-random-offsets.html * igt@xe_render_copy@render-full-compressed@render-tile64-256x256: - shard-bmg: [FAIL][37] -> [PASS][38] +5 other tests pass [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@xe_render_copy@render-full-compressed@render-tile64-256x256.html [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@xe_render_copy@render-full-compressed@render-tile64-256x256.html #### Warnings #### * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels: - shard-bmg: [SKIP][39] ([Intel XE#6703]) -> [SKIP][40] ([Intel XE#2370]) [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html * igt@kms_big_fb@4-tiled-32bpp-rotate-90: - shard-bmg: [SKIP][41] ([Intel XE#6703]) -> [SKIP][42] ([Intel XE#2327]) [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html * igt@kms_chamelium_color@ctm-green-to-red: - shard-bmg: [SKIP][43] ([Intel XE#6703]) -> [SKIP][44] ([Intel XE#2325] / [Intel XE#7358]) [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@kms_chamelium_color@ctm-green-to-red.html [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@kms_chamelium_color@ctm-green-to-red.html * igt@kms_cursor_crc@cursor-offscreen-512x512: - shard-bmg: [SKIP][45] ([Intel XE#6703]) -> [SKIP][46] ([Intel XE#2321] / [Intel XE#7355]) [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@kms_cursor_crc@cursor-offscreen-512x512.html [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@kms_cursor_crc@cursor-offscreen-512x512.html * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions: - shard-lnl: [SKIP][47] ([Intel XE#309] / [Intel XE#7343]) -> [SKIP][48] ([Intel XE#309] / [Intel XE#7343] / [Intel XE#7935]) [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-lnl-1/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-lnl-8/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-blt: - shard-bmg: [SKIP][49] ([Intel XE#6703]) -> [SKIP][50] ([Intel XE#2311]) +4 other tests skip [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-blt.html [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-wc: - shard-bmg: [SKIP][51] ([Intel XE#6703]) -> [SKIP][52] ([Intel XE#4141]) [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-wc.html [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-cur-indfb-draw-mmap-wc: - shard-bmg: [SKIP][53] ([Intel XE#6703]) -> [SKIP][54] ([Intel XE#2313]) +3 other tests skip [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-cur-indfb-draw-mmap-wc.html [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-cur-indfb-draw-mmap-wc.html * igt@kms_plane_lowres@tiling-yf: - shard-bmg: [SKIP][55] ([Intel XE#6703]) -> [SKIP][56] ([Intel XE#2393]) [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@kms_plane_lowres@tiling-yf.html [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@kms_plane_lowres@tiling-yf.html * igt@kms_pm_rpm@dpms-mode-unset-lpsp: - shard-bmg: [SKIP][57] ([Intel XE#6703]) -> [SKIP][58] ([Intel XE#1439] / [Intel XE#7402] / [Intel XE#836]) [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html * igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf: - shard-bmg: [SKIP][59] ([Intel XE#6703]) -> [SKIP][60] ([Intel XE#1489]) [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf.html [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf.html * igt@kms_rotation_crc@bad-pixel-format: - shard-bmg: [SKIP][61] ([Intel XE#6703]) -> [SKIP][62] ([Intel XE#3904] / [Intel XE#7342]) [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@kms_rotation_crc@bad-pixel-format.html [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@kms_rotation_crc@bad-pixel-format.html * igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr: - shard-bmg: [SKIP][63] ([Intel XE#6703]) -> [SKIP][64] ([Intel XE#2322] / [Intel XE#7372]) [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr.html [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr.html * igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate: - shard-bmg: [SKIP][65] ([Intel XE#6703]) -> [SKIP][66] ([Intel XE#7136]) [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate.html [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate.html * igt@xe_exec_multi_queue@many-queues-userptr: - shard-bmg: [SKIP][67] ([Intel XE#6703]) -> [SKIP][68] ([Intel XE#6874]) +1 other test skip [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@xe_exec_multi_queue@many-queues-userptr.html [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@xe_exec_multi_queue@many-queues-userptr.html * igt@xe_exec_sip_eudebug@breakpoint-writesip-nodebug: - shard-bmg: [SKIP][69] ([Intel XE#6703]) -> [SKIP][70] ([Intel XE#7636]) [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@xe_exec_sip_eudebug@breakpoint-writesip-nodebug.html [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@xe_exec_sip_eudebug@breakpoint-writesip-nodebug.html * igt@xe_exec_threads@threads-multi-queue-mixed-fd-userptr-rebind: - shard-bmg: [SKIP][71] ([Intel XE#6703]) -> [SKIP][72] ([Intel XE#7138]) [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2/shard-bmg-2/igt@xe_exec_threads@threads-multi-queue-mixed-fd-userptr-rebind.html [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/shard-bmg-8/igt@xe_exec_threads@threads-multi-queue-mixed-fd-userptr-rebind.html [Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439 [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489 [Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499 [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503 [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234 [Intel XE#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245 [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252 [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311 [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313 [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#2370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2370 [Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393 [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#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309 [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#4227]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4227 [Intel XE#6703]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6703 [Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874 [Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136 [Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138 [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#7308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7308 [Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342 [Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343 [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#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358 [Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372 [Intel XE#7397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7397 [Intel XE#7402]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7402 [Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590 [Intel XE#7636]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7636 [Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679 [Intel XE#7915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7915 [Intel XE#7922]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7922 [Intel XE#7935]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7935 [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836 [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944 Build changes ------------- * Linux: xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2 -> xe-pw-166765v1 IGT_8917: 65d691069f26fc2a42c79e2364241320b85d48bc @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-5079-4a64e92e2b244c93c99832a0850204ed2ddca5b2: 4a64e92e2b244c93c99832a0850204ed2ddca5b2 xe-pw-166765v1: 166765v1 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-166765v1/index.html [-- Attachment #2: Type: text/html, Size: 25100 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-06-02 14:41 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-05-18 11:20 [PATCH 0/2] Add drm_ras netlink error event support Riana Tauro 2026-05-18 11:20 ` [PATCH 1/2] drm/drm_ras: Add drm_ras netlink error event Riana Tauro 2026-06-01 6:22 ` Raag Jadav 2026-06-02 14:41 ` Tauro, Riana 2026-05-18 11:20 ` [PATCH 2/2] drm/xe/xe_drm_ras: Add error-event support in XE drm_ras Riana Tauro 2026-05-18 11:22 ` ✓ CI.KUnit: success for Add drm_ras netlink error event support Patchwork 2026-05-18 12:00 ` ✓ Xe.CI.BAT: " Patchwork 2026-05-18 15:23 ` ✓ 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