Commit 33b9cb6d authored by Chia-I Wu's avatar Chia-I Wu Committed by Steven Price
Browse files

panthor: save task pid and comm in panthor_group



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: default avatarChia-I Wu <olvaffe@gmail.com>
Reviewed-by: default avatarSteven Price <steven.price@arm.com>
Signed-off-by: default avatarSteven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20250718063816.1452123-3-olvaffe@gmail.com
parent 78ededb6
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -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 @@ group_create_queue(struct panthor_group *group,
	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: