Re: [PATCH v2 RESEND 4/4] selftests: firmware: Add NVIDIA GHES EINJ selftest

Shuai Xue <[email protected]> Sun, 26 Jul 2026 17:02:11 +0800
Newsgroups org.kernel.vger.linux-hardening,org.kernel.vger.linux-acpi,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest
Message-ID <[email protected]>

On 7/24/26 8:20 PM, Kai-Heng Feng wrote:
> Exercise the full driver path on real Grace and Vera hardware using
> ACPI EINJ to inject CPER sections and validate the kernel log output.
> KUnit covers the parser in isolation; this test covers the path from
> firmware notification through GUID dispatch to decoded output.
> 
> Signed-off-by: Kai-Heng Feng <[email protected]>
> ---
> v2:
>   - No change.
> 
>   tools/testing/selftests/firmware/Makefile     |   4 +-
>   tools/testing/selftests/firmware/config       |   5 +
>   tools/testing/selftests/firmware/einj_lib.sh  | 189 ++++++++++++++++++
>   .../selftests/firmware/ghes_nvidia_einj.sh    | 144 +++++++++++++
>   .../firmware/ghes_nvidia_einj_profiles.sh     |  46 +++++
>   5 files changed, 386 insertions(+), 2 deletions(-)
>   create mode 100644 tools/testing/selftests/firmware/einj_lib.sh
>   create mode 100755 tools/testing/selftests/firmware/ghes_nvidia_einj.sh
>   create mode 100755 tools/testing/selftests/firmware/ghes_nvidia_einj_profiles.sh
> 
> diff --git a/tools/testing/selftests/firmware/Makefile b/tools/testing/selftests/firmware/Makefile
> index 7992969deaa2..b753dd123860 100644
> --- a/tools/testing/selftests/firmware/Makefile
> +++ b/tools/testing/selftests/firmware/Makefile
> @@ -3,8 +3,8 @@
>   CFLAGS = -Wall \
>            -O2
>   
> -TEST_PROGS := fw_run_tests.sh
> -TEST_FILES := fw_fallback.sh fw_filesystem.sh fw_upload.sh fw_lib.sh
> +TEST_PROGS := fw_run_tests.sh ghes_nvidia_einj.sh
> +TEST_FILES := fw_fallback.sh fw_filesystem.sh fw_upload.sh fw_lib.sh einj_lib.sh ghes_nvidia_einj_profiles.sh
>   TEST_GEN_FILES := fw_namespace

I am not sure this belongs in the generic firmware selftests.

This test requires root, debugfs, ACPI EINJ, NVIDIA-specific vendor EINJ
metadata, a bound NVDA2012 device, and it writes EINJ controls before
triggering error_inject.  Even if the selected profiles are intended to be
informational, this looks more like a platform RAS validation tool than a
generic kselftest that should run as part of the firmware selftest suite.

Would ras-tools be a better place for this?  Tony Luck maintains that tree
for RAS-related test and injection tooling, and this script seems to fit
there better than tools/testing/selftests/firmware/.

Please see:

     https://git.kernel.org/pub/scm/linux/kernel/git/aegl/ras-tools.git

Thanks,
Shuai