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
