On 13/07/2025 04:08, Chia-I Wu wrote:
> 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 <olva...@gmail.com>

One nit below, but with that fixed:

Reviewed-by: Steven Price <steven.pr...@arm.com>

> 
> ---
> v2: save to panthor_group on panthor_group_create rather than to
>     panthor_file on panthor_open
> ---
>  drivers/gpu/drm/panthor/panthor_sched.c | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/drivers/gpu/drm/panthor/panthor_sched.c 
> b/drivers/gpu/drm/panthor/panthor_sched.c
> index a2248f692a030..823b0fe678ba6 100644
> --- a/drivers/gpu/drm/panthor/panthor_sched.c
> +++ b/drivers/gpu/drm/panthor/panthor_sched.c
> @@ -641,6 +641,15 @@ struct panthor_group {
>               size_t kbo_sizes;
>       } fdinfo;
>  
> +     /** @task_info: Info of current->group_leader that created the group. */
> +     struct {
> +             /** @pid: pid of current->group_leader */
> +             pid_t pid;
> +
> +             /** @comm: comm of current->group_leader */
> +             char comm[TASK_COMM_LEN];

As the kernel test robot reports, this kerneldoc isn't quite right.
We've got other issues in this file but you need to specify the struct
name as well, i.e.:

                /** @task_info.pid: pid of current->group_leader */
                pid_t pid;

                /** @task_info.comm: comm of current->group_leader */
                char comm[TASK_COMM_LEN];

It's been on my TODO list for a while to fix the rest of the file...

Thanks,
Steve

> +     } 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:

Reply via email to