Faster USB Performance For xHCI DbC Coming With Linux 6.14 Plus A 10 Year Old Bug Fixed
([Hardware] 2 Hours Ago
USB xHCI DbC)
- Reference: 0001515510
- News link: https://www.phoronix.com/news/Faster-USB-xHCI-DbC-Linux-6.14
- Source link:
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 [1]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 [2]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. [3]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 [4]usb-next branch thereby making it material for the upcoming Linux 6.14 cycle.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=usb-next&id=03e3d9c2bd85cda941b3cf78e895c1498ac05c5f
[2] https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=usb-next&id=d157a2bcf99c028b134e1e6b53d8af64d0396c66
[3] https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=usb-next&id=1e0a19912adb68a4b2b74fd77001c96cd83eb073
[4] https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/log/?h=usb-next
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 [1]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 [2]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. [3]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 [4]usb-next branch thereby making it material for the upcoming Linux 6.14 cycle.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=usb-next&id=03e3d9c2bd85cda941b3cf78e895c1498ac05c5f
[2] https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=usb-next&id=d157a2bcf99c028b134e1e6b53d8af64d0396c66
[3] https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=usb-next&id=1e0a19912adb68a4b2b74fd77001c96cd83eb073
[4] https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/log/?h=usb-next
dev_null