[PATCH 2/2] drm/amdgpu: cleanup debugfs for amdgpu rings
Das, Nirmoy
nirmoy.das at amd.com
Fri Sep 3 16:14:59 UTC 2021
Hi Shashank,
On 9/3/2021 5:51 PM, Das, Nirmoy wrote:
>
> On 9/3/2021 5:26 PM, Sharma, Shashank wrote:
>>
>>
>> On 9/3/2021 1:39 PM, Das, Nirmoy wrote:
>>>
>>> On 9/3/2021 8:36 AM, Sharma, Shashank wrote:
>>>>
>>>>
>>>> On 9/2/2021 5:14 PM, Nirmoy Das wrote:
>>>>> Use debugfs_create_file_size API for creating ring debugfs
>>>>> file, also cleanup surrounding code.
>>>>>
>>>>> Signed-off-by: Nirmoy Das <nirmoy.das at amd.com>
>>>>> ---
>>>>> drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 4 +---
>>>>> drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 16 +++++-----------
>>>>> drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 8 +-------
>>>>> 3 files changed, 7 insertions(+), 21 deletions(-)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
>>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
>>>>> index 077f9baf74fe..dee56ab19a8f 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
>>>>> @@ -1734,9 +1734,7 @@ int amdgpu_debugfs_init(struct amdgpu_device
>>>>> *adev)
>>>>> if (!ring)
>>>>> continue;
>>>>> - if (amdgpu_debugfs_ring_init(adev, ring)) {
>>>>> - DRM_ERROR("Failed to register debugfs file for rings
>>>>> !\n");
>>>>> - }
>>>>> + amdgpu_debugfs_ring_init(adev, ring);
>>>>> }
>>>>> amdgpu_ras_debugfs_create_all(adev);
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
>>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
>>>>> index f40753e1a60d..968521d80514 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
>>>>> @@ -415,26 +415,20 @@ static const struct file_operations
>>>>> amdgpu_debugfs_ring_fops = {
>>>>> #endif
>>>>> -int amdgpu_debugfs_ring_init(struct amdgpu_device *adev,
>>>>> +void amdgpu_debugfs_ring_init(struct amdgpu_device *adev,
>>>>> struct amdgpu_ring *ring)
>>>>> {
>>>>> #if defined(CONFIG_DEBUG_FS)
>>>>> struct drm_minor *minor = adev_to_drm(adev)->primary;
>>>>> - struct dentry *ent, *root = minor->debugfs_root;
>>>>> + struct dentry *root = minor->debugfs_root;
>>>>> char name[32];
>>>>> sprintf(name, "amdgpu_ring_%s", ring->name);
>>>>> - ent = debugfs_create_file(name,
>>>>> - S_IFREG | S_IRUGO, root,
>>>>> - ring, &amdgpu_debugfs_ring_fops);
>>>>> - if (IS_ERR(ent))
>>>>> - return -ENOMEM;
>>>>
>>>> Why are we doing this ? Why to make it void from int ?
>>>
>>>
>>> We tend to ignore debugfs return values as those are not serious
>>> errors. This to sync with rest of our
>>>
>>> debugfs calls.
>>>
>>>
>>> Regards,
>>>
>>> Nirmoy
>>>
>>
>>
>> I am not suere if completely removing the provision of return value
>> is a good way of doing it, we can always ignore it at the caller
>> side, isn't it ?
I just realized while making the change debugfs_create_file_size() is
void return, so we don't have anything useful to return in
amdgpu_debugfs_ring_init()
Regards,
Nirmoy
>
>
> Yes, we are currently throwing an error msg and ignoring it. I don't
> have a strong opinion regarding this, I will send a v2 restoring
> previous behavior.
>
>
> Thanks,
>
> Nirmoy
>
>
>>
>> - Shashank
>>
>>>>
>>>> - Shashank
>>>>
>>>>
>>>>> -
>>>>> - i_size_write(ent->d_inode, ring->ring_size + 12);
>>>>> - ring->ent = ent;
>>>>> + debugfs_create_file_size(name, S_IFREG | S_IRUGO, root, ring,
>>>>> + &amdgpu_debugfs_ring_fops,
>>>>> + ring->ring_size + 12);
>>>>> #endif
>>>>> - return 0;
>>>>> }
>>>>> /**
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
>>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
>>>>> index 88d80eb3fea1..c29fbce0a5b4 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
>>>>> @@ -253,10 +253,6 @@ struct amdgpu_ring {
>>>>> bool has_compute_vm_bug;
>>>>> bool no_scheduler;
>>>>> int hw_prio;
>>>>> -
>>>>> -#if defined(CONFIG_DEBUG_FS)
>>>>> - struct dentry *ent;
>>>>> -#endif
>>>>> };
>>>>> #define amdgpu_ring_parse_cs(r, p, ib)
>>>>> ((r)->funcs->parse_cs((p), (ib)))
>>>>> @@ -356,8 +352,6 @@ static inline void
>>>>> amdgpu_ring_write_multiple(struct amdgpu_ring *ring,
>>>>> int amdgpu_ring_test_helper(struct amdgpu_ring *ring);
>>>>> -int amdgpu_debugfs_ring_init(struct amdgpu_device *adev,
>>>>> +void amdgpu_debugfs_ring_init(struct amdgpu_device *adev,
>>>>> struct amdgpu_ring *ring);
>>>>> -void amdgpu_debugfs_ring_fini(struct amdgpu_ring *ring);
>>>>> -
>>>>> #endif
>>>>>
More information about the amd-gfx
mailing list