On Tue, 20 Mar 2012, Ming Lei wrote: > On Wed, Jul 6, 2011 at 12:34 AM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > > This patch (as1477) fixes a problem affecting a few types of EHCI > > controller. �Contrary to what one might expect, these controllers > > automatically stop their internal frame counter when no ports are > > enabled. �Since ehci-hcd currently relies on the frame counter for > > determining when it should unlink QHs from the async schedule, those > > controllers run into trouble: The frame counter stops and the QHs > > never get unlinked. > > > > Some systems have also experienced other problems traced back to > > commit b963801164618e25fbdc0cd452ce49c3628b46c8 (USB: ehci-hcd unlink > > speedups), which made the original switch from using the system clock > > to using the frame counter. �It never became clear what the reason was > > for these problems, but evidently it is related to use of the frame > > counter. ... > Interesting, this may fix a possible performance bug[1] too. > > I guess that if the HC hw doesn't obey the rule of Interrupt Threshold > Control, then two sequential scan_async may be called in same uframe, the > qh_completions for the 2nd URB will be missed and io watchdog will be > triggered, so degrade performance a lot. > > [1], https://bugs.launchpad.net/bugs/624510 It's hard to know exactly what went wrong here; to find out would require some serious testing on the affected system. Anyway, I'm glad the patch fixed your problem. 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