lkml.org 
[lkml]   [2019]   [May]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: SGX vs LSM (Re: [PATCH v20 00/28] Intel SGX1 support)
    On Fri, May 17, 2019 at 11:21 AM Sean Christopherson
    <sean.j.christopherson@intel.com> wrote:
    >
    > I agree that conceptually EPC is private memory, but because EPC is
    > managed as a separate memory pool, SGX tags it VM_PFNMAP and manually
    > inserts PFNs, i.e. EPC effectively it gets classified as IO memory.
    >
    > And vmf_insert_pfn_prot() doesn't like writable private IO mappings:
    >
    > BUG_ON((vma->vm_flags & VM_PFNMAP) && is_cow_mapping(vma->vm_flags));

    Hmm. I haven't looked into why you want to do your own page insertion
    and not just "use existing pages", but I'm sure there's some reason.

    It looks like the "shared vs private" inode part is a red herring,
    though. You might as well give each opener of the sgx node its own
    inode - and you probably should. Then you can keep track of the pages
    that have been added in the inode->i_mapping, and you could avoid the
    whole PFN thing entirely. I still am not a huge fan of the device node
    in the first place, but I guess it's just one more place where a
    system admin can then give (or deny) access to a kernel feature from
    users. I guess the kvm people do the same thing, for not necessarily
    any better reasons.

    With the PFNMAP model I guess the SGX memory ends up being unswappable
    - at least done the obvious way.

    Again, the way I'd expect it to be done is as a shmem inode - that
    would I think be a better model. But I think that's a largely internal
    design decision, and the device node could just do that eventually
    (and the mmap could just map the populated shmem information into
    memory, no PFNMAP needed - the inode and the mapping could be
    "read-only" as far as the _user_ is concerned, but the i_mapping then
    gets populated by the ioctl's).

    I have not actually looked at any of the SGX patches, so maybe you're
    already doing something like that (although the PFNMAP comment makes
    me think not), and quite possibly there's some fundamental reason why
    you can't just use the shmem approach.

    So my high-level reaction here may be just the rantings of somebody
    who just isn't familiar with what you do. My "why not shmem and
    regular mmap" questions come from a 30000ft view without knowing any
    of the details.

    Linus

    \
     
     \ /
      Last update: 2019-05-17 20:43    [W:2.491 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site