[PATCH v1 1/2] drm/amdgpu: add pid and name of the process with userq manager

Sunil Khatri sunil.khatri at amd.com
Tue Apr 8 12:41:49 UTC 2025


Add the pid and the process name of the process
with the userq manager which could be used in
debugging and understanding error messages better.

Signed-off-by: Sunil Khatri <sunil.khatri at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c       | 8 ++++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_userqueue.h | 2 ++
 2 files changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index 4262c320ad1d..f73bcca35287 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -1357,6 +1357,7 @@ int amdgpu_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
 {
 	struct amdgpu_device *adev = drm_to_adev(dev);
 	struct amdgpu_fpriv *fpriv;
+	struct task_struct *task;
 	int r, pasid;
 
 	/* Ensure IB tests are run on ring */
@@ -1426,6 +1427,13 @@ int amdgpu_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
 
 	amdgpu_ctx_mgr_init(&fpriv->ctx_mgr, adev);
 
+	task = get_pid_task(rcu_access_pointer(file_priv->pid), PIDTYPE_PID);
+	if (task) {
+		fpriv->userq_mgr.pid = task->pid;
+		fpriv->userq_mgr.process_name = kstrdup(task->comm, GFP_KERNEL);
+		put_task_struct(task);
+	}
+
 	r = amdgpu_userq_mgr_init(&fpriv->userq_mgr, adev);
 	if (r)
 		DRM_WARN("Can't setup usermode queues, use legacy workload submission only\n");
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userqueue.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_userqueue.h
index ec1a4ca6f632..a495b24165f9 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userqueue.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userqueue.h
@@ -77,6 +77,8 @@ struct amdgpu_userq_mgr {
 	struct amdgpu_device		*adev;
 	struct delayed_work		resume_work;
 	struct list_head		list;
+	pid_t				pid;
+	char				*process_name;
 };
 
 struct amdgpu_db_info {
-- 
2.34.1



More information about the amd-gfx mailing list