[PATCH 2/3] drm/amdgpu/gfx11: set MQD as appriopriate for queue priv
Liang, Prike
Prike.Liang at amd.com
Wed Jul 16 08:40:48 UTC 2025
[Public]
Regards,
Prike
> -----Original Message-----
> From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Lazar, Lijo
> Sent: Wednesday, July 16, 2025 12:18 PM
> To: Deucher, Alexander <Alexander.Deucher at amd.com>; amd-
> gfx at lists.freedesktop.org
> Cc: Koenig, Christian <Christian.Koenig at 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.koenig at amd.com>
> > Signed-off-by: Alex Deucher <alexander.deucher at 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;
More information about the amd-gfx
mailing list