Re: [PATCH] acpi/ghes: add TAINT_MACHINE_CHECK on GHES panic path

From: Luck, Tony
Date: Wed Jul 02 2025 - 12:32:03 EST


On Wed, Jul 02, 2025 at 08:39:51AM -0700, Breno Leitao wrote:
> When a GHES (Generic Hardware Error Source) triggers a panic, add the
> TAINT_MACHINE_CHECK taint flag to the kernel. This explicitly marks the

While it might not strictly be a machine check that caused GHES to
panic, it seems close enough from the available TAINT options.

So unless someone feels it would be better to create a new TAINT
flag (TAINT_FATAL_GHES? TAINT_FIRMWARE_REPORTED_FATAL_ERRROR?)
then this seems OK to me.

Reviewed-by: Tony Luck <tony.luck@xxxxxxxxx>

> kernel as tainted due to a machine check event, improving diagnostics
> and post-mortem analysis. The taint is set with LOCKDEP_STILL_OK to
> indicate lockdep remains valid.
>
> At large scale deployment, this helps to quickly determin panics that
> are coming due to hardware failures.
>
> Signed-off-by: Breno Leitao <leitao@xxxxxxxxxx>
> ---
> drivers/acpi/apei/ghes.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
> index f0584ccad4519..3d44f926afe8e 100644
> --- a/drivers/acpi/apei/ghes.c
> +++ b/drivers/acpi/apei/ghes.c
> @@ -1088,6 +1088,8 @@ static void __ghes_panic(struct ghes *ghes,
>
> __ghes_print_estatus(KERN_EMERG, ghes->generic, estatus);
>
> + add_taint(TAINT_MACHINE_CHECK, LOCKDEP_STILL_OK);
> +
> ghes_clear_estatus(ghes, estatus, buf_paddr, fixmap_idx);
>
> if (!panic_timeout)
>
> ---
> base-commit: e96ee511c906c59b7c4e6efd9d9b33917730e000
> change-id: 20250702-add_tain-902925f3eb96
>
> Best regards,
> --
> Breno Leitao <leitao@xxxxxxxxxx>
>