From: Michal Wajdeczko <michal.wajdeczko@intel.com>
To: Aravind Iddamsetty <aravind.iddamsetty@linux.intel.com>,
<intel-xe@lists.freedesktop.org>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>,
Yoni Levitt <yoni.levitt@intel.com>
Subject: Re: [PATCH 10/19] drm/xe/log: Extend components list with hardware items
Date: Tue, 28 Jul 2026 18:31:11 +0200 [thread overview]
Message-ID: <9b83d35d-499d-450d-9673-27001a048b33@intel.com> (raw)
In-Reply-To: <b935fecb-ad8d-4e4c-b63e-8bcbc764320e@linux.intel.com>
On 7/28/2026 4:47 PM, Aravind Iddamsetty wrote:
>
> On 24-07-2026 20:41, Michal Wajdeczko wrote:
>> On 7/24/2026 1:49 PM, Aravind Iddamsetty wrote:
>>> On 24-07-2026 02:07, Michal Wajdeczko wrote:
>>>> Update our super macro with new top level hardware components.
>>>>
>>>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>>>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>>> ---
>>>> drivers/gpu/drm/xe/abi/xe_log_abi.h | 11 +++++++++++
>>>> 1 file changed, 11 insertions(+)
>>>>
>>>> diff --git a/drivers/gpu/drm/xe/abi/xe_log_abi.h b/drivers/gpu/drm/xe/abi/xe_log_abi.h
>>>> index cde86c6c08f2..edf4dc13377d 100644
>>>> --- a/drivers/gpu/drm/xe/abi/xe_log_abi.h
>>>> +++ b/drivers/gpu/drm/xe/abi/xe_log_abi.h
>>>> @@ -124,6 +124,10 @@ enum xe_log_location_bits {
>>>> * @SIGID is the default xe_sigid for the component (without the XE_SIGID_ prefix)
>>>> */
>>>> #define DEFINE_XE_LOG_COMPONENTS(define) \
>>>> + DEFINE_XE_LOG_SOFTWARE_COMPONENTS(define) \
>>>> + DEFINE_XE_LOG_HARDWARE_COMPONENTS(define)
>>>> +
>>>> +#define DEFINE_XE_LOG_SOFTWARE_COMPONENTS(define) \
>>>> /* */ \
>>>> define(SYSTEM, 1, PCI, SW, "Linux PCI Subsystem") \
>>>> define(SYSTEM, 2, DRM, SW, "DRM") \
>>>> @@ -151,6 +155,13 @@ enum xe_log_location_bits {
>>>> define(DRIVER_FIRMWARE, 3, GSC, RUNTIME_FW, "GSC") \
>>>> define(DRIVER_FIRMWARE, 16, PCODE, DEVICE_FW, "PCode") \
>>>> define(DRIVER_FIRMWARE, 17, SYSCTRL, DEVICE_FW, "System Controller") \
>>>> +
>>>> +#define DEFINE_XE_LOG_HARDWARE_COMPONENTS(define) \
>>>> + define(HARDWARE, 1, PCIE, PCIE, "PCIe Interface") \
>>>> + define(HARDWARE, 2, HWCORE, CORE_COMPUTE, "Core Compute") \
>>>> + define(HARDWARE, 3, DEVMEM, DEVICE_MEMORY, "Device Memory") \
>>>> + define(HARDWARE, 4, FABRIC, FABRIC, "Fabric") \
>>>> + define(HARDWARE, 5, SOC, SOC_INTERNAL, "SoC Internal") \
>>>> /* eod */
>>>>
>>> For HW errors FW already reports the components, we already have
>>> definition of component "enum xe_ras_component" that matches how FW
>>> reports the errors we shall reuse it not redefine again.
>> from what I can see in [1] this enum was defined just as local definition and there was no mention that they are fixed HW originated values and wasn't placed in regs/ (like we do with all HW related stuff)
>
> check this https://gitlab.com/freedesktop-mirror/drm-tip/-/blob/drm-tip/drivers/gpu/drm/xe/xe_ras.c?ref_type=heads#L379
sorry, missed your response and I've already posted v2
>
> where error details is retrieved from FW and component details are extracted into structxe_ras_error_class <https://elixir.bootlin.com/linux/v7.2-rc4/C/ident/xe_ras_error_class>
>
>> OTOH, these LOG components definitions are supposed to be part of the log ABI, so shall be defined in more exposed place (like our abi/ folder)
>>
>> but there is still a solution for this.
>>
>> we can define HW LOG components in this LOG abi/ as:
>>
>> + define(HARDWARE, 1, DEVMEM, DEVICE_MEMORY, "Device Memory") \
>> + define(HARDWARE, 2, HWCORE, CORE_COMPUTE, "Core Compute") \
>> + define(HARDWARE, 4, PCIE, PCIE, "PCIe Interface") \
>> + define(HARDWARE, 5, FABRIC, FABRIC, "Fabric") \
>> + define(HARDWARE, 6, SOC, SOC_INTERNAL, "SoC Internal") \
>
> As the component needs to go to CPER in case of HW errors
I guess in case of SW errors we will also want/need to encode component identifier,
so we can't assume that only identifiers defined by the particular FW will be ever used
IMO the CPER/LOG identifiers are just different namespace compared to FW IDs
> it will derived from structxe_ras_error_class <https://elixir.bootlin.com/linux/v7.2-rc4/C/ident/xe_ras_error_class> given by FW which will go into CPER. We shall use whatever the FW has given.
>
but with asserts defined in [2] you should be able to easily convert those FW provided identifiers to the LOG component identifiers (and back)
also, you still have an option to keep all these HW internals ids in the data blob that LOG infra does not rely on
Michal
[2] https://patchwork.freedesktop.org/patch/742837/?series=171022&rev=2
> Thanks,
>
> Aravind.
>
>> as this will include TYPE(HARDWARE) definition for each component identifier
>> so the XE_LOG_COMPONENT_SOC is still defined as 0x0608, not as a plain 6
>>
>> and have separate HW components definitions as reported by the FW in another abi/ as:
>>
>> SYSCTRL_COMP_DEVICE_MEMORY = 1,
>> SYSCTRL_COMP_CORE_COMPUTE = 2,
>> SYSCTRL_COMP_PCIE = 4,
>> SYSCTRL_COMP_FABRIC = 5,
>> SYSCTRL_COMP_SOC_INTERNAL = 6,
>>
>> and finally somewhere in the code we can make sure we don't change that accidentally:
>>
>> BUILD_BUG_ON(SYSCTRL_COMP_DEVICE_MEMORY !=
>> FIELD_GET(XE_LOG_LOCATION_ID_MASK,
>> XE_LOG_COMPONENT_DEVICE_MEMORY));
>> ...
>> BUILD_BUG_ON(SYSCTRL_COMP_SOC_INTERNAL != // aka 6
>> FIELD_GET(XE_LOG_LOCATION_ID_MASK, // aka 0xFF00
>> XE_LOG_COMPONENT_SOC)); // aka 0x0608
>>
>>
>> [1] https://elixir.bootlin.com/linux/v7.2-rc4/source/drivers/gpu/drm/xe/xe_ras.c#L23
>>
>>
>>> Thanks,
>>> Aravind.
>>>> /**
next prev parent reply other threads:[~2026-07-28 16:31 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-23 20:37 [PATCH 00/19] drm/xe: Add structured SIGID error logging infrastructure Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 01/19] drm/xe/log: " Michal Wajdeczko
2026-07-24 13:01 ` Aravind Iddamsetty
2026-07-24 14:34 ` Michal Wajdeczko
2026-07-28 19:04 ` Rodrigo Vivi
2026-07-23 20:37 ` [PATCH 02/19] drm/xe: Introduce xe_any helpers Michal Wajdeczko
2026-07-28 5:23 ` Mallesh, Koujalagi
2026-07-23 20:37 ` [PATCH 03/19] drm/xe/log: Add simple helpers for xe_log_emit Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 04/19] drm/xe/log: Allow to emit SIGID dmesg/cper separately Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 05/19] drm/xe/log: Add Tile/GT decorations for dmesg message Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 06/19] drm/xe/log: Introduce structured log components Michal Wajdeczko
2026-07-24 13:28 ` Aravind Iddamsetty
2026-07-24 14:45 ` Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 07/19] drm/xe/log: Add component based SIGID log helper Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 08/19] drm/xe/log: Add errno-only SIGID log helpers Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 09/19] drm/xe/log: Add hardware error signatures Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 10/19] drm/xe/log: Extend components list with hardware items Michal Wajdeczko
2026-07-24 11:49 ` Aravind Iddamsetty
2026-07-24 15:11 ` Michal Wajdeczko
2026-07-28 14:47 ` Aravind Iddamsetty
2026-07-28 16:31 ` Michal Wajdeczko [this message]
2026-07-23 20:37 ` [PATCH 11/19] drm/xe/tests: Add Kunit tests for xe_log Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 12/19] drm/xe: Report 'probe blocked' error using SIGID Michal Wajdeczko
2026-07-24 12:28 ` Aravind Iddamsetty
2026-07-24 14:19 ` Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 13/19] drm/xe: Report 'device wedged' errors " Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 14/19] drm/xe: Report 'Survivability Mode' " Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 15/19] drm/xe/guc: Report 'GuC mmio' " Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 16/19] drm/xe/pcode: Report 'Mailbox failed' error " Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 17/19] drm/xe/gt: Report 'reset failed' errors " Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 18/19] drm/xe/gt: Report 'pagefault' " Michal Wajdeczko
2026-07-23 22:02 ` Michal Wajdeczko
2026-07-23 20:37 ` [PATCH 19/19] drm/xe/pci: Report 'cannot re-enable' error " Michal Wajdeczko
2026-07-23 20:44 ` ✗ CI.checkpatch: warning for drm/xe: Add structured SIGID error logging infrastructure Patchwork
2026-07-23 20:45 ` ✓ CI.KUnit: success " Patchwork
2026-07-23 21:35 ` ✗ Xe.CI.BAT: failure " Patchwork
2026-07-24 18:35 ` ✗ Xe.CI.FULL: " 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=9b83d35d-499d-450d-9673-27001a048b33@intel.com \
--to=michal.wajdeczko@intel.com \
--cc=aravind.iddamsetty@linux.intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=rodrigo.vivi@intel.com \
--cc=yoni.levitt@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.