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@xxxxxxx> --- 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.cindex 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.cindex 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 ourdebugfs calls. Regards, NirmoyI 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
- ShashankRegards, NirmoyYes, 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.hindex 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