On Sun, 28 Sep 2014, Mark Knibbs wrote: > > There's no telling the reason for this difference. It's got to be a > > hardware issue, though, not a software problem. Maybe your xHCI > > controller just isn't optimized for carrying out full-speed transfers. > > That's a possibility, but the improvement between my initial test with > kernel 3.14 and 3.16.2 (0.63MB/sec -> 0.75MB/sec) was obviously down to > software. Since you reliably observe a difference in speed between these kernels, you are in an ideal situation to use bisection. That ought to pinpoint the code changes responsible for the speed difference. > So there could be a lack of testing xhci_hcd with old USB 1.1 > devices too. Someone else would really need to reproduce these results > though; the different kernels could have been built with different options > which may have affected the results. But in all cases, via a USB 3.0 port > the transfer is significantly slower. > > Does the kernel driver have to poll the USB port? If it polls USB 3.0 ports > at a lower rate than USB 2.0 ports, perhaps that could explain the > difference. The kernel does not poll USB ports. At least, not for UHCI, OHCI, EHCI, or xHCI. > I re-tested today with kernel 3.17-rc6 (on Lubuntu 12.04.5) and the USB 3.0 > result is back down to ~0.63MB/sec: > # sg_rbuf --buffer=524288 -v -t -q /dev/sg5 > Read buffer cdb: 3c 03 00 00 00 00 00 00 04 00 > READ BUFFER reports: buffer capacity=983040, offset boundary=0 > time to read data from buffer was 332.637465 secs, 0.63 MB/sec > Read 200 MiB (actual: 209715200 bytes), buffer size=512 KiB (524288 bytes) Again, bisection should help. > For someone with no actual USB 1.1 drive, could connecting a USB 2.0 drive > through an old USB 1.1 hub (then to a USB 2.0 or 3.0 port) work for > testing? USB 1.1 hubs are probably still relatively easy to come by. Yes, that would work. Alan Stern -- 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