lkml.org 
[lkml]   [2019]   [Jun]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC PATCH 3/9] x86/sgx: Allow userspace to add multiple pages in single ioctl()
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;
}

\
 
 \ /
  Last update: 2019-06-04 00:00    [W:0.093 / U:3.512 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site