Is FreeBSD-current XHCI 1.1 compliant?

Hans Petter Selasky hps at
Thu Aug 30 16:57:30 UTC 2018

On 8/30/18 3:55 PM, Rajesh Kumar wrote:
> So, does using streams mode helps in improving the storage performance with
> USB? If so, what is needed to use streams mode effectively?  Do we need to
> consider anything else when taking USB performance numbers in FreeBSD?


Streams mode might help with latency, that you can queue more transfers 
at the same time. Also streams mode used to be controversial, that not 
all hardware manufacturers supported it.

USB is no replacement for a PCI hardware device or a SATA controller.

The block size effectively decides the performance of your device. The 
USB XHCI controller has a configurable IRQ limit of 16000 IRQ/s. At this 
rate you can queue at most 4000-8000 SCSI jobs per second towards the 
USB SCSI implementation. If you use small block size, performance drops. 
If you use bigger block size, performance increase.

In /usr/src/tools you'll find a small utility that benchmark USB storage 
devices, called usbtest. Beware it can brick your USB disk.


More information about the freebsd-usb mailing list