summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Clark <robdclark@chromium.org>2022-06-29 23:19:16 +0200
committerRob Clark <robdclark@chromium.org>2022-07-07 03:54:41 +0200
commit18514c3848cf86f3e2843c9cfc218c8471a1984e (patch)
treec4b454eefbd55c2a9b7a4e48057d388b66795fa3
parentdrm/msm/gpu: Capture all BO addr+size in devcore (diff)
downloadlinux-18514c3848cf86f3e2843c9cfc218c8471a1984e.tar.xz
linux-18514c3848cf86f3e2843c9cfc218c8471a1984e.zip
drm/msm/gpu: Add GEM debug label to devcore
When trying to understand an iova fault devcore, once you figure out which buffer we accessed beyond the end of, it is useful to see the buffer's debug label. Signed-off-by: Rob Clark <robdclark@chromium.org> Patchwork: https://patchwork.freedesktop.org/patch/491910/ Link: https://lore.kernel.org/r/20220629211919.563585-3-robdclark@gmail.com
-rw-r--r--drivers/gpu/drm/msm/adreno/adreno_gpu.c1
-rw-r--r--drivers/gpu/drm/msm/msm_gpu.c4
-rw-r--r--drivers/gpu/drm/msm/msm_gpu.h1
3 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
index 8d03e30f14c0..a049d5de338a 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
@@ -824,6 +824,7 @@ void adreno_show(struct msm_gpu *gpu, struct msm_gpu_state *state,
drm_printf(p, " - iova: 0x%016llx\n",
state->bos[i].iova);
drm_printf(p, " size: %zd\n", state->bos[i].size);
+ drm_printf(p, " name: %-32s\n", state->bos[i].name);
adreno_show_object(p, &state->bos[i].data,
state->bos[i].size, &state->bos[i].encoded);
diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c
index 3314a137be3b..e1ee85025b67 100644
--- a/drivers/gpu/drm/msm/msm_gpu.c
+++ b/drivers/gpu/drm/msm/msm_gpu.c
@@ -229,6 +229,10 @@ static void msm_gpu_crashstate_get_bo(struct msm_gpu_state *state,
state_bo->size = obj->base.size;
state_bo->iova = iova;
+ BUILD_BUG_ON(sizeof(state_bo->name) != sizeof(obj->name));
+
+ memcpy(state_bo->name, obj->name, sizeof(state_bo->name));
+
if (full) {
void *ptr;
diff --git a/drivers/gpu/drm/msm/msm_gpu.h b/drivers/gpu/drm/msm/msm_gpu.h
index fefcf2c8fe65..4d935fedd2ac 100644
--- a/drivers/gpu/drm/msm/msm_gpu.h
+++ b/drivers/gpu/drm/msm/msm_gpu.h
@@ -489,6 +489,7 @@ struct msm_gpu_state_bo {
size_t size;
void *data;
bool encoded;
+ char name[32];
};
struct msm_gpu_state {