Re: [PATCH 00/14] selftests/sgx: Oversubscription, page permission, thread entry

From: Jarkko Sakkinen
Date: Thu Sep 16 2021 - 12:29:52 EST


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.christopherson@xxxxxxxxx/
> 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@xxxxxxxxxx/
>
> * 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@xxxxxxxxxx/
>
> 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.camel@xxxxxxxxxx/
> 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