Re: [PATCH v2 1/2] x86/sgx: Do not update sgx_nr_free_pages in sgx_setup_epc_section()

From: Borislav Petkov
Date: Wed Apr 07 2021 - 12:18:10 EST


On Wed, Apr 07, 2021 at 07:03:47PM +0300, Jarkko Sakkinen wrote:
> > Which leads to my question: what is sgx_nr_free_pages supposed to denote?
> >
> > Because I understand the callpath
> >
> > sgx_page_cache_init
> > ...
> > for (i = 0; i < ARRAY_SIZE(sgx_epc_sections); i++) {
> > ...
> > sgx_setup_epc_section
> > ...
> > sgx_nr_free_pages += nr_pages;
> >
> > as adding the number of pages of each new EPC section to the total
> > number of the free pages. Unless that variable accounts something else.
> >
> > So what does this variable actually mean?
>
> It's used for only to trigger watermark for reclaiming. I.e. causes
> ksgxd to trigger. And it gives the number of total free EPC pages in
> all NUMA nodes.

So the callpath I laid out above is adding the number of pages of each
section to the total free EPC pages number.

Why is that wrong and why is your patch needed?

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette