On Tue, 19 Jun 2012, Austin Schuh wrote: > Sorry for the delay. I added a print in like you requested, and > here's a lot more context this time. FYI, there might have been a > couple of lines of IAA watchdog that I missed here. > > $ dmesg | grep -C 10 "IAA watchdog" > [ 336.474635] ehci_hcd 0000:00:1a.7: IRQ: status c009 cmd 10031 > [ 336.488135] ehci_hcd 0000:00:1a.7: start_unlink_async: IAAD > [ 336.488243] ehci_hcd 0000:00:1a.7: IRQ: status c028 cmd 10031 > [ 336.593234] ehci_hcd 0000:00:1a.7: IRQ: status c009 cmd 10031 > [ 336.593253] ehci_hcd 0000:00:1a.7: start_unlink_async: IAAD > [ 336.593326] ehci_hcd 0000:00:1a.7: IRQ: status c028 cmd 10031 > [ 336.596105] ehci_hcd 0000:00:1a.7: IRQ: status c009 cmd 10031 > [ 336.596365] ehci_hcd 0000:00:1a.7: IRQ: status c009 cmd 10021 > [ 336.597854] ehci_hcd 0000:00:1a.7: IRQ: status 8009 cmd 10021 > [ 336.597873] ehci_hcd 0000:00:1a.7: start_unlink_async: IAAD > [ 336.597925] ehci_hcd 0000:00:1a.7: IAA watchdog: status 8028 cmd 10021 That's good enough. Unfortunately, it doesn't help solve our problem! The IAA interrupts aren't getting lost. Instead we're seeing early timer expirations, probably caused by imprecise timer values. What do you have CONFIG_HZ set to? I have been working on using high-resolution timers in ehci-hcd, which ought to fix this problem. But for now, this doesn't explain why your bulk-out completion interrupts don't occur on time. Tell you what... Get rid of the IAAD: message, but keep the IRQ: message in ehci_irq(). Run your usbfs program, and let's see what the log shows for the time period when your completion is lost. To help synchronize your usbfs I/O with the EHCI debugging lines, leave usbfs snooping on while running the test. 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