Re: [PATCH] x86/sgx: Add poison handling to reclaimer

From: Jarkko Sakkinen
Date: Thu Jan 20 2022 - 07:58:16 EST


On Tue, 2022-01-18 at 15:05 -0800, Reinette Chatre wrote:
> The machine check recovery handling in SGX added the changes
> listed below to the freeing of pages in sgx_free_epc_page().
> The SGX reclaimer contains an open coded version of
> sgx_free_epc_page() and thus did not obtain the changes in
> support of poison handling.
>
> The changes made to EPC page freeing in support of poison handling
> are:
> 1) A new SGX_EPC_PAGE_IS_FREE flag is set when the EPC page is
>    freed. Introduced in commit d6d261bded8a ("x86/sgx: Add new
>    sgx_epc_page flag bit to mark free pages").
> 2) A new "poison" field in struct sgx_epc_page is used to
>    determine whether a newly freed EPC page should be placed
>    on the list of poisoned or list of free pages. Introduced
>    in commit 992801ae9243 ("x86/sgx: Initial poison handling
>    for dirty and free pages").
> 3) The owner field in struct sgx_epc_page is cleared when the EPC
>    page is freed.  Introduced in commit 992801ae9243 ("x86/sgx:
>    Initial poison handling for dirty and free pages").
>
> Replace the open coded enclave page freeing code in the reclaimer
> with sgx_free_epc_page() to obtain support for poison page handling.
>
> Fixes: d6d261bded8a ("x86/sgx: Add new sgx_epc_page flag bit to mark
> free pages")

AFAIK, this patch does not semantically break anything so it is not
a legit fixes tag.

BR, Jarkko