[PATCH 2/2] drm/amdgpu: cleanup debugfs for amdgpu rings

Sharma, Shashank shashank.sharma at amd.com
Sun Sep 5 08:03:34 UTC 2021



On 9/3/2021 9:44 PM, Das, Nirmoy wrote:
> 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()
> 
> 

Ah, it makes better sense now. Probably just a mention in the body of 
the message that we are moving from debugfs_create_file() to 
debugfs_create_file_size(), will make this change of return type more 
logical.

- Shashank

> 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