On Wed, 2021-08-25 at 17:39 -0700, Randy Dunlap wrote: > On 8/25/21 4:52 PM, Jarkko Sakkinen wrote: > > The amount of SGX memory on the system is determined by the BIOS and it > > varies wildly between systems. It can be from dozens of MB's on desktops > > or VM's, up to many GB's on servers. Just like for regular memory, it is > > sometimes useful to know the amount of usable SGX memory in the system. > > > > Add SGX_MemTotal field to /proc/meminfo, which shows the total amount of > > usable SGX memory in the system. E.g. with 32 MB reserved for SGX from > > BIOS, the printout would be: > > > > SGX_MemTotal: 22528 kB > > > > It is less than 32 MB because some of the space is reserved for Enclave > > Page Cache Metadata (EPCM), which contains state variables for all the > > pages in the Enclave Page Cache (EPC). The latter contains the pages, > > which applications can use to create enclaves. > > > > Signed-off-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx> > > > > --- > > v2: > > * Move ifdef fix for sgx_set_attribute() to a separate patch. > > --- > > Documentation/x86/sgx.rst | 6 ++++++ > > arch/x86/include/asm/sgx.h | 2 ++ > > arch/x86/kernel/cpu/sgx/main.c | 7 ++++++- > > arch/x86/mm/pat/set_memory.c | 5 +++++ > > 4 files changed, 19 insertions(+), 1 deletion(-) > > > > diff --git a/Documentation/x86/sgx.rst b/Documentation/x86/sgx.rst > > index dd0ac96ff9ef..68ee171e1d8f 100644 > > --- a/Documentation/x86/sgx.rst > > +++ b/Documentation/x86/sgx.rst > > @@ -250,3 +250,9 @@ user wants to deploy SGX applications both on the host and in guests > > on the same machine, the user should reserve enough EPC (by taking out > > total virtual EPC size of all SGX VMs from the physical EPC size) for > > host SGX applications so they can run with acceptable performance. > > + > > +Supplemental fields for /proc/meminfo > > +===================================== > > + > > +SGX_MemTotal > > + The total usable SGX protected memory in kilobytes. > > Hi, > > I would prefer to see this listed in Documentation/filesystems/proc.rst > as an optional field, depending on CONFIG_X86_SGX. > Or at least put a reference in proc.rst to this doc file and its > supplemental fields. > > thanks. I *can* put it there but I did have reason not to, i.e. these attributes are neither there: DirectMap4k: 3930904 kB DirectMap2M: 29440000 kB DirectMap1G: 1048576 kB And they are implemented in arch specific code. Actually they are undocumented, e.g. $ git grep DirectMap4k arch/powerpc/mm/book3s64/pgtable.c: seq_printf(m, "DirectMap4k: %8lu kB\n", arch/s390/mm/pageattr.c: seq_printf(m, "DirectMap4k: %8lu kB\n", arch/x86/mm/pat/set_memory.c: seq_printf(m, "DirectMap4k: %8lu kB\n", /Jarkko