USB interrupt latency

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

 



Hi,

I have some questions regarding latency for USB packets. After having read the 
USB 2.0 specification and the Intel EHCI specification (v1.0), I have come to 
the following conclusions:

Assuming a device with 1 IN and 1 OUT endpoint (bulk), directly connected to 
the USB root hub, no other devices on the same port. Fixed package size of 512 
bytes (in and out). IN packets are generated at a constant rate of about 4 
packets per microframe, OUT packets are generated as bursts of variable size. 
URBs for IN and OUT are 512 bytes each (single USB packet).

I would be very grateful if anyone confirmed or turned down the following 
statements:

1. transactions for IN and OUT will be scheduled round robin, given there are 
any OUT packets in the queue
2. the device will be polled for available IN data by the host every 
AsyncSchedSleepTime interval (10us, see EHCI spec 4.8.4)
3. OUT packets will be transmitted immediately when they are available (given 
no other ongoing transaction, device has available space (PING->ACK))
4. an interrupt will only be generated by the EHCI controller once every 
microframe (when interrupt on completion is set), introducing a latency of up 
to 125 us.

Assuming the device would send back any received packet immediately, this 
would result in the following round trip latency, as seen from user space:

sequence of tokens/length in bytes including sync, turnaround ... (see USB 
2.0; table 5-10):
PING, ACK ~ 34 bytes
OUT, DATA, ACK ~ 55 + 512 bytes
IN, DATA, ACK ~ 55 + 512 bytes

ignoring bit stuffing, this sums up to (144+1024)*8/(480e6/s) = 19us, + 
interrupt delay.

If I have a userspace application which submits one 512byte OUT and one 
512byte IN URB, the OUT URB can be reaped immediately, and the IN URB can be 
reaped (completed) at least 19us, at most 134us later (assuming no latencies 
when switching between kernel and userspace, and no processing overhead in 
kernel - how much will this be?).

I hope I made any statements clear enough to answer if my conclusions are 
correct. Thanks in advance for answering.

Stefan
 

-- 
Stefan Brüns  /  Bergstraße 21  /  52062 Aachen
phone: +49 241 53809034     mobile: +49 151 50412019
--
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