Re: NEC HCD interrupt message limitation

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

 



On Wed, 13 May 2009, Dwayne Fontenot <dwayne.fontenot@xxxxxxx> wrote:

> I have gathered data from /sys/kernel/debug/ehci and it looks interesting.
> Does this tell us anything useful?
> Does it still look like a hardware bug?

> ==========================================================================
> 
> after insmod ruusb driver (36 interrupt URBs submitted):
> 
> Intel HCD:
> 
> [recsys@ws2 0000:00:1d.7]$ cat periodic
> size = 1024
>  255:  qh256-0001/f44cc080 (h18 ep1in [1/0] q1 p1) qh256-0001/f44cc400 (h31 ep1in [1/0] q1 p1) qh256-0001/f44cc680 (h32 ep1in [1/0] q1 p1) qh256-0001/f44ccc00 (h57 ep1in [1/0] q1 p1) qh256-0001/f44ccd00 (h58 ep1in [1/0] q1 p1) qh256-0001/f4415d80 (h83 ep1in [1/0] q1 p1) qh256-0001/f4415c00 (h25 ep1in [2/0] q1 p64) qh256-0001/f4415600 (h26 ep1in [2/0] q1 p64) qh256-0001/f4415680 (h27 ep1in [2/0] q1 p64) qh256-0001/f4415a00 (h28 ep1in [2/0] q1 p64) qh256-0001/f4415a80 (h29 ep1in [2/0] q1 p64) qh256-0001/f4415800 (h30 ep1in [2/0] q1 p64) qh256-0001/f4415f00 (h45 ep1in [2/0] q1 p64) qh256-0001/f4415c80 (h46 ep1in [2/0] q1 p64) qh256-0001/f4415e80 (h47 ep1in [2/0] q1 p64) qh256-0001/f4415e00 (h48 ep1in [2/0] q1 p64) qh256-0001/f4415980 (h49 ep1in [2/0] q1 p64) qh256-0001/f4415900 (h50 ep1in [2/0] q1 p64) qh256-0001/f4415480 (h51 ep1in [2/0] q1 p64) qh256-0001/f4415380 (h52 ep1in [2/0] q1 p64) qh256-0001/f6af3e80 (h53 ep1in [2/0] q1 p64) qh256-0001/f6af3d00 (h54 ep1in [2/0] q1 p64) qh256-0001/f6af3b80 (h55 ep1in [2/0] q1 p64) qh256-0001/f6af3b00 (h56 ep1in [2/0] q1 p64) qh256-0001/f6af3180 (h71 ep1in [2/0] q1 p64) qh256-0001/f6af3100 (h72 ep1in [2/0] q1 p64) qh256-0001/f6af3c80 (h73 ep1in [2/0] q1 p64) qh256-0001/f6af3d80 (h74 ep1in [2/0] q1 p64) qh256-0001/f6af3a80 (h75 ep1in [2/0] q1 p64) qh256-0001/f6af3080 (h76 ep1in [2/0] q1 p64) qh256-0001/f6af3000 (h77 ep1in [2/0] q1 p64) qh256-0001/f6af3280 (h78 ep1in [2/0] q1 p64) qh256-0001/f6af3200 (h79 ep1in [2/0] q1 p64) qh256-0001/f6af3c00 (h80 ep1in [2/0] q1 p64) qh256-0001/f6af3480 (h81 ep1in [2/0] q1 p64) qh256-0001/f6af3400 (h82 ep1in [2/0] q1 p64) qh256-0001/f6af3700 (h90 ep1in [2/0] q1 p64) qh256-0001/f6af3980 (h91 ep1in [2/0] q1 p64) qh256-0001/f6af3900 (h92 ep1in [2/0] q1 p64) qh256-0001/f6af3680 (h93 ep1in [2/0] q1 p64) qh256-0001/f6af3600 (h94 ep1in [2/0] q1 p64) qh256-0001/f6af3f00 (h95 ep1in [2/0] q1 p64)
>  511:  qh256-0001/f44cc080 ... qh256-0001/f44cc400 ... qh256-0001/f44cc680 ... qh256-0001/f44ccc00 ... qh256-0001/f44ccd00 ... qh256-0001/f4415d80 ... qh256-0001/f4415c00 ... qh256-0001/f4415600 ... qh256-0001/f4415680 ... qh256-0001/f4415a00 ... qh256-0001/f4415a80 ... qh256-0001/f4415800 ... qh256-0001/f4415f00 ... qh256-0001/f4415c80 ... qh256-0001/f4415e80 ... qh256-0001/f4415e00 ... qh256-0001/f4415980 ... qh256-0001/f4415900 ... qh256-0001/f4415480 ... qh256-0001/f4415380 ... qh256-0001/f6af3e80 ... qh256-0001/f6af3d00 ... qh256-0001/f6af3b80 ... qh256-0001/f6af3b00 ... qh256-0001/f6af3180 ... qh256-0001/f6af3100 ... qh256-0001/f6af3c80 ... qh256-0001/f6af3d80 ... qh256-0001/f6af3a80 ... qh256-0001/f6af3080 ... qh256-0001/f6af3000 ... qh256-0001/f6af3280 ... qh256-0001/f6af3200 ... qh256-0001/f6af3c00 ... qh256-0001/f6af3480 ... qh256-0001/f6af3400 ... qh256-0001/f6af3700 ... qh256-0001/f6af3980 ... qh256-0001/f6af3900 ... qh256-0001/f6af3680 ... qh256-0001/f6af3600 ... qh256-0001/f6af3f00
>  767:  qh256-0001/f44cc080 ... qh256-0001/f44cc400 ... qh256-0001/f44cc680 ... qh256-0001/f44ccc00 ... qh256-0001/f44ccd00 ... qh256-0001/f4415d80 ... qh256-0001/f4415c00 ... qh256-0001/f4415600 ... qh256-0001/f4415680 ... qh256-0001/f4415a00 ... qh256-0001/f4415a80 ... qh256-0001/f4415800 ... qh256-0001/f4415f00 ... qh256-0001/f4415c80 ... qh256-0001/f4415e80 ... qh256-0001/f4415e00 ... qh256-0001/f4415980 ... qh256-0001/f4415900 ... qh256-0001/f4415480 ... qh256-0001/f4415380 ... qh256-0001/f6af3e80 ... qh256-0001/f6af3d00 ... qh256-0001/f6af3b80 ... qh256-0001/f6af3b00 ... qh256-0001/f6af3180 ... qh256-0001/f6af3100 ... qh256-0001/f6af3c80 ... qh256-0001/f6af3d80 ... qh256-0001/f6af3a80 ... qh256-0001/f6af3080 ... qh256-0001/f6af3000 ... qh256-0001/f6af3280 ... qh256-0001/f6af3200 ... qh256-0001/f6af3c00 ... qh256-0001/f6af3480 ... qh256-0001/f6af3400 ... qh256-0001/f6af3700 ... qh256-0001/f6af3980 ... qh256-0001/f6af3900 ... qh256-0001/f6af3680 ... qh256-0001/f6af3600 ... qh256-0001/f6af3f00
> 1023:  qh256-0001/f44cc080 ... qh256-0001/f44cc400 ... qh256-0001/f44cc680 ... qh256-0001/f44ccc00 ... qh256-0001/f44ccd00 ... qh256-0001/f4415d80 ... qh256-0001/f4415c00 ... qh256-0001/f4415600 ... qh256-0001/f4415680 ... qh256-0001/f4415a00 ... qh256-0001/f4415a80 ... qh256-0001/f4415800 ... qh256-0001/f4415f00 ... qh256-0001/f4415c80 ... qh256-0001/f4415e80 ... qh256-0001/f4415e00 ... qh256-0001/f4415980 ... qh256-0001/f4415900 ... qh256-0001/f4415480 ... qh256-0001/f4415380 ... qh256-0001/f6af3e80 ... qh256-0001/f6af3d00 ... qh256-0001/f6af3b80 ... qh256-0001/f6af3b00 ... qh256-0001/f6af3180 ... qh256-0001/f6af3100 ... qh256-0001/f6af3c80 ... qh256-0001/f6af3d80 ... qh256-0001/f6af3a80 ... qh256-0001/f6af3080 ... qh256-0001/f6af3000 ... qh256-0001/f6af3280 ... qh256-0001/f6af3200 ... qh256-0001/f6af3c00 ... qh256-0001/f6af3480 ... qh256-0001/f6af3400 ... qh256-0001/f6af3700 ... qh256-0001/f6af3980 ... qh256-0001/f6af3900 ... qh256-0001/f6af3680 ... qh256-0001/f6af3600 ... qh256-0001/f6af3f00

I had an idea.  This information shows that all of your interrupt 
transfers are queued for the same microframes.  It might help to 
stagger them.

You should try changing your driver so that it delays by one 
millisecond after submitting each of the initial interrupt URBs.  Then 
different URBs will be processed during different frames and the queue 
depths will never get very big.  The NEC controller might be able to 
handle this with no problem.

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