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
>
next prev parent reply other threads:[~2026-08-14 18:54 UTC|newest]
Thread overview: 52+ 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]
2026-08-14 20:11 ` ✗ 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=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.