RE: [PATCH v2] ACPI: APEI: EINJ: EINJV2 support added

From: Luck, Tony
Date: Thu May 04 2023 - 12:44:06 EST


+An error injection example::
+
+ # cd /sys/kernel/debug/apei/einj
+ # cat available_error_type # See which errors can be injected
+ 0x00000001 EINJV2 Processor Error
+ 0x00000002 EINJV2 Memory Error
+ 0x00000004 EINJV2 PCI Express Error
+ # echo 0x2 > error_type
+ # echo 0x5 > flags
+ # echo 0x12345000 > param1
+ # echo 0x2 > param5
+ # echo 1 > error_inject

Is the expectation that platforms that implement EINJV2 will not include legacy
EINJ support?

The Linux error injection API is all in "debugfs", so maybe there shouldn't be
an expectation that old injection tests will work on new systems. But this is
going to catch some by surprise.

Maybe it would be better to change the top-level directory to:

/sys/kernel/debug/apei/einjv2

so that old scripts and programs will fail immediately, rather than do
weird things writing legacy einj values to the various files.

And ... since there is no expectation of backward compatibility ... perhaps
take this opportunity to re-think the entire API? Perhaps something like this,
With just a single file for all parameters?

# echo "memory notrigger 0x12345 0x2" > /sys/kernel/debug/apei/einjv2/inject

or separate files for each injection target:

# echo "0x12345 0x2 notrigger" > /sys/kernel/debug/apei/einjv2/inject_memory

-Tony