[PATCH v5 5/6] drm/amdgpu: make process_name a flexible array

Christian König christian.koenig at amd.com
Tue Oct 8 08:15:05 UTC 2024


Am 03.10.24 um 14:43 schrieb Pierre-Eric Pelloux-Prayer:
> And rename it process_desc, since it will soon contain more than
> just the process_name.
>
> Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>

Reviewed-by: Christian König <christian.koenig at amd.com>

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c      |  2 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c |  4 ++--
>   drivers/gpu/drm/amd/amdgpu/amdgpu_job.c          |  2 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c           | 13 +++++++++++--
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h           |  2 +-
>   drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c           |  2 +-
>   drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c           |  2 +-
>   drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c           |  2 +-
>   drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c            |  2 +-
>   drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c            |  2 +-
>   drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c           |  2 +-
>   drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c         |  2 +-
>   drivers/gpu/drm/amd/amdkfd/kfd_events.c          |  2 +-
>   13 files changed, 24 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
> index cbef720de779..c2185e43e38d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
> @@ -1786,7 +1786,7 @@ static int amdgpu_debugfs_vm_info_show(struct seq_file *m, void *unused)
>   
>   		ti = amdgpu_vm_get_task_info_vm(vm);
>   		if (ti) {
> -			seq_printf(m, "pid:%d\tProcess:%s ----------\n", ti->pid, ti->process_name);
> +			seq_printf(m, "pid:%d\tProcess:%s ----------\n", ti->pid, ti->process_desc);
>   			amdgpu_vm_put_task_info(ti);
>   		}
>   
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c
> index 5ac59b62020c..4ca0a372984b 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c
> @@ -220,8 +220,8 @@ amdgpu_devcoredump_read(char *buffer, loff_t offset, size_t count,
>   		   coredump->reset_time.tv_nsec);
>   
>   	if (coredump->reset_task_info.pid)
> -		drm_printf(&p, "process_name: %s PID: %d\n",
> -			   coredump->reset_task_info.process_name,
> +		drm_printf(&p, "process: %s PID: %d\n",
> +			   coredump->reset_task_info.process_desc,
>   			   coredump->reset_task_info.pid);
>   
>   	/* SOC Information */
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
> index ad6bf5d4e0a9..d1678eebbff3 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
> @@ -125,7 +125,7 @@ static enum drm_gpu_sched_stat amdgpu_job_timedout(struct drm_sched_job *s_job)
>   	if (ti) {
>   		dev_err(adev->dev,
>   			"Process information: process %s pid %d thread %s pid %d\n",
> -			ti->process_name, ti->tgid, ti->task_name, ti->pid);
> +			ti->process_desc, ti->tgid, ti->task_name, ti->pid);
>   		amdgpu_vm_put_task_info(ti);
>   	}
>   
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 6cd5bd5362d4..561ff832930e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -2357,13 +2357,22 @@ amdgpu_vm_get_task_info_pasid(struct amdgpu_device *adev, u32 pasid)
>   
>   static int amdgpu_vm_create_task_info(struct amdgpu_vm *vm)
>   {
> -	vm->task_info = kzalloc(sizeof(struct amdgpu_task_info), GFP_KERNEL);
> +	char process_name[TASK_COMM_LEN];
> +	size_t pname_len;
> +
> +	get_task_comm(process_name, current->group_leader);
> +	pname_len = strlen(process_name);
> +
> +	vm->task_info = kzalloc(
> +		struct_size(vm->task_info, process_desc, pname_len + 1),
> +		GFP_KERNEL);
> +
>   	if (!vm->task_info)
>   		return -ENOMEM;
>   
>   	/* Set process attributes now. */
>   	vm->task_info->tgid = current->group_leader->pid;
> -	get_task_comm(vm->task_info->process_name, current->group_leader);
> +	strscpy(vm->task_info->process_desc, process_name, pname_len + 1);
>   
>   	kref_init(&vm->task_info->refcount);
>   	return 0;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
> index d12d66dca8e9..44da250217be 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
> @@ -232,11 +232,11 @@ struct amdgpu_vm_pte_funcs {
>   };
>   
>   struct amdgpu_task_info {
> -	char		process_name[TASK_COMM_LEN];
>   	char		task_name[TASK_COMM_LEN];
>   	pid_t		pid;
>   	pid_t		tgid;
>   	struct kref	refcount;
> +	char		process_desc[];
>   };
>   
>   /**
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> index 9784a2892185..c82364e43a15 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> @@ -166,7 +166,7 @@ static int gmc_v10_0_process_interrupt(struct amdgpu_device *adev,
>   	if (task_info) {
>   		dev_err(adev->dev,
>   			" in process %s pid %d thread %s pid %d\n",
> -			task_info->process_name, task_info->tgid,
> +			task_info->process_desc, task_info->tgid,
>   			task_info->task_name, task_info->pid);
>   		amdgpu_vm_put_task_info(task_info);
>   	}
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c
> index 2797fd84432b..4dace3de1def 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c
> @@ -136,7 +136,7 @@ static int gmc_v11_0_process_interrupt(struct amdgpu_device *adev,
>   		if (task_info) {
>   			dev_err(adev->dev,
>   				" in process %s pid %d thread %s pid %d)\n",
> -				task_info->process_name, task_info->tgid,
> +				task_info->process_desc, task_info->tgid,
>   				task_info->task_name, task_info->pid);
>   			amdgpu_vm_put_task_info(task_info);
>   		}
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
> index edcb5351f8cc..e56d702fbfed 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
> @@ -129,7 +129,7 @@ static int gmc_v12_0_process_interrupt(struct amdgpu_device *adev,
>   		if (task_info) {
>   			dev_err(adev->dev,
>   				" in process %s pid %d thread %s pid %d)\n",
> -				task_info->process_name, task_info->tgid,
> +				task_info->process_desc, task_info->tgid,
>   				task_info->task_name, task_info->pid);
>   			amdgpu_vm_put_task_info(task_info);
>   		}
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> index 86488c052f82..5fca64e71ada 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> @@ -1451,7 +1451,7 @@ static int gmc_v8_0_process_interrupt(struct amdgpu_device *adev,
>   		task_info = amdgpu_vm_get_task_info_pasid(adev, entry->pasid);
>   		if (task_info) {
>   			dev_err(adev->dev, " for process %s pid %d thread %s pid %d\n",
> -				task_info->process_name, task_info->tgid,
> +				task_info->process_desc, task_info->tgid,
>   				task_info->task_name, task_info->pid);
>   			amdgpu_vm_put_task_info(task_info);
>   		}
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> index c76ac0dfe572..c54c86dac14f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> @@ -635,7 +635,7 @@ static int gmc_v9_0_process_interrupt(struct amdgpu_device *adev,
>   	if (task_info) {
>   		dev_err(adev->dev,
>   			" for process %s pid %d thread %s pid %d)\n",
> -			task_info->process_name, task_info->tgid,
> +			task_info->process_desc, task_info->tgid,
>   			task_info->task_name, task_info->pid);
>   		amdgpu_vm_put_task_info(task_info);
>   	}
> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
> index 23ef4eb36b40..ea1990c19803 100644
> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
> @@ -2186,7 +2186,7 @@ static int sdma_v4_0_print_iv_entry(struct amdgpu_device *adev,
>   	if (task_info) {
>   		dev_dbg_ratelimited(adev->dev,
>   				    " for process %s pid %d thread %s pid %d\n",
> -				    task_info->process_name, task_info->tgid,
> +				    task_info->process_desc, task_info->tgid,
>   				    task_info->task_name, task_info->pid);
>   		amdgpu_vm_put_task_info(task_info);
>   	}
> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
> index c77889040760..df00bf480dcf 100644
> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
> @@ -1701,7 +1701,7 @@ static int sdma_v4_4_2_print_iv_entry(struct amdgpu_device *adev,
>   	task_info = amdgpu_vm_get_task_info_pasid(adev, entry->pasid);
>   	if (task_info) {
>   		dev_dbg_ratelimited(adev->dev, " for process %s pid %d thread %s pid %d\n",
> -				    task_info->process_name, task_info->tgid,
> +				    task_info->process_desc, task_info->tgid,
>   				    task_info->task_name, task_info->pid);
>   		amdgpu_vm_put_task_info(task_info);
>   	}
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_events.c b/drivers/gpu/drm/amd/amdkfd/kfd_events.c
> index ea3792249209..95ba07ae3b89 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_events.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_events.c
> @@ -1267,7 +1267,7 @@ void kfd_signal_reset_event(struct kfd_node *dev)
>   			if (ti) {
>   				dev_err(dev->adev->dev,
>   					"Queues reset on process %s tid %d thread %s pid %d\n",
> -					ti->process_name, ti->tgid, ti->task_name, ti->pid);
> +					ti->process_desc, ti->tgid, ti->task_name, ti->pid);
>   				amdgpu_vm_put_task_info(ti);
>   			}
>   		}



More information about the amd-gfx mailing list