Re: How to increase the speed of ?USB reading?

When it is not supported ?

Why not supported ?

On 6/16/2010 8:55 PM, xxxxx@gmail.com wrote:

Thanks all above .

Yesterday , I got to know the URB’s UrbLink field.

I think if I can do it like this :
To form a chain of URBs to ONE IRP and then send to the USBD.sys, so , a series of USB bus’s sequential millisecond can be occupied by this BIG IRP . So It is me to help the host controller do its schedule operation.

This is completely unnecessary. If you submit several bulk URBs, enough
to fill up the whole frame, then the host controller will schedule them
all as tightly as possible. You cannot do any better than that.

In virtually every case, unless you have hit the maximum bus throughput,
poor USB performance is caused by not having enough requests queued up.
If you do not have a request queued up and ready to go by the time the
host controller is scheduling a frame, then you will MISS that entire
frame. USB is all scheduled in advanced. You have to plan ahead. You
can’t handle things one at a time.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Ok, I know it.

I want to know: on the ?Isochronous Transfers? occasion, is this way the standard technique ?

On 6/17/2010 11:38 PM, xxxxx@gmail.com wrote:

I want to know: on the ?Isochronous Transfers? occasion, is this way the standard technique ?

I’m not sure I understand the question. The type of endpoint is not
relevant. The concepts are all the same. If you need maximum
throughput through the pipe, then you must have several requests
outstanding, so that there is always a second one ready to go as soon as
the first one completes.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

I just mean , if it was a USB deivce that perform Isochronous Transfers, in order to receive data as fast as possible from it , using the UrbLink field is a good idea ? Or, is the standard technique ?

CyberPunkerX wrote:

in order to receive data as fast as possible from it , using the
UrbLink field is a good idea ? Or, is the standard technique ?

No, and no. Are you dense? Doron just told you no, it’s not supported. The docs say the field is reserved and must be NULL.

OK , thanks

You wrote:

>>
I just mean , if it was a USB deivce that perform Isochronous Transfers, in order to receive data as fast as possible from it , using the UrbLink field is a good idea ? Or, is the standard technique ?
<<<

No, the UrbLink field serves no purpose at all. It is useless.

I will say it again. To get maximum throughput, just make sure you have several requests outstanding at all times, so there’s always another request ready to go when one completes. USB is just not that fast – it isn’t that hard to keep up.

You are guilty of premature optimization here. You don’t start exploring wild options until you know whether you have a problem or not.

Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.