This patch set increases the performance of the xHCI driver, and decreases the CPU usage by the driver. The driver was tested by using dd to read the raw disk of an SSD behind a USB 3.0 hard drive. This test was selected to eliminate any slowness on the hardware side and reveal any software bottle necks (because SSD read speed is much faster than write speed). I used the kernel perf tool to look at the top kernel symbols during the dd to find the bottle necks. perf annotate is very nice for revealing the exact code in the function that is taking the most time. Along with the MSI patch from Dong Nguyen, these increase performance from 172 MB/s to 204 MB/s, and decrease CPU usage on a 64-bit quad core Intel system from 28% CPU usage to 19%. Most of the improvements come from eliminating unnecessary register reads and enabling 64-bit DMA to avoid bounce buffers. A little bit of improvement comes from making functions static so the compiler can optimize them. There is still more low-hanging performance work to do, but I wanted to submit this set before the 2.6.36 merge window. Greg, this patchset should apply on top of Andiry's isochronous patches. Please let me know if you run into any conflicts. (I won't be able to respond to any comments until Tuesday because I'm going to be out in the ocean for four days.) Sarah Sharp (10): xhci: Performance - move functions that find ep ring. xhci: Performance - move interrupt handlers into xhci-ring.c xhci: Performance - move xhci_work() into xhci_irq() xhci: Remove unnecessary reads of IRQ_PENDING register. xhci: Make xhci_handle_event() static. xhci: Minimize HW event ring dequeue pointer writes. xhci: Make xhci_set_hc_event_deq() static. xhci: Reduce reads and writes of interrupter registers. xhci: Don't flush doorbell writes. xhci: Set DMA mask for host. drivers/usb/host/xhci-mem.c | 66 +++++--------- drivers/usb/host/xhci-pci.c | 9 ++ drivers/usb/host/xhci-ring.c | 198 ++++++++++++++++++++++++++++++++++------- drivers/usb/host/xhci.c | 144 +++++++++---------------------- drivers/usb/host/xhci.h | 8 +-- 5 files changed, 238 insertions(+), 187 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html