> From: linux-usb-owner@xxxxxxxxxxxxxxx [mailto:linux-usb-owner@xxxxxxxxxxxxxxx] On Behalf Of Pratyush Anand > Sent: Thursday, October 04, 2012 11:03 PM < snip > > So, basically I am trying to transfer 3 * 9 * 1024 = 27 KBytes/125 us. > > I run following command at host PC. > > ./testusb -a -c 1000 -t 16 -s 55296 -g 1 > > Now what I see, that some time host is not sending correct seq number in > the ACK token. See attached snapshot. For the second burst host sends > ACK with sequence number 9 which is correct and device responds with 9 > packets of 1024 bytes. Now device was expecting ACK with seq number 18. > But, it sends ACK with seq no '0', which is not expected. > However, most of the time host does send correct seq number. > > In the dmesg I see, lot of > [ 307.554169] xhci_hcd 0000:30:00.0: WARN: HC couldn't access mem fast > enough > > My embedded evaluation board has PCIe host too. So I used same > PCIetoUSb3.0 host (which I used with test PC) with my eval board and > used it as a host. Ran same test and I do not see any such error here. > It runs perfectly. But, here I have kernel version 2.6.37 > > So my question is : > > 1. Is is possible that kernel version 3.5.4 has a bug but 2.6.37 does not? > > or > > 2. My Test PC is slower than my embedded eval board? However, it seems > least likely..my host PC is Pentium(R) Dual Core E5400 @ 2.70 GHz and > eval board is CortexA9 Dual Core @ 600MHz Hi Pratyush, It's probably your hardware not keeping up with the transfer rate. If you look at the timestamps in the trace, you will see the device is sending a 1K packet every 2.184 us. That is a transfer rate of over 468 MB/s. If the host controller in your PC is not connected thru a PCIe bridge with multiple lanes, the connection will not be fast enough to support that high of a transfer rate. And maybe on your eval board the host controller has a direct connection to the memory controller? Just a guess. A faster CPU doesn't help if the hardware cannot keep up. One thing you could do is try with a higher value for '-g' on the test command line. That will make the usbtest driver use more scatter- gather entries when it does the DMA. Perhaps that will help. -- Paul -- 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