Re: [PATCH v7 00/13] selftests/sgx: Fix compilation errors
From: Jarkko Sakkinen
Date: Tue Oct 10 2023 - 05:45:22 EST
Folks (sorry for top posting): I've now taken my old NUC7 out of the
dust and tested the series :-)
Tested-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>
Off-topic: I wish both Intel and AMD straighten up and deliver some
"home friendly" development hardware for the latest stuff. Just my
stance but the biggest quality risk I see in both TDX and SNP is that
the patches are made by an enterprise and reviewed (properly) *only*
by other huge enterprises.
I skim status of both from time to time but yeah not much attachment
or motivation to do more than that as you either need a cloud access
or partnership with Intel or AMD. "Indie" style seems to be disliked
these days... You can extrapolate from this that there must be a bunch
of maintainers around the Linux kernel that feel the same. Not saying
that particularly my contribution would be that important.
Sort of even if let's say Intel would provide me a partner access I
might not be that interested because I prefer my own (physical)
computers.
BR, Jarkko
On Fri, 2023-10-06 at 11:51 +0200, Jo Van Bulck wrote:
> Thank you, Kai! I'm not familiar with any next steps to get this merged
> upstream, but atm all commits in this series have been reviewed by at
> least Jarkko. Let me know if anything further is needed from my side!
>
> Best,
> Jo
>
> On 05.10.23 23:25, Huang, Kai wrote:
> > Hi Jo,
> >
> > Just FYI I won't review the rest patches in this series. One of the reasons is
> > I am not that familiar with the rest. Jarkko has reviewed anyway :-).
> >
> > On Thu, 2023-10-05 at 17:38 +0200, Jo Van Bulck wrote:
> > > Hi,
> > >
> > > This patch series ensures that all SGX selftests succeed when compiling with
> > > optimizations (as tested with -O{0,1,2,3,s} for both gcc 11.3.0 and clang
> > > 14.0.0). The aim of the patches is to avoid reliance on undefined,
> > > compiler-specific behavior that can make the test results fragile.
> > >
> > > As far as I see, all commits in this series now have an explicit reviewed-by
> > > tag, so hopefully this can get merged upstream? Please let me know if any
> > > concerns remain and I'd happily address them.
> > >
> > > Reference output below:
> > >
> > > .. Testing gcc -O0 [OK]
> > > .. Testing gcc -O1 [OK]
> > > .. Testing gcc -O2 [OK]
> > > .. Testing gcc -O3 [OK]
> > > .. Testing gcc -Os [OK]
> > > .. Testing gcc -Ofast [OK]
> > > .. Testing gcc -Og [OK]
> > > .. Testing clang -O0 [OK]
> > > .. Testing clang -O1 [OK]
> > > .. Testing clang -O2 [OK]
> > > .. Testing clang -O3 [OK]
> > > .. Testing clang -Os [OK]
> > > .. Testing clang -Ofast [OK]
> > > .. Testing clang -Og [OK]
> > >
> > > Changelog
> > > ---------
> > >
> > > v7
> > > - Add reviewed-by tag (Jarkko)
> > >
> > > v6
> > > - Collect final ack/reviewed-by tags (Jarkko, Kai)
> > >
> > > v5
> > > - Reorder patches (Jarkko, Kai)
> > > - Include fixes tag for inline asm memory clobber patch (Kai)
> > > - Include linker error in static-pie commit message (Kai)
> > > - Include generated assembly in relocations commit (Kai)
> > >
> > > v4
> > > - Remove redundant -nostartfiles compiler flag (Jarkko)
> > > - Split dynamic symbol table removal in separate commit (Kai)
> > > - Split redundant push/pop elimination in separate commit (Kai)
> > > - Remove (incomplete) register cleansing on enclave exit
> > > - Fix possibly uninitialized pointer dereferences in load.c
> > >
> > > v3
> > > - Refactor encl_op_array declaration and indexing (Jarkko)
> > > - Annotate encl_buffer with "used" attribute (Kai)
> > > - Split encl_buffer size and placement commits (Kai)
> > >
> > > v2
> > > - Add additional check for NULL pointer (Kai)
> > > - Refine to produce proper static-pie executable
> > > - Fix linker script assertions
> > > - Specify memory clobber for inline asm instead of volatile (Kai)
> > > - Clarify why encl_buffer non-static (Jarkko, Kai)
> > > - Clarify -ffreestanding (Jarkko)
> > >
> > > Best,
> > > Jo
> > >
> > > Jo Van Bulck (13):
> > > selftests/sgx: Fix uninitialized pointer dereference in error path
> > > selftests/sgx: Fix uninitialized pointer dereferences in
> > > encl_get_entry
> > > selftests/sgx: Include memory clobber for inline asm in test enclave
> > > selftests/sgx: Separate linker options
> > > selftests/sgx: Specify freestanding environment for enclave
> > > compilation
> > > selftests/sgx: Remove redundant enclave base address save/restore
> > > selftests/sgx: Produce static-pie executable for test enclave
> > > selftests/sgx: Handle relocations in test enclave
> > > selftests/sgx: Fix linker script asserts
> > > selftests/sgx: Ensure test enclave buffer is entirely preserved
> > > selftests/sgx: Ensure expected location of test enclave buffer
> > > selftests/sgx: Discard unsupported ELF sections
> > > selftests/sgx: Remove incomplete ABI sanitization code in test enclave
> > >
> > > tools/testing/selftests/sgx/Makefile | 12 ++--
> > > tools/testing/selftests/sgx/defines.h | 2 +
> > > tools/testing/selftests/sgx/load.c | 9 ++-
> > > tools/testing/selftests/sgx/sigstruct.c | 5 +-
> > > tools/testing/selftests/sgx/test_encl.c | 67 +++++++++++++------
> > > tools/testing/selftests/sgx/test_encl.lds | 10 +--
> > > .../selftests/sgx/test_encl_bootstrap.S | 28 +++-----
> > > 7 files changed, 77 insertions(+), 56 deletions(-)
> > >
> >