[PATCH 2/2] drm/amdgpu: cleanup debugfs for amdgpu rings
Das, Nirmoy
nirmoy.das at amd.com
Sun Sep 5 11:31:27 UTC 2021
On 9/5/2021 10:03 AM, Sharma, Shashank wrote:
>
>
> 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.
Yes, I have that "Use debugfs_create_file_size API for creating ring
debugfs file,..."
Nirmoy
>
> - 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