From: "Mallesh, Koujalagi" <mallesh.koujalagi@intel.com>
To: "Nilawar, Badal" <badal.nilawar@intel.com>,
<intel-xe@lists.freedesktop.org>, <rodrigo.vivi@intel.com>,
<matthew.brost@intel.com>
Cc: <anshuman.gupta@intel.com>, <vinay.belgaumkar@intel.com>,
<riana.tauro@intel.com>, <karthik.poosa@intel.com>,
<sk.anirban@intel.com>, <raag.jadav@intel.com>,
<aravind.iddamsetty@linux.intel.com>,
<jani.nikula@linux.intel.com>
Subject: Re: [PATCH v3 1/6] drm/xe/cper: Add software CPER emission entry point
Date: Tue, 10 Nov 2026 19:19:48 +0530 [thread overview]
Message-ID: <d7c8f01c-2e27-4e1a-93a2-35dfdbe0c5b2@intel.com> (raw)
In-Reply-To: <f58d57bc-05c2-42fc-94af-dbd5ea260323@intel.com>
On 10-11-2026 06:58 pm, Nilawar, Badal wrote:
>
> On 05-11-2026 14:23, Mallesh Koujalagi wrote:
>> Add a software CPER emission handler for CRI SIGIDs.
>>
>> Keep hardware CPER handling unchanged and return early
>> when the Xe device is unavailable.
>>
>> Cc: Badal Nilawar <badal.nilawar@intel.com>
>> Signed-off-by: Mallesh Koujalagi <mallesh.koujalagi@intel.com>
>> ---
>> v3:
>> - Handle early PCI probe where xe device is null. (Sashiko)
>> ---
>> drivers/gpu/drm/xe/xe_cper.c | 22 +++++++++++++++++++++-
>> 1 file changed, 21 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_cper.c b/drivers/gpu/drm/xe/xe_cper.c
>> index bb90030bcd2d..db3513c59834 100644
>> --- a/drivers/gpu/drm/xe/xe_cper.c
>> +++ b/drivers/gpu/drm/xe/xe_cper.c
>> @@ -32,6 +32,11 @@ static bool is_hw_sigid(enum xe_sigid sigid)
>> return in_range(sigid, INTEL_SIGID_GPU_XE_HARDWARE_START,
>> INTEL_SIGID_BATCH);
>> }
>> +static bool is_sw_sigid(enum xe_sigid sigid)
>> +{
>> + return in_range(sigid, INTEL_SIGID_GPU_XE_SOFTWARE_START,
>> INTEL_SIGID_BATCH);
>> +}
>> +
>> /* CPER platform_id GUIDs (RFC 9562 UUIDv5) for each PCI device ID. */
>> static const struct xe_device_guid_entry xe_device_guids[] = {
>> { 0x674C, GUID_INIT(0x9046afe5, 0x9041, 0x5124,
>> @@ -240,6 +245,12 @@ static void cper_emit_hw_err(struct xe_device
>> *xe, int cper_sev, enum xe_sigid s
>> xe_cper_emit_counter(xe, cper_sev, sigid, counter, &response);
>> }
>> +static void cper_emit_sw_err(struct xe_device *xe, int cper_sev,
>> enum xe_sigid sigid,
>> + u32 component, u32 location, const void *data,
>> + struct va_format *vaf)
>> +{
>> +}
>> +
>> /**
>> * xe_cper_emit() - Emit a CPER record for a SIGID log entry
>> * @xe: The &xe_device
>> @@ -268,12 +279,21 @@ void xe_cper_emit(struct xe_device *xe, int
>> cper_sev, enum xe_sigid sigid,
>> u32 component, u32 location, const void *data, size_t len,
>> struct va_format *vaf)
>> {
>> + if (!xe)
>> + return;
>
> xe is expected to be valid here. Silently returning on NULL would hide
> a caller bug.
During early probe function xe is null, only passed pdev (pcie device)
to emit logs. In that
case we need to handle it.
>
>> +
>> if (is_hw_sigid(sigid) && !IS_ERR_OR_NULL(data)) {
>> cper_emit_hw_err(xe, cper_sev, sigid, data);
>> return;
>> }
>> - /* TODO software CPER */
>> + if (xe->info.platform == XE_CRESCENTISLAND) {
>
> Introduce has_driver_cper flag here.
Ok, will update next revision.
Thanks,
-/Mallesh
>
> Thanks,
> Badal
>
>> + if (is_sw_sigid(sigid) &&
>> + (cper_sev == CPER_SEV_RECOVERABLE ||
>> + cper_sev == CPER_SEV_FATAL))
>> + cper_emit_sw_err(xe, cper_sev, sigid, component,
>> location, data, vaf);
>> + return;
>> + }
>> }
>> static ssize_t cper_on_query_show(struct device *dev, struct
>> device_attribute *attr, char *buf)
next prev parent reply other threads:[~2026-11-10 13:50 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-05 8:53 [PATCH v3 0/6] drm/xe/cper: Software (driver-detected) CPER error reporting Mallesh Koujalagi
2026-11-05 8:53 ` [PATCH v3 1/6] drm/xe/cper: Add software CPER emission entry point Mallesh Koujalagi
2026-11-10 13:28 ` Nilawar, Badal
2026-11-10 13:49 ` Mallesh, Koujalagi [this message]
2026-11-10 14:58 ` Nilawar, Badal
2026-11-11 8:51 ` Mallesh, Koujalagi
2026-11-05 8:53 ` [PATCH v3 2/6] drm/xe/cper: Prepare CPER headers for software errors Mallesh Koujalagi
2026-11-10 13:55 ` Nilawar, Badal
2026-11-11 10:31 ` Mallesh, Koujalagi
2026-11-05 8:53 ` [PATCH v3 3/6] drm/xe/cper: Emit software CPER records Mallesh Koujalagi
2026-11-10 15:12 ` Nilawar, Badal
2026-11-11 8:20 ` Mallesh, Koujalagi
2026-11-05 8:53 ` [PATCH v3 4/6] drm/xe/cper: Make software CPER emission atomic-safe Mallesh Koujalagi
2026-11-10 15:01 ` Nilawar, Badal
2026-11-11 4:59 ` Mallesh, Koujalagi
2026-11-05 8:53 ` [PATCH v3 5/6] drm/xe/log: Add software CPER information to KUnit output Mallesh Koujalagi
2026-11-05 8:53 ` [PATCH v3 6/6] drm/xe/log: Test software CPER emission parameters Mallesh Koujalagi
2026-11-05 9:03 ` ✓ CI.KUnit: success for drm/xe/cper: Software (driver-detected) CPER error reporting (rev3) Patchwork
2026-11-05 9:39 ` ✓ Xe.CI.BAT: " Patchwork
2026-11-06 4:19 ` ✗ Xe.CI.FULL: failure " 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=d7c8f01c-2e27-4e1a-93a2-35dfdbe0c5b2@intel.com \
--to=mallesh.koujalagi@intel.com \
--cc=anshuman.gupta@intel.com \
--cc=aravind.iddamsetty@linux.intel.com \
--cc=badal.nilawar@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=karthik.poosa@intel.com \
--cc=matthew.brost@intel.com \
--cc=raag.jadav@intel.com \
--cc=riana.tauro@intel.com \
--cc=rodrigo.vivi@intel.com \
--cc=sk.anirban@intel.com \
--cc=vinay.belgaumkar@intel.com \
/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