]> www.infradead.org Git - users/hch/misc.git/commitdiff
panthor: save task pid and comm in panthor_group
authorChia-I Wu <olvaffe@gmail.com>
Fri, 18 Jul 2025 06:38:15 +0000 (23:38 -0700)
committerSteven Price <steven.price@arm.com>
Thu, 24 Jul 2025 12:42:57 +0000 (13:42 +0100)
We would like to report them on gpu errors.

We choose to save the info on panthor_group_create rather than on
panthor_open because, when the two differ, we are more interested in the
task that created the group.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Signed-off-by: Steven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20250718063816.1452123-3-olvaffe@gmail.com
drivers/gpu/drm/panthor/panthor_sched.c

index 8f17394cc82aad9eaf01e473cd9d3dea46fa3d61..9f4d04214053b23112fa84baf16033403c9d60ca 100644 (file)
@@ -641,6 +641,15 @@ struct panthor_group {
                size_t kbo_sizes;
        } fdinfo;
 
+       /** @task_info: Info of current->group_leader that created the group. */
+       struct {
+               /** @task_info.pid: pid of current->group_leader */
+               pid_t pid;
+
+               /** @task_info.comm: comm of current->group_leader */
+               char comm[TASK_COMM_LEN];
+       } task_info;
+
        /** @state: Group state. */
        enum panthor_group_state state;
 
@@ -3389,6 +3398,14 @@ err_free_queue:
        return ERR_PTR(ret);
 }
 
+static void group_init_task_info(struct panthor_group *group)
+{
+       struct task_struct *task = current->group_leader;
+
+       group->task_info.pid = task->pid;
+       get_task_comm(group->task_info.comm, task);
+}
+
 static void add_group_kbo_sizes(struct panthor_device *ptdev,
                                struct panthor_group *group)
 {
@@ -3540,6 +3557,8 @@ int panthor_group_create(struct panthor_file *pfile,
        add_group_kbo_sizes(group->ptdev, group);
        spin_lock_init(&group->fdinfo.lock);
 
+       group_init_task_info(group);
+
        return gid;
 
 err_put_group: