On 7/2/26 14:13, SHANMUGAM, SRINIVASAN wrote:
> AMD General
> 
> Hi Christian,
> 
>> -----Original Message-----
>> From: Koenig, Christian <[email protected]>
>> Sent: Thursday, July 2, 2026 4:23 PM
>> To: SHANMUGAM, SRINIVASAN <[email protected]>;
>> Deucher, Alexander <[email protected]>
>> Cc: [email protected]
>> Subject: Re: [PATCH v3 1/4] drm/amdgpu: Add PASID fpriv ownership helpers
>>
>> On 7/2/26 10:40, Srinivasan Shanmugam wrote:
>>> AMDGPU already has a global PASID xarray used by the PASID allocator.
>>>
>>> Currently allocated PASIDs store a dummy value in that xarray.
>>>
>>> Add helper functions so DRM-owned PASIDs can store and retrieve their
>>> owning DRM file-private object.
>>>
>>> This prepares for using:
>>>
>>>     PASID -> fpriv -> vm
>>>
>>> instead of the separate per-device:
>>>
>>>     PASID -> vm
>>>
>>> mapping.
>>>
>>> v3: (per Christian)
>>> - Document that PASID allocation is intentionally kept separate
>>>   from fpriv registration because fpriv is not fully initialized
>>>   when the PASID is allocated.
>>>
>>> Cc: Alex Deucher <[email protected]>
>>> Suggested-by: Christian König <[email protected]>
>>> Signed-off-by: Srinivasan Shanmugam <[email protected]>
>>> ---
>>>  drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c | 126
>>> ++++++++++++++++++++++++  drivers/gpu/drm/amd/amdgpu/amdgpu_ids.h |
>>> 13 +++
>>>  2 files changed, 139 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c
>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c
>>> index 684f40fce73f..5333937f0d04 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c
>>> @@ -78,6 +78,132 @@ int amdgpu_pasid_alloc(unsigned int bits)
>>>     return pasid;
>>>  }
>>>
>>> +/**
>>> + * amdgpu_pasid_set_fpriv - register the DRM owner of a PASID
>>> + * @pasid: PASID allocated for the DRM client
>>> + * @fpriv: owning DRM file-private object
>>> + *
>>> + * PASID allocation is intentionally kept separate from owner
>>> + * registration because the DRM file-private object is not fully
>>> + * initialized when the PASID is allocated.
>>> + *
>>> + * This helper replaces the temporary allocation marker with the
>>> + * initialized DRM owner.
>>
>> Taking a closer look at I think we should rather re-structure the fprif init 
>> code to
>> allocate the pasid later.
> 
> Thanks!
> 
> Just to make sure I understand the intended initialization order correctly: 
> when you say "allocate the PASID later", do you mean moving the PASID 
> allocation until after fpriv has been fully initialized in 
> amdgpu_driver_open_kms(), so that amdgpu_pasid_alloc() can directly register 
> the fpriv without a separate amdgpu_pasid_set_fpriv() step?

Yes, in this patch just give the fpriv as additional parameter to 
amdgpu_pasid_alloc() and make all callers give NULL.

Then squash patches 2 & 3 together and switch from PASID->VM to 
PASID->fpriv->VM mapping in just one patch.

Regards,
Christian.

> 
> Best regards,
> Srini

Reply via email to