> -----Original Message----- > From: Christopherson, Sean J > Sent: Monday, June 03, 2019 1:37 PM > To: Hansen, Dave <dave.hansen@xxxxxxxxx> > Cc: Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx>; Andy Lutomirski > <luto@xxxxxxxxxx>; Xing, Cedric <cedric.xing@xxxxxxxxx>; Stephen Smalley > <sds@xxxxxxxxxxxxx>; James Morris <jmorris@xxxxxxxxx>; Serge E . Hallyn > <serge@xxxxxxxxxx>; LSM List <linux-security-module@xxxxxxxxxxxxxxx>; > Paul Moore <paul@xxxxxxxxxxxxxx>; Eric Paris <eparis@xxxxxxxxxxxxxx>; > selinux@xxxxxxxxxxxxxxx; Jethro Beekman <jethro@xxxxxxxxxxxx>; Thomas > Gleixner <tglx@xxxxxxxxxxxxx>; Linus Torvalds <torvalds@linux- > foundation.org>; LKML <linux-kernel@xxxxxxxxxxxxxxx>; X86 ML > <x86@xxxxxxxxxx>; linux-sgx@xxxxxxxxxxxxxxx; Andrew Morton <akpm@linux- > foundation.org>; nhorman@xxxxxxxxxx; npmccallum@xxxxxxxxxx; Ayoun, Serge > <serge.ayoun@xxxxxxxxx>; Katz-zamir, Shay <shay.katz-zamir@xxxxxxxxx>; > Huang, Haitao <haitao.huang@xxxxxxxxx>; Andy Shevchenko > <andriy.shevchenko@xxxxxxxxxxxxxxx>; Svahn, Kai <kai.svahn@xxxxxxxxx>; > Borislav Petkov <bp@xxxxxxxxx>; Josh Triplett <josh@xxxxxxxxxxxxxxxx>; > Huang, Kai <kai.huang@xxxxxxxxx>; David Rientjes <rientjes@xxxxxxxxxx>; > Roberts, William C <william.c.roberts@xxxxxxxxx>; Tricca, Philip B > <philip.b.tricca@xxxxxxxxx> > Subject: Re: [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; What is "flags" here? > __u32 reserved; > }