mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ruidong Tian <tianruidong@linux.alibaba.com>
To: Borislav Petkov <bp@alien8.de>
Cc: catalin.marinas@arm.com, will@kernel.org, lpieralisi@kernel.org,
	guohanjun@huawei.com, sudeep.holla@arm.com,
	xueshuai@linux.alibaba.com, linux-kernel@vger.kernel.org,
	linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	rafael@kernel.org, lenb@kernel.org, tony.luck@intel.com,
	yazen.ghannam@amd.com, misono.tomohiro@fujitsu.com,
	fengwei_yin@linux.alibaba.com
Subject: Re: [PATCH v5 00/17] ARM Error Source Table V2 Support
Date: Mon, 5 Jan 2026 17:12:25 +0800	[thread overview]
Message-ID: <0038141b-713f-4024-9f8b-e5f748f5a6a9@linux.alibaba.com> (raw)
In-Reply-To: <20251230202211.GAaVQ0cx8o-CqzGU2O@fat_crate.local>

Thanks for the review and the comments.

在 2025/12/31 04:22, Borislav Petkov 写道:
> Some high-level notes first:
> 
> On Tue, Dec 30, 2025 at 05:09:28PM +0800, Ruidong Tian wrote:
>> This series introduces support for the ARM Error Source Table (AEST), aligning
>> with version 2.0 of ACPI for Armv8 RAS Extensions [0].
> 
> I'd like to hear from ARM folks what the strategy for this thing is...
That's a good point. I've CC'ed the ARM maintainers for their input.
> 
>> AEST provides a critical mechanism for hardware to directly notify the
>> operating system kernel about RAS errors via interrupts, a concept known as
>> Kernel-first error handling. Compared to firmware-first error handling
>> (e.g., GHES), AEST offers a more lightweight approach. This efficiency allows
>> the OS to potentially report every Corrected Error (CE), enabling upper-layer
>> applications to leverage CE information for error prediction[1][2].
>>
>> This series is based on Tyler Baicar's preliminary patches [3], which have not
>> yet been sent to the mailing list as v2.
> 
> I guess I'll wait for those first.
I tried to follow up with Tyler about his patches back in 2022[0] but 
got no reply. Since he no longer seems active on the Linux mailing list, 
I decided to pick this up and post this series myself to avoid this work 
being stalled.

[0]: 
https://lore.kernel.org/all/b365db02-b28c-1b22-2e87-c011cef848e2@linux.alibaba.com/
> 
>> AEST Driver Architecture
>> ========================
>>
>> The AEST driver is structured into three primary components:
>>    - AEST device: Responsible for handling interrupts, managing the lifecycle
>>                   of AEST nodes, and processing error records.
>>    - AEST node: Corresponds directly to a RAS node in the hardware
> 
> What is a "RAS node"?
A RAS node is the hardware interface for error reporting and control, 
consisting of one or more register sets (a collection of RAS records). 
It is responsible for error logging and interrupt signaling[0].

A single hardware component can feature multiple RAS nodes. For example, 
a memory controller is treated as a "RAS device", where each memory 
channel has its own RAS node. Interrupts generated by these nodes are 
typically aggregated into a single interrupt line managed at the RAS 
device level.

Comparison with x86 MCA:

RAS record ≈ MCA bank.
RAS node ≈ A set of MCA banks + CMCI on a core.

The key difference lies in uncore handling: x86 typically maps uncore 
errors (like those from a memory controller) into core-based MCA banks. 
In contrast, ARM requires uncore components to provide their own 
standalone RAS nodes. When a component requires multiple such nodes, 
they are grouped and managed as a "RAS device" in AEST driver.

[0]: https://developer.arm.com/documentation/ihi0100/latest
> 
>>    - AEST record: Represents a set of RAS registers associated with a specific
>>                   error source.
> 
> ...
> 
>> Address Translation
>> ===================
>>
>> As described in section 2.2 [0], error addresses reported by AEST records
>> may be "node-specific Logical Addresses" rather than the "System Physical
>> Addresses" (SPA) used by the kernel. Therefore, the driver needs to translate
>> these Logical Addresses (LA) to SPA. This translation mechanism is conceptually
>> similar to AMD's Address Translation Logic (ATL) [4], leading patch 0014 to
>> introduce a common translation function for both AMD and ARM architectures.
> 
> Say what now?
> 
> The ATL is very AMD-specific. What does "conceptually similar" mean exactly?
By "conceptually similar," I mean that both ARM and AMD share the same 
functional requirement: translating between a System Physical Address 
(SPA) and a device-specific address (like a DRAM address) for RAS purposes.

The goal here is not to share the hardware-specific translation logic, 
but to provide a unified interface (an abstraction layer). The actual 
implementation of the translation remains entirely architecture-specific.
> What happens if we have to change the ATL and break your use case in the
> process?
Since the implementations are decoupled, changes to the internals of 
AMD's ATL will not break the ARM use case. ARM would have its own 
backend implementation. They only share a common top-level API or 
wrapper to allow generic RAS/EDAC code to invoke the translation.
> 
> What exact functionality from the ATL do you really need here?
> 
> Thx.
> 


  reply	other threads:[~2026-01-05  9:12 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-30  9:09 Ruidong Tian
2025-12-30  9:09 ` [PATCH v5 01/17] ACPI/AEST: Parse the AEST table Ruidong Tian
2025-12-30  9:09 ` [PATCH v5 02/17] ras: AEST: Add probe/remove for AEST driver Ruidong Tian
2025-12-30  9:09 ` [PATCH v5 03/17] ras: AEST: support different group format Ruidong Tian
2025-12-30  9:09 ` [PATCH v5 04/17] ras: AEST: Unify the read/write interface for system and MMIO register Ruidong Tian
2025-12-30  9:09 ` [PATCH v5 05/17] ras: AEST: Probe RAS system architecture version Ruidong Tian
2025-12-30  9:09 ` [PATCH v5 06/17] ras: AEST: Support RAS Common Fault Injection Model Extension Ruidong Tian
2025-12-30  9:09 ` [PATCH v5 07/17] ras: AEST: Support CE threshold of error record Ruidong Tian
2025-12-30  9:09 ` [PATCH v5 08/17] ras: AEST: Enable and register IRQs Ruidong Tian
2025-12-30  9:09 ` [PATCH v5 09/17] ras: AEST: Add cpuhp callback Ruidong Tian
2025-12-30  9:09 ` [PATCH v5 10/17] ras: AEST: Introduce AEST driver sysfs interface Ruidong Tian
2025-12-30  9:09 ` [PATCH v5 11/17] ras: AEST: Add error count tracking and debugfs interface Ruidong Tian
2025-12-30  9:12 ` [PATCH v5 12/17] ras: AEST: Allow configuring CE threshold via debugfs Ruidong Tian
2025-12-30  9:13 ` [PATCH v5 13/17] ras: AEST: Introduce AEST inject interface to test AEST driver Ruidong Tian
2025-12-30  9:13 ` [PATCH v5 14/17] ras: ATL: Unify ATL interface for ARM64 and AMD Ruidong Tian
2025-12-30  9:13 ` [PATCH v5 15/17] ras: AEST: Add framework to process AEST vendor node Ruidong Tian
2025-12-30  9:13 ` [PATCH v5 16/17] ras: AEST: support vendor node CMN700 Ruidong Tian
2026-01-02 16:51   ` kernel test robot
2026-01-02 17:43   ` kernel test robot
2025-12-30  9:13 ` [PATCH v5 17/17] trace, ras: add ARM RAS extension trace event Ruidong Tian
2025-12-30 20:22 ` [PATCH v5 00/17] ARM Error Source Table V2 Support Borislav Petkov
2026-01-05  9:12   ` Ruidong Tian [this message]
2026-01-09 10:34     ` Borislav Petkov
2026-01-09 12:26       ` Ruidong Tian

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=0038141b-713f-4024-9f8b-e5f748f5a6a9@linux.alibaba.com \
    --to=tianruidong@linux.alibaba.com \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=fengwei_yin@linux.alibaba.com \
    --cc=guohanjun@huawei.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lpieralisi@kernel.org \
    --cc=misono.tomohiro@fujitsu.com \
    --cc=rafael@kernel.org \
    --cc=sudeep.holla@arm.com \
    --cc=tony.luck@intel.com \
    --cc=will@kernel.org \
    --cc=xueshuai@linux.alibaba.com \
    --cc=yazen.ghannam@amd.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

all inboxes | Powered by JetHome®