From: Mathias Nyman <mathias.nyman@linux.intel.com>
To: "Michał Pecio" <michal.pecio@gmail.com>
Cc: gregkh@linuxfoundation.org, linux-usb@vger.kernel.org,
Niklas Neronin <niklas.neronin@linux.intel.com>
Subject: Re: [PATCH 23/24] usb: xhci: add warning message specifying which Set TR Deq failed
Date: Mon, 19 May 2025 17:33:41 +0300 [thread overview]
Message-ID: <c6c2a7f6-35fb-4f92-9d07-b0a2fa703223@linux.intel.com> (raw)
In-Reply-To: <20250516144310.12b4f072@foxbook>
On 16.5.2025 15.43, Michał Pecio wrote:
> On Thu, 15 May 2025 16:56:20 +0300, Mathias Nyman wrote:
>> From: Niklas Neronin <niklas.neronin@linux.intel.com>
>>
>> Currently, errors from the Set TR Deq command are not handled.
>> Add a warning message to specify the slot, endpoint, and TRB address
>> when a Set TR Deq command fails. This additional information will aid
>> in debugging such failures.
>>
>> Signed-off-by: Niklas Neronin <niklas.neronin@linux.intel.com>
>> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
>> ---
>> drivers/usb/host/xhci-ring.c | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/drivers/usb/host/xhci-ring.c
>> b/drivers/usb/host/xhci-ring.c index e3c823e1caee..eff6b84dc915 100644
>> --- a/drivers/usb/host/xhci-ring.c
>> +++ b/drivers/usb/host/xhci-ring.c
>> @@ -1448,6 +1448,11 @@ static void xhci_handle_cmd_set_deq(struct
>> xhci_hcd *xhci, int slot_id, unsigned int ep_state;
>> unsigned int slot_state;
>>
>> + xhci_warn(xhci, "Set TR Deq error for TRB 0x%llx in slot %d ep %u\n",
>> + (unsigned long long)xhci_trb_virt_to_dma(ep->queued_deq_seg,
>> + ep->queued_deq_ptr),
>
> Is printing this pointer actually useful? It doesn't tell why
> the error happened. It will not relate to other messages - the
> command failed, so dequeue stays at its old position.
Printing the DMA address has turned out to be quite useful, quickly shows corner
cases like end or beginning of ring segment, or address missing upper 32 bits.
Comparable with the "trb not in TD" error messages
>
>> + slot_id, ep_index);
>> +
>> switch (cmd_comp_code) {
>> case COMP_TRB_ERROR:
>> xhci_warn(xhci, "WARN Set TR Deq Ptr cmd invalid because of stream ID configuration\n");
>
> This will now become a multi-line log message, even though actual
> information it contains could fit in one line.
>
> How about replacing this new line and the whole switch with:
>
> + ep_state = GET_EP_CTX_STATE(ep_ctx);
> + slot_state = GET_SLOT_STATE(le32_to_cpu(slot_ctx->dev_state));
> +
> + xhci_warn(xhci, "Set TR Dequeue %s for slot %d ep %d (%s/%s)\n",
> + xhci_trb_comp_code_string(cmd_comp_code), slot_id, ep_index,
> + xhci_slot_state_string(slot_state), xhci_ep_state_string(ep_state));
>
> Example output:
> xhci_hcd 0000:02:00.0: Set TR Dequeue TRB Error for slot 1 ep 6 (configured/stopped)
>
> IMO this has the further benefit that "TRB Error" is something I can
> search in the spec, while "because of stream ID configuration" is not.
> And it isn't even the true treason in every case of TRB Error.
This works as well, but tuning this message is something we can do in a later fixup.
I don't think it's worth resending the series due to this
Thanks
Mathias
next prev parent reply other threads:[~2025-05-19 14:33 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-15 13:55 [PATCH 00/24] xhci features for usb-next Mathias Nyman
2025-05-15 13:55 ` [PATCH 01/24] usb: xhci: Don't log transfer ring segment list on errors Mathias Nyman
2025-05-15 13:55 ` [PATCH 02/24] usb: xhci: Add debugfs support for xHCI port bandwidth Mathias Nyman
2025-05-15 13:56 ` [PATCH 03/24] usb: xhci: relocate pre-allocation initialization Mathias Nyman
2025-05-15 13:56 ` [PATCH 04/24] usb: xhci: move device slot enabling register write Mathias Nyman
2025-05-15 13:56 ` [PATCH 05/24] usb: xhci: move command ring pointer write Mathias Nyman
2025-05-15 13:56 ` [PATCH 06/24] usb: xhci: refactor xhci_set_cmd_ring_deq() Mathias Nyman
2025-05-15 13:56 ` [PATCH 07/24] usb: xhci: move DCBAA pointer write Mathias Nyman
2025-05-15 13:56 ` [PATCH 08/24] usb: xhci: move doorbell array pointer assignment Mathias Nyman
2025-05-15 13:56 ` [PATCH 09/24] usb: xhci: move enabling of USB 3 device notifications Mathias Nyman
2025-05-15 13:56 ` [PATCH 10/24] usb: xhci: remove error handling from xhci_add_interrupter() Mathias Nyman
2025-05-15 13:56 ` [PATCH 11/24] usb: xhci: move initialization of the primary interrupter Mathias Nyman
2025-05-15 13:56 ` [PATCH 12/24] usb: xhci: add individual allocation checks in xhci_mem_init() Mathias Nyman
2025-05-15 13:56 ` [PATCH 13/24] usb: xhci: cleanup xhci_mem_init() Mathias Nyman
2025-05-15 13:56 ` [PATCH 14/24] usb: xhci: set requested IMODI to the closest supported value Mathias Nyman
2025-05-15 13:56 ` [PATCH 15/24] usb: xhci: improve Interrupt Management register macros Mathias Nyman
2025-05-15 13:56 ` [PATCH 16/24] usb: xhci: guarantee that IMAN register is flushed Mathias Nyman
2025-05-15 13:56 ` [PATCH 17/24] usb: xhci: remove '0' write to write-1-to-clear register Mathias Nyman
2025-05-15 13:56 ` [PATCH 18/24] usb: xhci: rework Event Ring Segment Table Size mask Mathias Nyman
2025-05-15 13:56 ` [PATCH 19/24] usb: xhci: rework Event Ring Segment Table Address mask Mathias Nyman
2025-05-15 13:56 ` [PATCH 20/24] usb: xhci: cleanup IMOD register comments Mathias Nyman
2025-05-15 13:56 ` [PATCH 21/24] usb: xhci: rename 'irq_pending' to 'iman' Mathias Nyman
2025-05-15 13:56 ` [PATCH 22/24] usb: xhci: rename 'irq_control' to 'imod' Mathias Nyman
2025-05-15 13:56 ` [PATCH 23/24] usb: xhci: add warning message specifying which Set TR Deq failed Mathias Nyman
2025-05-16 12:43 ` Michał Pecio
2025-05-16 14:32 ` Neronin, Niklas
2025-05-19 14:33 ` Mathias Nyman [this message]
2025-05-21 10:34 ` Greg KH
2025-05-21 13:22 ` Mathias Nyman
2025-05-15 13:56 ` [PATCH 24/24] xhci: Add host support for eUSB2 double isochronous bandwidth devices Mathias Nyman
2025-05-16 0:27 ` Thinh Nguyen
2025-05-16 0:40 ` Thinh Nguyen
2025-05-16 11:58 ` Mathias Nyman
2025-05-17 0:16 ` Thinh Nguyen
2025-05-21 10:36 ` [PATCH 00/24] xhci features for usb-next Greg KH
2025-05-21 13:24 ` Mathias Nyman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c6c2a7f6-35fb-4f92-9d07-b0a2fa703223@linux.intel.com \
--to=mathias.nyman@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-usb@vger.kernel.org \
--cc=michal.pecio@gmail.com \
--cc=niklas.neronin@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox