diff options
| author | Mihir Bhogilal Patel <Mihir.Patel@amd.com> | 2020-10-08 15:46:38 +0530 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2020-10-15 12:23:24 -0400 | 
| commit | ff72bc40317079b775a7a6d2ba94297b04b795e4 (patch) | |
| tree | 2342e55ca6de6895f0a9b11d297b14ac6b1b6916 /drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | |
| parent | ded08454e56b70186bff74374d31f57a90cb497f (diff) | |
drm/amdgpu: Add debugfs entry for printing VM info
Create new debugfs entry to print memory info using VM buffer
objects.
V2: Added Common function for printing BO info.
    Dump more VM lists for evicted, moved, relocated, invalidated.
    Removed dumping VM mapped BOs.
V3: Fixed coding style comments, renamed print API and variables.
V4: Fixed coding style comments.
Signed-off-by: Mihir Bhogilal Patel <Mihir.Patel@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 30 | 
1 files changed, 30 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c index 2d125b8b15ee..8ec4806c2ff4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c @@ -1335,11 +1335,41 @@ static int amdgpu_debugfs_evict_gtt(struct seq_file *m, void *data)  	return 0;  } +static int amdgpu_debugfs_vm_info(struct seq_file *m, void *data) +{ +	struct drm_info_node *node = (struct drm_info_node *)m->private; +	struct drm_device *dev = node->minor->dev; +	struct drm_file *file; +	int r; + +	r = mutex_lock_interruptible(&dev->filelist_mutex); +	if (r) +		return r; + +	list_for_each_entry(file, &dev->filelist, lhead) { +		struct amdgpu_fpriv *fpriv = file->driver_priv; +		struct amdgpu_vm *vm = &fpriv->vm; + +		seq_printf(m, "pid:%d\tProcess:%s ----------\n", +				vm->task_info.pid, vm->task_info.process_name); +		r = amdgpu_bo_reserve(vm->root.base.bo, true); +		if (r) +			break; +		amdgpu_debugfs_vm_bo_info(vm, m); +		amdgpu_bo_unreserve(vm->root.base.bo); +	} + +	mutex_unlock(&dev->filelist_mutex); + +	return r; +} +  static const struct drm_info_list amdgpu_debugfs_list[] = {  	{"amdgpu_vbios", amdgpu_debugfs_get_vbios_dump},  	{"amdgpu_test_ib", &amdgpu_debugfs_test_ib},  	{"amdgpu_evict_vram", &amdgpu_debugfs_evict_vram},  	{"amdgpu_evict_gtt", &amdgpu_debugfs_evict_gtt}, +	{"amdgpu_vm_info", &amdgpu_debugfs_vm_info},  };  static void amdgpu_ib_preempt_fences_swap(struct amdgpu_ring *ring, | 
