Re: [PATCH V3 17/30] x86/sgx: Support modifying SGX page type

From: Reinette Chatre
Date: Tue Apr 05 2022 - 22:02:54 EST


Hi Jarkko,

On 4/5/2022 11:41 AM, Jarkko Sakkinen wrote:
> On Tue, 2022-04-05 at 10:05 -0700, Reinette Chatre wrote:
>> Hi Jarkko,
>>
>> On 4/5/2022 8:34 AM, Jarkko Sakkinen wrote:
>>> On Tue, 2022-04-05 at 10:06 +0300, Jarkko Sakkinen wrote:
>>
>>>>>
>>>>
>>>> To be coherent with other names, this should be
>>>> SGX_IOC_ENCLAVE_MODIFY_TYPES.
>>
>> This is not such a clear change request to me:
>>
>> SGX_IOC_ENCLAVE_ADD_PAGES - add multiple pages
>> SGX_IOC_ENCLAVE_RESTRICT_PERMISSIONS - restrict multiple permissions
>> SGX_IOC_ENCLAVE_REMOVE_PAGES - remove multiple pages
>> SGX_IOC_ENCLAVE_MODIFY_TYPE - set a single type
>>
>> Perhaps it should rather be SGX_IOC_ENCLAVE_SET_TYPE to indicate that
>> there is a single target type as opposed to the possibility
>> of multiple source types (TCS and regular pages can be trimmed).
>>
>>>

What is your opinion about what the ioctl() name should be? I prefer
to obtain a confirmation from you since you originally [1] requested
SGX_IOC_ENCLAVE_MODIFY_TYPE.

>>> This should take only page type given that flags are zeroed:
>>>
>>> EPCM(DS:RCX).R := 0;
>>> EPCM(DS:RCX).W := 0;
>>> EPCM(DS:RCX).X := 0;
>>>
>>
>> ok, this was how it was done in V1 [1] and I can go back to that.
>
> I would name the fields as "flags" and "page_type" just to align
> names with SGX instead of trying to mimim "posix names". Otherwise, 
> I support that.

I will move this ioctl() to use "page_type" instead of "secinfo"
within struct sgx_enclave_modify_type.

Your guidance of "flags" is not clear to me. I assume that you
refer to the field for struct sgx_enclave_restrict_permissions
where I think "permissions" to only contain the new permissions
would be more appropriate. None of the other values in
secinfo.flags are relevant.

Reinette

[1] https://lore.kernel.org/linux-sgx/Yav9g4+L8zg48DRf@xxxxxx/