[PATCH v11 0/7] Basic recovery for machine checks inside SGX
From: Tony Luck
Date: Tue Oct 26 2021 - 18:01:46 EST
Boris,
I took this series out of lkml/x86 for a few revisions, I think
the last one posted to lkml was v5. So much has changed since then
that it might be easier to just look at this as if it were v1 and
ignore the earlier history.
First four patches add infrastructure within the SGX code to
track enclave pages (because these pages don't have a "struct
page" as they aren't directly accessible by Linux). All have
"Reviewed-by" tags from Jarkko (SGX maintainer).
Patch 5 hooks into memory_failure() to invoke recovery if
the physical address is in enclave space. This has a
"Reviewed-by" tag from Naoya Horiguchi the maintainer for
mm/memory-failure.c
Patch 6 is a hook into the error injection code and addition
to the error injection documentation explaining extra steps
needed to inject into SGX enclave memory.
Patch 7 is a hook into GHES error reporting path to recognize
that SGX enclave addresses are valid and need processing.
-Tony
Tony Luck (7):
x86/sgx: Add new sgx_epc_page flag bit to mark free pages
x86/sgx: Add infrastructure to identify SGX EPC pages
x86/sgx: Initial poison handling for dirty and free pages
x86/sgx: Add SGX infrastructure to recover from poison
x86/sgx: Hook arch_memory_failure() into mainline code
x86/sgx: Add hook to error injection address validation
x86/sgx: Add check for SGX pages to ghes_do_memory_failure()
.../firmware-guide/acpi/apei/einj.rst | 19 +++
arch/x86/Kconfig | 1 +
arch/x86/include/asm/processor.h | 8 ++
arch/x86/include/asm/set_memory.h | 4 +
arch/x86/kernel/cpu/sgx/main.c | 113 +++++++++++++++++-
arch/x86/kernel/cpu/sgx/sgx.h | 7 +-
drivers/acpi/apei/einj.c | 3 +-
drivers/acpi/apei/ghes.c | 2 +-
include/linux/mm.h | 13 ++
mm/memory-failure.c | 19 ++-
10 files changed, 179 insertions(+), 10 deletions(-)
base-commit: 3906fe9bb7f1a2c8667ae54e967dc8690824f4ea
--
2.31.1