Skip to content

USB: chipidea: patchset for performance improvement

Peter Chen linux-arm-kernel linux-devicetree 1 version New

Get series with b4
b4 am 20150320023328.GA7537@shlinux2

Versions newest first

  1. v1 Latest0 of 12 patches 0 repliesNew

Patches in v1 No applies recorded yet

None of the 12 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 00/12] USB: chipidea: patchset for performance improvement
Quoted 33 lines · Jean-Christophe PLAGNIOL-VILLARD
Quoted 32 lines · Peter Chen

Hi all,

In this patch set, I add some interfaces for tuning the performance of chipidea usb driver. With this set, the USB performance can be improved at some user cases with suitable parameters. The main changes:

- Interface to tune interrupt threshold control, and set 'Immediate' for default value
- The glue layer can disable stream mode according to USB role
- Interface to tune AHB burst configuration at SBUSCFG
- Interface to tune tx/rx burst size
- i.mx changes for achieving better performance, it can reduce the latecy between bus and USB FIFO, and reduce the overrun and underrun occurrences, it is useful for the system bus is busy. we see great improvement for ISO transfer, eg, high resolution USB camera when the bus is busy.

Below are some test results at imx6sx sdb board (set ehci_hcd.park=3 at bootargs), the tests are done at v4.0 kernel, no other bus loading during the tests, so we have not seen performance change for some use cases.

USB Mass Storage (Host mode)
With Patch Set Without Patch Set
R: 26.9 MB/s 27 MB/s
W: 25.2 MB/s 24.5 MB/s

1G USB Ethernet Card
With Patch Set Without Patch Set
TX: 186 Mb/s 185 Mb/s
RX: 219 Mb/s 216 Mb/s

Quoted 9 lines
Quoted 4 lines

g_ncm (Device Mode)
With Patch Set Without Patch Set
TX: 166MB/s 163MB/s
RX: 230MB/s 184MB/s

The improve is not drag sticks except for gcm RX

The most interesting path will be on full system loaded

Yeah, I can have a try. But we have no GPU driver and related apps on it, I am not sure if I can create starve bus situation. Any high bus loading tools suggest?

Signature · 2 lines
Best Regards,
Peter Chen