]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: Print vmid, pasid and more task info in devcoredump
authorTimur Kristóf <timur.kristof@gmail.com>
Sat, 11 Jul 2026 11:21:07 +0000 (13:21 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 17 Jul 2026 21:39:08 +0000 (17:39 -0400)
These are in the dmesg logs but are missing from devcoredumps.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit fed7aa36d79802c3e02acd05aeae8b0a877e47c2)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c
drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.h

index e77db76b48b8d31061e97a84c32bfcfbad42c76d..acab3d94a51aae5dd136fd17ee3b255cd8be442f 100644 (file)
@@ -355,10 +355,14 @@ amdgpu_devcoredump_format(char *buffer, size_t count, struct amdgpu_coredump_inf
        drm_printf(&p, "kernel: %s\n", init_utsname()->release);
        drm_printf(&p, "module: " KBUILD_MODNAME "\n");
        drm_printf(&p, "time: %ptSp\n", &coredump->reset_time);
+       drm_printf(&p, "pasid: %u\n", coredump->pasid);
+       drm_printf(&p, "vmid: %u\n", coredump->vmid);
 
        if (coredump->reset_task_info.task.pid)
-               drm_printf(&p, "process_name: %s PID: %d\n",
+               drm_printf(&p, "process_name: %s TGID: %d thread: %s PID: %d\n",
                           coredump->reset_task_info.process_name,
+                          coredump->reset_task_info.tgid,
+                          coredump->reset_task_info.task.comm,
                           coredump->reset_task_info.task.pid);
 
        /* SOC Information */
@@ -562,6 +566,7 @@ void amdgpu_coredump(struct amdgpu_device *adev, bool skip_vram_check,
                        amdgpu_vm_put_task_info(ti);
                }
                coredump->pasid = job->pasid;
+               coredump->vmid = job->vmid;
                coredump->num_ibs = job->num_ibs;
                for (i = 0; i < job->num_ibs; ++i) {
                        coredump->ibs[i].gpu_addr = job->ibs[i].gpu_addr;
index 2371e20fc68bbccb91c067023e299e66437b92aa..63f27337c09ad816d0d8a1d600794d967b235872 100644 (file)
@@ -63,6 +63,7 @@ struct amdgpu_coredump_info {
        char                            *formatted;
 
        unsigned int                    pasid;
+       unsigned int                    vmid;
        int                             num_ibs;
        struct amdgpu_coredump_ib_info  ibs[] __counted_by(num_ibs);
 };