AMD General

I checked each different userq hang cases, and the guilty userq can be 
identified by the MES firmware and report correctly.  @Zhang, Jesse(Jie) could 
you further check as well at you side?

If there're some hang queues miss identified by MES firmware, then the correct 
thing is to further debug from MES firmware side rather than have such strange 
reset sequence and this reset workaround should be cleaned sooner or later.


Regards,
      Prike

> -----Original Message-----
> From: Liang, Prike <[email protected]>
> Sent: Wednesday, July 15, 2026 2:31 PM
> To: [email protected]
> Cc: Deucher, Alexander <[email protected]>; Koenig, Christian
> <[email protected]>; Liang, Prike <[email protected]>
> Subject: [PATCH 1/2] drm/amdgpu: Remove separate guilty compute userq reset
>
> amdgpu_mes_detect_and_reset_hung_queues() already detects the guilty compute
> user queue and resets it through mes_userq_reset_queue(). The additional 
> reset via
> mes_userq_reset() is unnecessary, so remove it to unify the compute userq 
> reset.
>
> Signed-off-by: Prike Liang <[email protected]>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c    | 5 -----
>  drivers/gpu/drm/amd/amdgpu/mes_userqueue.c | 2 --
>  2 files changed, 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
> index 1e275c2e7dd3..4f2d5ff2f7be 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
> @@ -2315,11 +2315,6 @@ int amdgpu_gfx_reset_mes_compute(struct
> amdgpu_device *adev,
>               deferred_end[n_deferred].fence = guilty_fence;
>               n_deferred++;
>       }
> -     if (uq) {
> -             r = mes_userq_reset(uq);
> -             if (r)
> -                     goto out;
> -     }
>       for (i = 0; i < num_hung; i++) {
>               struct amdgpu_ring *hr = NULL;
>               struct amdgpu_fence *hf = NULL;
> diff --git a/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c
> b/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c
> index b6bfa3974839..fab21d4275f3 100644
> --- a/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c
> +++ b/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c
> @@ -226,8 +226,6 @@ int mes_userq_reset_queue(struct amdgpu_device *adev,
>
>       xa_for_each(&adev->userq_doorbell_xa, uq_id, uq) {
>               if (uq->queue_type == queue_type) {
> -                     if (uq == guilty_uq)
> -                             continue;
>                       if (uq->doorbell_index == db) {
>                               uq->state = AMDGPU_USERQ_STATE_HUNG;
>                               if (use_mmio)
> --
> 2.34.1

Reply via email to