On Thu, 2025-09-25 at 17:43 +0800, Heng Zhou wrote:
> There is some probability that reset workqueue is blocked by KIQ I/O for 10+ 
> seconds after gpu hangs.
> So we need to add a in_reset check during each KIQ register poll.
> 
> Signed-off-by: Heng Zhou <heng.z...@amd.com>
> ---

You should create such patches with git format-patch -v2 to create a
version 2 field in the header. And, ideally, provide a small change log
below the three dashes like so:

---
Changes in v2:
  - foo
  - bar
---

JFYI for the future; I guess this patch is fine for now.

Regards,
Philipp

>  drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
> index 89fc1015d3a6..7f02e36ccc1e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
> @@ -1102,6 +1102,9 @@ uint32_t amdgpu_kiq_rreg(struct amdgpu_device *adev, 
> uint32_t reg, uint32_t xcc_
>  
>       might_sleep();
>       while (r < 1 && cnt++ < MAX_KIQ_REG_TRY) {
> +             if (amdgpu_in_reset(adev))
> +                     goto failed_kiq_read;
> +
>               msleep(MAX_KIQ_REG_BAILOUT_INTERVAL);
>               r = amdgpu_fence_wait_polling(ring, seq, MAX_KIQ_REG_WAIT);
>       }
> @@ -1171,6 +1174,8 @@ void amdgpu_kiq_wreg(struct amdgpu_device *adev, 
> uint32_t reg, uint32_t v, uint3
>  
>       might_sleep();
>       while (r < 1 && cnt++ < MAX_KIQ_REG_TRY) {
> +             if (amdgpu_in_reset(adev))
> +                     goto failed_kiq_write;
>  
>               msleep(MAX_KIQ_REG_BAILOUT_INTERVAL);
>               r = amdgpu_fence_wait_polling(ring, seq, MAX_KIQ_REG_WAIT);

Reply via email to