Re: [RFC PATCH v3 04/27] x86/sgx: Wipe out EREMOVE from sgx_free_epc_page()

Kai Huang
2021-02-02T19:28:57Z

On Tue, 2 Feb 2021 19:00:48 +0100 Paolo Bonzini wrote:
> On 27/01/21 02:25, Kai Huang wrote:
> > On Tue, 26 Jan 2021 08:04:35 -0800 Dave Hansen wrote:
> >> On 1/26/21 1:30 AM, Kai Huang wrote:
> >>> From: Jarkko Sakkinen <jarkko@kernel.org>
> >>>
> >>> Encapsulate the snippet in sgx_free_epc_page() concerning EREMOVE to
> >>> sgx_reset_epc_page(), which is a static helper function for
> >>> sgx_encl_release(). It's the only function existing, which deals with
> >>> initialized pages.
> >>
> >> Yikes. I have no idea what that is saying. Here's a rewrite:
> >>
> >> EREMOVE takes a pages and removes any association between that page and
> >> an enclave. It must be run on a page before it can be added into
> >> another enclave. Currently, EREMOVE is run as part of pages being freed
> >> into the SGX page allocator. It is not expected to fail.
> >>
> >> KVM does not track how guest pages are used, which means that SGX
> >> virtualization use of EREMOVE might fail.
> >>
> >> Break out the EREMOVE call from the SGX page allocator. This will allow
> >> the SGX virtualization code to use the allocator directly. (SGX/KVM
> >> will also introduce a more permissive EREMOVE helper).
> >
> > Thanks.
> >
> > Hi Jarkko,
> >
> > Do you want me to update your patch directly, or do you want to take the
> > change, and send me the patch again?
>
> I think you should treat all these 27 patches as yours now (including
> removing them, reordering them, adjusting commit message etc.).

Agreed. Thank you Paolo for starting to review this series :)