On Wed, Jul 16, 2025 at 5:58 AM Liang, Prike <prike.li...@amd.com> wrote: > > [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.
I think we want PRIV_STATE for only kernel queues. Why would you want it for user queues? Alex > > > Thanks, > > Lijo > > > > > if (prop->tmz_queue) > > > tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, TMZ, 1); > > > mqd->cp_hqd_pq_control = tmp; >