From dca2c40dc925513c610fba8368a1d6019ad36baa Mon Sep 17 00:00:00 2001 From: Sunil Khatri Date: Thu, 17 Sep 2026 18:58:27 +0530 Subject: [PATCH] drm/amdgpu/mes11: add more debug info on MES packet failure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When MES fails to respond to a packet, the existing failure log only prints the op name. Add fence_wait_ret and the packet's status word to the same message. status_ptr is written directly by MES as part of completing the packet, independently of the ring fence that fence_wait_ret waits on, so a nonzero status despite a timed-out fence_wait_ret narrows the failure to the trailing ring/query-status packet rather than the original request. Assisted-by: Claude:claude-sonnet-5 Signed-off-by: Sunil Khatri Reviewed-by: Christian König Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c index c81e4b8616d0..51bfb672bed7 100644 --- a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c +++ b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c @@ -257,14 +257,17 @@ static int mes_v11_0_submit_pkt_and_poll_completion(struct amdgpu_mes *mes, if (r < 1 || !*status_ptr) { if (misc_op_str) - dev_err(adev->dev, "MES failed to respond to msg=%s (%s)\n", - op_str, misc_op_str); + dev_err(adev->dev, + "MES failed to respond to msg=%s (%s) fence_wait_ret=%ld status=0x%llx\n", + op_str, misc_op_str, r, *status_ptr); else if (op_str) - dev_err(adev->dev, "MES failed to respond to msg=%s\n", - op_str); + dev_err(adev->dev, + "MES failed to respond to msg=%s fence_wait_ret=%ld status=0x%llx\n", + op_str, r, *status_ptr); else - dev_err(adev->dev, "MES failed to respond to msg=%d\n", - x_pkt->header.opcode); + dev_err(adev->dev, + "MES failed to respond to msg=%d fence_wait_ret=%ld status=0x%llx\n", + x_pkt->header.opcode, r, *status_ptr); while (halt_if_hws_hang) schedule();