2014-06-12 08:34:16

by Tomasz Nowicki

[permalink] [raw]
Subject: Re: [PATCH v2 0/5] APEI: Make APEI architecture independent.

Hi,

I would like to kindly remind and request for comments on this patches.

Regards,
Tomasz

On 28.05.2014 09:39, Tomasz Nowicki wrote:
> APEI is currently implemented so that it depends on x86 hardware.
> The primary dependency is that GHES uses the x86 NMI for hardware
> error notification and MCE for memory error handling. These patches
> remove that dependency.
>
> Other APEI features such as error reporting via external IRQ, error
> serialization, or error injection, do not require changes to use them
> on non-x86 architectures.
>
> The following patch set eliminates the APEI Kconfig x86 dependency
> by making these changes:
> - treat NMI notification as GHES feature - CONFIG_ACPI_APEI_NMI
> - reorganize GHES notification type init/deinitialization
> so that we can decide in run time whether NMI is supported or not
> - identify architectural boxes and abstract it accordingly (NMI and MCE)
> - rework ioremap for both IRQ and NMI context
>
> NMI code is kept in ghes.c file since NMI and IRQ context are tightly coupled.
>
> Note, these patches introduce no functional changes for x86. The NMI notification
> feature is selected for x86 by default. Architectures that want to use this
> feature should also provide NMI code infrastructure.
>
> V1->V2
> - address Borislav comment
> - abstract arch-specific calls instead of wrapping into the #ifdef
>
> Tomasz Nowicki (5):
> apei, mce: Factor out APEI architecture specific MCE calls.
> acpi, apei, ghes: Introduce ACPI_APEI_NMI to make NMI error
> notification a GHES feature.
> acpi, apei, ghes: Introduce more generic mechanism to init/deinit
> GHES error notifications.
> apei, ghes, nmi: Factor out NMI arch-specific calls.
> acpi, apei, ghes: Factor out ioremap virtual memory for IRQ and NMI
> context.
>
> arch/x86/kernel/acpi/Makefile | 1 +
> arch/x86/kernel/acpi/apei.c | 87 ++++++++++++
> drivers/acpi/apei/Kconfig | 10 +-
> drivers/acpi/apei/apei-base.c | 32 +++++
> drivers/acpi/apei/ghes.c | 301 +++++++++++++++++++++++++----------------
> drivers/acpi/apei/hest.c | 26 +---
> include/acpi/apei.h | 11 ++
> 7 files changed, 328 insertions(+), 140 deletions(-)
> create mode 100644 arch/x86/kernel/acpi/apei.c
>