Re: libusb performance on 8.1

2011-01-27 Thread Daniel O'Connor

On 23/01/2011, at 24:03, Hans Petter Selasky wrote:
 You need to change the way you buffer the data. FreeBSD does not queue more 
 than 2 URB's at any time, and the turnaround time varies from 1ms to 125us 
 due 
 to hardware IRQ restrictions. Linux queues up all it can get, which leads to 
 other kind of problems. The current internal buffer limit is 16Kbyte 8000 
 times per second which gives a MAX of 128 MByte/second.

How difficult would it be to increase this? I obviously don't need any more 
throughput, however my application is very sensitive to latency, as I am 
reading out of a fairly small FIFO and if it fills up my entire run has to be 
aborted.

--
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
The nice thing about standards is that there
are so many of them to choose from.
  -- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C






___
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to freebsd-usb-unsubscr...@freebsd.org


Re: libusb performance on 8.1

2011-01-27 Thread Hans Petter Selasky
On Friday 28 January 2011 02:44:43 Daniel O'Connor wrote:
 On 23/01/2011, at 24:03, Hans Petter Selasky wrote:
  You need to change the way you buffer the data. FreeBSD does not queue
  more than 2 URB's at any time, and the turnaround time varies from 1ms
  to 125us due to hardware IRQ restrictions. Linux queues up all it can
  get, which leads to other kind of problems. The current internal buffer
  limit is 16Kbyte 8000 times per second which gives a MAX of 128
  MByte/second.
 
 How difficult would it be to increase this?

Hi,

For this kind of applications ISOCHRONOUS transfers should be used. Then you 
can have a double buffer guard in the range 1-56ms, regardless of the buffer 
size the hardware uses.

You could also try an XHCI controller, because the BULK buffering is done 
differently there.

 I obviously don't need any more
 throughput, however my application is very sensitive to latency, as I am
 reading out of a fairly small FIFO and if it fills up my entire run has to
 be aborted.



--HPS
___
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to freebsd-usb-unsubscr...@freebsd.org