[PATCH v2 2/2] drm/amdgpu: free pasid early before converting a vm
Das, Nirmoy
nirmoy.das at amd.com
Tue Jun 29 11:15:45 UTC 2021
On 6/29/2021 1:12 PM, Christian König wrote:
> Am 29.06.21 um 09:55 schrieb Nirmoy Das:
>> VM code should not be responsible for freeing pasid as pasid
>> gets allocated outside of VM code, before initializing a vm.
>>
>> Signed-off-by: Nirmoy Das <nirmoy.das at amd.com>
>> ---
>> drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 8 ++++++++
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 ------
>> 2 files changed, 8 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
>> index f96598279593..5a9006aabec7 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
>> @@ -1287,6 +1287,14 @@ int
>> amdgpu_amdkfd_gpuvm_acquire_process_vm(struct kgd_dev *kgd,
>> if (avm->process_info)
>> return -EINVAL;
>>
>> + /* Free the original amdgpu allocated pasid,
>> + * will be replaced with kfd allocated pasid.
>> + */
>> + if (avm->pasid) {
>> + amdgpu_pasid_free(avm->pasid);
>> + amdgpu_vm_set_pasid(adev, avm, 0);
>> + }
>> +
>> /* Convert VM into a compute VM */
>> ret = amdgpu_vm_make_compute(adev, avm, pasid);
>
> I'm really wondering if amdgpu_vm_make_compute() and amdgpu_vm_init()
> now need the pasid as parameter anymore.
We could use the exported amdgpu_vm_set_pasid() and remove that pasid
from both functions.
Regards,
Nirmoy
>
> Christian.
>
>> if (ret)
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> index 9b0e8a9d7f86..0bd9575b0872 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> @@ -3057,12 +3057,6 @@ int amdgpu_vm_make_compute(struct
>> amdgpu_device *adev, struct amdgpu_vm *vm,
>> if (r)
>> goto unreserve_bo;
>>
>> - /* Free the original amdgpu allocated pasid,
>> - * will be replaced with kfd allocated pasid.
>> - */
>> - if (vm->pasid)
>> - amdgpu_pasid_free(vm->pasid);
>> -
>> r = amdgpu_vm_set_pasid(adev, vm, pasid);
>> if (r)
>> goto unreserve_bo;
>> --
>> 2.32.0
>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx at lists.freedesktop.org
>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&data=04%7C01%7Cnirmoy.das%40amd.com%7C2a379081693b490c09fd08d93aeed4b3%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637605619715690644%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=6ztVdZYy8nsS6OekDFAjDc2toJYYnl9RUZEyl5Kn6c0%3D&reserved=0
>>
>
More information about the amd-gfx
mailing list