On Wed, Feb 14, 2007 at 04:49:11PM -0600, [EMAIL PROTECTED] wrote:
> 
> Hello... While running minor stress on a system, I'm seeing messages
> like this quite frequently:

What kernel version are you using?

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

Fix the TT code :)

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

Hm, care to make up a patch that would test this out?

thanks,

greg k-h

-------------------------------------------------------------------------
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
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to