public inbox for linux-usb@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] xHCI: Isochronous error handling fixes and improvements
@ 2025-02-10  7:37 Michal Pecio
  2025-02-10  7:38 ` [PATCH 1/5] usb: xhci: Complete 'error mid TD' transfers when handling Missed Service Michal Pecio
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Michal Pecio @ 2025-02-10  7:37 UTC (permalink / raw)
  To: Mathias Nyman, Greg Kroah-Hartman; +Cc: Niklas Neronin, linux-usb, linux-kernel

These patches reduce latency of error reporting in some cases related
to 'error mid TD' and Missed Service events and sometimes fix a failure
to give back such TDs altogether until they are cancelled.

Also included are fixes for potential packet loss or memory corruption
due to an obscure race. Whether it causes problems IRL is not known and
the worst case would be hard to reproduce, but exactly for this reason
if the worst case actually happens, it could be hard to debug too.

2/5 is a cleanup which makes 3/5 implementation shorter and simpler.

The first three should be safe. The fourth should also be safe, but it
relies on HC functionality Linux never relied on before, so I placed it
towards the end in case it would need some tweaks. I tested it on all
hardware I have and it worked just fine.

The last one is perhaps the most controversial, though it should be
OK with typical "complete -> resubmit" drivers. It's the only one here
which increases latency in some severe error cases. The intent is to
avoid potentially giving back URBs not yet executed by hardware.

Michal Pecio (5):
  usb: xhci: Complete 'error mid TD' transfers when handling Missed
    Service
  usb: xhci: Clean up the TD skipping loop
  usb: xhci: Fix isochronous Ring Underrun/Overrun event handling
  usb: xhci: Expedite skipping missed isoch TDs on modern HCs
  usb: xhci: Skip only one TD on Ring Underrun/Overrun

 drivers/usb/host/xhci-ring.c | 110 +++++++++++++++++++++--------------
 1 file changed, 67 insertions(+), 43 deletions(-)

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2025-02-24  0:02 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-10  7:37 [PATCH 0/5] xHCI: Isochronous error handling fixes and improvements Michal Pecio
2025-02-10  7:38 ` [PATCH 1/5] usb: xhci: Complete 'error mid TD' transfers when handling Missed Service Michal Pecio
2025-02-10  7:39 ` [PATCH 2/5] usb: xhci: Clean up the TD skipping loop Michal Pecio
2025-02-22 12:37   ` Neronin, Niklas
2025-02-24  0:02     ` Michał Pecio
2025-02-10  7:40 ` [PATCH 3/5] usb: xhci: Fix isochronous Ring Underrun/Overrun event handling Michal Pecio
2025-02-10  7:41 ` [PATCH 4/5] usb: xhci: Expedite skipping missed isoch TDs on modern HCs Michal Pecio
2025-02-10  7:42 ` [PATCH 5/5] usb: xhci: Skip only one TD on Ring Underrun/Overrun Michal Pecio
2025-02-11 15:41   ` Mathias Nyman
2025-02-12  7:30     ` Michał Pecio
2025-02-21  1:17     ` Michał Pecio
2025-02-21  1:18       ` [PATCH v2 3/5] usb: xhci: Fix isochronous Ring Underrun/Overrun event handling Michal Pecio
2025-02-21  1:20       ` [PATCH v2 5/5] usb: xhci: Skip only one TD on Ring Underrun/Overrun Michal Pecio
2025-02-21 13:17       ` [PATCH " Mathias Nyman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox