From: sashiko-bot@kernel.org
To: "Badal Nilawar" <badal.nilawar@intel.com>,
intel-xe@lists.freedesktop.org
Subject: Re: [PATCH v7 10/10] drm/xe/xe_ras: Report correctable errors using SIGID
Date: Thu, 29 Oct 2026 08:42:10 +0000 [thread overview]
Message-ID: <sashiko-outbox-188984@kernel.org> (raw)
In-Reply-To: <20261029082752.1739281-22-badal.nilawar@intel.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/xe/ras: unrecognized log component for XE_RAS_COMP_RESERVED in ras_comp_to_log_comp()
--
commit 523a0553a8f4f634b0b558643739a2f201d23a02
Author: Badal Nilawar <badal.nilawar@intel.com>
drm/xe/xe_ras: Report correctable errors using SIGID
This commit replaces xe_warn() in xe_ras_counter_threshold_crossed() with
xe_log_from() to report RAS counter threshold crossings using hardware
SIGIDs and log components.
> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
> index 58d3834345bc1..09b3c96042d5b 100644
> --- a/drivers/gpu/drm/xe/xe_ras.c
> +++ b/drivers/gpu/drm/xe/xe_ras.c
[ ... ]
> @@ -226,6 +228,12 @@ static int ras_status_to_errno(u32 status)
> }
> }
>
> +static u16 ras_comp_to_log_comp(u8 component)
> +{
> + return FIELD_PREP(XE_LOG_COMPONENT_CLASS_MASK, XE_LOG_COMPONENT_CLASS_HARDWARE) |
> + FIELD_PREP(XE_LOG_COMPONENT_TYPE_MASK, component);
> +}
> +
> static inline const char *sev_to_str(u8 severity)
> {
> if (severity >= XE_RAS_SEV_MAX)
> @@ -714,8 +722,11 @@ void xe_ras_counter_threshold_crossed(struct xe_device *xe,
> if (!ras_counter_is_valid(xe, &errors[id]))
> continue;
>
> - xe_warn(xe, "[RAS]: %s %s detected\n",
> - comp_to_str(component), sev_to_str(severity));
> + xe_log_from(xe, ras_sev_to_cper_sev(severity),
> + ras_comp_to_hw_sigid(component),
> + ras_comp_to_log_comp(component),
> + &errors[id], sizeof(errors[id]),
> + "error detected\n");
[Severity: Medium]
What happens if the system controller reports a counter with component set
to XE_RAS_COMP_RESERVED (3)?
In drivers/gpu/drm/xe/xe_ras.c, ras_counter_is_valid() only checks the outer
bounds of component:
if (!in_range(component, XE_RAS_COMP_NOT_SUPPORTED + 1, XE_RAS_COMP_MAX - 1)) {
xe_err(xe, "sysctrl: unexpected component %u\n", component);
return false;
}
This allows XE_RAS_COMP_RESERVED (3) to pass validation. While
ras_comp_to_hw_sigid() uses a switch statement that falls back to
XE_SIGID_HW for unhandled values, ras_comp_to_log_comp() unconditionally
encodes component into XE_LOG_COMPONENT_TYPE_MASK under
XE_LOG_COMPONENT_CLASS_HARDWARE.
Because hardware component 3 is reserved and omitted from
DEFINE_XE_LOG_HARDWARE_COMPONENTS in drivers/gpu/drm/xe/abi/xe_log_abi.h:
#define DEFINE_XE_LOG_HARDWARE_COMPONENTS(define) \
define(HARDWARE, 1, DEVICE_MEMORY, DEVICE_MEMORY, "Device Memory") \
define(HARDWARE, 2, CORE_COMPUTE, CORE_COMPUTE, "Core Compute") \
/* HARDWARE, 3, RESERVED */ \
define(HARDWARE, 4, PCIE, PCIE, "PCIe Interface") \
define(HARDWARE, 5, FABRIC, FABRIC, "Fabric") \
define(HARDWARE, 6, SOC_INTERNAL, SOC_INTERNAL, "SoC Internal") \
passing that encoded value to xe_log_from() will miss all cases in
log_component_prefix() and hit log_unknown_component_prefix() in
drivers/gpu/drm/xe/xe_log.c:
WARN(IS_ENABLED(CONFIG_DRM_XE_DEBUG), "LOG: unrecognized component %u.%u\n", class, type);
Should ras_counter_is_valid() reject XE_RAS_COMP_RESERVED, or should
ras_comp_to_log_comp() handle unmapped components like
ras_comp_to_hw_sigid() does?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261029082752.1739281-12-badal.nilawar@intel.com?part=10
next prev parent reply other threads:[~2026-10-29 8:42 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-29 8:27 [PATCH v7 00/10] Add CPER logging support for CRI Badal Nilawar
2026-10-29 8:27 ` [PATCH v7 01/10] drm/xe/cper: Add CPER reporting entry point for xe_log Badal Nilawar
2026-10-29 8:27 ` [PATCH v7 02/10] drm/xe/cper: Retrieve the error counter record for CPER reporting Badal Nilawar
2026-10-29 8:27 ` [PATCH v7 03/10] drm/xe/cper: Initialize Intel-specific CPER header Badal Nilawar
2026-10-29 8:27 ` [PATCH v7 04/10] drm/xe/cper: Construct CPER record for hardware errors Badal Nilawar
2026-10-29 8:27 ` [PATCH v7 05/10] drm/xe/cper: Log CPER records for aggregate counter retrieval Badal Nilawar
2026-10-29 8:27 ` [PATCH v7 06/10] drm/xe/cper: Emit cper record to trace buf Badal Nilawar
2026-10-29 8:28 ` [PATCH v7 07/10] drm/xe/xe_ras: Report device memory errors using SIGID Badal Nilawar
2026-10-29 8:28 ` [PATCH v7 08/10] drm/xe/xe_ras: Report core compute " Badal Nilawar
2026-10-29 8:28 ` [PATCH v7 09/10] drm/xe/xe_ras: Report soc internal " Badal Nilawar
2026-10-29 8:28 ` [PATCH v7 10/10] drm/xe/xe_ras: Report correctable " Badal Nilawar
2026-10-29 8:42 ` sashiko-bot [this message]
2026-10-29 9:48 ` Nilawar, Badal
2026-10-29 8:40 ` ✗ CI.checkpatch: warning for Add CPER logging support for CRI (rev7) Patchwork
2026-10-29 8:42 ` ✓ CI.KUnit: success " Patchwork
2026-10-29 9:17 ` [PATCH v7 00/10] Add CPER logging support for CRI Raag Jadav
2026-10-29 9:26 ` ✓ Xe.CI.BAT: success for Add CPER logging support for CRI (rev7) Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=sashiko-outbox-188984@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=badal.nilawar@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox