Re: EHCI USB 2.0 HUB TT scheduling issue with sound card

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

 



Le 26/10/2011 17:23, Alan Stern a écrit :
cat /dev/urandom  |  alsa_aplay -Dhw:2,0 -f S16_LE -c2&
uframe 5 : usecs 164 unavailable (remains 9/0 on uframe 7)
Note : On uframe 5 , the 164 usecs would be uframe 5 : 125, uframe 6 :
30, uframe 7 : 9,out of max
uframe 4 : sheduled


uframe                |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |
----------------------------------------------------------------------
max_tt_usecs          | 125 | 125 | 125 | 125 | 125 | 125 | 30  |  0  |
----------------------------------------------------------------------
used usecs on a frame |  13 |  0  |  0  |  0  | 125 | 78  |  0  |  0  |
----------------------------------------------------------------------

This is a very bad idea.  ehci-hcd does not support isochronous-IN
CSPLIT transactions extending beyond a frame boundary.  In practice
this means that no isochronous-IN transaction should ever be scheduled
in uframe 4 or later.

I don't understant, this is the OUT transaction that has been scheduled at uframe 4 & 5. We did not change restriction for IN transactions, that now find a place in uframe 2 & 3 (that are free because OUT does not occupate uframe 1 & 2 anymore) :

arecord -Dhw:2,0 --rate=48000 -c 2  -f S16_LE>  /tmp/input
uframe 5, for IN, don't wrap CSPLIT into the next frame, not ok
uframe 4, for IN, don't wrap CSPLIT into the next frame, not ok
uframe 3, for IN, don't wrap CSPLIT into the next frame, not ok
uframe 2 : sheduled

uframe                |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |
----------------------------------------------------------------------
max_tt_usecs          | 125 | 125 | 125 | 125 | 125 | 125 | 30  |  0  |
----------------------------------------------------------------------
used usecs on a frame |  13 |  0  | 125 | 40  | 125 | 78  |  0  |  0  |
----------------------------------------------------------------------
It's not possible to truly fix this problem without a very extensive
rewrite of ehci-sched.c.  For now, the easiest band-aid solution is to
relax the restriction that transfers lasting longer than 125 us must
start in an empty uframe.  Instead, check that no existing transactions
will be pushed back beyond their uframe boundary.

Alan Stern

--
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