AMD General

Hi Christian,

> -----Original Message-----
> From: Koenig, Christian <[email protected]>
> Sent: Tuesday, June 23, 2026 2:51 PM
> To: SHANMUGAM, SRINIVASAN <[email protected]>;
> Deucher, Alexander <[email protected]>
> Cc: [email protected]
> Subject: Re: [RFC PATCH 1/3] drm/amdgpu: Add PASID fpriv lookup manager
>
> On 6/23/26 10:12, Srinivasan Shanmugam wrote:
> > Current VM fault handling resolves PASIDs through VM state:
> >
> >     PASID -> VM
> >
> > That is sufficient for VM fault handling, but process-scoped event
> > delivery paths need a different semantic mapping:
> >
> >     PASID -> amdgpu_fpriv
> >
> > Although both mappings are indexed by PASID, they serve different
> > purposes:
> >
> >     vm_manager.pasids
> >             PASID -> VM fault handling
> >
> >     vm_manager.pasid_fprivs
> >             PASID -> process-scoped DRM file-private owner
> >
> > Add a PASID fpriv xarray beside the existing PASID to VM xarray.
> >
> > Cc: Alex Deucher <[email protected]>
> > Cc: Christian König <[email protected]>
> > Signed-off-by: Srinivasan Shanmugam <[email protected]>
> > ---
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c |  5 +++++
> > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 13 +++++++++++++
> >  2 files changed, 18 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> > b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> > index 450bd9dc6bc0..3141ae1383b0 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> > @@ -2869,6 +2869,8 @@ void amdgpu_vm_manager_init(struct amdgpu_device
> > *adev)  #endif
> >
> >     xa_init_flags(&adev->vm_manager.pasids, XA_FLAGS_LOCK_IRQ);
> > +   xa_init_flags(&adev->vm_manager.pasid_fprivs,
> > +                 XA_FLAGS_LOCK_IRQ);
>
> I think we should completely remove &adev->vm_manager.pasids.
>
> Take a look at amdgpu_pasid_alloc(), we already store the PASIDs in the global
> amdgpu_pasid_xa xarray.
>
> But instead of a real value we just give xa_mk_value(0) as dummy for the 
> entry.
>
> I think we can re-use that array to store pasid->fpriv mapping. It just needs 
> proper
> locking and interface to retrive the fpriv for a pasid (while holding the XA 
> lock
> irqsave).
>
> Let me know when you have more questions.

Thanks!.

Just to be sure, few clarifications please:

1. Should amdgpu_pasid_xa become the single PASID ownership table,
   replacing adev->vm_manager.pasids?

2. For DRM PASIDs, should amdgpu_pasid_alloc() continue inserting the
   dummy xa_mk_value(0), and should amdgpu_driver_open_kms() replace that
   entry with fpriv after fpriv setup?

3. For existing VM fault users, should the lookup path become:

        PASID -> fpriv -> vm

   using &fpriv->vm while holding the amdgpu_pasid_xa lock irqsave?

I will rework the RFC to use amdgpu_pasid_xa and remove the new 
vm_manager.pasid_fprivs xarray.

Best regards,
Srini

>
> Regards,
> Christian.
>

Reply via email to