Re: [PATCH v13 07/13] x86/sgx: Add data structures for tracking the EPC pages

From: Jarkko Sakkinen
Date: Fri Aug 31 2018 - 07:13:43 EST


On Tue, Aug 28, 2018 at 02:34:32PM -0700, Sean Christopherson wrote:
> On Tue, Aug 28, 2018 at 09:53:11AM -0700, Dave Hansen wrote:
> > >>> + sgx_nr_epc_banks++;
> > >>> + }
> > >>> +
> > >>> + if (!sgx_nr_epc_banks) {
> > >>> + pr_err("There are zero EPC banks.\n");
> > >>> + return -ENODEV;
> > >>> + }
> > >>> +
> > >>> + return 0;
> > >>> +}
> > >>
> > >> Does this support hot-addition of a bank? If not, why not?
> > ...
> > > I'm not aware that we would have an ACPI specification for SGX so this
> > > is all I have at the moment (does not show any ACPI event for
> > > hotplugging).
> >
> > So you're saying the one platform you looked at don't support hotplug.
> > I was looking for a more broad statement about SGX.
>
> Hardware doesn't support hotplug of EPC as the EPC size and location
> is locked during activation of SGX. And IIRC, activation of SGX must
> be synchronized across all CPUs in a multi-socket platform, e.g. you
> can't late-enable SGX on a socket and due hotplugging that way.

Makes me wonder how on a multisocket platform would this work anyway
given that they have different fused keys?

> In a virtualized environment there are no such restrictions. I am not
> aware of any explicit requirements or use cases for supporting hotplug
> of EPC, but that's probably only because virtualization of SGX is
> fairly nascent.

/Jarkko