v2 Changes: - Make the --clear option of 'inject-error' its own command (Alison) - Debugfs is now found using the /proc/mount entry instead of providing the path using a --debugfs option - Man page added for 'clear-error' - Reword commit descriptions for clarity
This series adds support for injecting CXL protocol (CXL.cache/mem) errors[1] into CXL RCH Downstream ports and VH root ports[2] and poison into CXL memory devices through the CXL debugfs. Errors are injected using a new 'inject-error' command, while errors are reported using a new cxl-list "-N"/"--injectable-errors" option. Device poison can be cleared using the 'clear-error' command. The 'inject-error'/'clear-error' commands and "-N" option of cxl-list all require access to the CXL driver's debugfs. The documentation for the new cxl-inject-error command shows both usage and the possible device/error types, as well as how to retrieve them using cxl-list. The documentation for cxl-list has also been updated to show the usage of the new injectable errors option. [1]: ACPI v6.5 spec, section 18.6.4 [2]: ACPI v6.5 spec, table 18.31 -- Alison, I reached out to Junhyeok about his poison injection series but never heard back, so I've just continued with my original plans for a v2. Quick note: My testing setup is screwed up at the moment, so this revision is untested. I'll try to get it fixed for the next revision. -- Ben Cheatham (7): libcxl: Add debugfs path to CXL context libcxl: Add CXL protocol errors libcxl: Add poison injection support cxl: Add inject-error command cxl: Add clear-error command cxl/list: Add injectable errors in output Documentation: Add docs for inject/clear-error commands Documentation/cxl/cxl-clear-error.txt | 67 ++++++ Documentation/cxl/cxl-inject-error.txt | 129 ++++++++++++ Documentation/cxl/cxl-list.txt | 35 +++- Documentation/cxl/meson.build | 2 + cxl/builtin.h | 2 + cxl/cxl.c | 2 + cxl/filter.h | 3 + cxl/inject-error.c | 253 +++++++++++++++++++++++ cxl/json.c | 30 +++ cxl/lib/libcxl.c | 274 +++++++++++++++++++++++++ cxl/lib/libcxl.sym | 12 ++ cxl/lib/private.h | 14 ++ cxl/libcxl.h | 16 ++ cxl/list.c | 3 + cxl/meson.build | 1 + util/json.h | 1 + 16 files changed, 843 insertions(+), 1 deletion(-) create mode 100644 Documentation/cxl/cxl-clear-error.txt create mode 100644 Documentation/cxl/cxl-inject-error.txt create mode 100644 cxl/inject-error.c -- 2.34.1