[PATCH 2/2] drm/amdgpu: add sysfs files for XGMI segment size and physical node id
Christian König
ckoenig.leichtzumerken at gmail.com
Wed Feb 9 08:51:27 UTC 2022
Can anybody give me a Tested-by for this set?
I would really like to push it, but it would be nice to have at least
somebody with access to an xgmi system tries it first.
Christian.
Am 26.01.22 um 13:57 schrieb StDenis, Tom:
> [AMD Official Use Only]
>
> Sadly I don't control any XGMI hosts to try it out. So if they pick it up in their builds I can but otherwise we'll have to wait.
>
> Tom
>
> ________________________________________
> From: Tuikov, Luben <Luben.Tuikov at amd.com>
> Sent: Wednesday, January 26, 2022 07:55
> To: Christian König; StDenis, Tom
> Cc: amd-gfx at lists.freedesktop.org
> Subject: Re: [PATCH 2/2] drm/amdgpu: add sysfs files for XGMI segment size and physical node id
>
> This seems reasonable. Hope it works out for umr.
>
> Reviewed-by: Luben Tuikov <luben.tuikov at amd.com>
>
> Regards,
> Luben
>
> On 2022-01-26 06:59, Christian König wrote:
>> umr needs that to correctly calculate the VRAM base address
>> inside the MC address space.
>>
>> Only compile tested!
>>
>> Signed-off-by: Christian König <christian.koenig at amd.com>
>> ---
>> drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 34 ++++++++++++++++++++++++
>> 1 file changed, 34 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
>> index 68509f619ba3..21a5d07a1abf 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
>> @@ -252,6 +252,26 @@ static ssize_t amdgpu_xgmi_show_device_id(struct device *dev,
>>
>> }
>>
>> +static ssize_t amdgpu_xgmi_show_node_segment_size(struct device *dev,
>> + struct device_attribute *attr,
>> + char *buf)
>> +{
>> + struct drm_device *ddev = dev_get_drvdata(dev);
>> + struct amdgpu_device *adev = drm_to_adev(ddev);
>> +
>> + return sysfs_emit(buf, "%llu\n", adev->gmc.xgmi.node_segment_size);
>> +}
>> +
>> +static ssize_t amdgpu_xgmi_show_physical_node_id(struct device *dev,
>> + struct device_attribute *attr,
>> + char *buf)
>> +{
>> + struct drm_device *ddev = dev_get_drvdata(dev);
>> + struct amdgpu_device *adev = drm_to_adev(ddev);
>> +
>> + return sysfs_emit(buf, "%u\n", adev->gmc.xgmi.physical_node_id);
>> +}
>> +
>> #define AMDGPU_XGMI_SET_FICAA(o) ((o) | 0x456801)
>> static ssize_t amdgpu_xgmi_show_error(struct device *dev,
>> struct device_attribute *attr,
>> @@ -287,6 +307,10 @@ static ssize_t amdgpu_xgmi_show_error(struct device *dev,
>>
>>
>> static DEVICE_ATTR(xgmi_device_id, S_IRUGO, amdgpu_xgmi_show_device_id, NULL);
>> +static DEVICE_ATTR(xgmi_node_segment_size, S_IRUGO,
>> + amdgpu_xgmi_show_node_segment_size, NULL);
>> +static DEVICE_ATTR(xgmi_physical_node_id, S_IRUGO,
>> + amdgpu_xgmi_show_physical_node_id, NULL);
>> static DEVICE_ATTR(xgmi_error, S_IRUGO, amdgpu_xgmi_show_error, NULL);
>>
>> static void amdgpu_xgmi_sysfs_rem_dev_info(struct amdgpu_device *adev,
>> @@ -295,6 +319,8 @@ static void amdgpu_xgmi_sysfs_rem_dev_info(struct amdgpu_device *adev,
>> char node[10];
>>
>> device_remove_file(adev->dev, &dev_attr_xgmi_device_id);
>> + device_remove_file(adev->dev, &dev_attr_xgmi_node_segment_size);
>> + device_remove_file(adev->dev, &dev_attr_xgmi_physical_node_id);
>> device_remove_file(adev->dev, &dev_attr_xgmi_error);
>>
>> if (hive->kobj.parent != (&adev->dev->kobj))
>> @@ -318,6 +344,14 @@ static int amdgpu_xgmi_sysfs_add_dev_info(struct amdgpu_device *adev,
>> if (r)
>> goto error;
>>
>> + r = device_create_file(adev->dev, &dev_attr_xgmi_node_segment_size);
>> + if (r)
>> + goto error;
>> +
>> + r = device_create_file(adev->dev, &dev_attr_xgmi_physical_node_id);
>> + if (r)
>> + goto error;
>> +
>> /* Create sysfs link to hive info folder on the first device */
>> if (hive->kobj.parent != (&adev->dev->kobj)) {
>> r = sysfs_create_link(&adev->dev->kobj, &hive->kobj,
> Regards,
> --
> Luben
>
More information about the amd-gfx
mailing list