Re: [PATCH RFC v3] x86/sgx: Add /proc/sys/kernel/sgx/total_mem

From: Dave Hansen
Date: Wed Aug 11 2021 - 10:30:48 EST


On 8/10/21 8:21 PM, Jarkko Sakkinen wrote:
> +The following sysctl files can be found in the ``/proc/sys/kernel/sgx/`` directory:
> +
> +``total_mem``
> + The total amount of SGX protected memory in bytes available in the system
> + available for use. In other words, it describes the size of the Enclave
> + Page Cache (EPC).

I've been acting as if /proc is deprecated for new stuff. Shouldn't
this be going in sysfs?

I figured, at some point, someone is going to ask for NUMA statistics.
That would tend to point in the direction of us needing something in:

/sys/devices/system/node/nodeN/

Maybe 'sgxinfo' or 'sgxstat' to go along with 'meminfo'.

But, we'll probably also end up needing some stats for other things.
Folks have, for instance, asked for a counter of the number of
instantiated enclaves.

We could also use the drivers' namespaces:

/sys/class/misc/sgx_enclave
/sys/class/misc/sgx_provision
/sys/class/misc/sgx_vepc

although that is a bit awkward for reporting global resources like memory.

We could create a platform device just for these stats, say:

/sys/bus/platform/devices/sgx

But I think platform devices are rather highly scrutinized these days.
I'm not sure if SGX counts as one.

/sys/kernel also appears to be a bit of a free-for-all. Perhaps it
could go in:

/sys/kernel/sgx
or
/sys/kernel/enclaves

The other crazy thing we could try would be to just hijack core mm
mechanisms:

/proc/{meminfo,vmstat}
/sys/devices/system/node/nodeN/{vmstat,meminfo}

Then we can just use the existing counter infrastructure, which I think
gets us into /sys and /proc. I'm not sure the mm folks would be fond of
this for something arch and vendor specific, though.

In any case, ABIs are hard and SGX is weird. News at 11.