On 24.06.2021 09:04, Matthew Brost wrote:
Improve the error message when a unsolicited CT response is received by printing fence that couldn't be found, the last fence, and all requests with a response outstanding.
Signed-off-by: Matthew Brost matthew.brost@intel.com
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c index a59e239497ee..07f080ddb9ae 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c @@ -730,12 +730,16 @@ static int ct_handle_response(struct intel_guc_ct *ct, struct ct_incoming_msg *r found = true; break; }
- spin_unlock_irqrestore(&ct->requests.lock, flags);
- if (!found) { CT_ERROR(ct, "Unsolicited response (fence %u)\n", fence);
return -ENOKEY;
CT_ERROR(ct, "Could not find fence=%u, last_fence=%u\n", fence,
ct->requests.last_fence);
list_for_each_entry(req, &ct->requests.pending, link)
CT_ERROR(ct, "request %u awaits response\n",
req->fence);
not quite sure how listing of awaiting requests could help here (if we suspect that this is a duplicated reply, then we should rather track short list of already processed messages to look there) but since it does not hurt too much, this is:
Reviewed-by: Michal Wajdeczko michal.wajdeczko@intel.com
err = -ENOKEY;
}
spin_unlock_irqrestore(&ct->requests.lock, flags);
if (unlikely(err)) return err;