Fatal (panic-severity) hardware errors reported through APEI/GHES are the ones most likely to have caused a crash, but hwerr_data did not record them. Add a HWERR_FATAL bucket and bump it from ghes_log_hwerr() when a GHES_SEV_PANIC error is seen, so crash tooling can tell from the vmcore that a fatal hardware error preceded the crash.
Tools reading hwerr_data gain one entry (HWERR_FATAL). Signed-off-by: Breno Leitao <[email protected]> --- drivers/acpi/apei/ghes.c | 5 +++++ include/uapi/linux/vmcore.h | 1 + 2 files changed, 6 insertions(+) diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index f0f9f1529e7aa..5a9e16bdca2b6 100644 --- a/drivers/acpi/apei/ghes.c +++ b/drivers/acpi/apei/ghes.c @@ -877,6 +877,11 @@ EXPORT_SYMBOL_NS_GPL(cxl_cper_kfifo_get, "CXL"); static void ghes_log_hwerr(int sev, guid_t *sec_type) { + if (sev == GHES_SEV_PANIC) { + hwerr_log_error_type(HWERR_FATAL); + return; + } + if (sev != GHES_SEV_RECOVERABLE) return; diff --git a/include/uapi/linux/vmcore.h b/include/uapi/linux/vmcore.h index 2ba89fafa518a..c774b037603e2 100644 --- a/include/uapi/linux/vmcore.h +++ b/include/uapi/linux/vmcore.h @@ -21,6 +21,7 @@ enum hwerr_error_type { HWERR_RECOV_PCI, HWERR_RECOV_CXL, HWERR_RECOV_OTHERS, + HWERR_FATAL, /* fatal hardware errors */ HWERR_RECOV_MAX, }; -- 2.53.0-Meta
