drm/amdgpu: add drm_file reference in userq_mgr
authorSunil Khatri <sunil.khatri@amd.com>
Tue, 22 Apr 2025 12:25:50 +0000 (17:55 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 5 May 2025 17:29:18 +0000 (13:29 -0400)
drm_file will be used in usermode queues code to
enable better process information in logging and hence
add drm_file part of the userq_mgr struct.

update the drm_file pointer in userq_mgr for each
amdgpu_driver_open_kms.

Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.h

index 8f992314c5a1e3ce261bf3ec32d7f8664aeba683..8d4a2aed7231cfd58951fed51f9cd5c2054a29ca 100644 (file)
@@ -1431,7 +1431,7 @@ int amdgpu_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
 
        amdgpu_ctx_mgr_init(&fpriv->ctx_mgr, adev);
 
-       r = amdgpu_userq_mgr_init(&fpriv->userq_mgr, adev);
+       r = amdgpu_userq_mgr_init(&fpriv->userq_mgr, file_priv, adev);
        if (r)
                DRM_WARN("Can't setup usermode queues, use legacy workload submission only\n");
 
index 33544586ffaa01ba666e0cb46a708dd1a6c7e82e..c7a3abfccd133d0073e28c92b2295f0db7273f27 100644 (file)
@@ -753,11 +753,13 @@ amdgpu_userq_evict(struct amdgpu_userq_mgr *uq_mgr,
        schedule_delayed_work(&uq_mgr->resume_work, 0);
 }
 
-int amdgpu_userq_mgr_init(struct amdgpu_userq_mgr *userq_mgr, struct amdgpu_device *adev)
+int amdgpu_userq_mgr_init(struct amdgpu_userq_mgr *userq_mgr, struct drm_file *file_priv,
+                         struct amdgpu_device *adev)
 {
        mutex_init(&userq_mgr->userq_mutex);
        idr_init_base(&userq_mgr->userq_idr, 1);
        userq_mgr->adev = adev;
+       userq_mgr->file = file_priv;
 
        mutex_lock(&adev->userq_mutex);
        list_add(&userq_mgr->list, &adev->userq_mgr_list);
index 4d3eb651acf1a0091f973d4337c6cc3c90205a66..ec040c2fd6c9a534d74d4fdb735a64ce87e62c3d 100644 (file)
@@ -86,6 +86,7 @@ struct amdgpu_userq_mgr {
        struct amdgpu_device            *adev;
        struct delayed_work             resume_work;
        struct list_head                list;
+       struct drm_file                 *file;
 };
 
 struct amdgpu_db_info {
@@ -97,7 +98,8 @@ struct amdgpu_db_info {
 
 int amdgpu_userq_ioctl(struct drm_device *dev, void *data, struct drm_file *filp);
 
-int amdgpu_userq_mgr_init(struct amdgpu_userq_mgr *userq_mgr, struct amdgpu_device *adev);
+int amdgpu_userq_mgr_init(struct amdgpu_userq_mgr *userq_mgr, struct drm_file *file_priv,
+                         struct amdgpu_device *adev);
 
 void amdgpu_userq_mgr_fini(struct amdgpu_userq_mgr *userq_mgr);