Re: How should we handle isochronous underruns?

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

 



On Mon, Jul 1, 2013 at 10:48 PM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> On Mon, 1 Jul 2013, Ming Lei wrote:
> The fact that the delay is small doesn't matter -- what's important is
> that it will be > 0 whereas now there is no delay between completion
> and resubmission (in fact, the resubmission occurs before the
> completion ends).

Yes, that is the change tasklet is bringing, so looks we need to find a way
to distinguish streaming-on from underrun when stream->td_list becomes
empty in iso_stream_schedule().

>
>> I don't think
>> the introduced tasklet delay is a problem for EHCI since per EHCI spec
>> the maximum rate at which the host controller will issue interrupts is one
>> microframe(125us), which means isochronous transfer completion can be
>> reported to CPU with about 125us delay in hardware level.
>
> Irrelevant.  Besides, the delay can be longer than 125 us if another
> interrupt is being handled.
>
>> > Thus, for example, even if the pipeline contains only a single URB,
>> > with the current code it will not become empty.  But with the new code
>> > it will.  If the load on the system is too high, the pipeline could
>> > empty out even if it normally contains two or more URBs.
>>
>> Single URB may not work well too when running complete() in hard
>> irq context.
>
> It could work very well indeed, if the interval between URBs was larger
> than 1 ms.

It is too fragile so that single isoc URB is seldom used, isn't it?


Thanks,
-- 
Ming Lei
--
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