anton wilson wrote:
> 
> Is there a guarantee that USB core and the HC will report timing problems? 

It's more of an issue of whether the HC does.  The HCD may not treat
some things as a timing issue (retry for a non-ISO transaction, etc),
and if it's not precise about scheduling periodic transactions it
might not notice some other problems.


> For instance, if I'm "chaining" ISO transfers to run every millisecond, do 
> USB core and the HC always know if we miss that 1 millisecond transfer for 
> some reason? If so, how does it communicate this failure with the upper level 
> driver?

The per-transfer status report mechanism for ISO uses

        urb->iso_frame_desc [packet].status
        urb->iso_frame_desc [packet].actual

Of course high speed ISO (nobody's reported using that code yet!) can
potentially use up to 8 of those per frame; it's really indexed by
a scheduling interval, not a frame offset, despite the name.

I'm not sure what a "miss" would look like.  The HCD and HC are both
expected to execute periodic schedules correctly, so if they did
not attempt the transfer that'd be a software or silicon bug.  If
the transfer is attempted, it will have a status code.  Device drivers
can tell if they've gotten behind (not had a transfer queued for some
chunk of time) by watching how time passes.  They need to (at least)
double buffer their ISO transfers to stream, and the minimum size of
each queued URB is a function of HCD request latency.

The trick is that "expected".  I believe not many people have hit the
limits Linux places on that word, even if they run with the "enforce
bandwidth allocation".  The three main HCDs don't report scheduling
problems for the same situations.  If people have been seeing problems
with scheduling, I think they've been very quiet.

- 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