On Wed, 2021-09-15 at 13:30 -0700, Reinette Chatre wrote:
Hi Everybody,
This series consists out of outstanding SGX selftests changes, rebased and gathered in a single series that is more easily merged for testing and development, and a few more changes added to expand the existing tests.
The outstanding SGX selftest changes included in this series that have already been submitted separately are:
An almost two year old patch fixing a benign linker warning that is still present today: https://lore.kernel.org/linux-sgx/20191017030340.18301-2-sean.j.christophers... The original patch is added intact and not all email addresses within are valid.
Latest (v4) of Jarkko Sakkinen's series to add an oversubscription test: https://lore.kernel.org/linux-sgx/20210809093127.76264-1-jarkko@kernel.org/
Latest (v2) of Jarkko Sakkinen's patch that provides provide per-op parameter structs for the test enclave: https://lore.kernel.org/linux-sgx/20210812224645.90280-1-jarkko@kernel.org/
The reason why most of these patches are outstanding is that they depend on a kernel change that is still under discussion. Decision to wait in: https://lore.kernel.org/linux-sgx/f8674dac5579a8a424de1565f7ffa2b5bf2f8e36.c... The original patch for this kernel dependency continues to be included in this series as a placeholder until the ongoing discussions are concluded.
The new changes introduced in this series builds on Jarkko's outstanding SGX selftest changes and adds new tests for page permissions, exception handling, and thread entry.
Reinette
Jarkko Sakkinen (9): x86/sgx: Add /sys/kernel/debug/x86/sgx_total_mem selftests/sgx: Assign source for each segment selftests/sgx: Make data measurement for an enclave segment optional selftests/sgx: Create a heap for the test enclave selftests/sgx: Dump segments and /proc/self/maps only on failure selftests/sgx: Encpsulate the test enclave creation selftests/sgx: Move setup_test_encl() to each TEST_F() selftests/sgx: Add a new kselftest: unclobbered_vdso_oversubscribed selftests/sgx: Provide per-op parameter structs for the test enclave
Reinette Chatre (4): selftests/sgx: Rename test properties in preparation for more enclave tests selftests/sgx: Add page permission and exception test selftests/sgx: Enable multiple thread support selftests/sgx: Add test for multiple TCS entry Sean Christopherson (1): selftests/x86/sgx: Fix a benign linker warning
Documentation/x86/sgx.rst | 6 + arch/x86/kernel/cpu/sgx/main.c | 10 +- tools/testing/selftests/sgx/Makefile | 2 +- tools/testing/selftests/sgx/defines.h | 33 +- tools/testing/selftests/sgx/load.c | 40 +- tools/testing/selftests/sgx/main.c | 341 +++++++++++++++--- tools/testing/selftests/sgx/main.h | 7 +- tools/testing/selftests/sgx/sigstruct.c | 12 +- tools/testing/selftests/sgx/test_encl.c | 60 ++- .../selftests/sgx/test_encl_bootstrap.S | 21 +- 10 files changed, 445 insertions(+), 87 deletions(-)
One test that would be also nice to have at some point would be vepc test. It's not exceptionally hard to ramp up KVM:
https://lwn.net/Articles/658511/
Hmm... perhaps this type of kselftest should be part of the series that Paolo is upstreaming because otherwise we are dependent on non-upstream QEMU to test those changes.
Looking back, this would have been already good idea to ramp up when the original KVM-SGX series was upstreamed because not that many have motivation to self-compile QEMU (I did but thinking about potential larger coverage).
/Jarkko