On Wed, Mar 04, 2009 at 10:01:36AM +0100, Hans Petter Selasky wrote:
> On Wednesday 04 March 2009, M. Warner Losh wrote:
> > In message: <200903040922.48163.hsela...@c2i.net>
> >
> > : > I am looking at using FreeBSD in an embedded product. I have not
> > : > examined your ehci software, but I am aware of how Linux and other
> > : > OSes run the controller.
> > : >
> > : > Why are you taking an interrupt every uFrame SOF?
> > :
> > : If the transaction completes before 125us we take the interrupt before
> > : 125us. The problem is that the interrupt delay becomes critical to
> > : performance when the interrupt rate is close to the interrupt limitation.
> > :
> > : For example:
> > :
> > : Transferring 13Mbyte/sec at blocksize equal to 65536 bytes generates 600
> > : interrupts. Hence the Mass Storage state machine has three steps the
> > : throughput is computed like (600/3)*65536 bytes. If we on the average
> > : have to wait 0.5ms for an interrupt we loose throughput.
> >
> > Shouldn't you be using filters and such to make this less relevant?  A
> > filter runs on the order of 5us after the interrupt on fast machines,
> > and 20us on slower (400MHz) ones.  You can feed the pipeline better,
> > and handle higher interrupt rates...
> >
> 
> Yes, that's one possibility. It looks like there is some timing slightly out 
> of sync. I have an AMD box with the same symptoms. I will try to figure out 
> what is causing it.

If you do change to filters then this is much easier with taskqueues as
it has a fast variant, otherwise you would need an intermediate step in
order to signal the existing usb threading scheme. The taskqueue
changeover will be happening soonish anyway.


Andrew
_______________________________________________
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"

Reply via email to