On 5/07/2024 7:45 pm, Dmitrii Kuvaiskii wrote:
SGX_ENCL_PAGE_BEING_RECLAIMED flag is set when the enclave page is being reclaimed (moved to the backing store). This flag however has two logical meanings:
- Don't attempt to load the enclave page (the page is busy).
- Don't attempt to remove the PCMD page corresponding to this enclave page (the PCMD page is busy).
Nit:
I think the SGX_ENCL_PAGE_PCMD_BUSY isn't that accurate, because obviously the actual backing page is busy (i.e., cannot be truncated) too. So the current SGX_ENCL_PAGE_BEING_RECLAIMED is also fine to me.
But truncating the actual backing page can also be determined by SGX_ENCL_PAGE_PCMD_BUSY I suppose (if needed in the future), so this looks fine to me too.
To reflect these two meanings, split SGX_ENCL_PAGE_BEING_RECLAIMED into two flags: SGX_ENCL_PAGE_BUSY and SGX_ENCL_PAGE_PCMD_BUSY. Currently, both flags are set only when the enclave page is being reclaimed. A future commit will introduce a new case when the enclave page is being removed; this new case will set only the SGX_ENCL_PAGE_BUSY flag.
As replied to the last patch, IIUC EREMOVE ioctl doesn't seem to be the only case where the BUSY needs to be marked, so let's just say something general but not mention the removal case specifically.
Anyway, feel free to add:
Acked-by: Kai Huang kai.huang@intel.com