On Aug 21, 2013, at 10:39 AM, Greg KH <gre...@linuxfoundation.org> wrote:

> On Wed, Aug 21, 2013 at 10:36:18AM -0700, Simon Gornall wrote:
>> Hi there,
>> 
>> I'm in the process of designing a VME=>USB interface, and I wanted to
>> use the FT232H, but according to FTDI, the throughput on Linux is only
>> ~9MBytes/sec using current kernels. In the past, it was ~40MBytes/sec.
>> Sadly my Arm board is delivered running Linux 3.4.29
> 
> Why did it drop?  What caused the regression?  How was this measured?

You have as much information as I have. I have requested more detail...

Given the information below, I'd guess the regression was between 2.6.27-57 and 
2.6.28-3. As to what caused it, I have no idea. I'm new to USB drivers, so I 
have some learning to do...

Given that the company probably wouldn't *want* to claim that their high-speed 
interface was slow as molasses, I'm assuming that the throughput was measured 
in the same way both before and after the regression and done by piping data as 
fast as possible in one end and reading it as fast as possible at the other 
end. 

I'm in the process of designing a test-pcb which I can do some more 
investigation with. I'll be able to plug it into an i7-based linux box, a 1GHz 
ARM-7 embedded board, and an i7-based Mac. I'll write a simple program to run 
on all of these which reads bulk data as fast as it can, and I'll be feeding 
data into the FT232H at the other end at 60 MHz, modulo its FIFO begin full. 
Once I've got that data I'll report it back, but it'll take a few weeks to get 
the board designed, made, and the program written and tested.

If I can, I'll try reverting the OS on the linux PC to see if I can narrow down 
where the regression occurred. 

>> I don't really want to go back to the "olden days" of kernel 2.6.27-57
>> - I'm not even sure it's possible on my embedded ARM board, so I was
>> wondering if anyone knew the reasons for such a drastic bandwidth
>> reduction. If it's something I can live with in my embedded situation,
>> I'd prefer to revert the change and lose whatever functionality was
>> gained by slashing the bandwidth by 4.
>> 
>> Basically I need to be able to put 20 MBytes/sec through the USB port.
>> The FT232H parts are very attractive because they offer a simple
>> FIFO-style interface and one doesn't have to implement an entire USB
>> stack, which is much harder when you don't have a CPU ...
>> 
>> Cheers
>>      Simon.
>> 
>> Mail from FTDI:
>> ---8<---8<---8<--- C u t    h e r e  ---8<---8<---8<---
>> 
>> Simon:
>> 
>> You could use Sync FIFO mode, but I’m afraid there is another “gotcha”
>> to be aware of - with newer Linux kernels (>2.6.28-3), Sync FIFO
>> throughput is limited to 9 MByte/sec
>> 
>> With the older kernels  (2.6.27-57 and older) Sync FIFO will run at 40
>> MByte/sec.   Since you are using ARM Linux, there is a good chance you
>> have an older kernel.
> 
> I have no idea what this is referring to at all.  Is that just due to a
> driver change in the ftdi_sio driver, or something else?

I was hoping there was a "we changed it because..." reason. If you were unaware 
of the problem, I guess there's little you can do to fix it :)

I'm not sure if this helps, but the driver they're talking about is the D2XX 
driver. Apparently this is needed to put the device into synchronous FIFO mode.

Simon

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to