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

From: Huang, Kai
Date: Tue Oct 03 2023 - 16:08:32 EST


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.