Commit 35dc4ce2 authored by André Almeida's avatar André Almeida
Browse files

drm: amdgpu: Use struct drm_wedge_task_info inside of struct amdgpu_task_info



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.

Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Link: https://lore.kernel.org/r/20250617124949.2151549-6-andrealmeid@igalia.com


Signed-off-by: default avatarAndré Almeida <andrealmeid@igalia.com>
parent cd37124b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);
		}

+2 −2
Original line number Diff line number Diff line
@@ -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");
+1 −1
Original line number Diff line number Diff line
@@ -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);
			}
		}
+6 −6
Original line number Diff line number Diff line
@@ -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);
			}

@@ -2508,11 +2508,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;
@@ -2775,7 +2775,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);
@@ -3164,5 +3164,5 @@ 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);
}
+1 −2
Original line number Diff line number Diff line
@@ -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;
};
Loading