Faster USB Performance For xHCI DbC Coming With Linux 6.14 Plus A 10 Year Old Bug Fixed

Written by Michael Larabel in Hardware on 29 December 2024 at 09:45 AM EST. 18 Comments
HARDWARE
Thanks to work from Intel engineers, the upcoming Linux 6.14 kernel cycle will feature faster USB xHCI DbC performance for debug performance and a few other missing xHCI bits being addressed. Plus there is a fix for a rare 10 year old USB bug report.

There are performance improvements coming around the xHCI debug capability (DbC) USB3 debug ports with the upcoming Linux 6.14 merge window. The queued up xhci: dbc: Improve performance by removing delay in transfer event polling patch that is a one-line code of change notes:
"Queue event polling work with 0 delay in case there are pending transfers queued up. This is part 2 of a 3 part series that roughly triples dbc performace when using adb push and pull over dbc.

Max/min push rate after patches is 210/118 MB/s, pull rate 171/133 MB/s, tested with large files (300MB-9GB) by Łukasz Bartosik"

The xhci: dbgtty: Improve performance by handling received data immediately patch is a bit more invasive reworking around one hundred lines of code in total to xhci-dbgtty and notes:
"Improve dbc transfer rate performance by copying the received data to the tty buffer directly in the request complete callback function if possible. Only defer it in case there is already pending deferred work, tty is throttled, or we fail copy the data to the tty buffer

The request complete callback is already called by a workqueue.

This is part 3/3 of a dbc performance improvement series that roughly triples dbc performace when using adb push and pull over dbc.

Max/min push rate after patches is 210/118 MB/s, pull rate 171/133 MB/s, tested with large files (300MB-9GB) by Łukasz Bartosik"

In addition to those exciting performance improvements for xHCI DbC, there is also a fix queued up for a ten year old Linux kernel bug. This patch fixes a null pointer dereference on certain command aborts. This two line patch is a fix to an xHCI kernel change made back in 2014 that could cause rare crashes.

These patches were queued up this week within Greg Kroah-Hartman's usb-next branch thereby making it material for the upcoming Linux 6.14 cycle.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week