[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