NEC HCD interrupt message limitation

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

 



Hello,

I am losing interrupt messages when using a NEC D720101 HCD.
The interrupt messages are received as expected when using an integrated Intel ICH9 HCD.

To debug the problem I have installed a x86 PC with vanilla kernel 2.6.30-rc4 (32-bit) and a NEC D720101 HCD PCI card.
The same PC also has an integrated Intel 82801I (ICH9 Family) USB2 EHCI Controller.

I am connecting 36 FX2 (USB 2.0) based devices and six seven-port USB 2.0 hubs to the four ports on the root hubs
(both the NEC and Intel HCDs have four ports on the same bus).

For the USB bus topology see [1]. The USB devices are called Remote Units (RU hereafter).

The problem:

Each of the 36 RUs is sent a command to run a self test. When the test is done, the RU posts an interrupt message
containing the test result status.

When using the integrated Intel HCD, my app receives all 36 interrupts messages (for usbmon output see [2]).
However, when using the NEC controller, I only get 24 messages (for usbmon output see [3]). This is consistent behavior.

I tried staggering the test start times so all the interrupt messages would not be posted within a small time window,
yet the 24 message limit remains.

It seems that perhaps outbound communication clears the bad state as I can do this test over and over.

I appreciate any input on how to proceed with debugging this issue.

Dwayne Fontenot

[1]
The topology looks like this (lsusb -t apparently cannot display this many devices so this output is from my app):
node_app: tree
Hub (0000)
|__Hub (0026)
|  |__RU 0268620001:00000596 (0018) [0014] fd18
|  |__RU 0268620001:00000236 (0022) [0017] fd21
|  |__RU 0268620001:00000726 (0029) [0023] fd27
|  |__Hub (0032)
|  |  |__RU 0268620001:00000572 (0019) [0015] fd19
|  |  |__RU 0268620001:00000701 (0016) [0012] fd16
|  |  |__RU 0268620001:00000359 (0009) [0006] fd10
|  |  |__RU 0268620001:00000524 (0027) [0021] fd25
|  |  |__RU 0268620001:00000322 (0024) [0019] fd23
|  |  |__RU 0268620001:00000529 (0014) [0010] fd14
|  |__RU 0268620001:00000383 (0011) [0008] fd12
|  |__RU 0268620001:00000395 (0015) [0011] fd15
|  |__RU 0268620001:00000241 (0025) [0020] fd24
|__Hub (0020)
|  |__RU 0268620001:00000202 (0037) [0030] fd34
|  |__RU 0268620001:00000531 (0035) [0028] fd32
|  |__RU 0268620001:00000625 (0031) [0025] fd29
|  |__RU 0268620001:00000390 (0041) [0034] fd38
|  |__RU 0268620001:00000387 (0039) [0032] fd36
|  |__RU 0268620001:00000306 (0033) [0026] fd30
|__Hub (0013)
|  |__RU 0268620001:00000184 (0034) [0027] fd31
|  |__RU 0268620001:00000180 (0036) [0029] fd33
|  |__RU 0268620001:00000150 (0040) [0033] fd37
|  |__RU 0268620001:00000106 (0042) [0035] fd39
|  |__RU 0268620001:00000294 (0030) [0024] fd28
|  |__RU 0268620001:00000175 (0038) [0031] fd35
|__Hub (0001)
   |__RU 0268620001:00000270 (0021) [0016] fd20
   |__RU 0268620001:00000537 (0017) [0013] fd17
   |__RU 0268620001:00000280 (0010) [0007] fd11
   |__Hub (0008)
   |  |__RU 0268620001:00000384 (0004) [0002] fd6
   |  |__RU 0268620001:00000264 (0005) [0003] fd7
   |  |__RU 0268620001:00000286 (0007) [0005] fd9
   |  |__RU 0268620001:00000661 (0002) [0000] fd4
   |  |__RU 0268620001:00000283 (0003) [0001] fd5
   |  |__RU 0268620001:00000284 (0006) [0004] fd8
   |__RU 0268620001:00000519 (0028) [0022] fd26
   |__RU 0268620001:00000277 (0023) [0018] fd22
   |__RU 0268620001:00000221 (0012) [0009] fd13

[2]
Intel HCD (all 36 interrupt messages received):
f6b2ab00 310809903 C Ii:071:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000295 00000000
f6b2ab00 310809912 S Ii:071:01 -115 32 <
f5739100 310809915 C Ii:074:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 0000011b 00000000
f5739100 310809921 S Ii:074:01 -115 32 <
f5723780 310809923 C Ii:076:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000180 00000000
f5723780 310809928 S Ii:076:01 -115 32 <
f56ff800 310809931 C Ii:086:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000167 00000000
f56ff800 310809936 S Ii:086:01 -115 32 <
f445ff80 310809939 C Ii:095:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000000dd 00000000
f445ff80 310809944 S Ii:095:01 -115 32 <
f5690180 310809947 C Ii:101:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000002bd 00000000
f5690180 310809952 S Ii:101:01 -115 32 <
f55cd700 310809954 C Ii:102:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000219 00000000
f55cd700 310809960 S Ii:102:01 -115 32 <
f440fe00 310809963 C Ii:106:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 0000023c 00000000
f440fe00 310809968 S Ii:106:01 -115 32 <
f56a0900 310809970 C Ii:108:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 0000010e 00000000
f56a0900 310809975 S Ii:108:01 -115 32 <
f564c580 310809978 C Ii:110:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000000ec 00000000
f564c580 310809983 S Ii:110:01 -115 32 <
f568eb00 310809986 C Ii:114:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000115 00000000
f568eb00 310809991 S Ii:114:01 -115 32 <
f55d2100 310809994 C Ii:117:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000000f1 00000000
f55d2100 310809999 S Ii:117:01 -115 32 <
f571d680 310810002 C Ii:121:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000207 00000000
f571d680 310810008 S Ii:121:01 -115 32 <
f5734080 310810013 C Ii:127:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000271 00000000
f5734080 310810018 S Ii:127:01 -115 32 <
f68e7a00 310810022 C Ii:007:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000132 00000000
f68e7a00 310810027 S Ii:007:01 -115 32 <
f5734f80 310810031 C Ii:011:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000213 00000000
f5734f80 310810036 S Ii:011:01 -115 32 <
f452e680 310810040 C Ii:015:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000000ca 00000000
f452e680 310810045 S Ii:015:01 -115 32 <
f446de00 310810049 C Ii:018:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000183 00000000
f446de00 310810054 S Ii:018:01 -115 32 <
f4478080 310810057 C Ii:022:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000186 00000000
f4478080 310810062 S Ii:022:01 -115 32 <
f4534700 310810065 C Ii:025:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 0000006a 00000000
f4534700 310810070 S Ii:025:01 -115 32 <
f44e5f80 310810074 C Ii:029:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000000b8 00000000
f44e5f80 310810079 S Ii:029:01 -115 32 <
f4534580 310810082 C Ii:031:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000000b4 00000000
f4534580 310810087 S Ii:031:01 -115 32 <
f452e400 310810091 C Ii:035:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000096 00000000
f452e400 310810096 S Ii:035:01 -115 32 <
f5725c00 311065909 C Ii:079:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000108 00000000
f5725c00 311065916 S Ii:079:01 -115 32 <
f5734180 311065920 C Ii:081:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 0000011c 00000000
f5734180 311065926 S Ii:081:01 -115 32 <
f5689580 311065928 C Ii:083:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 0000011e 00000000
f5689580 311065934 S Ii:083:01 -115 32 <
f4464380 311065936 C Ii:088:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000118 00000000
f4464380 311065941 S Ii:088:01 -115 32 <
f571dd00 311065944 C Ii:094:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 0000017f 00000000
f571dd00 311065949 S Ii:094:01 -115 32 <
f564c680 311065952 C Ii:098:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 0000018b 00000000
f564c680 311065957 S Ii:098:01 -115 32 <
f5731200 311065960 C Ii:105:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000254 00000000
f5731200 311065965 S Ii:105:01 -115 32 <
f56a0d00 311065968 C Ii:115:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000142 00000000
f56a0d00 311065973 S Ii:115:01 -115 32 <
f54fe700 311065976 C Ii:119:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 0000020c 00000000
f54fe700 311065981 S Ii:119:01 -115 32 <
f55d2e80 311065984 C Ii:123:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000002d6 00000000
f55d2e80 311065989 S Ii:123:01 -115 32 <
f4426900 311065993 C Ii:027:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000126 00000000
f4426900 311065998 S Ii:027:01 -115 32 <
f6ad8f00 311066001 C Ii:033:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000000af 00000000
f6ad8f00 311066007 S Ii:033:01 -115 32 <
f5618d00 311321913 C Ii:096:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000211 00000000
f5618d00 311321923 S Ii:096:01 -115 32 <

[3]
NEC HCD (only 24 interrupt messages received):
f56a0580 581187620 C Ii:047:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000096 00000000
f56a0580 581187631 S Ii:047:01 -115 32 <
f566ef00 581187636 C Ii:063:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000186 00000000
f566ef00 581187641 S Ii:063:01 -115 32 <
f56aaf80 581187645 C Ii:064:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000183 00000000
f56aaf80 581187650 S Ii:064:01 -115 32 <
f5739200 581443546 C Ii:044:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000211 00000000
f5739200 581443555 S Ii:044:01 -115 32 <
f56a0d80 581443558 C Ii:045:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000000b8 00000000
f56a0d80 581443564 S Ii:045:01 -115 32 <
f56a0900 581443567 C Ii:046:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000000b4 00000000
f56a0900 581443573 S Ii:046:01 -115 32 <
f56a0e00 581443575 C Ii:048:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 0000006a 00000000
f56a0e00 581443581 S Ii:048:01 -115 32 <
f56a0480 581443583 C Ii:049:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000126 00000000
f56a0480 581443588 S Ii:049:01 -115 32 <
f56a0f00 581443591 C Ii:050:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000000af 00000000
f56a0f00 581443596 S Ii:050:01 -115 32 <
f571d500 581443599 C Ii:051:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 0000010e 00000000
f571d500 581443605 S Ii:051:01 -115 32 <
f566e600 581443607 C Ii:052:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000219 00000000
f566e600 581443612 S Ii:052:01 -115 32 <
f566e900 581443615 C Ii:053:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000118 00000000
f566e900 581443620 S Ii:053:01 -115 32 <
f566e200 581443623 C Ii:054:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000207 00000000
f566e200 581443628 S Ii:054:01 -115 32 <
f566ee80 581443631 C Ii:056:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000000dd 00000000
f566ee80 581443636 S Ii:056:01 -115 32 <
f566ef80 581443639 C Ii:057:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000180 00000000
f566ef80 581443645 S Ii:057:01 -115 32 <
f566e180 581443647 C Ii:058:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000108 00000000
f566e180 581443653 S Ii:058:01 -115 32 <
f566e500 581443659 C Ii:060:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000295 00000000
f566e500 581443664 S Ii:060:01 -115 32 <
f566e580 581699471 C Ii:055:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000115 00000000
f566e580 581699479 S Ii:055:01 -115 32 <
f566e280 581699483 C Ii:061:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000000ca 00000000
f566e280 581699489 S Ii:061:01 -115 32 <
f566e800 581699492 C Ii:062:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000271 00000000
f566e800 581699498 S Ii:062:01 -115 32 <
f55a1b00 581699501 C Ii:065:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 00000132 00000000
f55a1b00 581699506 S Ii:065:01 -115 32 <
f566e380 581955398 C Ii:059:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 0000011e 00000000
f566e380 581955406 S Ii:059:01 -115 32 <
f55d2f00 581955410 C Ii:066:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000000ec 00000000
f55d2f00 581955416 S Ii:066:01 -115 32 <
f55d2600 582211325 C Ii:067:01 0 24 = aa55aa55 00000010 23000002 1002d0e1 000002d6 00000000
f55d2600 582211334 S Ii:067:01 -115 32 <

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