[Public]

Regards,
      Prike

> -----Original Message-----
> From: amd-gfx <amd-gfx-boun...@lists.freedesktop.org> On Behalf Of Lazar, Lijo
> Sent: Wednesday, July 16, 2025 12:18 PM
> To: Deucher, Alexander <alexander.deuc...@amd.com>; amd-
> g...@lists.freedesktop.org
> Cc: Koenig, Christian <christian.koe...@amd.com>
> Subject: Re: [PATCH 2/3] drm/amdgpu/gfx11: set MQD as appriopriate for queue 
> priv
>
>
>
> On 7/12/2025 3:21 AM, Alex Deucher wrote:
> > Set the MQD as appropriate for the queue priv state.
> >
> > Acked-by: Christian König <christian.koe...@amd.com>
> > Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
> > ---
> >  drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 8 ++++++--
> >  1 file changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
> > b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
> > index 37dcec2d07841..b9ba8b22a1073 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
> > @@ -4124,6 +4124,8 @@ static int gfx_v11_0_gfx_mqd_init(struct
> > amdgpu_device *adev, void *m,  #endif
> >     if (prop->tmz_queue)
> >             tmp = REG_SET_FIELD(tmp, CP_GFX_HQD_CNTL, TMZ_MATCH,
> 1);
> > +   if (!prop->priv_queue)
> > +           tmp = REG_SET_FIELD(tmp, CP_GFX_HQD_CNTL,
> RB_NON_PRIV, 1);
> >     mqd->cp_gfx_hqd_cntl = tmp;
> >
> >     /* set up cp_doorbell_control */
> > @@ -4276,8 +4278,10 @@ static int gfx_v11_0_compute_mqd_init(struct
> amdgpu_device *adev, void *m,
> >     tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL,
> UNORD_DISPATCH, 1);
> >     tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL,
> TUNNEL_DISPATCH,
> >                         prop->allow_tunneling);
> > -   tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, PRIV_STATE, 1);
> > -   tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, KMD_QUEUE, 1);
> > +   if (prop->priv_queue) {
> > +           tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL,
> PRIV_STATE, 1);
> > +           tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL,
> KMD_QUEUE, 1);
> > +   }
>
> As per above logic, only kernel mode queues are supposed to be privileged. If 
> so,
> would suggest renaming the flag to kernel_q
According to the CP guys, the privileged bit can be applied both the user queue 
and kernel queue. So, we may don't bound the privileged queue to the kernel 
queue.
Meanwhile, the KMD_QUEUE bit may only set for the kernel queue only enabled 
case.

> Thanks,
> Lijo
>
> >     if (prop->tmz_queue)
> >             tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, TMZ, 1);
> >     mqd->cp_hqd_pq_control = tmp;

Reply via email to