RE: x86/sgx: uapi change proposal

From: Huang, Kai
Date: Tue Jan 08 2019 - 15:09:11 EST


> >
> > Can one of you explain why SGX_ENCLAVE_CREATE is better than just
> > opening a new instance of /dev/sgx for each encalve?
>
> Directly associating /dev/sgx with an enclave means /dev/sgx can't be used
> to provide ioctl()'s for other SGX-related needs, e.g. to mmap() raw EPC and
> expose it a VM. Proposed layout in the link below. I'll also respond to
> Jarkko's question about exposing EPC through /dev/sgx instead of having
> KVM allocate it on behalf of the VM.
>
> https://lkml.kernel.org/r/20181218185349.GC30082@xxxxxxxxxxxxxxx

Hi Sean,

Sorry for replying to old email. But IMHO it is not a must that Qemu needs to open some /dev/sgx and allocate/mmap EPC for guest's virtual EPC slot, instead, KVM could create private slot, which is not visible to Qemu, for virtual EPC, and KVM could call core-SGX EPC allocation API directly.

I am not sure what's the good of allowing userspace to alloc/mmap a raw EPC region? Userspace is not allowed to touch EPC anyway, expect enclave code.

To me KVM creates private EPC slot is cleaner than exposing /dev/sgx/epc and allowing userspace to map some raw EPC region.

Thanks,
-Kai