>>>With the way it is right now, with enforcing bandwidth reservation,
>>>there's the possibility that resubmit will fail for lack of bandwidth.
>>
>>In the pseudocode above, where is that possibility?  I don't see it.
> 
> 
> Umm, I just described it.
> 
> How about this:

I added a label for what I think is your third column.


> hub driver    other driver            [ PER-ENDPOINT ACTION ]
> submit_urb                            bandwidth allocated
> callback                              bandwidth deallocated

                              NYET       ^^^^^^^^^^^^^^^^^^^^^

>               submit_urb              bandwidth allocated

                              NOT!       ^^^^^^^^^^^^^^^^^^^^^

> submit_urb                            failed, insufficient bandwidth


No, the bandwidth wouldn't have been de-allocated until after the
callback returned ... and since the callback submitted an urb,
it was never de-allocated.  (That's the "NYET".)  No failure.

The second driver is clearly broken, it has no business using
the hub interface's endpoint!   But I'll assume it's some other
thread in the hub driver that decided to do that, so it was
a legit attempt to queue a second transfer.

That "NOT!" is something I didn't add because it wouldn't
come up unless queue lengths got greater than 1, which wasn't
what I was describing.  In fact the only time submit_urb
allocates bandwidth is if it's the first urb queued to that
endpoint.  (I said that some other places in this thread.  The
bandwidth doesn't get allocated twice.)

So your picture, updated, should resemble:

  Activity #1       Activity #2          Endpoint Action
  -----------       -----------          ---------------
    submit                                schedule, reserving bandwidth
    complete ()                           (still scheduled, qlen = 0)
                     submit               (still scheduled, qlen = 1)
    (re)submit                            (still scheduled, qlen = 2)
    hcd queuecheck                        qlen != 0, don't de-schedule

Is that clearer?

- Dave



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to