On Wednesday 04 March 2009, Steve Calfee wrote:
> On Wed, Mar 4, 2009 at 2:10 PM, Hans Petter Selasky <hsela...@c2i.net> 
wrote:
> > On Wednesday 04 March 2009, Artyom Mirgorodsky wrote:
> >> I forgot to write, that a similar problem was observed in FreeBSD 7 with
> >> usb4bsd patches.
> >
> > Here is a patch which I think will address your problem. It is EHCI
> > hardware related. Different models behave differently. Try this:
> >
> > http://perforce.freebsd.org/chv.cgi?CH=158692
>
> Wow, that is bizarre. The "doorbell" is usually used so the software
> knows that the cpu vs dma race is complete when moving qtds off the qh
> - ie dequeueing requests. What you have done is asked the guy doing
> the photo finish at the end of a horse race to press the shutter a
> little before the horse crosses the line - so the shutter latency will
> allow a picture right as the horse crosses the line. Unfortunately,
> this (like all races) is affected by the object doing the racing -
> horse speed and camera speed are variable!
>
> I believe something else must be wrong.

The new USB stack _is_ doing things faster than the old one. I have gone 
through a large range of tests before I landed on the doorbell trick. 
Actually the new USB stack doesn't use the doorbell, we use software timers 
instead. The hardware certainly behaves different from vendor to vendor. 
Probably somone making the chips have to explain what is wrong.

In my (Nvidia+AMD64+EHCI) test case I tried:

No doorbell: 12 Mbyte/sec
Doorbell after transfer (after QH removal): 14 Mbyte/sec
Doorbell after next transfer (after QH insertion): 21 Mbyte/sec

On my other reference Intel chip I did not get any noticable performance 
increase by doing this trick ...

I think this trick is the best I can do. I've seen peculiarities before 
regarding the doorbell not behaving like it should ....

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

Reply via email to