[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <59e05cdc-5178-4dc1-a169-b6f6ec1a2e69@amd.com>
Date: Mon, 16 Jun 2025 09:05:10 +0200
From: Christian König <christian.koenig@....com>
To: André Almeida <andrealmeid@...lia.com>,
Alex Deucher <alexander.deucher@....com>, siqueira@...lia.com,
airlied@...il.com, simona@...ll.ch, Raag Jadav <raag.jadav@...el.com>,
rodrigo.vivi@...el.com, jani.nikula@...ux.intel.com,
Xaver Hugl <xaver.hugl@...il.com>,
Krzysztof Karas <krzysztof.karas@...el.com>
Cc: dri-devel@...ts.freedesktop.org, linux-kernel@...r.kernel.org,
kernel-dev@...lia.com, amd-gfx@...ts.freedesktop.org,
intel-xe@...ts.freedesktop.org, intel-gfx@...ts.freedesktop.org
Subject: Re: [PATCH v7 4/5] drm: amdgpu: Use struct drm_wedge_task_info inside
of struct amdgpu_task_info
On 6/13/25 20:43, André Almeida wrote:
> To avoid a cast when calling drm_dev_wedged_event(), replace pid and
> task name inside of struct amdgpu_task_info with struct
> drm_wedge_task_info.
>
> Signed-off-by: André Almeida <andrealmeid@...lia.com>
Reviewed-by: Christian König <christian.koenig@....com>
> ---
> v7: New patch
> ---
> 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_gem.c | 2 +-
> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 12 ++++++------
> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 3 +--
> 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 +-
> drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c | 8 ++++----
> 9 files changed, 18 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
> index 8e626f50b362..dac4b926e7be 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->task.pid, ti->process_name);
> 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 7b50741dc097..8a026bc9ea44 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c
> @@ -220,10 +220,10 @@ amdgpu_devcoredump_read(char *buffer, loff_t offset, size_t count,
> drm_printf(&p, "time: %lld.%09ld\n", coredump->reset_time.tv_sec,
> coredump->reset_time.tv_nsec);
>
> - if (coredump->reset_task_info.pid)
> + if (coredump->reset_task_info.task.pid)
> drm_printf(&p, "process_name: %s PID: %d\n",
> coredump->reset_task_info.process_name,
> - coredump->reset_task_info.pid);
> + coredump->reset_task_info.task.pid);
>
> /* SOC Information */
> drm_printf(&p, "\nSOC Information\n");
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> index 0ecc88df7208..e5e33a68d935 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> @@ -329,7 +329,7 @@ static int amdgpu_gem_object_open(struct drm_gem_object *obj,
>
> dev_warn(adev->dev, "validate_and_fence failed: %d\n", r);
> if (ti) {
> - dev_warn(adev->dev, "pid %d\n", ti->pid);
> + dev_warn(adev->dev, "pid %d\n", ti->task.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 f2a0132521c2..0efd3fc7cf3e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -622,7 +622,7 @@ int amdgpu_vm_validate(struct amdgpu_device *adev, struct amdgpu_vm *vm,
>
> pr_warn_ratelimited("Evicted user BO is not reserved\n");
> if (ti) {
> - pr_warn_ratelimited("pid %d\n", ti->pid);
> + pr_warn_ratelimited("pid %d\n", ti->task.pid);
> amdgpu_vm_put_task_info(ti);
> }
>
> @@ -2507,11 +2507,11 @@ void amdgpu_vm_set_task_info(struct amdgpu_vm *vm)
> if (!vm->task_info)
> return;
>
> - if (vm->task_info->pid == current->pid)
> + if (vm->task_info->task.pid == current->pid)
> return;
>
> - vm->task_info->pid = current->pid;
> - get_task_comm(vm->task_info->task_name, current);
> + vm->task_info->task.pid = current->pid;
> + get_task_comm(vm->task_info->task.comm, current);
>
> if (current->group_leader->mm != current->mm)
> return;
> @@ -2774,7 +2774,7 @@ void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm)
>
> dev_warn(adev->dev,
> "VM memory stats for proc %s(%d) task %s(%d) is non-zero when fini\n",
> - ti->process_name, ti->pid, ti->task_name, ti->tgid);
> + ti->process_name, ti->task.pid, ti->task.comm, ti->tgid);
> }
>
> amdgpu_vm_put_task_info(vm->task_info);
> @@ -3163,5 +3163,5 @@ inline void amdgpu_vm_print_task_info(struct amdgpu_device *adev,
> dev_err(adev->dev,
> " Process %s pid %d thread %s pid %d\n",
> task_info->process_name, task_info->tgid,
> - task_info->task_name, task_info->pid);
> + task_info->task.comm, task_info->task.pid);
> }
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
> index 3862a256b9b8..b5c3af1c5e99 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
> @@ -236,9 +236,8 @@ struct amdgpu_vm_pte_funcs {
> };
>
> struct amdgpu_task_info {
> + struct drm_wedge_task_info task;
> char process_name[TASK_COMM_LEN];
> - char task_name[TASK_COMM_LEN];
> - pid_t pid;
> pid_t tgid;
> struct kref refcount;
> };
> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
> index 33ed2b158fcd..f38004e6064e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
> @@ -2187,7 +2187,7 @@ static int sdma_v4_0_print_iv_entry(struct amdgpu_device *adev,
> dev_dbg_ratelimited(adev->dev,
> " for process %s pid %d thread %s pid %d\n",
> task_info->process_name, task_info->tgid,
> - task_info->task_name, task_info->pid);
> + task_info->task.comm, task_info->task.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 9c169112a5e7..bcde34e4e0a1 100644
> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
> @@ -1884,7 +1884,7 @@ static int sdma_v4_4_2_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->task_name, task_info->pid);
> + task_info->task.comm, task_info->task.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 2b294ada3ec0..82905f3e54dd 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_events.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_events.c
> @@ -1302,7 +1302,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_name, ti->tgid, ti->task.comm, ti->task.pid);
> amdgpu_vm_put_task_info(ti);
> }
> }
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c b/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
> index 83d9384ac815..a499449fcb06 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
> @@ -253,9 +253,9 @@ void kfd_smi_event_update_vmfault(struct kfd_node *dev, uint16_t pasid)
> task_info = amdgpu_vm_get_task_info_pasid(dev->adev, pasid);
> if (task_info) {
> /* Report VM faults from user applications, not retry from kernel */
> - if (task_info->pid)
> + if (task_info->task.pid)
> kfd_smi_event_add(0, dev, KFD_SMI_EVENT_VMFAULT, KFD_EVENT_FMT_VMFAULT(
> - task_info->pid, task_info->task_name));
> + task_info->task.pid, task_info->task.comm));
> amdgpu_vm_put_task_info(task_info);
> }
> }
> @@ -359,8 +359,8 @@ void kfd_smi_event_process(struct kfd_process_device *pdd, bool start)
> kfd_smi_event_add(0, pdd->dev,
> start ? KFD_SMI_EVENT_PROCESS_START :
> KFD_SMI_EVENT_PROCESS_END,
> - KFD_EVENT_FMT_PROCESS(task_info->pid,
> - task_info->task_name));
> + KFD_EVENT_FMT_PROCESS(task_info->task.pid,
> + task_info->task.comm));
> amdgpu_vm_put_task_info(task_info);
> }
> }
Powered by blists - more mailing lists