1
Discussion - Drivers / Poor throughput via USB Bulk transfer VNC2
« on: September 07, 2018, 11:15:40 AM »
Hi,
I am building an adaptor device based around the Vinculum-II device. This adaptor will need to maintain a throughput of around 170KB/s (bytes not bits), which should be easy via USB.
However I am struggling to get anything above around 1.7 KB/s !! If I strip out all mutex locks, semaphores and have the FTDI device simply throw away data it receives I manage to up that to about 10KB/s. This is essentially just calling the IOCTL to read from the endpoint, in a loop with the maximum buffer size of 1024 bytes. Data is being sent with a single libusb bulk transfer command from a linux host.
All USB tasks have a priority of 31, the task reading from USB is running at priority 20. I have tried removing the vos_memset and vos_memcpy calls and this gets me an extra ~1KBs (but obviously renders the code useless)
Is there something obvious I could have overlooked? or is the VNC2 not capable of achieving the throughput I require?
I am building an adaptor device based around the Vinculum-II device. This adaptor will need to maintain a throughput of around 170KB/s (bytes not bits), which should be easy via USB.
However I am struggling to get anything above around 1.7 KB/s !! If I strip out all mutex locks, semaphores and have the FTDI device simply throw away data it receives I manage to up that to about 10KB/s. This is essentially just calling the IOCTL to read from the endpoint, in a loop with the maximum buffer size of 1024 bytes. Data is being sent with a single libusb bulk transfer command from a linux host.
All USB tasks have a priority of 31, the task reading from USB is running at priority 20. I have tried removing the vos_memset and vos_memcpy calls and this gets me an extra ~1KBs (but obviously renders the code useless)
Is there something obvious I could have overlooked? or is the VNC2 not capable of achieving the throughput I require?