public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Ahmed Tiba <ahmed.tiba@arm.com>
To: Borislav Petkov <bp@alien8.de>
Cc: linux-acpi@vger.kernel.org, devicetree@vger.kernel.org,
	tony.luck@intel.com, robh@kernel.org, krzk+dt@kernel.org,
	conor+dt@kernel.org, catalin.marinas@arm.com, will@kernel.org,
	linux-arm-kernel@lists.infradead.org, rafael@kernel.org,
	linux-doc@vger.kernel.org, Dmitry.Lamerov@arm.com,
	Michael.Zhao2@arm.com
Subject: Re: [PATCH 00/12] ras: share firmware-first estatus handling
Date: Thu, 15 Jan 2026 12:17:17 +0000	[thread overview]
Message-ID: <dc2f3dd7-b9db-4a2d-b431-f70738cefcfd@arm.com> (raw)
In-Reply-To: <20260114141551.GKaWelF-Gsvzr71LUs@fat_crate.local>

On 14/01/2026 14:15, Borislav Petkov wrote:
> On Mon, Dec 29, 2025 at 11:54:36AM +0000, Ahmed Tiba wrote:
>> By “error status” I’m referring to the UEFI CPER Generic Error Status block,
>> which is the standard firmware-produced error payload that Linux already
> 
> Standard, schmandard - a bunch of fw crap.
> 
> That's UEFI's understanding of a common platform error record, no?
> 
> So why is this a generic estatus and not part of CPER-something?
> 
> You're calling something "estatus" which sounds like a generic thing but it is
> simply a subset of functionality you need to make it work on ARM without
> ACPI and have packaged whatever you need under the name "estatus".
> 
> Why does this thing need to be called an "estatus core"?

The CPER records are defined as part of UEFI specs, but its primary way 
to report it is via APEI/GHES.

In drivers/acpi/apei/ghes.c, this subset of CPER handling
is already implemented using a number of helpers mostly named
estatus_* rather than cper_*. The naming therefore originates
from the existing GHES implementation, not from a new abstraction.

What I did was lift that existing estatus_* logic so it can be reused by 
a non-ACPI provider, rather than duplicating the CPER handling
in a parallel DT path.

> I'd expect to see a compilation unit which contains shared functionality, gets
> linked to your stuff and that's it. No "fanfares", no CONFIG symbols, no
> nothing.

That’s a reasonable expectation, and I’m fine aligning with it.The 
approach mirrors drivers/firmware/efi/cper.c, which factors out shared 
functionality for reuse without adding extra fanfare.

>> consumes via GHES on ACPI systems. I’m not introducing a new error model
>> here; the intent is to reuse the existing CPER decoding and handling once
>> that payload exists.
> 
> So why aren't you doing only that? Why are you doing all that extra stuff?

Because the DT-based path still needs a clean way to call into the 
shared logic without dragging in ACPI plumbing.

>> The practical use case is firmware-first RAS platforms that emit CPER
>> records but do not use ACPI/APEI GHES for discovery or notification. Today,
>> those platforms either have to duplicate CPER parsing logic or miss out on
>> the common Linux RAS handling (standard logging, memory failure flow,
>> vendor notification paths). As a result, the full firmware-first RAS
>> pipeline effectively only works when CPER arrives through GHES.
> 
> Yah, got it.
> 
> But see above.
> 
> Please do not "over-design" this into a separate thing but simply carve out
> the functionality and share it. And leave it where it belongs
> - drivers/firmware/efi/ is not the right place as this isn't really EFI. This
> is a piece of APEI/GHES crap you need.

As it stands, that code is coupled to APEI/GHES and ACPI assumptions. 
Reusing it directly from a DT-based path would implicitly require ACPI, 
which defeats the purpose of supporting firmware-first RAS
on non-ACPI platforms.

Thanks for the discussion.

Regards,
Ahmed

  reply	other threads:[~2026-01-15 12:18 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-17 11:28 [PATCH 00/12] ras: share firmware-first estatus handling Ahmed Tiba
2025-12-17 11:28 ` [PATCH 01/12] ras: add estatus core interfaces Ahmed Tiba
2025-12-17 11:28 ` [PATCH 02/12] ras: add estatus core implementation Ahmed Tiba
2025-12-18 15:42   ` Mauro Carvalho Chehab
2025-12-19 14:35     ` Ahmed Tiba
2025-12-21 19:31   ` kernel test robot
2025-12-17 11:28 ` [PATCH 03/12] ras: add estatus vendor handling and processing Ahmed Tiba
2025-12-18 16:04   ` Mauro Carvalho Chehab
2025-12-19 14:49     ` Ahmed Tiba
2025-12-19 15:30       ` Mauro Carvalho Chehab
2025-12-19 18:11         ` Ahmed Tiba
2025-12-22  8:13           ` Mauro Carvalho Chehab
2025-12-29 15:01             ` Ahmed Tiba
2025-12-21 23:39   ` kernel test robot
2025-12-17 11:28 ` [PATCH 04/12] ras: add estatus queuing and IRQ/NMI handling Ahmed Tiba
2025-12-17 11:28 ` [PATCH 05/12] ras: flesh out estatus processing core Ahmed Tiba
2025-12-17 11:28 ` [PATCH 06/12] efi/cper: adopt estatus iteration helpers Ahmed Tiba
2025-12-17 11:28 ` [PATCH 07/12] ghes: prepare estatus hooks for shared handling Ahmed Tiba
2025-12-17 11:28 ` [PATCH 08/12] ghes: add estatus provider ops Ahmed Tiba
2025-12-17 11:28 ` [PATCH 09/12] ghes: route error handling through shared estatus core Ahmed Tiba
2025-12-17 11:28 ` [PATCH 10/12] dt-bindings: ras: document estatus provider Ahmed Tiba
2025-12-17 11:41   ` Krzysztof Kozlowski
2025-12-17 17:49     ` Ahmed Tiba
2025-12-18  6:48       ` Krzysztof Kozlowski
2025-12-18 10:22         ` Ahmed Tiba
2025-12-18 10:31         ` Ahmed Tiba
2025-12-19  9:53           ` Krzysztof Kozlowski
2025-12-19 10:47             ` Ahmed Tiba
2025-12-17 11:28 ` [PATCH 11/12] ras: add DeviceTree estatus provider driver Ahmed Tiba
2025-12-18 12:13   ` Will Deacon
2025-12-18 13:42     ` Ahmed Tiba
2025-12-18 15:19       ` Will Deacon
2025-12-19  9:02         ` Ahmed Tiba
2025-12-19 13:00           ` Will Deacon
2025-12-19 17:21             ` Ahmed Tiba
2026-01-05 21:09               ` Will Deacon
2025-12-17 11:28 ` [PATCH 12/12] doc: ras: describe firmware-first estatus flow Ahmed Tiba
2025-12-21  1:35 ` [PATCH 00/12] ras: share firmware-first estatus handling Borislav Petkov
2025-12-29 11:54   ` Ahmed Tiba
2026-01-14 14:15     ` Borislav Petkov
2026-01-15 12:17       ` Ahmed Tiba [this message]
2026-01-20 11:15         ` Borislav Petkov
2026-01-26 10:58           ` Ahmed Tiba

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=dc2f3dd7-b9db-4a2d-b431-f70738cefcfd@arm.com \
    --to=ahmed.tiba@arm.com \
    --cc=Dmitry.Lamerov@arm.com \
    --cc=Michael.Zhao2@arm.com \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=rafael@kernel.org \
    --cc=robh@kernel.org \
    --cc=tony.luck@intel.com \
    --cc=will@kernel.org \
    /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