From: David M Nieto <david.nieto@xxxxxxx> Add fence tracking for amdgpu resources on gpuvm creation Signed-off-by: David M Nieto <david.nieto@xxxxxxx> --- .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c index e93850f2f3b1..26e84c2d6316 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c @@ -1042,13 +1042,16 @@ int amdgpu_amdkfd_gpuvm_create_process_vm(struct kgd_dev *kgd, u32 pasid, struct dma_fence **ef) { struct amdgpu_device *adev = get_amdgpu_device(kgd); + struct amdgpu_fpriv *fpriv; struct amdgpu_vm *new_vm; int ret; - new_vm = kzalloc(sizeof(*new_vm), GFP_KERNEL); - if (!new_vm) + fpriv = kzalloc(sizeof(*fpriv), GFP_KERNEL); + if (!fpriv) return -ENOMEM; + new_vm = &fpriv->vm; + /* Initialize AMDGPU part of the VM */ ret = amdgpu_vm_init(adev, new_vm, AMDGPU_VM_CONTEXT_COMPUTE, pasid); if (ret) { @@ -1063,12 +1066,14 @@ int amdgpu_amdkfd_gpuvm_create_process_vm(struct kgd_dev *kgd, u32 pasid, *vm = (void *) new_vm; + amdgpu_smi_create_proc_node(adev, fpriv, pasid); + return 0; init_kfd_vm_fail: amdgpu_vm_fini(adev, new_vm); amdgpu_vm_init_fail: - kfree(new_vm); + kfree(fpriv); return ret; } @@ -1142,6 +1147,8 @@ void amdgpu_amdkfd_gpuvm_destroy_process_vm(struct kgd_dev *kgd, void *vm) { struct amdgpu_device *adev = get_amdgpu_device(kgd); struct amdgpu_vm *avm = (struct amdgpu_vm *)vm; + struct amdgpu_fpriv *fpriv = + container_of(avm, struct amdgpu_fpriv, vm); if (WARN_ON(!kgd || !vm)) return; @@ -1149,8 +1156,10 @@ void amdgpu_amdkfd_gpuvm_destroy_process_vm(struct kgd_dev *kgd, void *vm) pr_debug("Destroying process vm %p\n", vm); /* Release the VM context */ + amdgpu_smi_remove_proc_node(adev, fpriv); + amdgpu_vm_fini(adev, avm); - kfree(vm); + kfree(fpriv); } void amdgpu_amdkfd_gpuvm_release_process_vm(struct kgd_dev *kgd, void *vm) -- 2.29.0 _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx