Re: [PATCH v7 8/8] drivers/node: Show in sysfs node's crypto capabilities

From: Martin Fernandez
Date: Tue Apr 26 2022 - 09:01:49 EST


On 4/26/22, Mike Rapoport <rppt@xxxxxxxxxx> wrote:
> On Mon, Apr 25, 2022 at 02:15:26PM -0300, Martin Fernandez wrote:
>> Show in each node in sysfs if its memory is able to do be encrypted by
>> the CPU, ie. if all its memory is marked with EFI_MEMORY_CPU_CRYPTO in
>> the EFI memory map.
>>
>> Signed-off-by: Martin Fernandez <martin.fernandez@xxxxxxxxxxxxx>
>> ---
>> Documentation/ABI/testing/sysfs-devices-node | 10 ++++++++++
>> drivers/base/node.c | 10 ++++++++++
>> 2 files changed, 20 insertions(+)
>> create mode 100644 Documentation/ABI/testing/sysfs-devices-node
>>
>> diff --git a/Documentation/ABI/testing/sysfs-devices-node
>> b/Documentation/ABI/testing/sysfs-devices-node
>> new file mode 100644
>> index 000000000000..5fd5dc7fc2eb
>> --- /dev/null
>> +++ b/Documentation/ABI/testing/sysfs-devices-node
>> @@ -0,0 +1,10 @@
>> +What: /sys/devices/system/node/nodeX/crypto_capable
>> +Date: April 2022
>> +Contact: Martin Fernandez <martin.fernandez@xxxxxxxxxxxxx>
>> +Users: fwupd (https://fwupd.org)
>> +Description:
>> + This value is 1 if all system memory in this node is
>> + marked with EFI_MEMORY_CPU_CRYPTO, indicating that the
>> + system memory is capable of being protected with the
>> + CPU’s memory cryptographic capabilities. It is 0
>> + otherwise.
>
> I understand that currently this feature is only for x86, but if non-EFI
> architectures will start using MEMBLOCK_CRYPTO_CAPABLE, the sysfs attribute
> for will be relevant form them as well.
>
> How about
> This value is 1 if all system memory in this node is capable of
> being protected with the CPU's memory cryptographic capabilities.
> It is 0 otherwise.
> On EFI systems the node will be marked with EFI_MEMORY_CPU_CRYPTO.
>

Good point. I'll change it.

>> \ No newline at end of file
>> diff --git a/drivers/base/node.c b/drivers/base/node.c
>> index ec8bb24a5a22..1df15ea03c27 100644
>> --- a/drivers/base/node.c
>> +++ b/drivers/base/node.c
>> @@ -560,11 +560,21 @@ static ssize_t node_read_distance(struct device
>> *dev,
>> }
>> static DEVICE_ATTR(distance, 0444, node_read_distance, NULL);
>>
>> +static ssize_t crypto_capable_show(struct device *dev,
>> + struct device_attribute *attr, char *buf)
>> +{
>> + struct pglist_data *pgdat = NODE_DATA(dev->id);
>> +
>> + return sysfs_emit(buf, "%d\n", pgdat->crypto_capable);
>> +}
>> +static DEVICE_ATTR_RO(crypto_capable);
>> +
>> static struct attribute *node_dev_attrs[] = {
>> &dev_attr_meminfo.attr,
>> &dev_attr_numastat.attr,
>> &dev_attr_distance.attr,
>> &dev_attr_vmstat.attr,
>> + &dev_attr_crypto_capable.attr,
>> NULL
>> };
>>
>> --
>> 2.30.2
>>
>
> --
> Sincerely yours,
> Mike.
>