From: "Michał Pecio" <michal.pecio@gmail.com>
To: Paul Menzel <pmenzel@molgen.mpg.de>
Cc: Mathias Nyman <mathias.nyman@linux.intel.com>,
Mathias Nyman <mathias.nyman@intel.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-usb@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>
Subject: Re: xhci: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.
Date: Sun, 6 Apr 2025 00:23:11 +0200 [thread overview]
Message-ID: <20250406002311.2a76fc64@foxbook> (raw)
In-Reply-To: <84b400f8-2943-44e0-8803-f3aac3b670af@molgen.mpg.de>
OK, I think I see it.
On Sat, 05 Apr 2025 05:23:12 +0000, Paul Menzel wrote:
> [ 326.543262] xhci_hcd 0000:39:00.0: Resetting device with slot ID 5
> [ 326.543294] xhci_hcd 0000:39:00.0: // Ding dong!
> [ 326.543549] xhci_hcd 0000:39:00.0: Completed reset device command.
> [ 326.543588] xhci_hcd 0000:39:00.0: Successful reset device command.
> [ 326.543730] xhci_hcd 0000:39:00.0: // Ding dong!
> [ 326.543838] xhci_hcd 0000:39:00.0: Successful setup address command
> [ 326.543858] xhci_hcd 0000:39:00.0: Op regs DCBAA ptr = 0x00000133845000
> [ 326.543876] xhci_hcd 0000:39:00.0: Slot ID 5 dcbaa entry @00000000ced6807f = 0x000001339f4000
> [ 326.543897] xhci_hcd 0000:39:00.0: Output Context DMA address = 0x1339f4000
> [ 326.543904] xhci_hcd 0000:39:00.0: Internal device address = 5
> [ 326.543935] usb 4-1.4: reset SuperSpeed USB device number 4 using xhci_hcd
> [ 326.560391] xhci_hcd 0000:39:00.0: Waiting for status stage event
> [ 326.560446] xhci_hcd 0000:39:00.0: xhci_drop_endpoint called for udev 000000008c832e88
> [ 326.560465] xhci_hcd 0000:39:00.0: xhci_drop_endpoint called for udev 000000008c832e88
> [ 326.560483] xhci_hcd 0000:39:00.0: add ep 0x1, slot id 5, new drop flags = 0x0, new add flags = 0x4
> [ 326.560499] xhci_hcd 0000:39:00.0: add ep 0x82, slot id 5, new drop flags = 0x0, new add flags = 0x24
> [ 326.560508] xhci_hcd 0000:39:00.0: xhci_check_bandwidth called for udev 000000008c832e88
> [ 326.560520] xhci_hcd 0000:39:00.0: // Ding dong!
> [ 326.561031] xhci_hcd 0000:39:00.0: Successful Endpoint Configure command
> [ 326.561209] xhci_hcd 0000:39:00.0: endpoint disable with ep_state 0x40
> [ 326.561217] xhci_hcd 0000:39:00.0: endpoint disable with ep_state 0x240
Looks like some URB stalled and usb_storage reset the device without
usb_clear_halt(). Then the core didn't usb_hcd_reset_endpoint() either.
And apparently EP_STALLED is still set in xhci_hcd after all that time.
Then usb_storage submits one URB which never executes because the EP
is in Running-Idle state and the doorbell is inhibited by EP_STALLED.
30s later it times out, unlinks the URB and resets again. Set TR Deq
fails because the endpoint is Running.
> [ 326.562226] usb 4-1.4: URB 00000000a9556a5f queued before clearing halt
> [ 357.198396] xhci_hcd 0000:39:00.0: Invalidating TDs instantly on slot 5 ep 4 in state 0x240
> [ 357.198405] xhci_hcd 0000:39:00.0: Removing canceled TD starting at 0x1645d5000 (dma) in stream 0 URB 00000000a9556a5f
> [ 357.198422] xhci_hcd 0000:39:00.0: Set TR Deq ptr 0x1645d5010, cycle 1
> [ 357.198429] xhci_hcd 0000:39:00.0: // Ding dong!
> [ 357.198435] xhci_hcd 0000:39:00.0: xhci_giveback_invalidated_tds: Keep cancelled URB 00000000a9556a5f TD as cancel_status is 2
> [ 357.198505] xhci_hcd 0000:39:00.0: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.
> [ 357.198516] xhci_hcd 0000:39:00.0: Slot state = 3, EP state = 1
> [ 357.198525] xhci_hcd 0000:39:00.0: xhci_handle_cmd_set_deq: Giveback cancelled URB 00000000a9556a5f TD
> [ 357.198539] xhci_hcd 0000:39:00.0: xhci_handle_cmd_set_deq: All TDs cleared, ring doorbell
Not sure if it's a USB core bug or something that xHCI should take
care of on its own. For now, reverting those two "stall" patches ought
to clean up the noise.
Not 100% sure if this caused the stuck task issue, but 6.15 has this
CONFIG_DETECT_HUNG_TASK_BLOCKER which might be helpful in such cases.
next prev parent reply other threads:[~2025-04-05 22:23 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-03 18:02 xhci: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state Paul Menzel
2025-04-04 14:26 ` Mathias Nyman
2025-04-04 14:29 ` Paul Menzel
2025-04-05 5:23 ` Paul Menzel
2025-04-05 22:23 ` Michał Pecio [this message]
2025-04-06 2:40 ` Alan Stern
2025-04-06 7:50 ` Michał Pecio
2025-04-06 15:50 ` Michał Pecio
2025-04-06 19:26 ` Alan Stern
2025-04-07 5:49 ` Michał Pecio
2025-04-07 16:11 ` Alan Stern
2025-04-08 10:18 ` [PATCH RFC RFT] usb: hcd: Add a usb_device argument to hc_driver.endpoint_reset() Michał Pecio
2025-04-08 13:55 ` Mathias Nyman
2025-04-09 10:18 ` Michał Pecio
2025-04-09 14:13 ` Alan Stern
2025-04-15 8:38 ` Michał Pecio
2025-04-09 13:03 ` kernel test robot
2025-04-09 13:14 ` kernel test robot
2025-04-07 7:15 ` xhci: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state Mathias Nyman
2025-04-05 6:43 ` Michał Pecio
2025-04-05 7:36 ` Paul Menzel
2025-04-05 9:49 ` Michał Pecio
2025-04-05 14:08 ` Paul Menzel
2025-04-05 18:13 ` Paul Menzel
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=20250406002311.2a76fc64@foxbook \
--to=michal.pecio@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@intel.com \
--cc=mathias.nyman@linux.intel.com \
--cc=pmenzel@molgen.mpg.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.