forked from Minki/linux
67eb2e9907
Some APEI GHES recoverable errors are reported via NMI, but printk is not safe in NMI context. To solve the issue, a lock-less memory allocator is used to allocate memory in NMI handler, save the error record into the allocated memory, put the error record into a lock-less list. On the other hand, an irq_work is used to delay the operation from NMI context to IRQ context. The irq_work IRQ handler will remove nodes from lock-less list, printk the error record and do some further processing include recovery operation, then free the memory. Signed-off-by: Huang Ying <ying.huang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
51 lines
1.7 KiB
Plaintext
51 lines
1.7 KiB
Plaintext
config ACPI_APEI
|
|
bool "ACPI Platform Error Interface (APEI)"
|
|
select MISC_FILESYSTEMS
|
|
select PSTORE
|
|
depends on X86
|
|
help
|
|
APEI allows to report errors (for example from the chipset)
|
|
to the operating system. This improves NMI handling
|
|
especially. In addition it supports error serialization and
|
|
error injection.
|
|
|
|
config ACPI_APEI_GHES
|
|
bool "APEI Generic Hardware Error Source"
|
|
depends on ACPI_APEI && X86
|
|
select ACPI_HED
|
|
select LLIST
|
|
select GENERIC_ALLOCATOR
|
|
help
|
|
Generic Hardware Error Source provides a way to report
|
|
platform hardware errors (such as that from chipset). It
|
|
works in so called "Firmware First" mode, that is, hardware
|
|
errors are reported to firmware firstly, then reported to
|
|
Linux by firmware. This way, some non-standard hardware
|
|
error registers or non-standard hardware link can be checked
|
|
by firmware to produce more valuable hardware error
|
|
information for Linux.
|
|
|
|
config ACPI_APEI_PCIEAER
|
|
bool "APEI PCIe AER logging/recovering support"
|
|
depends on ACPI_APEI && PCIEAER
|
|
help
|
|
PCIe AER errors may be reported via APEI firmware first mode.
|
|
Turn on this option to enable the corresponding support.
|
|
|
|
config ACPI_APEI_EINJ
|
|
tristate "APEI Error INJection (EINJ)"
|
|
depends on ACPI_APEI && DEBUG_FS
|
|
help
|
|
EINJ provides a hardware error injection mechanism, it is
|
|
mainly used for debugging and testing the other parts of
|
|
APEI and some other RAS features.
|
|
|
|
config ACPI_APEI_ERST_DEBUG
|
|
tristate "APEI Error Record Serialization Table (ERST) Debug Support"
|
|
depends on ACPI_APEI
|
|
help
|
|
ERST is a way provided by APEI to save and retrieve hardware
|
|
error information to and from a persistent store. Enable this
|
|
if you want to debugging and testing the ERST kernel support
|
|
and firmware implementation.
|