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

From: Andy Lutomirski
Date: Wed Sep 26 2018 - 14:12:33 EST



> On Sep 26, 2018, at 10:35 AM, Sean Christopherson <sean.j.christopherson@xxxxxxxxx> wrote:
>
>> 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.
> */
>

Looks good to me.