Re: [PATCH v14 09/19] x86/mm: x86/sgx: Signal SEGV_SGXERR for #PFs w/ PF_SGX

From: Sean Christopherson
Date: Wed Sep 26 2018 - 13:35:30 EST


On Tue, Sep 25, 2018 at 03:53:48PM -0700, Andy Lutomirski wrote:
> Minor nit:
>
> On Tue, Sep 25, 2018 at 6:12 AM Jarkko Sakkinen
> <jarkko.sakkinen@xxxxxxxxxxxxxxx> wrote:
> >
> > From: Sean Christopherson <sean.j.christopherson@xxxxxxxxx>
> >
>
> > by (c) as the kernel doesn't really have any other reasonable option,
> > e.g. we could kill the task or panic, but neither is warranted.
>
> Not killing the task is quite nice, but...
>
> > + /*
> > + * Access is blocked by the Enclave Page Cache Map (EPCM),
> > + * i.e. the access is allowed by the PTE but not the EPCM.
> > + * This usually happens when the EPCM is yanked out from
> > + * under us, e.g. by hardware after a suspend/resume cycle.
> > + * In any case, there is nothing that can be done by the
> > + * kernel to resolve the fault (short of killing the task).
>
> Maybe s/killing the task/sending a signal/?

My intent was to document that, unlike all other page faults, the
kernel can't fix the source of the fault even if it were omniscient.

How about this? With formatting changes since it's long-winded...

/*
* Access is blocked by the Enclave Page Cache Map (EPCM), i.e. the
* access is allowed by the PTE but not the EPCM. This usually happens
* when the EPCM is yanked out from under us, e.g. by hardware after a
* suspend/resume cycle. In any case, software, i.e. the kernel, can't
* fix the source of the fault as the EPCM can't be directly modified
* by software. Handle the fault as an access error in order to signal
* userspace, e.g. so that userspace can rebuild their enclave(s), even
* though userspace may not have actually violated access permissions.
*/