From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: intel-xe@lists.freedesktop.org,
"Mallesh Koujalagi" <mallesh.koujalagi@intel.com>,
"Thomas Hellström" <thomas.hellstrom@linux.intel.com>,
"Matthew Brost" <matthew.brost@intel.com>,
"Aravind Iddamsetty" <aravind.iddamsetty@intel.com>,
"Riana Tauro" <riana.tauro@intel.com>,
"Raag Jadav" <raag.jadav@intel.com>,
"Badal Nilawar" <badal.nilawar@intel.com>
Subject: Re: [PATCH v5 00/33] drm/xe: Add structured SIGID error logging infrastructure
Date: Fri, 14 Aug 2026 14:54:41 -0400 [thread overview]
Message-ID: <an9kcfvZJrLJmN57@intel.com> (raw)
In-Reply-To: <20260814171801.13347-1-michal.wajdeczko@intel.com>
On Fri, Aug 14, 2026 at 07:17:26PM +0200, Michal Wajdeczko wrote:
> Today the driver reports faults with ad-hoc drm_err()/xe_gt_err()
> strings that have no stable shape. That is readable for a human, but it
> gives fleet tooling nothing durable to match on: the wording changes
> between releases, lines can be rate-limited or dropped under an error
> storm, and there is no consistent way to ask "which recognised fault
> just happened?".
>
> Introduce a signature identifier (SIGID): a small, stable integer that
> names one recognised Xe fault situation and serves as the primary handle
> for triage. A SIGID maps, through published end-user documentation, to a
> description and a recommended action; the driver only has to emit the
> right SIGID next to the usual human-readable text.
>
> Design decisions:
>
> - Software-emitted signatures only. This header enumerates just the
> situations the driver detects and reports itself. Signatures that
> originate in firmware or hardware are identified by those layers (via
> their own records/counters) and are logged as received -- minting a
> driver-side id for them would duplicate an id the reporting layer
> already owns.
>
> - Flat catalogue, chosen per report site. Each site emits the single
> most specific situation for that site, so a multi-layer failure
> produces a chain of reports rather than one ambiguous classification
> (e.g. a failed GT reset reports GT_TDR and then WEDGED). A site that
> matches no defined situation keeps using ordinary xe_err() /
> xe_gt_err() rather than forcing a wrong id.
>
> - Stable numbering. A single flat list numbered sequentially from 1, in
> introduction order. Values are only ever appended, never renumbered
> or reused.
>
> - Severity is decoupled from the SIGID and chosen at the call site via
> xe_ras_log_fatal() / _recoverable() / _info(); the same situation can
> be reported at different severities depending on the instance.
>
> - dmesg stays close to a normal xe error line by reusing xe_err() /
> xe_gt_err() (and their Tile/GT decoration); the only stable,
> machine-matchable token added is SIGID=<n>. dmesg is not an ABI --
> the durable machine record is the CPER carrying the same SIGID (a
> planned follow-up, left as a TODO).
>
> Wire up a representative site for each software signature so the set is
> exercised rather than merely declared.
>
> Signed-off-by: Mallesh Koujalagi <mallesh.koujalagi@intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> Cc: Matthew Brost <matthew.brost@intel.com>
> Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com>
> Cc: Riana Tauro <riana.tauro@intel.com>
> Cc: Raag Jadav <raag.jadav@intel.com>
> Cc: Badal Nilawar <badal.nilawar@intel.com>
>
> v1: https://patchwork.freedesktop.org/series/171022/#rev1
> v2: https://patchwork.freedesktop.org/series/171022/#rev2
> component/location dmesg decorations moved away from macros
> HW component identifiers related to RAS/FW enum values
> CORRECTED severity rendered as an error
> more support for const pointers
> log 'probe blocked' as INFO
> fix kunit device setup
> more tests
> v3: https://patchwork.freedesktop.org/series/171022/#rev3
> fix typos, args list and to_dev() corner case (Sashiko)
> use assoc macros in xe_any (Jani)
> add xe_any kunit test suite (Michal)
> add more xe_log test cases (Michal)
> v4: https://patchwork.freedesktop.org/series/171022/#rev4
> more patches with SIGID usage (Michal)
> support for printk index (Jani)
> more macros and other fixes (Mallesh)
> no recovery buckets (all)
> v5: new helper xe_log_err_info (Michal)
> survivability changes (Riana)
> report fault-response as info (Rodrigo/Daniele)
Thank you so much!
series pushed to drm-xe-next.
>
> Mallesh Koujalagi (1):
> drm/xe/log: Add structured SIGID error logging infrastructure
>
> Michal Wajdeczko (32):
> drm/xe: Introduce xe_any helpers
> drm/xe/log: Introduce structured component/location identifiers
> drm/xe/log: Add component/location decorations to dmesg
> drm/xe/log: Add SIGID log helpers for severity
> drm/xe/log: Add SIGID log helpers for location
> drm/xe/log: Add SIGID log helpers for location & severity
> drm/xe/log: Add SIGID log helpers for components
> drm/xe/log: Add SIGID log helpers for component & severity
> drm/xe/log: Add SIGID log helpers for errno-only
> drm/xe/log: Index all SIGID printk messages
> drm/xe/log: Add hardware error signatures
> drm/xe/log: Extend components list with hardware items
> drm/xe/ras: Check RAS and LOG component definitions
> drm/xe/kunit: Setup driver data in the test device
> drm/xe/tests: Add Kunit tests for xe_log
> drm/xe/tests: Add kunit tests for xe_any
> drm/xe: Report 'probe blocked' status using SIGID
> drm/xe: Report all probe errors using SIGID
> drm/xe/survivability: Report 'boot status' using SIGID
> drm/xe/survivability: Report sysfs failure in one place
> drm/xe/survivability: Report 'boot status' on sysfs failure
> drm/xe/survivability: Report 'Boot Mode enabled' status using SIGID
> drm/xe/survivability: Report 'Runtime Mode enabled' status using SIGID
> drm/xe: Report 'device wedged' errors using SIGID
> drm/xe/pcode: Report 'Mailbox failed' error using SIGID
> drm/xe/pcode: Report 'timeout, retrying' error using SIGID
> drm/xe/pcode: Report 'initialization timedout' error using SIGID
> drm/xe/guc: Report 'GuC mmio' errors using SIGID
> drm/xe/gt: Report 'reset failed' errors using SIGID
> drm/xe/gt: Report 'Fault response' pagefault error using SIGID
> drm/xe/gt: Report 'Queue full' pagefault error using SIGID
> drm/xe/pci: Report 'cannot re-enable' error using SIGID
>
> Documentation/gpu/xe/index.rst | 1 +
> Documentation/gpu/xe/xe_sigid.rst | 14 +
> drivers/gpu/drm/xe/Makefile | 1 +
> drivers/gpu/drm/xe/abi/xe_log_abi.h | 199 +++++++
> drivers/gpu/drm/xe/abi/xe_sigid_abi.h | 172 ++++++
> drivers/gpu/drm/xe/tests/Makefile | 1 +
> drivers/gpu/drm/xe/tests/xe_any_kunit.c | 213 ++++++++
> drivers/gpu/drm/xe/tests/xe_kunit_helpers.c | 4 +
> drivers/gpu/drm/xe/tests/xe_log_kunit.c | 553 ++++++++++++++++++++
> drivers/gpu/drm/xe/xe_any.h | 137 +++++
> drivers/gpu/drm/xe/xe_device.c | 16 +-
> drivers/gpu/drm/xe/xe_gt.c | 7 +-
> drivers/gpu/drm/xe/xe_guc.c | 18 +-
> drivers/gpu/drm/xe/xe_log.c | 235 +++++++++
> drivers/gpu/drm/xe/xe_log.h | 194 +++++++
> drivers/gpu/drm/xe/xe_pagefault.c | 8 +-
> drivers/gpu/drm/xe/xe_pci.c | 32 +-
> drivers/gpu/drm/xe/xe_pci_error.c | 7 +-
> drivers/gpu/drm/xe/xe_pcode.c | 14 +-
> drivers/gpu/drm/xe/xe_ras.c | 11 +
> drivers/gpu/drm/xe/xe_survivability_mode.c | 85 +--
> 21 files changed, 1854 insertions(+), 68 deletions(-)
> create mode 100644 Documentation/gpu/xe/xe_sigid.rst
> create mode 100644 drivers/gpu/drm/xe/abi/xe_log_abi.h
> create mode 100644 drivers/gpu/drm/xe/abi/xe_sigid_abi.h
> create mode 100644 drivers/gpu/drm/xe/tests/xe_any_kunit.c
> create mode 100644 drivers/gpu/drm/xe/tests/xe_log_kunit.c
> create mode 100644 drivers/gpu/drm/xe/xe_any.h
> create mode 100644 drivers/gpu/drm/xe/xe_log.c
> create mode 100644 drivers/gpu/drm/xe/xe_log.h
>
> --
> 2.47.1
>
prev parent reply other threads:[~2026-08-14 18:54 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-14 17:17 [PATCH v5 00/33] drm/xe: Add structured SIGID error logging infrastructure Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 01/33] drm/xe: Introduce xe_any helpers Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 02/33] drm/xe/log: Add structured SIGID error logging infrastructure Michal Wajdeczko
2026-08-14 17:31 ` Nilawar, Badal
2026-08-14 17:17 ` [PATCH v5 03/33] drm/xe/log: Introduce structured component/location identifiers Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 04/33] drm/xe/log: Add component/location decorations to dmesg Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 05/33] drm/xe/log: Add SIGID log helpers for severity Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 06/33] drm/xe/log: Add SIGID log helpers for location Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 07/33] drm/xe/log: Add SIGID log helpers for location & severity Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 08/33] drm/xe/log: Add SIGID log helpers for components Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 09/33] drm/xe/log: Add SIGID log helpers for component & severity Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 10/33] drm/xe/log: Add SIGID log helpers for errno-only Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 11/33] drm/xe/log: Index all SIGID printk messages Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 12/33] drm/xe/log: Add hardware error signatures Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 13/33] drm/xe/log: Extend components list with hardware items Michal Wajdeczko
2026-08-14 18:39 ` Rodrigo Vivi
2026-08-14 17:17 ` [PATCH v5 14/33] drm/xe/ras: Check RAS and LOG component definitions Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 15/33] drm/xe/kunit: Setup driver data in the test device Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 16/33] drm/xe/tests: Add Kunit tests for xe_log Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 17/33] drm/xe/tests: Add kunit tests for xe_any Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 18/33] drm/xe: Report 'probe blocked' status using SIGID Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 19/33] drm/xe: Report all probe errors " Michal Wajdeczko
2026-08-14 17:31 ` sashiko-bot
2026-08-14 17:17 ` [PATCH v5 20/33] drm/xe/survivability: Report 'boot status' " Michal Wajdeczko
2026-08-14 17:26 ` sashiko-bot
2026-08-14 18:41 ` Rodrigo Vivi
2026-08-14 17:17 ` [PATCH v5 21/33] drm/xe/survivability: Report sysfs failure in one place Michal Wajdeczko
2026-08-14 18:43 ` Rodrigo Vivi
2026-08-14 17:17 ` [PATCH v5 22/33] drm/xe/survivability: Report 'boot status' on sysfs failure Michal Wajdeczko
2026-08-14 17:39 ` sashiko-bot
2026-08-14 18:45 ` Rodrigo Vivi
2026-08-14 17:17 ` [PATCH v5 23/33] drm/xe/survivability: Report 'Boot Mode enabled' status using SIGID Michal Wajdeczko
2026-08-14 18:47 ` Rodrigo Vivi
2026-08-14 17:17 ` [PATCH v5 24/33] drm/xe/survivability: Report 'Runtime " Michal Wajdeczko
2026-08-14 18:49 ` Rodrigo Vivi
2026-08-14 17:17 ` [PATCH v5 25/33] drm/xe: Report 'device wedged' errors " Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 26/33] drm/xe/pcode: Report 'Mailbox failed' error " Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 27/33] drm/xe/pcode: Report 'timeout, retrying' " Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 28/33] drm/xe/pcode: Report 'initialization timedout' " Michal Wajdeczko
2026-08-14 17:33 ` sashiko-bot
2026-08-14 17:17 ` [PATCH v5 29/33] drm/xe/guc: Report 'GuC mmio' errors " Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 30/33] drm/xe/gt: Report 'reset failed' " Michal Wajdeczko
2026-08-14 17:17 ` [PATCH v5 31/33] drm/xe/gt: Report 'Fault response' pagefault error " Michal Wajdeczko
2026-08-14 18:50 ` Rodrigo Vivi
2026-08-14 17:17 ` [PATCH v5 32/33] drm/xe/gt: Report 'Queue full' " Michal Wajdeczko
2026-08-14 17:34 ` sashiko-bot
2026-08-14 17:17 ` [PATCH v5 33/33] drm/xe/pci: Report 'cannot re-enable' " Michal Wajdeczko
2026-08-14 17:25 ` ✗ CI.checkpatch: warning for drm/xe: Add structured SIGID error logging infrastructure (rev5) Patchwork
2026-08-14 17:27 ` ✓ CI.KUnit: success " Patchwork
2026-08-14 18:13 ` ✓ Xe.CI.BAT: " Patchwork
2026-08-14 18:54 ` Rodrigo Vivi [this message]
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=an9kcfvZJrLJmN57@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=aravind.iddamsetty@intel.com \
--cc=badal.nilawar@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=mallesh.koujalagi@intel.com \
--cc=matthew.brost@intel.com \
--cc=michal.wajdeczko@intel.com \
--cc=raag.jadav@intel.com \
--cc=riana.tauro@intel.com \
--cc=thomas.hellstrom@linux.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