On Mon, 29 Sep 2014 09:28:37 -0400 (EDT) Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > 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. I'll try to get onto that shortly. It will be very painful on my old laptop though..! > > 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. Not a proper bisection, but today I tested various kernels as available from http://kernel.ubuntu.com/~kernel-ppa/mainline/ Quite interesting! It's not a hardware issue after all, and it's quite an old regression. The USB 2 port rates are very consistent over all kernels. 2.6.32 and 2.6.33 are just as fast in USB 3.0 ports (in fact 0.05% faster) as in USB 2.0 ports. The regression occurred between 2.6.33 and 2.6.34, after which USB 1.1 devices work 40% faster in USB 2 ports than USB 3 ports. There was some improvement between 3.10 and 3.14, but things regressed again between 3.16 and 3.17-rc1. Kernel USB2 time USB3 time USB2 rate USB3 rate USB3%of2 %USB2faster 2.6.32.63.26 242.405270 242.283844 865,142.9 865,576.5 100.05% -0.05% 2.6.33.20 242.400737 242.285208 865,159.1 865,571.6 100.05% -0.05% 2.6.34.15 242.400247 340.095006 865,160.8 616,637.1 71.27% 40.30% 2.6.36.4 242.400864 339.286585 865,158.6 618,106.4 71.44% 39.97% 3.7.10 243.009366 340.206814 862,992.3 616,434.4 71.43% 40.00% 3.10.55 242.400230 336.598467 865,160.9 623,042.6 72.01% 38.86% 3.14.19 242.401219 287.017822 865,157.4 730,669.6 84.46% 18.41% 3.16.2 242.400229 284.858724 865,160.9 736,207.7 85.09% 17.52% 3.16.3 242.400258 289.192172 865,160.8 725,175.9 83.82% 19.30% 3.17-rc1 242.400248 339.129056 865,160.8 618,393.5 71.48% 39.90% 3.17-rc6 242.400239 339.548579 865,160.9 617,629.4 71.39% 40.08% > > 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. Great. I hope someone else is motivated to reproduce the issue. It will take a long time for me to bisect due to my slow computer. Mark -- 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