This allows tools to distinguish between VRAM and visible VRAM.

Use the opportunity to fix locking before accessing bo.

Signed-off-by: Pierre-Eric Pelloux-Prayer <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 33 ++++++++++++++--------
 1 file changed, 21 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
index ff73cc11d47e..f12f019d7f99 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
@@ -1583,18 +1583,27 @@ u64 amdgpu_bo_print_info(int id, struct amdgpu_bo *bo, 
struct seq_file *m)
        unsigned int pin_count;
        u64 size;
 
-       domain = amdgpu_mem_type_to_domain(bo->tbo.resource->mem_type);
-       switch (domain) {
-       case AMDGPU_GEM_DOMAIN_VRAM:
-               placement = "VRAM";
-               break;
-       case AMDGPU_GEM_DOMAIN_GTT:
-               placement = " GTT";
-               break;
-       case AMDGPU_GEM_DOMAIN_CPU:
-       default:
-               placement = " CPU";
-               break;
+       if (dma_resv_trylock(bo->tbo.base.resv)) {
+               unsigned int domain;
+               domain = amdgpu_mem_type_to_domain(bo->tbo.resource->mem_type);
+               switch (domain) {
+               case AMDGPU_GEM_DOMAIN_VRAM:
+                       if (amdgpu_bo_in_cpu_visible_vram(bo))
+                               placement = "VRAM VISIBLE";
+                       else
+                               placement = "VRAM";
+                       break;
+               case AMDGPU_GEM_DOMAIN_GTT:
+                       placement = " GTT";
+                       break;
+               case AMDGPU_GEM_DOMAIN_CPU:
+               default:
+                       placement = " CPU";
+                       break;
+               }
+               dma_resv_unlock(bo->tbo.base.resv);
+       } else {
+               placement = "UNKNOWN";
        }
 
        size = amdgpu_bo_size(bo);
-- 
2.40.0

Reply via email to