summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorZhu Lingshan <lingshan.zhu@amd.com>2025-03-03 18:42:50 +0800
committerAlex Deucher <alexander.deucher@amd.com>2025-12-08 13:56:43 -0500
commit78996e1e98f822d16363e2a7703ca243eda59ba8 (patch)
tree80742f3c2a59ddd1c2b694be948dcc5f61854605 /drivers
parent07506945e138c191e913aba86030111a93a5b119 (diff)
downloadlinux-next-78996e1e98f822d16363e2a7703ca243eda59ba8.tar.gz
linux-next-78996e1e98f822d16363e2a7703ca243eda59ba8.zip
amdkfd: record kfd context id into kfd process_info
This commit records the context id of the owner kfd_process into a kfd process_info when create it. Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com> Reviewed-by: Felix Kuehling <felix.kuehling@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c4
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
index 335d733751cb..2fa5f1925f5a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
@@ -148,6 +148,8 @@ struct amdkfd_process_info {
/* MMU-notifier related fields */
struct mutex notifier_lock;
uint32_t evicted_bos;
+ /* kfd context id */
+ u16 context_id;
struct delayed_work restore_userptr_work;
struct pid *pid;
bool block_mmu_notifications;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
index b1c24c8fa686..9f04e449093a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
@@ -1397,8 +1397,10 @@ static int init_kfd_vm(struct amdgpu_vm *vm, void **process_info,
struct dma_fence **ef)
{
struct amdkfd_process_info *info = NULL;
+ struct kfd_process *process = NULL;
int ret;
+ process = container_of(process_info, struct kfd_process, kgd_process_info);
if (!*process_info) {
info = kzalloc(sizeof(*info), GFP_KERNEL);
if (!info)
@@ -1425,6 +1427,8 @@ static int init_kfd_vm(struct amdgpu_vm *vm, void **process_info,
INIT_DELAYED_WORK(&info->restore_userptr_work,
amdgpu_amdkfd_restore_userptr_worker);
+ info->context_id = process->context_id;
+
*process_info = info;
}