Re: [PATCH V2 13/15] selftests/sgx: Add page permission and exception test

From: Jarkko Sakkinen
Date: Thu Oct 28 2021 - 23:08:18 EST


On Thu, Oct 28, 2021 at 01:37:38PM -0700, Reinette Chatre wrote:
> The Enclave Page Cache Map (EPCM) is a secure structure used by the
> processor to track the contents of the enclave page cache. The EPCM
> contains permissions with which enclave pages can be accessed. SGX
> support allows EPCM and PTE page permissions to differ - as long as
> the PTE permissions do not exceed the EPCM permissions.
>
> Add a test that:
> (1) Creates an SGX enclave page with writable EPCM permission.
> (2) Changes the PTE permission on the page to read-only. This should
> be permitted because the permission does not exceed the EPCM
> permission.
> (3) Attempts a write to the page. This should generate a page fault
> (#PF) because of the read-only PTE even though the EPCM
> permissions allow the page to be written to.
>
> This introduces the first test of SGX exception handling. In this test
> the issue that caused the exception (PTE page permissions) can be fixed
> from outside the enclave and after doing so it is possible to re-enter
> enclave at original entrypoint with ERESUME.
>
> Acked-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
> Signed-off-by: Reinette Chatre <reinette.chatre@xxxxxxxxx>

Reviewed-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>

/Jarkko