[RFC PATCH 3/9] x86/sgx: Allow userspace to add multiple pages in single ioctl()
Sean Christopherson
sean.j.christopherson at intel.com
Mon Jun 3 20:37:12 UTC 2019
On Mon, Jun 03, 2019 at 01:14:45PM -0700, Dave Hansen wrote:
> On 5/31/19 4:31 PM, Sean Christopherson wrote:
> > -struct sgx_enclave_add_page {
> > +struct sgx_enclave_add_pages {
> > __u64 addr;
> > __u64 src;
> > __u64 secinfo;
> > + __u32 nr_pages;
> > __u16 mrmask;
> > } __attribute__((__packed__));
>
> IMNHO this follows a user interface anti-pattern: exposing page sizes
> where not strictly required.
>
> Think of how this would look to an application if page size was
> variable. With this interface, they always need to scale their
> operations by page size instead of just aligning it.
I briefly considered taking size in bytes, but I took a shortcut because
EPC pages are architecturally defined to be 4k sized and aligned. That
being said, I don't necessarily disagree, especially if nr_pages isn't
squeezed into a u32.
> BTW, why is nr_pages a u32? Do we never envision a case where you can
> add more than 4TB of memory to an enclave? ;)
Heh, fair enough. IIRC, a while back someone posted about having problems
building a 512gb enclave in a 92mb EPC...
How about this for the intermediate patch:
struct sgx_enclave_add_region {
__u64 addr;
__u64 src;
__u64 size;
__u64 secinfo;
__u16 mrmask;
__u16 reserved16;
__u32 reserved;
}
and with the flags field:
struct sgx_enclave_add_region {
__u64 addr;
__u64 src;
__u64 size;
__u64 secinfo;
__u16 mrmask;
__u16 flags;
__u32 reserved;
}
More information about the Linux-security-module-archive
mailing list