drm/amdkfd: use user_gpu_id for svm ranges
authorRajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
Wed, 1 Dec 2021 15:26:42 +0000 (10:26 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 7 Feb 2022 22:59:53 +0000 (17:59 -0500)
Currently the SVM ranges use actual_gpu_id but with Checkpoint Restore
support its possible that the SVM ranges can be resumed on another node
where the actual_gpu_id may not be same as the original (user_gpu_id)
gpu id. So modify svm code to use user_gpu_id.

Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_process.c

index 06e6e9180fbc33c70ccecc843375bc73ea2fd892..8e2780d2f7350c72f424cdbafa3a2dbc772f0457 100644 (file)
@@ -1797,7 +1797,7 @@ int kfd_process_gpuidx_from_gpuid(struct kfd_process *p, uint32_t gpu_id)
        int i;
 
        for (i = 0; i < p->n_pdds; i++)
-               if (p->pdds[i] && gpu_id == p->pdds[i]->dev->id)
+               if (p->pdds[i] && gpu_id == p->pdds[i]->user_gpu_id)
                        return i;
        return -EINVAL;
 }
@@ -1810,7 +1810,7 @@ kfd_process_gpuid_from_adev(struct kfd_process *p, struct amdgpu_device *adev,
 
        for (i = 0; i < p->n_pdds; i++)
                if (p->pdds[i] && p->pdds[i]->dev->adev == adev) {
-                       *gpuid = p->pdds[i]->dev->id;
+                       *gpuid = p->pdds[i]->user_gpu_id;
                        *gpuidx = i;
                        return 0;
                }