Hello... While running minor stress on a system, I'm seeing messages like this quite frequently:
usb 3-1.1: reset full speed USB device using ehci_hcd and address 5 These messages are occurring for all 4 of my low/full speed HID devices that are connected to a USB2.0 hub (so all are using split transactions on an interrupt pipe). This is occurring on an AMD system, and the problem only occurs when the processors are changing speed (powernow/cpufreq must be enabled). I added a few printks, and the failures are all because the EHCI controller is setting QTD_STS_MMF (missed micro-frame), which means that the EHCI controller started a split transaction but wasn't able to complete it in time. I think this is happening because the EHCI controller is getting delayed trying reading main memory while the processors are changing speed (this is where the cpufreq/powernow stuff comes in). If this happens between the start & complete parts of a split transaction, the EHCI controller can't complete the split transaction in time, and it sets QTD_STS_MMF, causing ehci-hcd to return -EPROTO to the hid-core driver. The function hid_io_error() in hid-core will in theory retry this transaction every so often for up to a second, but, in reality, the transaction isn't getting retried at all before the second is up, because the system is loaded fairly heavily and the code that retries the transaction is called by a timer and not run immediately in the interrupt handler. Could anyone recommend a good way to fix this? It seems to me that ehci-hcd itself should perhaps retry a transaction immediately--at least a couple of times--if it gets QTD_STS_MMF. If that is wrong for some reason, it might be nice if there was some way for hid-core (et al?) to know what's going on so it could opt to resubmit the URB right away--or at least not reset the device so hastily--if this is the cause of the URB failure... -EPROTO covers several other errors, too. Thanks in advance for any advice! Stuart ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
