Re: [QUESTION] bulk out performance

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wednesday 25 March 2009, Ming Lei wrote:
> I also find such issues in other hardware(surely not use Mentor IP).

Another observation is that for some reason, all USB
peripheral hardware I've seen has a hard time getting
OUT transfers to work cleanly.  Especially with DMA.

Double buffering support in hardware helps, but there
always seem to be some extra troublesome corner cases
with OUT cases that don't show up with IN.  It's not
just short packet terminations on transfers; there are
a lot of other strange interactions.


> I use Mentor's dma and don't enable CPPI, and find the
> similar problem with CONFIG_MUSB_PIO_ONLY=y.

PIO_ONLY would be *without* Mentor's DMA.  :)

I'm not sure anyone actually turned on the double
buffering support in the musb_hdrc driver.  I tried
it at one point and didn't have much success.  Having
that would help.

  
> I guess the reason is related with PING for the poor bulk out
> performance compared with bulk in.   Bulk in transfer can
> move data from sdram to udc fifo  before incoming in token, but
> bulk out can not receive data in advance, so it is very quick to fill
> udc fifo with incoming data  and leads to continuous PING packets
> from host until unloading all data from fifo to sdram.

... unless double buffering is in use, yes.  Having
that work would be the single biggest performance
improvement one could make in musb_hdrc peripheral
behavior, I suspect.

- Dave
 


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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux