Re: [PATCH v5 09/18] x86/sgx: Store struct sgx_encl when allocating new VA pages

Huang, Kai
2023-10-03T20:08:31Z

On Tue, 2023-10-03 at 01:45 -0500, Haitao Huang wrote:
> >
> > Btw, probably a dumb question:
> >
> > Theoretically if you only need to find a victim enclave you don't need
> > to put VA
> > pages to the unreclaimable list, because those VA pages will be freed
> > anyway
> > when enclave is killed.  So keeping VA pages in the list is for
> > accounting all
> > the pages that the cgroup is having?
>
> Yes basically tracking them in cgroups as they are allocated.
>
> VAs and SECS may also come and go as swapping/unswapping happens. But if a
> cgroup is OOM, and all reclaimables are gone (swapped out), it'd have to
> reclaim VAs/SECs in the same cgroup starting from the front of the LRU
> list. To reclaim a VA/SECS, it identifies the enclave from the owner of
> the VA/SECS page and kills it, as killing enclave is the only way to
> reclaim VA/SECS pages.

To kill enclave you just need to track SECS in the unreclaimable list.

Only when you want to account the total EPC pages via some list you _probably_
need to track VA as well. But I am not quite sure about this either.