]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/panfrost: Internally label some BOs
authorAdrián Larumbe <adrian.larumbe@collabora.com>
Tue, 20 May 2025 17:43:59 +0000 (18:43 +0100)
committerSteven Price <steven.price@arm.com>
Mon, 2 Jun 2025 12:51:15 +0000 (13:51 +0100)
Perfcnt samples buffer is not exposed to UM, but we would like to keep
a tag on it as a potential debug aid.

PRIME imported GEM buffers are UM exposed, but since the usual Panfrost
UM driver code path is not followed in their creation, they might remain
unlabelled for their entire lifetime, so a generic tag was deemed
preferable. The tag is assigned before a UM handle is created so it
doesn't contradict the logic about labelling internal BOs.

Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Signed-off-by: Steven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20250520174634.353267-3-adrian.larumbe@collabora.com
drivers/gpu/drm/panfrost/panfrost_gem.c
drivers/gpu/drm/panfrost/panfrost_perfcnt.c

index 4c5be7ccc9ccdaaae9d3308620a8f9875effcab0..04483d5fb45dedf5c997e7a65136c94fe59c8ed3 100644 (file)
@@ -305,6 +305,16 @@ panfrost_gem_prime_import_sg_table(struct drm_device *dev,
        bo = to_panfrost_bo(obj);
        bo->noexec = true;
 
+       /*
+        * We assign this generic label because this function cannot
+        * be reached through any of the Panfrost UM driver-specific
+        * code paths, unless one is given by explicitly calling the
+        * SET_LABEL_BO ioctl. It is therefore preferable to have a
+        * blanket BO tag that tells us the object was imported from
+        * another driver than nothing at all.
+        */
+       panfrost_gem_internal_set_label(obj, "GEM PRIME buffer");
+
        return obj;
 }
 
index 52befead08c6ba3e0570907efb670009856e9615..563f16bae5430d368bd3b658da6bc5793a1e263b 100644 (file)
@@ -111,6 +111,8 @@ static int panfrost_perfcnt_enable_locked(struct panfrost_device *pfdev,
                goto err_put_mapping;
        perfcnt->buf = map.vaddr;
 
+       panfrost_gem_internal_set_label(&bo->base, "Perfcnt sample buffer");
+
        /*
         * Invalidate the cache and clear the counters to start from a fresh
         * state.