On Thu, 24 Mar 2011, bradhuang wrote: > Dears, > > I have applied the patch that you mentioned. The test result is identical. > The system will watchdog reset when scan_perodic take long time for loop. > As my observation, most data are going case Q_TYPE_ITD, but your patch is > for case Q_TYPE_QH, right? Yes, it is. Do you know why the Q_TYPE_ITD case takes so much time? Can you determine where most of the time is spent? For example, is most of the time spent in the call to itd_complete()? If it is, where does itd_complete() spend most of its time? In the call to ehci_urb_done()? > Why it should occupy IRQ for long time in scan frame list? > Because the flow is : > Ehci_irq--->ehci_work--->scan_periodic, then scan_periodic will take long > time, IRQ will occupied by ehci, CPU can not service other IRQ in this time. > Any idea? Try adding some ehci_info() statements in appropriate places, and make sure CONFIG_PRINTK_TIME is enabled. Then the dmesg log will tell you what's taking up so much time. 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